pub struct ProjectionEncoder { /* private fields */ }Expand description
Safe wrapper around OpusProjectionEncoder.
Implementations§
Source§impl ProjectionEncoder
impl ProjectionEncoder
Sourcepub fn size(channels: u8, mapping_family: i32) -> Result<usize>
pub fn size(channels: u8, mapping_family: i32) -> Result<usize>
Size in bytes of a projection encoder state for external allocation.
§Errors
Returns Error::BadArg if the channel/mapping configuration is invalid.
Sourcepub unsafe fn init_in_place(
ptr: *mut OpusProjectionEncoder,
sample_rate: SampleRate,
channels: u8,
mapping_family: i32,
application: Application,
) -> Result<(u8, u8)>
pub unsafe fn init_in_place( ptr: *mut OpusProjectionEncoder, sample_rate: SampleRate, channels: u8, mapping_family: i32, application: Application, ) -> Result<(u8, u8)>
Initialize a previously allocated projection encoder state.
§Safety
The caller must provide a valid pointer to ProjectionEncoder::size() bytes,
aligned to at least align_of::<usize>() (malloc-style alignment).
§Errors
Returns Error::BadArg for invalid inputs or a mapped libopus error.
Sourcepub fn new(
sample_rate: SampleRate,
channels: u8,
mapping_family: i32,
application: Application,
) -> Result<Self>
pub fn new( sample_rate: SampleRate, channels: u8, mapping_family: i32, application: Application, ) -> Result<Self>
Create a new projection encoder using the ambisonics helper.
Returns Error::BadArg for unsupported channel/mapping combinations
or propagates libopus allocation failures.
§Errors
Returns Error::BadArg for invalid arguments or the libopus error produced by
the underlying create call; Error::AllocFail if libopus returns a null handle.
Sourcepub fn encode(
&mut self,
pcm: &[i16],
frame_size_per_ch: usize,
out: &mut [u8],
) -> Result<usize>
pub fn encode( &mut self, pcm: &[i16], frame_size_per_ch: usize, out: &mut [u8], ) -> Result<usize>
Encode interleaved i16 PCM.
§Errors
Returns Error::InvalidState if the encoder handle was freed, Error::BadArg for
buffer/layout issues, the libopus error mapped via Error::from_code, or
Error::InternalError if libopus reports an impossible packet length.
Sourcepub fn encode_float(
&mut self,
pcm: &[f32],
frame_size_per_ch: usize,
out: &mut [u8],
) -> Result<usize>
pub fn encode_float( &mut self, pcm: &[f32], frame_size_per_ch: usize, out: &mut [u8], ) -> Result<usize>
Encode interleaved f32 PCM.
§Errors
Returns Error::InvalidState if the encoder handle was freed, Error::BadArg for
buffer/layout issues, the libopus error mapped via Error::from_code, or
Error::InternalError if libopus reports an impossible packet length.
Sourcepub fn set_bitrate(&mut self, bitrate: Bitrate) -> Result<()>
pub fn set_bitrate(&mut self, bitrate: Bitrate) -> Result<()>
Set target bitrate for the encoder.
§Errors
Returns Error::InvalidState if the encoder handle is invalid or a mapped libopus error.
Sourcepub fn bitrate(&mut self) -> Result<Bitrate>
pub fn bitrate(&mut self) -> Result<Bitrate>
Query current bitrate configuration.
§Errors
Returns Error::InvalidState if the encoder handle is invalid or a mapped libopus error.
Sourcepub fn demixing_matrix_size(&mut self) -> Result<i32>
pub fn demixing_matrix_size(&mut self) -> Result<i32>
Size in bytes of the current demixing matrix.
§Errors
Returns Error::InvalidState if the encoder handle is invalid or a mapped libopus error.
Sourcepub fn demixing_matrix_gain(&mut self) -> Result<i32>
pub fn demixing_matrix_gain(&mut self) -> Result<i32>
Gain (in Q8 dB) of the demixing matrix.
§Errors
Returns Error::InvalidState if the encoder handle is invalid or a mapped libopus error.
Sourcepub fn write_demixing_matrix(&mut self, out: &mut [u8]) -> Result<usize>
pub fn write_demixing_matrix(&mut self, out: &mut [u8]) -> Result<usize>
Copy the demixing matrix into out and return the number of bytes written.
§Errors
Returns Error::InvalidState if the encoder handle is invalid, Error::BufferTooSmall
when out cannot fit the matrix, a mapped libopus error, or Error::InternalError
when libopus reports an invalid matrix size.
Sourcepub fn demixing_matrix_bytes(&mut self) -> Result<Vec<u8>>
pub fn demixing_matrix_bytes(&mut self) -> Result<Vec<u8>>
Convenience helper returning the demixing matrix as a newly allocated buffer.
§Errors
Propagates errors from Self::demixing_matrix_size and Self::write_demixing_matrix,
including Error::InternalError if libopus reports impossible sizes.
Sourcepub const fn coupled_streams(&self) -> u8
pub const fn coupled_streams(&self) -> u8
Number of coupled (stereo) coded streams.
Sourcepub const fn sample_rate(&self) -> SampleRate
pub const fn sample_rate(&self) -> SampleRate
Encoder sample rate.