Aggregator (glvideomixer) in force-live mode "runs ahead" of pipeline clock

Mathieu Duponchelle mathieu at centricular.com
Wed Sep 27 11:30:53 UTC 2023


Hey Michiel,

What you describe does not sound like the intended behavior, indeed
with force-live you should not even need to have any source connected
to a sink pad of the element to have it act as live source, pushing out
data at the expected pace.

Can you try this first perhaps? Just use the element as a source with
no source upstream and see what happens? Perhaps there is some bug with
having all-eos inputs in force-live mode?

Can you also try with a different subclass (eg compositor) just to rule
out any unlikely error with glvideomixer ?

Cheers,
Mathieu

On Tue, 2023-09-19 at 07:50 +0000, Michiel Konstapel via gstreamer-
devel wrote:
> I am using a glvideomixer to switch between a placeholder image and a
> live 
> source that's initially not connected. Instead of an imagefreeze on
> the 
> placeholder image, I am trying to use force-live mode on the mixer,
> and 
> sending it just a single frame on a repeat-after-eos pad. However, in
> this 
> initial state (no actual live input connected) the glvideomixer
> appears to 
> be generating output buffers as far as downstream will take them,
> without 
> any regard for the pipeline clock. It looks like 
> gst_aggregator_wait_and_check will always see 
> gst_aggregator_check_pads_ready return TRUE because the only sinkpad
> is 
> EOS, and never gets to any of the consideration of latency and clock
> time: 
> https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gstreamer/libs/gst/base/gstaggregator.c#L841
> 
> 
> Am I interpreting this correctly, and is it intended behaviour? If
> so, how 
> do I get *my* intended behaviour, having the mixer behave (from 
> downstream's point of view) like a proper live source whether or not
> a 
> network input is connected?
> 
> Kind regards,
> Michiel


More information about the gstreamer-devel mailing list