AW: Two pipelines - link them - merge them - easy handling...

Maurer, Martin martin2.maurer at zeiss.com
Thu Apr 12 15:58:08 UTC 2018


Additional notice:

Pipe1 alone is a fully functional pipeline, contain a tee.
Pipe2 is then attached to a new pad of the tee.

So not possible to just concatenate the both strings, convert it together again via gst_parse_launch
and work with the newly created pipeline. Sorry.


Von: gstreamer-devel [mailto:gstreamer-devel-bounces at lists.freedesktop.org] Im Auftrag von Maurer, Martin
Gesendet: Donnerstag, 12. April 2018 17:40
An: gstreamer-devel at lists.freedesktop.org
Betreff: Two pipelines - link them - merge them - easy handling...

Hello,

I have two (sub-) pipelines, which I create via two gst_parse_launch calls.

pipe1 = gst_parse_launch("...");
pipe2 = gst_parse_launch("...");

I have different pipe2 pipelines, which I create for different use cases.

Now I want to dynamically link them together, so I get a big pipeline out of the two smaller ones.
Just link the end of the first pipeline with the beginning of the second pipeline.

I assume this is only possible if all my elements are inside one pipeline? Not distributed over two pipelines. Is this correct?
So is there perhaps some function to merge pipe2 into pipe1 (and all link info also taken over)?
Some enumeration over all elements of pipe2 and calling add/link for pipe1?
(ok, problem could be, if and how I can remove the added part, how to identify what was pipe2 inside pipe1,
but this is a secondary problem, perhaps I can live without it)

Or some function call similar to gst_parse_launch, where I can insert an already existing pipeline?

A solution, which could perhaps be possible, to use appsink at end of pipe 1 and appsrc in the beginning of pipe2.
But then I must forward the buffers (and more) by hand...

Or gst-interpipe? https://github.com/RidgeRun/gst-interpipe

But in my opinion these last both are (too) heavy things for just the problem of basic (easy?) pipeline/element handling.

I know it is possible to use gst_element_factory_make, gst_bin_add_many, gst_element_link_many, ...
but this is not as comfortable and easy to use like the pipeline strings in gst_parse_launch.
(reading what element was added, which were linked in which order,
and modifying it: e.g. adding/removing a new element doesn't affect multiple places)

Best regards,

Marie




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180412/9c3e1682/attachment-0001.html>


More information about the gstreamer-devel mailing list