[gst-devel] Mixing starting/stopping/disconnecting sources: multiqueue + freeze?
Frans van Berckel
fberckel at xs4all.nl
Sat Jan 2 13:42:30 CET 2010
Not knowing it in the details but did you checkout the GStreamer
Non-Linear plugins?
http://gstreamer.freedesktop.org/modules/gnonlin.html
It contains a set of plug-ins for GStreamer to ease the creation of
multimedia editors, or any other application where a timeline-oriented
use of GStreamer makes sense.
http://wiki.pitivi.org/wiki/GNonLin_documentation
Thanks,
Frans van Berckel
On Sat, 2010-01-02 at 13:05 +0100, Sjoerd Op 't Land wrote:
> Hello all,
>
> For a live video mixer/switcher I would like to perform mixing/
> switching between multiple asynchronous and starting/stopping/
> (dis)connecting video sources. In hardware, this is normally done by a
> TBC (Time Base Corrector). What would be the way to go in GStreamer?
>
> This is the solution I thought up thus far: every source is a pipeline
> that can be started and stopped at will. Then, a multiqueue to
> simultaneously output a frame from each source:
>
> source1(pipeline) -> | | -> | |
> | multiqueue | | videomixer | -> sink
> source2(pipeline) -> | | -> | |
>
> However, it seems from experiments that multiqueue only starts when it
> has received one buffer from every source. Should I insert something
> like the 'freeze' element to feed the multiqueue with a continuous
> stream? (Not the current 'freeze' element, because it freezes always,
> and not only a stopped source. Furthermore, it should increase or
> remove timestamps.)
>
> source1(pipeline) -> 'freeze' -> | | -> | |
> | multiqueue | | videomixer | ->
> sink
> source2(pipeline) -> 'freeze' -> | | -> | |
>
> Does such an element exist? The existence of the GST_BUFFER_FLAG_GAP
> makes me think that it must exist, but I cannot find it. Is pull-based
> scheduling possible for such a solution?
>
> Thanks in advance for any hints or suggestions,
> Sjoerd
More information about the gstreamer-devel
mailing list