diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2021-10-06 18:19:29 +0300 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2021-10-31 14:58:56 +0000 |
commit | 665a60452c68de9b5bd2789ff2d28dd247a9cb31 (patch) | |
tree | e4ae18964608bd97612bbcd0d49532c59ce8b8ab | |
parent | 516631c1b05a44126019c050efa33057fced8e9e (diff) |
rtsp-media: Only unprepare a media if it was not already unpreparing anyway
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/216>
-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); |