multiqueue: if buffering is disabled while buffering, post 100% message
authorThiago Santos <ts.santos@sisa.samsung.com>
Mon, 10 Mar 2014 12:49:05 +0000 (09:49 -0300)
committerThiago Santos <ts.santos@sisa.samsung.com>
Mon, 10 Mar 2014 12:49:05 +0000 (09:49 -0300)
Avoids stall waiting for buffering to reach 100%

plugins/elements/gstmultiqueue.c

index 981632c008f30eb5f4c65d75741ffb5bf594b41f..29d6b6326f5ddc499ce65f0ea18c57f55dbf4322 100644 (file)
@@ -539,6 +539,15 @@ gst_multi_queue_set_property (GObject * object, guint prop_id,
       break;
     case PROP_USE_BUFFERING:
       mq->use_buffering = g_value_get_boolean (value);
+      if (!mq->use_buffering && mq->buffering) {
+        GstMessage *message;
+
+        mq->buffering = FALSE;
+        GST_DEBUG_OBJECT (mq, "buffering 100 percent");
+        message = gst_message_new_buffering (GST_OBJECT_CAST (mq), 100);
+
+        gst_element_post_message (GST_ELEMENT_CAST (mq), message);
+      };
       break;
     case PROP_LOW_PERCENT:
       mq->low_percent = g_value_get_int (value);