From 83f30627cd9460157935e7e9603c60a15555967e Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Wed, 13 Jul 2016 16:16:21 +0200 Subject: [PATCH] decodebin3: fix collection leak The collection owned by GstDecodebin3 has to be unreffed when disposing. gst_event_new_stream_collection() doesn't consume the collection passed to it so no need to give it an extra ref. https://bugzilla.gnome.org/show_bug.cgi?id=768811 --- gst/playback/gstdecodebin3.c | 1 + gst/playback/gstparsebin.c | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gst/playback/gstdecodebin3.c b/gst/playback/gstdecodebin3.c index c216590557..feeef27b25 100644 --- a/gst/playback/gstdecodebin3.c +++ b/gst/playback/gstdecodebin3.c @@ -584,6 +584,7 @@ gst_decodebin3_dispose (GObject * object) g_list_free (dbin->active_selection); g_list_free (dbin->to_activate); g_list_free (dbin->pending_select_streams); + g_clear_object (&dbin->collection); free_input (dbin, dbin->main_input); /* FIXME : GO OVER INPUTS */ diff --git a/gst/playback/gstparsebin.c b/gst/playback/gstparsebin.c index 42743837d8..94dd66a031 100644 --- a/gst/playback/gstparsebin.c +++ b/gst/playback/gstparsebin.c @@ -3611,8 +3611,7 @@ retry: * and post a stream-collection onto the bus */ if (parsepad->active_collection == NULL && fallback_collection) { gst_pad_push_event (GST_PAD (parsepad), - gst_event_new_stream_collection (gst_object_ref - (fallback_collection))); + gst_event_new_stream_collection (fallback_collection)); } gst_object_unref (parsepad); }