diff options
author | Wim Taymans <wim.taymans@collabora.co.uk> | 2010-10-12 18:32:53 +0200 |
---|---|---|
committer | Wim Taymans <wim.taymans@collabora.co.uk> | 2010-10-12 18:32:53 +0200 |
commit | cc1b51f42357d668fbcf76d0a57b1c6191a26523 (patch) | |
tree | a7faa7f8d4cb2c3808b1504d7935593ae2b6fb04 | |
parent | 0dbb0f203e23524f323045eb55c5e8dc4f1c124c (diff) |
do some batch processing, doesn't work, see #613827queue-batch2
-rw-r--r-- | plugins/elements/gstqueue.c | 6 |
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"); |