1*4882a593SmuzhiyunFrom 4482a87d25acc8eb0362492b6604a3f7163ef245 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: "james.lin" <james.lin@rock-chips.com>
3*4882a593SmuzhiyunDate: Tue, 17 Apr 2018 11:14:01 +0800
4*4882a593SmuzhiyunSubject: [PATCH 02/33] interim fix vc1 stream may memory leak when pending
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunSigned-off-by: james.lin <james.lin@rock-chips.com>
7*4882a593SmuzhiyunSigned-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
8*4882a593Smuzhiyun---
9*4882a593Smuzhiyun gst/mpegtsdemux/tsdemux.c | 8 ++++++++
10*4882a593Smuzhiyun 1 file changed, 8 insertions(+)
11*4882a593Smuzhiyun
12*4882a593Smuzhiyundiff --git a/gst/mpegtsdemux/tsdemux.c b/gst/mpegtsdemux/tsdemux.c
13*4882a593Smuzhiyunindex 73e1c06..9aaa968 100644
14*4882a593Smuzhiyun--- a/gst/mpegtsdemux/tsdemux.c
15*4882a593Smuzhiyun+++ b/gst/mpegtsdemux/tsdemux.c
16*4882a593Smuzhiyun@@ -3446,6 +3446,14 @@ gst_ts_demux_push_pending_data (GstTSDemux * demux, TSDemuxStream * stream,
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun     if (G_UNLIKELY (stream->pending_ts && !check_pending_buffers (demux))) {
19*4882a593Smuzhiyun       if (buffer) {
20*4882a593Smuzhiyun+        GList *walk;
21*4882a593Smuzhiyun+        for (walk = demux->program->stream_list; walk; walk = g_list_next (walk)) {
22*4882a593Smuzhiyun+          MpegTSBaseStream *bs = (MpegTSBaseStream*)walk->data;
23*4882a593Smuzhiyun+          if (bs->registration_id == DRF_ID_VC1) {
24*4882a593Smuzhiyun+            gst_buffer_unref(buffer);
25*4882a593Smuzhiyun+            goto beach;
26*4882a593Smuzhiyun+          }
27*4882a593Smuzhiyun+        }
28*4882a593Smuzhiyun         PendingBuffer *pend;
29*4882a593Smuzhiyun         pend = g_slice_new0 (PendingBuffer);
30*4882a593Smuzhiyun         pend->buffer = buffer;
31*4882a593Smuzhiyun--
32*4882a593Smuzhiyun2.20.1
33*4882a593Smuzhiyun
34