pub trait TryAsAvFrameExt {
    type BufferSource;
    type Error: Error;

    // Required method
    fn try_as_av_frame<T: AvBufferSource + 'static>(
        &self,
        wrapper: impl FnOnce(Self::BufferSource) -> T
    ) -> Result<AvFrame, Self::Error>;
}

Required Associated Types§

Required Methods§

source

fn try_as_av_frame<T: AvBufferSource + 'static>( &self, wrapper: impl FnOnce(Self::BufferSource) -> T ) -> Result<AvFrame, Self::Error>

Try to create an AvFrame from self.

wrapper is a constructor for T that wraps Self::BufferSource and implement the AvBufferSource functionality. This can be used to provide a custom destructor implementation: for example, sending a virtio message signaling the buffer source is no longer used and it can be recycled by the guest.

Note that Self::BufferSource might not always implement AvBufferSource. For instance, it’s not guaranteed that a MemoryMappingArena created from GuestResource will be always immutable, and the backend need to explicit acknowledge the potential unsoundness by wrapping it in MemoryMappingAvBufferSource.

Object Safety§

This trait is not object safe.

Implementors§