[gst-devel] Proper usage of fdsink and fdsrc (out-of-process processing)
Tim-Philipp Müller
t.i.m at zen.co.uk
Fri Jul 23 13:44:56 CEST 2010
On Fri, 2010-07-23 at 13:22 +0200, Andrzej K. Haczewski wrote:
> > Can anyone explain why there is a deadlock?
As I said on IRC, I think the problem is this:
- the pipeline waits for all sinks to preroll
- fdsink receives a buffer
- fdsink prerolls and blocks (now in PAUSED state)
- fdsink will only actually write data in PLAYING state
- fakesink needs a buffer to preroll
- fdsrc needs to receive a buffer first
- fdsrc will only receive data once fdsink
writes data
- fdsink will only write data in PLAYING state
- fdsink will only go into PLAYING state once
the whole pipeline has prerolled
- for the whole pipeline to preroll, fakesink
needs to preroll
You can use fakesink async=false to make it preroll even without data.
Cheers
-Tim
More information about the gstreamer-devel
mailing list