gst-plugins-rs/utils/togglerecord
Vivia Nikolaidou 063871a1eb togglerecord: Add support for non-live inputs
Live input + is-live=false:
    While not recording, drop input
    When recording is started, offset to collapse the gap

Live input + is-live=true:
    While not recording, drop input
    Don't modify the offset

Non-live input + is-live=false:
    While not recording, block input
    Don't modify the offset

Non-live input + is-live=true:
    While not recording, block input
    When recording is started, offset to current running time

Co-authored-by: Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1206>
2023-06-14 15:58:04 +03:00
..
examples Make sure to keep around and drop bus watches after usage in all the examples 2023-04-14 12:46:43 +03:00
src togglerecord: Add support for non-live inputs 2023-06-14 15:58:04 +03:00
tests togglerecord: Add support for non-live inputs 2023-06-14 15:58:04 +03:00
build.rs fix-getters-calls 0.3.0 pass 2021-04-20 18:19:58 +02:00
Cargo.toml togglerecord: Add support for non-live inputs 2023-06-14 15:58:04 +03:00
LICENSE-MPL-2.0 git: replace LICENSE file symlinks with copies 2023-04-04 14:26:37 +01:00
README.md togglerecord: Add support for non-live inputs 2023-06-14 15:58:04 +03:00

togglerecord

A multistream valve-like plugin that ensures multiple streams start/end at the same time.

It supports both live and non-live input and toggles recording via the record property. Live inputs will be dropped when not recording, while non-live inputs will be blocked.

Use cases

The is-live property refers to whether the output of the element will be live. So, based on whether the input is live and on whether the output is-live, we have these four behaviours:

  • Live input + is-live=false:

    • While not recording, drop input
    • When recording is started, offset to collapse the gap
  • Live input + is-live=true:

    • While not recording, drop input
    • Don't modify the offset
  • Non-live input + is-live=false:

    • While not recording, block input
    • Don't modify the offset
  • Non-live input + is-live=true:

    • While not recording, block input
    • When recording is started, offset to current running time