summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Hoving <sh@bigbrother.nl>2016-02-02 09:01:51 +0100
committerTim-Philipp Müller <tim@centricular.com>2016-02-02 10:36:05 +0000
commitaea624b6f8b93d506eb7b1f8a8b9086ca552856f (patch)
tree864ae0b8dc9f7a48cefeafb6b22d9fae9cb97ab2
parent2af81aa56d1ffc1be92eaeef8dc6d56a78267ec9 (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.c8
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;