Skip to main content

Decoder

Struct Decoder 

Source
pub struct Decoder { /* private fields */ }
Expand description

Decodes container payloads (the codec bitstream) into raw Frames.

The bring-your-own-payload layer under Consumer: use it when the frames don’t come from a plain track subscription, e.g. a transcoder serving individually fetched groups. Feed it the payload of each container frame in decode order; it handles avc1/hvc1 -> Annex-B conversion, passes AV1 OBU temporal units through, and gates output until the first keyframe.

Implementations§

Source§

impl Decoder

Source

pub fn new(catalog: &VideoConfig, config: &Config) -> Result<Self, Error>

Build a decoder for the catalog’s video config. Errors if the codec is not supported by the native backends.

Source

pub fn name(&self) -> &str

The decoder backend name in use, e.g. "videotoolbox".

Source

pub fn decode( &mut self, payload: &Bytes, timestamp: Timestamp, keyframe: bool, ) -> Result<Vec<Frame>, Error>

Decode one container frame, returning zero or more raw frames. timestamp is this frame’s presentation time; it rides through the decoder and comes back on each output frame, so a reordering decoder (B-frames) stamps every picture with its own presentation time rather than this access unit’s. With no reordering the two coincide.

Source

pub fn flush(&mut self) -> Result<Vec<Frame>, Error>

Return the frames the backend still holds once the stream has ended.

Call this after the last access unit and before dropping the decoder. The decoder remains reusable and waits for a keyframe before accepting the next stream.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> MaybeSend for T
where T: Send,

Source§

impl<T> MaybeSend for T
where T: Send,

Source§

impl<T> MaybeSend for T
where T: Send + ?Sized,

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more