Skip to main content

OpusEncoder

Struct OpusEncoder 

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

Stateful Opus encoder with the fixed WaveKat voice profile.

Unlike G711Codec this is not Copy — libopus carries inter-frame prediction state, so one encoder serves exactly one outbound stream and must be fed every frame in order.

Implementations§

Source§

impl OpusEncoder

Source

pub fn new() -> Result<Self, CoreError>

Create an encoder with the locked profile: 16 kHz mono VoIP, ~28 kbps, in-band FEC on (with expected loss set so it actually engages), DTX off.

Source

pub fn encode( &mut self, pcm: &[i16], out: &mut Vec<u8>, ) -> Result<usize, CoreError>

Encode exactly one 20 ms frame (OPUS_FRAME_SAMPLES samples at OPUS_PCM_SAMPLE_RATE) into one Opus packet. Appends the packet bytes to out and returns the packet length.

The length is enforced because libopus only accepts legal frame durations and the WaveKat send path packetizes at 20 ms; a wrong slice length here is always a caller bug, not a stream condition.

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.