Merging and Separating Multiple Independent Pipelines.

Nicolas Dufresne nicolas.dufresne at collabora.com
Fri Jan 15 09:40:50 PST 2016


Le vendredi 15 janvier 2016 à 12:04 -0500, Stirling Westrup a écrit :
> My boss has just floated the idea of having me write an AV Router
> using gstreamer. This would be a program that would be able to take
> multiple input AV streams (video files, capture cards, broadcast
> streams) and mix, match and combine them, and route the multiple
> results to multiple output streams (display monitors, save files,
> broadcast transmission) and be able to be reconfigured dynamically
> while running.
> 
> Thus we might have multiple pipelines in a single program, and those
> pipelines might need to suddenly be combined or separated.
> 
> For example, imagine we have two independent video streams, each with
> its own pipeline. We're taking two video files, decoding them, and
> sending the results to two monitors. Then a user asks for the two
> monitors to be combined into one using picture-in-picuture.
> 
> Suddenly, without stopping anything, the code needs to be able to
> merge the two pipelines using some sort of overlay element. And,
> naturally, we may later decide to undo that operation and have two
> separate pipelines again.
> 
> Is this even possible in the current framework?

I would rather suggest to use a single pipeline. You can have
independent graph within the same pipeline. Otherwise, you'd have to
multiplex the sources/sinks (using intervideosrc/intervideosink) which
is less convenient. You also want to share the same latency across the
graphs as you changing the latency is not gap-less. The technique I
use, is to fix a maximum latency for my system and I make sure that my
worst case graph have less or equal amount of latency.

Nicolas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160115/47daebe7/attachment.sig>


More information about the gstreamer-devel mailing list