From e9d551b45c32366ca0e0b8fd851fdf57a1bbbcc9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 6 Oct 2021 18:19:29 +0300 Subject: [PATCH] rtsp-media: Only unprepare a media if it was not already unpreparing anyway Part-of: --- subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c b/subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c index 2ff875b..0ca0d9f 100644 --- a/subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c +++ b/subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c @@ -4101,6 +4101,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); @@ -4126,6 +4128,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); -- 2.7.4