Skip to main content

VideoEncoder

Trait VideoEncoder 

Source
pub trait VideoEncoder: Send {
    // Required methods
    fn codec(&self) -> CodecId;
    fn send_frame(&mut self, frame: &VideoFrame) -> CodecResult<()>;
    fn receive_packet(&mut self) -> CodecResult<Option<EncodedPacket>>;
    fn flush(&mut self) -> CodecResult<()>;
    fn config(&self) -> &EncoderConfig;
}
Expand description

Video encoder trait.

Implements a push-pull encoding model:

  1. Send raw frames with send_frame
  2. Receive compressed packets with receive_packet

Required Methods§

Source

fn codec(&self) -> CodecId

Get codec identifier.

Source

fn send_frame(&mut self, frame: &VideoFrame) -> CodecResult<()>

Send a raw frame to the encoder.

§Errors

Returns error if the frame format is invalid.

Source

fn receive_packet(&mut self) -> CodecResult<Option<EncodedPacket>>

Receive an encoded packet.

Returns Ok(None) if more frames are needed.

§Errors

Returns error if encoding fails.

Source

fn flush(&mut self) -> CodecResult<()>

Flush the encoder.

Call this after all frames have been sent to retrieve remaining packets.

§Errors

Returns error if flush fails.

Source

fn config(&self) -> &EncoderConfig

Get encoder configuration.

Implementors§