Programming Advice (James Linder)

Marianna Smidth Buschle msb at
Mon Jan 3 07:38:14 UTC 2022

Well, first I don't think you can have multiple pipelines with v4l2src 
(if that is the same device) so you would need a tee.

And I don't have all that much experience with valves, but I did look 
into them at some point for something similar.

I ended up not using them. I can't recall the specifics but it just 
wasn't as straight forward as I expected.

The thing I generally experience with gstreamer is that stopping and 
re-starting this kind of multiple branch pipelines normally includes a 
lot of fiddly details (because of timings, etc).

So, though is "more work", I think that creating and destroying the bins 
dynamically is potentially less error prone (and I guess the more 
commonly used option)...

Moreover the solution I ended up using is proxysink/proxysrc in order to 
decouple the pipelines.

Note that I also had some issues there with CAPS negotiation if I needed 
to restart the pipelines (had to used fixed CAPS in order to make it 
work properly).

And another possible solution, which I'm also considering changing to, 
is using RidgeRun's interpipesrc/sink.

So you might also want to take a look at them.

Best Regards


On 24.12.2021 13.00, gstreamer-devel-request at wrote:
> Guys Hi
> I want to impliment a pipeline: (concept only shown)
> v4l2src ! xvdisplaysink
> vl2src ! pulsesrc ! hlssink2
> vl2src ! pulsesrc ! qtmux ! filesink
> I want to turn the xvdisplaysink on/off
> I want to turn the filesink on/off
> Google lots yields 2 sorts of solution
> 1) valves to enable/disable the hlssink2 and filesink bins
> 2) create/destroy the 2 bins.
> Why use one or the other? As always the devil is in the detail. Opinion is the detail one way or other likely to be more onerous.
> Thanks
> James

Best regards / Med venlig hilsen
“Marianna Smidth Buschle”

More information about the gstreamer-devel mailing list