decodebin3: fix collection ref handling
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 28 Jul 2016 12:46:34 +0000 (14:46 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Wed, 3 Aug 2016 15:40:05 +0000 (17:40 +0200)
gst_stream_collection_add_stream() consumes the collection reference
passed to it but gst_stream_collection_get_stream() is (transfer none).

Fix this pipeline:

playbin3
uri=http://127.0.0.1:8079/defaults/exMPD_BIP_TC1/exMPD_BIP_TC1.mpd

https://bugzilla.gnome.org/show_bug.cgi?id=769270

gst/playback/gstdecodebin3.c

index 9a480a3..bbb0fe5 100644 (file)
@@ -1047,7 +1047,7 @@ get_merged_collection (GstDecodebin3 * dbin)
     for (i = 0; i < nb_stream; i++) {
       GstStream *stream =
           gst_stream_collection_get_stream (dbin->main_input->collection, i);
-      gst_stream_collection_add_stream (res, stream);
+      gst_stream_collection_add_stream (res, gst_object_ref (stream));
     }
   }
 
@@ -1061,7 +1061,7 @@ get_merged_collection (GstDecodebin3 * dbin)
       for (i = 0; i < nb_stream; i++) {
         GstStream *stream =
             gst_stream_collection_get_stream (input->collection, i);
-        gst_stream_collection_add_stream (res, stream);
+        gst_stream_collection_add_stream (res, gst_object_ref (stream));
       }
     }
   }