diff options
author | Wim Taymans <wim.taymans@collabora.co.uk> | 2010-02-01 11:44:34 +0100 |
---|---|---|
committer | Wim Taymans <wim@metal.(none)> | 2010-02-01 15:00:18 +0100 |
commit | fd755182b17f381254058cf747d287b1a8a03ea6 (patch) | |
tree | 303f5143b11c3488335ecf434ea4fa22d12859ce | |
parent | 16601b09fe8704ba0f80465fe788a36d17caff91 (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.c | 8 |
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); } |