hc
2023-05-26 a23f51ed7a39e452c1037343a84d7db1ca2c5bd7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
From b05c5c39f6588a6e94d5fdb68bd87f8149e90b1a Mon Sep 17 00:00:00 2001
From: "james.lin" <james.lin@rock-chips.com>
Date: Tue, 17 Apr 2018 11:14:01 +0800
Subject: [PATCH 11/40] interim fix vc1 stream may memory leak when pending
 
Signed-off-by: james.lin <james.lin@rock-chips.com>
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
---
 gst/mpegtsdemux/tsdemux.c | 8 ++++++++
 1 file changed, 8 insertions(+)
 
diff --git a/gst/mpegtsdemux/tsdemux.c b/gst/mpegtsdemux/tsdemux.c
index f95c325..23e8570 100644
--- a/gst/mpegtsdemux/tsdemux.c
+++ b/gst/mpegtsdemux/tsdemux.c
@@ -3149,6 +3149,14 @@ gst_ts_demux_push_pending_data (GstTSDemux * demux, TSDemuxStream * stream,
 
     if (G_UNLIKELY (stream->pending_ts && !check_pending_buffers (demux))) {
       if (buffer) {
+        GList *walk;
+        for (walk = demux->program->stream_list; walk; walk = g_list_next (walk)) {
+          MpegTSBaseStream *bs = (MpegTSBaseStream*)walk->data;
+          if (bs->registration_id == DRF_ID_VC1) {
+            gst_buffer_unref(buffer);
+            goto beach;
+          }
+        }
         PendingBuffer *pend;
         pend = g_slice_new0 (PendingBuffer);
         pend->buffer = buffer;
-- 
2.17.1