summaryrefslogtreecommitdiff
path: root/gst/rtsp-server/rtsp-media.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/rtsp-server/rtsp-media.c')
-rw-r--r--gst/rtsp-server/rtsp-media.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gst/rtsp-server/rtsp-media.c b/gst/rtsp-server/rtsp-media.c
index 6033531..0f8b3af 100644
--- a/gst/rtsp-server/rtsp-media.c
+++ b/gst/rtsp-server/rtsp-media.c
@@ -4083,6 +4083,8 @@ gst_rtsp_media_unprepare (GstRTSPMedia * media)
priv->prepare_count--;
if (priv->prepare_count > 0)
goto is_busy;
+ if (priv->status == GST_RTSP_MEDIA_STATUS_UNPREPARING)
+ goto is_unpreparing;
GST_INFO ("unprepare media %p", media);
set_target_state (media, GST_STATE_NULL, FALSE);
@@ -4108,6 +4110,12 @@ was_unprepared:
GST_INFO ("media %p was already unprepared", media);
return TRUE;
}
+is_unpreparing:
+ {
+ g_rec_mutex_unlock (&priv->state_lock);
+ GST_INFO ("media %p is already unpreparing", media);
+ return TRUE;
+ }
is_busy:
{
GST_INFO ("media %p still prepared %d times", media, priv->prepare_count);