diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2015-10-17 21:47:07 +0300 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2015-10-20 10:16:06 +0300 |
commit | bca12f39b8ffab17140d99a375126c0aea04a9db (patch) | |
tree | 1670ee4f73ff9748284509355549a6a827fab8bb | |
parent | a901db59822900f040e931bf1e7bda87bd14dddb (diff) | |
download | gstreamer-plugins-base-bca12f39b8ffab17140d99a375126c0aea04a9db.tar.gz |
playbin/uridecodebin: Always post async-done immediately if we're a live pipeline
Not only if the base class told us, but also if one of our own elements did.
https://bugzilla.gnome.org/show_bug.cgi?id=756611
-rw-r--r-- | gst/playback/gstplaybin2.c | 3 | ||||
-rw-r--r-- | gst/playback/gsturidecodebin.c | 6 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c index 0fde6c2f8..050cd898a 100644 --- a/gst/playback/gstplaybin2.c +++ b/gst/playback/gstplaybin2.c @@ -5774,6 +5774,9 @@ gst_play_bin_change_state (GstElement * element, GstStateChange transition) break; } + if (ret == GST_STATE_CHANGE_NO_PREROLL) + do_async_done (playbin); + return ret; /* ERRORS */ diff --git a/gst/playback/gsturidecodebin.c b/gst/playback/gsturidecodebin.c index 24e442780..2a4e7bca7 100644 --- a/gst/playback/gsturidecodebin.c +++ b/gst/playback/gsturidecodebin.c @@ -2752,8 +2752,6 @@ gst_uri_decode_bin_change_state (GstElement * element, ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); if (ret == GST_STATE_CHANGE_FAILURE) goto setup_failed; - else if (ret == GST_STATE_CHANGE_NO_PREROLL) - do_async_done (decoder); switch (transition) { case GST_STATE_CHANGE_READY_TO_PAUSED: @@ -2799,6 +2797,10 @@ gst_uri_decode_bin_change_state (GstElement * element, default: break; } + + if (ret == GST_STATE_CHANGE_NO_PREROLL) + do_async_done (decoder); + return ret; /* ERRORS */ |