From 360a6509c7c59c73113ad3cc818f5935cceffd4b Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Wed, 14 Oct 2015 12:03:15 +0200 Subject: [PATCH] qtdemux: fix caps leak If the QtDemuxStream are re-used they may already have caps which used to be leaked. Reproduced using the validate.dash.playback.seek_forward.dash_exMPD_BIP_TC1 validate scenario. https://bugzilla.gnome.org/show_bug.cgi?id=756561 --- gst/isomp4/qtdemux.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index e36e4be760..082da382a8 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -8803,6 +8803,9 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) } } + if (stream->caps) + gst_caps_unref (stream->caps); + stream->caps = qtdemux_video_caps (qtdemux, stream, fourcc, stsd_data, &codec); if (G_UNLIKELY (!stream->caps)) { @@ -9533,6 +9536,9 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) GST_WARNING_OBJECT (qtdemux, "unknown audio STSD version %08x", version); } + if (stream->caps) + gst_caps_unref (stream->caps); + stream->caps = qtdemux_audio_caps (qtdemux, stream, fourcc, stsd_data + 32, len - 16, &codec);