summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2010-02-01 11:44:34 +0100
committerWim Taymans <wim@metal.(none)>2010-02-01 15:00:18 +0100
commitfd755182b17f381254058cf747d287b1a8a03ea6 (patch)
tree303f5143b11c3488335ecf434ea4fa22d12859ce
parent16601b09fe8704ba0f80465fe788a36d17caff91 (diff)
uridecodebin: clean up decodebin properties
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
-rw-r--r--gst/playback/gsturidecodebin.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gst/playback/gsturidecodebin.c b/gst/playback/gsturidecodebin.c
index b45e4bf0..0b287382 100644
--- a/gst/playback/gsturidecodebin.c
+++ b/gst/playback/gsturidecodebin.c
@@ -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);
}