pub trait DecoderBackend: Send {
    type Session: DecoderSession;

    // Required methods
    fn get_capabilities(&self) -> Capability;
    fn new_session(
        &mut self,
        format: Format
    ) -> Result<Self::Session, VideoError>;

    // Provided method
    fn into_trait_object(
        self
    ) -> Box<dyn DecoderBackend<Session = Box<dyn DecoderSession>>>
       where Self: Sized + 'static { ... }
}

Required Associated Types§

Required Methods§

source

fn get_capabilities(&self) -> Capability

Return the decoding capabilities for this backend instance.

source

fn new_session(&mut self, format: Format) -> Result<Self::Session, VideoError>

Create a new decoding session for the passed format.

Provided Methods§

source

fn into_trait_object( self ) -> Box<dyn DecoderBackend<Session = Box<dyn DecoderSession>>>
where Self: Sized + 'static,

Turn this backend into a trait object, allowing the same decoder to operate on a set of different backends.

Implementations on Foreign Types§

source§

impl<S> DecoderBackend for Box<S>
where S: ?Sized + DecoderBackend,

Implementors§