mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-28 12:41:05 +00:00
multiqueue: don't check visible items in buffering
In buffering mode we want to ignore the max visible items to decide when the queue is filled. Instead, we only look at the number of bytes and/or time in the queue.
This commit is contained in:
parent
6ac9191527
commit
07991ae4ab
1 changed files with 6 additions and 4 deletions
|
@ -1499,17 +1499,19 @@ single_queue_check_full (GstDataQueue * dataq, guint visible, guint bytes,
|
||||||
guint64 time, GstSingleQueue * sq)
|
guint64 time, GstSingleQueue * sq)
|
||||||
{
|
{
|
||||||
gboolean res;
|
gboolean res;
|
||||||
|
GstMultiQueue *mq = sq->mqueue;
|
||||||
|
|
||||||
GST_DEBUG ("queue %d: visible %u/%u, bytes %u/%u, time %" G_GUINT64_FORMAT
|
GST_DEBUG_OBJECT (mq,
|
||||||
"/%" G_GUINT64_FORMAT, sq->id, visible, sq->max_size.visible, bytes,
|
"queue %d: visible %u/%u, bytes %u/%u, time %" G_GUINT64_FORMAT "/%"
|
||||||
|
G_GUINT64_FORMAT, sq->id, visible, sq->max_size.visible, bytes,
|
||||||
sq->max_size.bytes, sq->cur_time, sq->max_size.time);
|
sq->max_size.bytes, sq->cur_time, sq->max_size.time);
|
||||||
|
|
||||||
/* we are always filled on EOS */
|
/* we are always filled on EOS */
|
||||||
if (sq->is_eos)
|
if (sq->is_eos)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
/* we never go past the max visible items */
|
/* we never go past the max visible items unless we are in buffering mode */
|
||||||
if (IS_FILLED (sq, visible, visible))
|
if (!mq->use_buffering && IS_FILLED (sq, visible, visible))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
/* check time or bytes */
|
/* check time or bytes */
|
||||||
|
|
Loading…
Reference in a new issue