summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gst/rtsp-server/rtsp-media.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/gst/rtsp-server/rtsp-media.c b/gst/rtsp-server/rtsp-media.c
index e42cbb2..b8bc97b 100644
--- a/gst/rtsp-server/rtsp-media.c
+++ b/gst/rtsp-server/rtsp-media.c
@@ -4582,21 +4582,14 @@ default_unsuspend (GstRTSPMedia * media)
if (gst_rtsp_media_is_receive_only (media))
break;
if (media_streams_blocking (media)) {
- gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARING);
- /* at this point the media pipeline has been updated and contain all
- * specific transport parts: all active streams contain at least one sink
- * element and it's safe to unblock all blocked streams */
- media_streams_set_blocked (media, FALSE);
- } else {
- /* streams are not blocked and media is suspended from PAUSED */
- gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARED);
- }
- g_rec_mutex_unlock (&priv->state_lock);
- if (gst_rtsp_media_get_status (media) == GST_RTSP_MEDIA_STATUS_ERROR) {
+ g_rec_mutex_unlock (&priv->state_lock);
+ if (gst_rtsp_media_get_status (media) == GST_RTSP_MEDIA_STATUS_ERROR) {
+ g_rec_mutex_lock (&priv->state_lock);
+ goto preroll_failed;
+ }
g_rec_mutex_lock (&priv->state_lock);
- goto preroll_failed;
}
- g_rec_mutex_lock (&priv->state_lock);
+ gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARED);
break;
case GST_RTSP_SUSPEND_MODE_PAUSE:
gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARED);