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
This commit is contained in:
Guillaume Desmottes 2015-10-14 12:03:15 +02:00 committed by Sebastian Dröge
parent 8283337e73
commit 360a6509c7

View file

@ -8803,6 +8803,9 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
} }
} }
if (stream->caps)
gst_caps_unref (stream->caps);
stream->caps = stream->caps =
qtdemux_video_caps (qtdemux, stream, fourcc, stsd_data, &codec); qtdemux_video_caps (qtdemux, stream, fourcc, stsd_data, &codec);
if (G_UNLIKELY (!stream->caps)) { 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); 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, stream->caps = qtdemux_audio_caps (qtdemux, stream, fourcc,
stsd_data + 32, len - 16, &codec); stsd_data + 32, len - 16, &codec);