pub struct StatelessEncoder<Codec, Handle, Backend>where
Backend: StatelessVideoEncoderBackend<Codec>,
Codec: StatelessCodec<Backend>,{ /* private fields */ }Implementations§
Source§impl<M, H> StatelessEncoder<AV1, H, VaapiBackend<M, H>>
impl<M, H> StatelessEncoder<AV1, H, VaapiBackend<M, H>>
pub fn new_vaapi( display: Rc<Display>, config: EncoderConfig, fourcc: Fourcc, coded_size: Resolution, low_power: bool, blocking_mode: BlockingMode, ) -> EncodeResult<Self>
Source§impl<M, H> StatelessEncoder<H264, H, VaapiBackend<M, H>>
impl<M, H> StatelessEncoder<H264, H, VaapiBackend<M, H>>
pub fn new_vaapi( display: Rc<Display>, config: EncoderConfig, fourcc: Fourcc, coded_size: Resolution, low_power: bool, blocking_mode: BlockingMode, ) -> EncodeResult<Self>
Source§impl<M, Handle> StatelessEncoder<VP9, Handle, VaapiBackend<M, Handle>>
impl<M, Handle> StatelessEncoder<VP9, Handle, VaapiBackend<M, Handle>>
pub fn new_vaapi( display: Rc<Display>, config: EncoderConfig, fourcc: Fourcc, coded_size: Resolution, low_power: bool, blocking_mode: BlockingMode, ) -> EncodeResult<Self>
Trait Implementations§
Source§impl<Codec, Handle, Backend> VideoEncoder<Handle> for StatelessEncoder<Codec, Handle, Backend>where
Codec: StatelessCodec<Backend>,
Backend: StatelessVideoEncoderBackend<Codec> + StatelessEncoderBackendImport<Handle, Backend::Picture>,
Self: StatelessEncoderExecute<Codec, Handle, Backend>,
impl<Codec, Handle, Backend> VideoEncoder<Handle> for StatelessEncoder<Codec, Handle, Backend>where
Codec: StatelessCodec<Backend>,
Backend: StatelessVideoEncoderBackend<Codec> + StatelessEncoderBackendImport<Handle, Backend::Picture>,
Self: StatelessEncoderExecute<Codec, Handle, Backend>,
Source§fn encode(
&mut self,
metadata: FrameMetadata,
handle: Handle,
) -> EncodeResult<()>
fn encode( &mut self, metadata: FrameMetadata, handle: Handle, ) -> EncodeResult<()>
Enqueues the frame for encoding. The implementation will drop the handle after it is no
longer be needed. The encoder is not required to immediately start processing the frame
and yield output bitstream. It is allowed to hold frames until certain conditions are met
eg. for specified prediction structures or referencing in order to further optimize
the compression rate of the bitstream.
Source§fn drain(&mut self) -> EncodeResult<()>
fn drain(&mut self) -> EncodeResult<()>
Drains the encoder. This means that encoder is required to finish processing of all the
frames in the internal queue and yield output bitstream by the end of the call. The output
bitstream then can be polled using
Self::poll function. Read moreSource§fn poll(&mut self) -> EncodeResult<Option<CodedBitstreamBuffer>>
fn poll(&mut self) -> EncodeResult<Option<CodedBitstreamBuffer>>
Polls on the encoder for the available output bitstream with compressed frames that where
submitted with
Self::encode. Read moreAuto Trait Implementations§
impl<Codec, Handle, Backend> Freeze for StatelessEncoder<Codec, Handle, Backend>where
Backend: Freeze,
impl<Codec, Handle, Backend> !RefUnwindSafe for StatelessEncoder<Codec, Handle, Backend>
impl<Codec, Handle, Backend> !Send for StatelessEncoder<Codec, Handle, Backend>
impl<Codec, Handle, Backend> !Sync for StatelessEncoder<Codec, Handle, Backend>
impl<Codec, Handle, Backend> Unpin for StatelessEncoder<Codec, Handle, Backend>where
Backend: Unpin,
Handle: Unpin,
<Codec as StatelessCodec<Backend>>::CodedPromise: Unpin,
<Codec as StatelessCodec<Backend>>::ReferencePromise: Unpin,
impl<Codec, Handle, Backend> !UnwindSafe for StatelessEncoder<Codec, Handle, Backend>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more