[gst-devel] staved loop function of leaky queue
ensonic
ensonic at hora-obscura.de
Fri Jan 5 16:13:38 CET 2007
hi,
when I use a leaky queue, can a busy source starve the task that drives the
loop function (that in turn pushes to the sink?)
I run a pipeline like this:
GST_DEBUG="xvimagesink:3,queue*:4,task:4" gst-launch-0.10 -t v4l2src !
video/x-raw-yuv,width=176,height=144,framerate='(fraction)'15/1 ! queue
leaky=1 max-size-buffers=15 max-size-time=0 max-size-bytes=0 ! xvimagesink
sync=false qos=false
The problem is that under heavy load the v4l2src captures at a higher rate
than the the xvimagesink can render. When I run the above pipline,
xvimagesink is rendering nothing. The loop-function of the queue is run
just once. I added some logging to task.c and its only the v4l2src task
that is running continously.
Any ideas?
Stefan
Pipeline is live and does not need PREROLL ...
DEBUG (0x8fec0 - 0:00:01.923187000) task( 1437)
gsttask.c(154):gst_task_func: Entering task 0x8e450, thread 0x8fec0
DEBUG (0x85650 - 0:00:01.924377000) queue( 1436)
gstqueue.c(870):gst_queue_loop:<queue0> done g_cond_wait using qlock from
thread 0x85650
DEBUG (0x85650 - 0:00:01.924774000) queue_dataflow( 1436)
gstqueue.c(770):gst_queue_push_one:<queue0> retrieved data 0x26b50 from
queue
DEBUG (0x85650 - 0:00:01.925384000) queue( 1436)
gstqueue.c(887):gst_queue_loop:<queue0> task 0x85650 interation done
DEBUG (0x85650 - 0:00:01.925965000) queue( 1436)
gstqueue.c(847):gst_queue_loop:<queue0> task 0x85650 interation started
DEBUG (0x85650 - 0:00:01.926301000) queue( 1436)
gstqueue.c(861):gst_queue_loop:<queue0> doing g_cond_wait using qlock from
thread 0x85650
Setting pipeline to PLAYING ...
New clock: GstSystemClock
DEBUG (0x85650 - 0:00:02.031433000) queue( 1436)
gstqueue.c(870):gst_queue_loop:<queue0> done g_cond_wait using qlock from
thread 0x85650
DEBUG (0x85650 - 0:00:02.031830000) queue_dataflow( 1436)
gstqueue.c(770):gst_queue_push_one:<queue0> retrieved data 0x59aa0 from
queue
INFO (0x85650 - 0:00:02.148011000) xvimagesink( 1436)
xvimagesink.c(2047):gst_xvimagesink_show_frame:<xvimagesink0> slow copy
into bufferpool buffer
INFO (0x85650 - 0:00:02.158508000) xvimagesink( 1436)
xvimagesink.c(2078):gst_xvimagesink_show_frame:<xvimagesink0> fimage
rendered
DEBUG (0x8fec0 - 0:00:03.189636000) queue_dataflow( 1437)
gstqueue.c(645):gst_queue_chain:<queue0> queue is full, leaking buffer on
upstream end
DEBUG (0x8fec0 - 0:00:03.258088000) queue_dataflow( 1437)
gstqueue.c(645):gst_queue_chain:<queue0> queue is full, leaking buffer on
upstream end
DEBUG (0x8fec0 - 0:00:03.326477000) queue_dataflow( 1437)
gstqueue.c(645):gst_queue_chain:<queue0> queue is full, leaking buffer on
upstream end
DEBUG (0x8fec0 - 0:00:03.395081000) queue_dataflow( 1437)
gstqueue.c(645):gst_queue_chain:<queue0> queue is full, leaking buffer on
upstream end
DEBUG (0x8fec0 - 0:00:03.463227000) queue_dataflow( 1437)
gstqueue.c(645):gst_queue_chain:<queue0> queue is full, leaking buffer on
upstream end
DEBUG (0x8fec0 - 0:00:03.531616000) queue_dataflow( 1437)
gstqueue.c(645):gst_queue_chain:<queue0> queue is full, leaking buffer on
upstream end
D
More information about the gstreamer-devel
mailing list