Synchronized Pipelines

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

On Sat, Nov 14, 2020 at 5:03 AM Sebastian Dröge
<sebastian at> 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
>     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.
(+1) 514-626-0928

More information about the gstreamer-devel mailing list