mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
rtspsrc: Fix state changes from PAUSED to PLAYING
This was accidentally broken in the last commit that touched this because I missed the fall-through in the case immediately above this. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/906>
This commit is contained in:
parent
242f3cae6d
commit
f37afdafff
1 changed files with 6 additions and 3 deletions
|
@ -9224,9 +9224,12 @@ gst_rtspsrc_change_state (GstElement * element, GstStateChange transition)
|
||||||
set_manager_buffer_mode (rtspsrc);
|
set_manager_buffer_mode (rtspsrc);
|
||||||
/* fall-through */
|
/* fall-through */
|
||||||
case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
|
case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
|
||||||
if (rtspsrc->is_live && (GST_STATE_TARGET (element) == GST_STATE_PAUSED)) {
|
if (rtspsrc->is_live &&
|
||||||
/* unblock the tcp tasks only if rtspsrc is going to PAUSED (not if
|
(transition == GST_STATE_CHANGE_PAUSED_TO_PLAYING ||
|
||||||
* it's going to NULL) and make the loop waiting */
|
GST_STATE_TARGET (element) == GST_STATE_PAUSED)) {
|
||||||
|
/* Unblock the tcp tasks and make the loop waiting. But if the state
|
||||||
|
* transition is PLAY->PAUSE, then only do this if the final target
|
||||||
|
* state is PAUSED */
|
||||||
if (gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_WAIT, CMD_LOOP)) {
|
if (gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_WAIT, CMD_LOOP)) {
|
||||||
/* make sure it is waiting before we send PAUSE or PLAY below */
|
/* make sure it is waiting before we send PAUSE or PLAY below */
|
||||||
GST_RTSP_STREAM_LOCK (rtspsrc);
|
GST_RTSP_STREAM_LOCK (rtspsrc);
|
||||||
|
|
Loading…
Reference in a new issue