From 92061cb19e81e5846628dfb032e29defa917413e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sat, 17 Oct 2015 21:47:07 +0300 Subject: [PATCH] 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 --- gst/playback/gstplaybin2.c | 3 +++ 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 b4e90fcf4a..22faf8a3c7 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 24e4427802..2a4e7bca7c 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 */