gst-plugins-rs/utils/togglerecord
Vivia Nikolaidou 8417efc630 togglerecord: Error out if main stream buffer has no valid running time
We cannot continue with this buffer, because we cannot calculate the
time when the recording stopped or started. We also cannot safely drop
it, because that might break the stream, especially if it's encoded.
Therefore, we return an element error.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1264>
2023-06-30 09:20:42 +00: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: Error out if main stream buffer has no valid running time 2023-06-30 09:20:42 +00:00
tests togglerecord: Change test_two_stream_close_open_nonlivein_liveout timeout to 60ms 2023-06-26 12:33:31 +00: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