Synchronized Pipelines

Stirling Westrup swestrup at gmail.com
Mon Nov 16 17:14:39 UTC 2020


On Sat, Nov 14, 2020 at 5:03 AM Sebastian Dröge
<sebastian at centricular.com> wrote:
>
> On Fri, 2020-11-13 at 17:43 -0500, Stirling Westrup wrote:
> >
> What happens sounds very much like you don't enforce the same base time
> on all involved pipelines.
>
> You can do so by doing the following *before* setting the pipelines to
> PLAYING:
>
>     gst_element_set_base_time(pipeline, X);
>     gst_element_set_start_time(pipeline, GST_CLOCK_TIME_NONE);
>
> In addition you also want to force the same clock on all pipelines:
>
>     gst_pipeline_use_clock(pipeline, clock);
>
We can't do that because we need to keep the pipelines independent.
(ie, two of the senders might conceivably have different clocks).
Instead when a 'receiver' connects to a 'sender' its given the clock
of its sender to use, and each incoming mini-object is accompanied by
the base-time of the sending pipeline so adjustments can be made.

But connecting and disconnecting of pipelines has to be possible with
everything running, and already in the Playing state.


-- 
Stirling Westrup (he/him)
Programmer, Entrepreneur.
http://www.linkedin.com/in/swestrup
(+1) 514-626-0928


More information about the gstreamer-devel mailing list