[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