decodebin3: fix collection leak
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 13 Jul 2016 14:16:21 +0000 (16:16 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Mon, 18 Jul 2016 12:58:33 +0000 (13:58 +0100)
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
gst/playback/gstparsebin.c

index c216590..feeef27 100644 (file)
@@ -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 */
index 4274383..94dd66a 100644 (file)
@@ -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);
   }