From: Sebastian Dröge Date: Wed, 16 Mar 2011 14:56:34 +0000 (+0100) Subject: playbin2: Set sinks to READY before checking if it accept caps X-Git-Tag: 1.19.3~511^2~6555^2~1070 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b76efc7f5dcefb43b1ee737fdb5a4511826122c7;p=platform%2Fupstream%2Fgstreamer.git playbin2: Set sinks to READY before checking if it accept caps Fixes bug #642732. --- diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c index 2bf07de..1cd9d5b 100644 --- a/gst/playback/gstplaybin2.c +++ b/gst/playback/gstplaybin2.c @@ -2967,6 +2967,12 @@ autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps, if (sinkpad) { GstCaps *sinkcaps; + /* Ignore errors here, if a custom sink fails to go + * to READY things are wrong and will error out later + */ + if (GST_STATE (sink) < GST_STATE_READY) + gst_element_set_state (sink, GST_STATE_READY); + sinkcaps = gst_pad_get_caps_reffed (sinkpad); if (!gst_caps_is_any (sinkcaps)) ret = !gst_pad_accept_caps (sinkpad, caps); @@ -2993,6 +2999,12 @@ autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps, if (sinkpad) { GstCaps *sinkcaps; + /* Ignore errors here, if a custom sink fails to go + * to READY things are wrong and will error out later + */ + if (GST_STATE (sink) < GST_STATE_READY) + gst_element_set_state (sink, GST_STATE_READY); + sinkcaps = gst_pad_get_caps_reffed (sinkpad); if (!gst_caps_is_any (sinkcaps)) ret = !gst_pad_accept_caps (sinkpad, caps); @@ -3008,6 +3020,12 @@ autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps, if (sinkpad) { GstCaps *sinkcaps; + /* Ignore errors here, if a custom sink fails to go + * to READY things are wrong and will error out later + */ + if (GST_STATE (sink) < GST_STATE_READY) + gst_element_set_state (sink, GST_STATE_READY); + sinkcaps = gst_pad_get_caps_reffed (sinkpad); if (!gst_caps_is_any (sinkcaps)) ret = !gst_pad_accept_caps (sinkpad, caps);