Struct Decoder

pub struct Decoder<R: Read> { /* private fields */ }

YUV4MPEG2 decoder.

Implementations

impl<R: Read> Decoder<R>

fn new(reader: R) -> Result<Decoder<R>, Error>

Create a new decoder instance.

fn new_with_limits(reader: R, limits: Limits) -> Result<Decoder<R>, Error>

Create a new decoder instance with custom limits.

fn read_frame(&mut self) -> Result<Frame<'_>, Error>

Iterate over frames. End of input is indicated by Error::EOF.

fn get_width(&self) -> usize

Return file width.

fn get_height(&self) -> usize

Return file height.

fn get_framerate(&self) -> Ratio

Return file framerate.

fn get_pixel_aspect(&self) -> Ratio

Return file pixel aspect.

fn get_colorspace(&self) -> Colorspace

Return file colorspace.

NOTE: normally all .y4m should have colorspace param, but there are files encoded without that tag and it's unclear what should we do in that case. Currently C420 is implied by default as per ffmpeg behavior.

fn get_raw_params(&self) -> &[u8]

Return file raw parameters.

fn get_bit_depth(&self) -> usize

Return the bit depth per sample

fn get_bytes_per_sample(&self) -> usize

Return the number of bytes in a sample

Auto Trait Implementations

impl<R> Freeze for Decoder<R> where R: Freeze,

impl<R> RefUnwindSafe for Decoder<R> where R: RefUnwindSafe,

impl<R> Send for Decoder<R> where R: Send,

impl<R> Sync for Decoder<R> where R: Sync,

impl<R> Unpin for Decoder<R> where R: Unpin,

impl<R> UnsafeUnpin for Decoder<R> where R: UnsafeUnpin,

impl<R> UnwindSafe for Decoder<R> where R: UnwindSafe,

Blanket Implementations

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

fn type_id(&self) -> TypeId

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

fn borrow(&self) -> &T

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

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

impl<T> From<T> for Decoder<R>

fn from(t: T) -> T

Returns the argument unchanged.

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

fn into(self) -> U

Calls U::from(self).

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

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

type Error = Infallible;
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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

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