[gst-devel] Proper usage of fdsink and fdsrc (out-of-process processing)
Andrzej K. Haczewski
ahaczewski at gmail.com
Fri Jul 23 13:55:05 CEST 2010
2010/7/23 Tim-Philipp Müller <t.i.m at zen.co.uk>:
> 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.
One great Thank You, Tim. That solved huge problem for me.
More information about the gstreamer-devel