plugins/elements/gstmultiqueue.c: When dynamically creating single queues, activate...
authorEdward Hervey <bilboed@bilboed.com>
Wed, 17 Jan 2007 14:33:39 +0000 (14:33 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Wed, 17 Jan 2007 14:33:39 +0000 (14:33 +0000)
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c: (gst_single_queue_new):
When dynamically creating single queues, activate sinkpad before adding
it.
We should be doing the same thing for the source pad, but we can't
since it would call a method which needs the parent to be set in order
to work propertly. Instead of activating the source pad, we just unset
the flushing flag, which is the minimal requirement for adding a pad
to an element in a state greater than READY.

ChangeLog
plugins/elements/gstmultiqueue.c

index 1f8045ae9754561db650bac9144c4f4bd276c666..07a50f4b484fc81f7167b34a65f5f3cae5006b98 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2007-01-17  Edward Hervey  <edward@fluendo.com>
+
+       * plugins/elements/gstmultiqueue.c: (gst_single_queue_new):
+       When dynamically creating single queues, activate sinkpad before adding
+       it.
+       We should be doing the same thing for the source pad, but we can't
+       since it would call a method which needs the parent to be set in order
+       to work propertly. Instead of activating the source pad, we just unset
+       the flushing flag, which is the minimal requirement for adding a pad
+       to an element in a state greater than READY.
+
 2007-01-17  Edward Hervey  <edward@fluendo.com>
 
        * docs/faq/gst-uninstalled:
index 5d5f0de64a00841dafb43228fa48972c98bf866b..dda05740095550608c9ef71dd12a24e746254e27 100644 (file)
@@ -983,8 +983,7 @@ gst_single_queue_new (GstMultiQueue * mqueue)
 
   sq->mqueue = mqueue;
   sq->srcresult = GST_FLOW_OK;
-  sq->queue =
-      gst_data_queue_new ((GstDataQueueCheckFullFunction)
+  sq->queue = gst_data_queue_new ((GstDataQueueCheckFullFunction)
       single_queue_check_full, sq);
 
   sq->nextid = -1;
@@ -1033,7 +1032,10 @@ gst_single_queue_new (GstMultiQueue * mqueue)
   gst_pad_set_element_private (sq->sinkpad, (gpointer) sq);
   gst_pad_set_element_private (sq->srcpad, (gpointer) sq);
 
+  gst_pad_set_active (sq->sinkpad, TRUE);
   gst_element_add_pad (GST_ELEMENT (mqueue), sq->sinkpad);
+
+  GST_OBJECT_FLAG_UNSET (sq->srcpad, GST_PAD_FLUSHING);
   gst_element_add_pad (GST_ELEMENT (mqueue), sq->srcpad);
 
   gst_pad_set_active (sq->srcpad, TRUE);