diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2015-10-17 22:25:22 +0300 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2015-10-20 10:15:58 +0300 |
commit | a901db59822900f040e931bf1e7bda87bd14dddb (patch) | |
tree | 6edaa5b3c4dd1593cde6d525984d16efa7ec30b7 | |
parent | 70c8bf65ed63bf2929bf30c8ead7831d595409a8 (diff) | |
download | gstreamer-plugins-base-a901db59822900f040e931bf1e7bda87bd14dddb.tar.gz |
decodebin/playbin/playsink/subtitleoverlay: Post async-done on state change failures
https://bugzilla.gnome.org/show_bug.cgi?id=756611
-rw-r--r-- | gst/playback/gstdecodebin2.c | 1 | ||||
-rw-r--r-- | gst/playback/gstplaybin2.c | 2 | ||||
-rw-r--r-- | gst/playback/gstplaysink.c | 1 | ||||
-rw-r--r-- | gst/playback/gstsubtitleoverlay.c | 5 |
4 files changed, 8 insertions, 1 deletions
diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c index 71336b011..cf3a2d117 100644 --- a/gst/playback/gstdecodebin2.c +++ b/gst/playback/gstdecodebin2.c @@ -5190,6 +5190,7 @@ activate_failed: { GST_DEBUG_OBJECT (element, "element failed to change states -- activation problem?"); + do_async_done (dbin); return GST_STATE_CHANGE_FAILURE; } } diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c index b4e90fcf4..0fde6c2f8 100644 --- a/gst/playback/gstplaybin2.c +++ b/gst/playback/gstplaybin2.c @@ -5779,6 +5779,8 @@ gst_play_bin_change_state (GstElement * element, GstStateChange transition) /* ERRORS */ failure: { + do_async_done (playbin); + if (transition == GST_STATE_CHANGE_READY_TO_PAUSED) { GstSourceGroup *curr_group; diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c index 6c5a2cfeb..1685692d9 100644 --- a/gst/playback/gstplaysink.c +++ b/gst/playback/gstplaysink.c @@ -4961,6 +4961,7 @@ activate_failed: { GST_DEBUG_OBJECT (element, "element failed to change states -- activation problem?"); + do_async_done (playsink); return GST_STATE_CHANGE_FAILURE; } } diff --git a/gst/playback/gstsubtitleoverlay.c b/gst/playback/gstsubtitleoverlay.c index 3f24fd5df..719eebb50 100644 --- a/gst/playback/gstsubtitleoverlay.c +++ b/gst/playback/gstsubtitleoverlay.c @@ -1333,8 +1333,11 @@ gst_subtitle_overlay_change_state (GstElement * element, bret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); GST_DEBUG_OBJECT (self, "Base class state changed returned: %d", bret); - if (G_UNLIKELY (bret == GST_STATE_CHANGE_FAILURE)) + if (G_UNLIKELY (bret == GST_STATE_CHANGE_FAILURE)) { + do_async_done (self); return ret; + } + else if (bret == GST_STATE_CHANGE_ASYNC) ret = bret; else if (G_UNLIKELY (bret == GST_STATE_CHANGE_NO_PREROLL)) { |