1*4882a593SmuzhiyunFrom 69e5408f1864feeffe5fb8a5a310c31537615d18 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/41] 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 8adefeb..36f8311 100644 14*4882a593Smuzhiyun--- a/gst/mpegtsdemux/tsdemux.c 15*4882a593Smuzhiyun+++ b/gst/mpegtsdemux/tsdemux.c 16*4882a593Smuzhiyun@@ -3447,6 +3447,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