pub struct FramePipelineExecutor { /* private fields */ }Expand description
Orchestrates the frame-level transcode pipeline.
For codecs supported by oximedia-codec (AV1, VP9, VP8) the full
decode→filter→encode path is executed. For unsupported codec pairs
the pipeline falls back to packet-level stream-copy so that basic
remuxing always works.
Implementations§
Source§impl FramePipelineExecutor
impl FramePipelineExecutor
Sourcepub fn new(config: FramePipelineConfig) -> Self
pub fn new(config: FramePipelineConfig) -> Self
Creates a new executor from the given configuration.
Sourcepub fn resolve_output_hdr(&self) -> Result<Option<HdrMetadata>>
pub fn resolve_output_hdr(&self) -> Result<Option<HdrMetadata>>
Resolves output HDR metadata by running the configured processor over the source HDR metadata.
§Errors
Returns an error if the HDR conversion is unsupported.
Sourcepub fn execute(&mut self) -> Result<FramePipelineResult>
pub fn execute(&mut self) -> Result<FramePipelineResult>
Executes the frame pipeline synchronously.
The full execution path is:
- Probe input container format.
- Resolve output HDR metadata.
- For each packet: decode → apply ops → re-encode → write.
- Return a
FramePipelineResultwith statistics.
§Errors
Returns an error if I/O, codec, or HDR processing fails.
Auto Trait Implementations§
impl Freeze for FramePipelineExecutor
impl RefUnwindSafe for FramePipelineExecutor
impl Send for FramePipelineExecutor
impl Sync for FramePipelineExecutor
impl Unpin for FramePipelineExecutor
impl UnsafeUnpin for FramePipelineExecutor
impl UnwindSafe for FramePipelineExecutor
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more