#[non_exhaustive]pub enum SourceOutput {
Bytes(Box<dyn BytesSource>),
Packets(Box<dyn PacketSource>),
Frames(Box<dyn FrameSource>),
MultiTitle(Box<dyn MultiTitleSource>),
}Expand description
What a SourceRegistry::open call returns. The variant is decided
at driver-registration time, so callers can match on the shape and
branch the pipeline accordingly.
Marked #[non_exhaustive] so a new source kind (e.g. a future
LiveStream variant) can be added without semver-breaking
downstream consumers. Match arms must include a wildcard.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Bytes(Box<dyn BytesSource>)
A raw byte stream — feed it to container probing / a demuxer.
Packets(Box<dyn PacketSource>)
Already-demuxed compressed packets — feed them to decoders.
Frames(Box<dyn FrameSource>)
Already-decoded frames (e.g. a capture device) — feed them to filters / encoders directly.
MultiTitle(Box<dyn MultiTitleSource>)
A multi-title source (BD-ROM, DVD-Video, multi-edition MKV).
Callers fan out: each title is opened independently via
MultiTitleSource::open_title, demuxed, and routed to its
own output sink.
Auto Trait Implementations§
impl !RefUnwindSafe for SourceOutput
impl !Sync for SourceOutput
impl !UnwindSafe for SourceOutput
impl Freeze for SourceOutput
impl Send for SourceOutput
impl Unpin for SourceOutput
impl UnsafeUnpin for SourceOutput
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more