diff options
Diffstat (limited to 'gst/rtsp-server/rtsp-media.c')
-rw-r--r-- | gst/rtsp-server/rtsp-media.c | 8 |
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); |