From 6f8b80eeb135053386db5d2473f3e990843f7607 Mon Sep 17 00:00:00 2001 From: Jun Xie Date: Thu, 9 Nov 2017 12:36:44 +0800 Subject: hlsdemux: Fix memory leak caused by double buffer map https://bugzilla.gnome.org/show_bug.cgi?id=789999 --- ext/hls/gsthlsdemux.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c index 2d075af00..8c6f221d0 100644 --- a/ext/hls/gsthlsdemux.c +++ b/ext/hls/gsthlsdemux.c @@ -802,19 +802,17 @@ gst_hls_demux_handle_buffer (GstAdaptiveDemux * demux, { GstHLSDemuxStream *hls_stream = GST_HLS_DEMUX_STREAM_CAST (stream); // FIXME: pass HlsStream into function GstHLSDemux *hlsdemux = GST_HLS_DEMUX_CAST (demux); - GstMapInfo info; GstClockTime first_pcr, last_pcr; GstTagList *tags; if (buffer == NULL) return GST_FLOW_OK; - gst_buffer_map (buffer, &info, GST_MAP_READ); - if (G_UNLIKELY (hls_stream->do_typefind)) { GstCaps *caps = NULL; guint buffer_size; GstTypeFindProbability prob = GST_TYPE_FIND_NONE; + GstMapInfo info; if (hls_stream->pending_typefind_buffer) buffer = gst_buffer_append (hls_stream->pending_typefind_buffer, buffer); @@ -859,11 +857,11 @@ gst_hls_demux_handle_buffer (GstAdaptiveDemux * demux, gst_adaptive_demux_stream_set_caps (stream, caps); hls_stream->do_typefind = FALSE; + + gst_buffer_unmap (buffer, &info); } g_assert (hls_stream->pending_typefind_buffer == NULL); - gst_buffer_unmap (buffer, &info); - // Accumulate this buffer if (hls_stream->pending_pcr_buffer) { buffer = gst_buffer_append (hls_stream->pending_pcr_buffer, buffer); -- cgit v1.2.1