hc
2023-02-14 0cc9b7c44253c93447ddf73e206fbdbb3d9f16b1
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 40fcba6ea45443d1c8c27078bdbab47aa36c7915 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 02/39] 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 6174850..339b362 100644
--- a/gst/mpegtsdemux/tsdemux.c
+++ b/gst/mpegtsdemux/tsdemux.c
@@ -3438,6 +3438,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.20.1