Throttling

Elements synchronizing to the clock should expose a property to configure them in throttle mode. In throttle mode, the time distance between buffers is kept to a configurable throttle interval. This means that effectively the buffer rate is limited to 1 buffer per throttle interval. This can be used to limit the framerate, for example.

When an element is configured in throttling mode (this is usually only implemented on sinks) it should produce QoS events upstream with the jitter field set to the throttle interval. This should instruct upstream elements to skip or drop the remaining buffers in the configured throttle interval.

The proportion field is set to the desired slowdown needed to get the desired throttle interval. Implementations can use the QoS Throttle type, the proportion and the jitter member to tune their implementations.

The default sink base class, has the throttle-time property for this feature. You can test this with: gst-launch-1.0 videotestsrc ! xvimagesink throttle-time=500000000