diff options
author | Steven Hoving <sh@bigbrother.nl> | 2016-02-02 09:01:51 +0100 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2016-02-02 10:36:05 +0000 |
commit | aea624b6f8b93d506eb7b1f8a8b9086ca552856f (patch) | |
tree | 864ae0b8dc9f7a48cefeafb6b22d9fae9cb97ab2 | |
parent | 2af81aa56d1ffc1be92eaeef8dc6d56a78267ec9 (diff) |
rtsp-media: fix state_lock not locked again when preroll fails
https://bugzilla.gnome.org/show_bug.cgi?id=761399
-rw-r--r-- | gst/rtsp-server/rtsp-media.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gst/rtsp-server/rtsp-media.c b/gst/rtsp-server/rtsp-media.c index 90a9ddb..9e49c5d 100644 --- a/gst/rtsp-server/rtsp-media.c +++ b/gst/rtsp-server/rtsp-media.c @@ -3465,6 +3465,7 @@ static gboolean default_unsuspend (GstRTSPMedia * media) { GstRTSPMediaPrivate *priv = media->priv; + gboolean preroll_ok; switch (priv->suspend_mode) { case GST_RTSP_SUSPEND_MODE_NONE: @@ -3478,12 +3479,13 @@ default_unsuspend (GstRTSPMedia * media) gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARING); if (!start_preroll (media)) goto start_failed; + g_rec_mutex_unlock (&priv->state_lock); + preroll_ok = wait_preroll (media); + g_rec_mutex_lock (&priv->state_lock); - if (!wait_preroll (media)) + if (!preroll_ok) goto preroll_failed; - - g_rec_mutex_lock (&priv->state_lock); } default: break; |