mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 08:46:40 +00:00
plugins/elements/gstmultiqueue.c: When figuring out when a queue is filled, use our internal time estimate based on s...
Original commit message from CVS: * plugins/elements/gstmultiqueue.c: (apply_buffer), (single_queue_overrun_cb): When figuring out when a queue is filled, use our internal time estimate based on segments, just like check_full does.
This commit is contained in:
parent
4b239eb63b
commit
45bed69a60
2 changed files with 17 additions and 1 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2007-06-28 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
|
* plugins/elements/gstmultiqueue.c: (apply_buffer),
|
||||||
|
(single_queue_overrun_cb):
|
||||||
|
When figuring out when a queue is filled, use our internal time estimate
|
||||||
|
based on segments, just like check_full does.
|
||||||
|
|
||||||
2007-06-27 Stefan Kost <ensonic@users.sf.net>
|
2007-06-27 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
* gst/gstminiobject.c: (gst_mini_object_get_type):
|
* gst/gstminiobject.c: (gst_mini_object_get_type):
|
||||||
|
|
|
@ -1126,7 +1126,10 @@ single_queue_overrun_cb (GstDataQueue * dq, GstSingleQueue * sq)
|
||||||
GstSingleQueue *ssq = (GstSingleQueue *) tmp->data;
|
GstSingleQueue *ssq = (GstSingleQueue *) tmp->data;
|
||||||
GstDataQueueSize ssize;
|
GstDataQueueSize ssize;
|
||||||
|
|
||||||
|
GST_LOG_OBJECT (mq, "Checking Queue %d", ssq->id);
|
||||||
|
|
||||||
if (gst_data_queue_is_empty (ssq->queue)) {
|
if (gst_data_queue_is_empty (ssq->queue)) {
|
||||||
|
GST_LOG_OBJECT (mq, "Queue %d is empty", ssq->id);
|
||||||
if (IS_FILLED (visible, size.visible)) {
|
if (IS_FILLED (visible, size.visible)) {
|
||||||
sq->max_size.visible++;
|
sq->max_size.visible++;
|
||||||
GST_DEBUG_OBJECT (mq,
|
GST_DEBUG_OBJECT (mq,
|
||||||
|
@ -1139,8 +1142,14 @@ single_queue_overrun_cb (GstDataQueue * dq, GstSingleQueue * sq)
|
||||||
/* check if we reached the hard time/bytes limits */
|
/* check if we reached the hard time/bytes limits */
|
||||||
gst_data_queue_get_level (ssq->queue, &ssize);
|
gst_data_queue_get_level (ssq->queue, &ssize);
|
||||||
|
|
||||||
|
GST_DEBUG_OBJECT (mq,
|
||||||
|
"queue %d: visible %u/%u, bytes %u/%u, time %" G_GUINT64_FORMAT "/%"
|
||||||
|
G_GUINT64_FORMAT, ssq->id, ssize.visible, sq->max_size.visible,
|
||||||
|
ssize.bytes, sq->max_size.bytes, sq->cur_time, sq->max_size.time);
|
||||||
|
|
||||||
/* if this queue is filled completely we must signal overrun */
|
/* if this queue is filled completely we must signal overrun */
|
||||||
if (IS_FILLED (bytes, ssize.bytes) || IS_FILLED (time, ssize.time)) {
|
if (IS_FILLED (bytes, ssize.bytes) || IS_FILLED (time, sq->cur_time)) {
|
||||||
|
GST_LOG_OBJECT (mq, "Queue %d is filled", ssq->id);
|
||||||
filled = TRUE;
|
filled = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue