Setting Pipeline State to NULL can at time take over 10 seconds
Tim-Philipp Müller
t.i.m at zen.co.uk
Tue Sep 10 01:03:26 PDT 2013
On Mon, 2013-09-09 at 22:18 +0100, declan harrison wrote:
Hi,
> This works well generally, however under light load when I am cleaning
> up the pipeline after it has finished I see great variations of the
> time taken to set the Pipeline state to NULL (from playing state). It
> varies from a few milliseconds to over 14 or 15 seconds. Took a few
> pstack during load and see a number of threads showing the stack
> traces below.
> ...
> So my question are, Why is setting the state to null on the pieline
> taking so long? Is the order of tasks performed shown above when I
> cleanup the pipeline correct?
This is a lot. What are the network elements used, esp. the sink
element? It sounds like maybe you're using a network element that
doesn't do non-blocking I/O, it might be stuck in a write/send() call.
Yes, the order is fine. Though you can just unref the whole pipeline to
clean it all up (incl. children).
> I have a suspicion that the network stream maybe the cause of the
> issue here, Im wondering if the input or output network stream has
> been removed before all the elements states have transitioned to a
> NULL state. Would this cause an issue with setting the pipeline
> state?
It would be good to get a stack trace of *all* threads ('thread apply
all bt' in gdb).
> Im using GStreamer 0.10, on RHEL 64 bit architecture.
Bit confusing that the directory is called .../gstreamer/1.0/ then :)
Cheers
-Tim
More information about the gstreamer-devel
mailing list