mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-18 15:51:11 +00:00
rtspsrc: Don't propagate spurious state change returns from internal elements further
We handle them inside rtspsrc and override them in all other cases anyway, so do the same for "internal" state changes like PAUSED->PAUSED and PLAYING->PLAYING. This keeps unexpected NO_PREROLL to confuse state changes in GstBin. See also https://bugzilla.gnome.org/show_bug.cgi?id=760532 https://bugzilla.gnome.org/show_bug.cgi?id=765689
This commit is contained in:
parent
e538608b3f
commit
d24e68719b
1 changed files with 10 additions and 0 deletions
|
@ -7790,6 +7790,16 @@ gst_rtspsrc_change_state (GstElement * element, GstStateChange transition)
|
||||||
ret = GST_STATE_CHANGE_SUCCESS;
|
ret = GST_STATE_CHANGE_SUCCESS;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
/* Otherwise it's success, we don't want to return spurious
|
||||||
|
* NO_PREROLL or ASYNC from internal elements as we care for
|
||||||
|
* state changes ourselves here
|
||||||
|
*
|
||||||
|
* This is to catch PAUSED->PAUSED and PLAYING->PLAYING transitions.
|
||||||
|
*/
|
||||||
|
if (GST_STATE_TRANSITION_NEXT (transition) == GST_STATE_PAUSED)
|
||||||
|
ret = GST_STATE_CHANGE_NO_PREROLL;
|
||||||
|
else
|
||||||
|
ret = GST_STATE_CHANGE_SUCCESS;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue