[gst-devel] blocked glib idle/timeout

Dan Taylor dtaylor at startrac.com
Wed Mar 25 01:18:10 CET 2009


My simplest test pipeline has dvbsrc, mpegtsdemux (tried flutsdemux,
too), and
two filesinks (location is /dev/null).  There's a new pad callback to
connect
the demuxer to the filesinks, which works when the specified program
number
is in the stream.

When I use a program number that exists in the stream, the functions
called with g_idle_add_full() and g_timeout_add_full(), and the shorter
forms, are called.  When the program number doesn't exist in the stream,
the timeout is never called, and the idle function stops within a
second.
The application is only consuming 3% of a CPU, though, so it isn't busy-
waiting in the traditionally bad sense.

dvbsrc does not seem to care to where it sources data, and the only
difference
for the demuxer(s) is the the program number exists/does not exist.

Anyone got an idea where the demuxers could be blocking glib idle and
timeout?

I'm working down at the sink end of the stream, so I don't know the
demuxers
very well, but I will look deeper into them if someone knows where to
start.





More information about the gstreamer-devel mailing list