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

Michiel Konstapel michiel at aanmelder.nl
Tue Sep 19 07:50:57 UTC 2023


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