uridecodebin: clean up decodebin properties
authorWim Taymans <wim.taymans@collabora.co.uk>
Mon, 1 Feb 2010 10:44:34 +0000 (11:44 +0100)
committerWim Taymans <wim@metal.(none)>
Mon, 1 Feb 2010 14:00:18 +0000 (15:00 +0100)
When reusing a decodebin2 element, clear the properties we might have changed,
to their default values or else we might end up with old configuration.

Fixes #608484

gst/playback/gsturidecodebin.c

index b45e4bf..0b28738 100644 (file)
@@ -1173,10 +1173,18 @@ remove_decoders (GstURIDecodeBin * bin, gboolean force)
       gst_element_set_state (decoder, GST_STATE_NULL);
       gst_bin_remove (GST_BIN_CAST (bin), decoder);
     } else {
+      GstCaps *caps;
+
       gst_element_set_state (decoder, GST_STATE_READY);
       /* add it to our list of pending decodebins */
       g_object_ref (decoder);
       gst_bin_remove (GST_BIN_CAST (bin), decoder);
+      /* restore some properties we might have changed */
+      g_object_set (G_OBJECT (decoder), "sink-caps", NULL, NULL);
+      caps = DEFAULT_CAPS;
+      g_object_set (G_OBJECT (decoder), "caps", caps, NULL);
+      gst_caps_unref (caps);
+
       bin->pending_decodebins =
           g_slist_prepend (bin->pending_decodebins, decoder);
     }