imagefreeze: Add a live mode
authorSebastian Dröge <sebastian@centricular.com>
Mon, 29 Jun 2020 07:10:09 +0000 (10:10 +0300)
committerSebastian Dröge <sebastian@centricular.com>
Mon, 29 Jun 2020 09:07:14 +0000 (12:07 +0300)
commit8345caf6e05f20c878f98e6c74a4812270b53b9d
tree7e03c9f4536889f856cb669d0b204e5cf788ea76
parent06b29a4aefec332cf6f67bd44adf18757f951d64
imagefreeze: Add a live mode

Previously imagefreeze would always operate as non-live element and
output frames as fast as possible according to the configured segment
(via SEEK events) and the negotiated framerate from start to stop or the
other way around.

With the new live mode (enabled via the is-live property) it would only
output frames in PLAYING. Frames would be output according to the
negotiated framerate unless it would be too late, in which case it would
jump ahead and skip over the requirement amount of frames.

This makes it possible to actually use imagefreeze in live pipelines
without having to manually ensure somehow that it would start outputting
at the current running time and without still risking to fall behind
without recovery.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/653>
docs/gst_plugins_cache.json
gst/imagefreeze/gstimagefreeze.c
gst/imagefreeze/gstimagefreeze.h