summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2015-10-17 21:47:07 +0300
committerSebastian Dröge <sebastian@centricular.com>2015-10-20 10:16:06 +0300
commitbca12f39b8ffab17140d99a375126c0aea04a9db (patch)
tree1670ee4f73ff9748284509355549a6a827fab8bb
parenta901db59822900f040e931bf1e7bda87bd14dddb (diff)
downloadgstreamer-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.c3
-rw-r--r--gst/playback/gsturidecodebin.c6
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 */