Skip to main content

AsyncImageDecoder

Struct AsyncImageDecoder 

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

Async wrapper around ImageDecoder.

Both open (file I/O + codec init) and decode (pixel conversion) are performed on spawn_blocking threads so the async executor is not blocked.

There is no into_stream method because an image is a single frame, not a sequence.

§Examples

use ff_decode::AsyncImageDecoder;

let frame = AsyncImageDecoder::open("photo.png").await?.decode().await?;
println!("{}x{}", frame.width(), frame.height());

Implementations§

Source§

impl AsyncImageDecoder

Source

pub async fn open( path: impl AsRef<Path> + Send + 'static, ) -> Result<Self, DecodeError>

Opens the image file asynchronously.

File I/O and codec initialisation are performed on a spawn_blocking thread so the async executor is not blocked.

§Errors

Returns DecodeError if the file is missing, contains no video stream, or uses an unsupported codec.

Source

pub async fn decode(self) -> Result<VideoFrame, DecodeError>

Decodes the image into a VideoFrame.

This consuming method runs on a spawn_blocking thread.

§Errors

Returns DecodeError on codec or I/O errors.

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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

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

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.