gst-plugins-rs/generic/threadshare/examples/standalone/sink
François Laignel 9b96cfc452 ts/standalone: add new Sinks
Contrary to the existing Task Sink, the Async and Sync Mutex Sinks
handle buffers in the `PadSinkHandler` directly. The Async Mutex
Sink uses an async Mutex for the `PadSinkHandlerInner` while the
Sync Mutex Sink uses... a sync Mutex.

All Sinks share the same settings and stats manager.

Use the `--sink` command line option to select the sink (default is
`sync-mutex` since it allows evaluating the framework with as little
overhead as possible.

Also apply various fixes:

- Only keep the segment start instead of the full `Segment`. This
  helps with cache locality (`Segment` is a plain struct with many
  fields) and avoids downcasting the generic `Segment` upon each
  buffer handling.
- Box the `Stat`s. This should improve cache locality a bit.
- Fix EOS handling which took ages for no benefits in this
  particular use case.
- Use a macro to raise log level in the main element.
- Move error handling during item processing in `handle_loop_error`.
  This function was precisely designed for this and it should reduce
  the `handle_item`'s Future size.
2022-11-09 07:55:04 +00:00
..
async_mutex ts/standalone: add new Sinks 2022-11-09 07:55:04 +00:00
sync_mutex ts/standalone: add new Sinks 2022-11-09 07:55:04 +00:00
task ts/standalone: add new Sinks 2022-11-09 07:55:04 +00:00
mod.rs ts/standalone: add new Sinks 2022-11-09 07:55:04 +00:00
settings.rs ts/standalone: add new Sinks 2022-11-09 07:55:04 +00:00
stats.rs ts/standalone: add new Sinks 2022-11-09 07:55:04 +00:00