summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2010-10-12 18:32:53 +0200
committerWim Taymans <wim.taymans@collabora.co.uk>2010-10-12 18:32:53 +0200
commitcc1b51f42357d668fbcf76d0a57b1c6191a26523 (patch)
treea7faa7f8d4cb2c3808b1504d7935593ae2b6fb04
parent0dbb0f203e23524f323045eb55c5e8dc4f1c124c (diff)
do some batch processing, doesn't work, see #613827queue-batch2
-rw-r--r--plugins/elements/gstqueue.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/plugins/elements/gstqueue.c b/plugins/elements/gstqueue.c
index d66dcb526..875f3ffa1 100644
--- a/plugins/elements/gstqueue.c
+++ b/plugins/elements/gstqueue.c
@@ -879,6 +879,10 @@ gst_queue_is_empty (GstQueue * queue)
if (queue->queue->length == 0)
return TRUE;
+ if ((queue->cur_level.buffers == 0) || (queue->cur_level.bytes == 0) ||
+ (queue->cur_level.time == 0))
+ return TRUE;
+
/* It is possible that a max size is reached before all min thresholds are.
* Therefore, only consider it empty if it is not filled. */
return ((queue->min_threshold.buffers > 0 &&
@@ -989,7 +993,7 @@ gst_queue_chain (GstPad * pad, GstBuffer * buffer)
do {
/* for as long as the queue is filled, wait till an item was deleted. */
GST_QUEUE_WAIT_DEL_CHECK (queue, out_flushing);
- } while (gst_queue_is_filled (queue));
+ } while (!gst_queue_is_empty (queue));
GST_CAT_DEBUG_OBJECT (queue_dataflow, queue, "queue is not full");