adaptivedemux: fix manifest update locking
authorThiago Santos <thiagoss@osg.samsung.com>
Sat, 29 Nov 2014 13:28:09 +0000 (10:28 -0300)
committerThiago Santos <thiagoss@osg.samsung.com>
Mon, 1 Dec 2014 00:56:25 +0000 (21:56 -0300)
To avoid unlocking a not locked mutex

gst-libs/gst/adaptivedemux/gstadaptivedemux.c

index 6e3480c5a86d774530f75e4acabd821bdc13a9b7..e2a10e7d39c9a5a9a8a83919bbf6d10f2111b70b 100644 (file)
@@ -2225,12 +2225,12 @@ gst_adaptive_demux_update_manifest (GstAdaptiveDemux * demux)
     if (ret == GST_FLOW_OK) {
       gst_buffer_unref (demux->priv->manifest_buffer);
       demux->priv->manifest_buffer = buffer;
-      GST_MANIFEST_UNLOCK (demux);
 
       /* Send an updated duration message */
       if (klass->get_duration) {
         GstClockTime duration = klass->get_duration (demux);
 
+        GST_MANIFEST_UNLOCK (demux);
         if (duration != GST_CLOCK_TIME_NONE) {
           GST_DEBUG_OBJECT (demux,
               "Sending duration message : %" GST_TIME_FORMAT,
@@ -2241,12 +2241,14 @@ gst_adaptive_demux_update_manifest (GstAdaptiveDemux * demux)
           GST_DEBUG_OBJECT (demux,
               "Duration unknown, can not send the duration message");
         }
+      } else {
+        GST_MANIFEST_UNLOCK (demux);
       }
     } else {
+      GST_MANIFEST_UNLOCK (demux);
       gst_buffer_unref (buffer);
       /* Should the manifest uri vars be reverted to original values? */
     }
-    GST_MANIFEST_UNLOCK (demux);
   } else {
     ret = GST_FLOW_NOT_LINKED;
   }