mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
decodebin/playbin/playsink/subtitleoverlay: Post async-done on state change failures
https://bugzilla.gnome.org/show_bug.cgi?id=756611
This commit is contained in:
parent
87dbe54797
commit
4d6aa0f831
4 changed files with 8 additions and 1 deletions
|
@ -5147,6 +5147,7 @@ activate_failed:
|
||||||
{
|
{
|
||||||
GST_DEBUG_OBJECT (element,
|
GST_DEBUG_OBJECT (element,
|
||||||
"element failed to change states -- activation problem?");
|
"element failed to change states -- activation problem?");
|
||||||
|
do_async_done (dbin);
|
||||||
return GST_STATE_CHANGE_FAILURE;
|
return GST_STATE_CHANGE_FAILURE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5782,6 +5782,8 @@ gst_play_bin_change_state (GstElement * element, GstStateChange transition)
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
failure:
|
failure:
|
||||||
{
|
{
|
||||||
|
do_async_done (playbin);
|
||||||
|
|
||||||
if (transition == GST_STATE_CHANGE_READY_TO_PAUSED) {
|
if (transition == GST_STATE_CHANGE_READY_TO_PAUSED) {
|
||||||
GstSourceGroup *curr_group;
|
GstSourceGroup *curr_group;
|
||||||
|
|
||||||
|
|
|
@ -4961,6 +4961,7 @@ activate_failed:
|
||||||
{
|
{
|
||||||
GST_DEBUG_OBJECT (element,
|
GST_DEBUG_OBJECT (element,
|
||||||
"element failed to change states -- activation problem?");
|
"element failed to change states -- activation problem?");
|
||||||
|
do_async_done (playsink);
|
||||||
return GST_STATE_CHANGE_FAILURE;
|
return GST_STATE_CHANGE_FAILURE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1333,8 +1333,11 @@ gst_subtitle_overlay_change_state (GstElement * element,
|
||||||
|
|
||||||
bret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
|
bret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
|
||||||
GST_DEBUG_OBJECT (self, "Base class state changed returned: %d", bret);
|
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;
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
else if (bret == GST_STATE_CHANGE_ASYNC)
|
else if (bret == GST_STATE_CHANGE_ASYNC)
|
||||||
ret = bret;
|
ret = bret;
|
||||||
else if (G_UNLIKELY (bret == GST_STATE_CHANGE_NO_PREROLL)) {
|
else if (G_UNLIKELY (bret == GST_STATE_CHANGE_NO_PREROLL)) {
|
||||||
|
|
Loading…
Reference in a new issue