rtsp-media: Fix handling in default_unsuspend()
authorPatricia Muscalu <patricia@axis.com>
Thu, 23 Nov 2017 19:34:03 +0000 (20:34 +0100)
committerEdward Hervey <bilboed@bilboed.com>
Fri, 24 Nov 2017 09:52:36 +0000 (10:52 +0100)
Handle the case when streams are not blocked and media
is suspended from PAUSED.

Change-Id: I2f3d222ea7b9b20a0732ea5dc81a32d17ab75040

https://bugzilla.gnome.org/show_bug.cgi?id=790674

gst/rtsp-server/rtsp-media.c

index 6d2d113..aead378 100644 (file)
@@ -3685,11 +3685,16 @@ default_unsuspend (GstRTSPMedia * media)
     case GST_RTSP_SUSPEND_MODE_NONE:
       if ((priv->transport_mode & GST_RTSP_TRANSPORT_MODE_RECORD))
         break;
-      gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARING);
-      /* at this point the media pipeline has been updated and contain all
-       * specific transport parts: all active streams contain at least one sink
-       * element and it's safe to unblock any blocked streams that are active */
-      media_unblock_linked (media);
+      if (media_streams_blocking (media)) {
+        gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARING);
+        /* at this point the media pipeline has been updated and contain all
+         * specific transport parts: all active streams contain at least one sink
+         * element and it's safe to unblock any blocked streams that are active */
+        media_unblock_linked (media);
+      } else {
+        /* streams are not blocked and media is suspended from PAUSED */
+        gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARED);
+      }
       g_rec_mutex_unlock (&priv->state_lock);
       if (gst_rtsp_media_get_status (media) == GST_RTSP_MEDIA_STATUS_ERROR) {
         g_rec_mutex_lock (&priv->state_lock);