From e482b995fb96f5aabab4bfd7e8279e950c0a7037 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Tue, 25 May 2021 14:41:51 +0200 Subject: [PATCH] decodebin3: fix collection leak get_merged_collection() returns an owned stream collection and was leaked in the else block. Fix leak when running: GST_TRACERS=leaks GST_DEBUG="GST_TRACER:7,leaks:6" gst-play-1.0 --use-playbin3 test.mkv Part-of: --- subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c b/subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c index 514cd1a77d..f8a2ec4bf6 100644 --- a/subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c +++ b/subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c @@ -927,8 +927,11 @@ gst_decodebin3_input_pad_unlink (GstPad * pad, GstObject * parent) SELECTION_UNLOCK (dbin); gst_element_post_message (GST_ELEMENT_CAST (dbin), msg); update_requested_selection (dbin); - } else + } else { + if (collection) + gst_object_unref (collection); SELECTION_UNLOCK (dbin); + } gst_bin_remove (GST_BIN (dbin), input->parsebin); gst_element_set_state (input->parsebin, GST_STATE_NULL);