use crate::{sys, mem, SampleRate, Channels, ErrorCode};
#[inline]
pub fn get_nb_frames(input: &[u8]) -> Result<usize, ErrorCode> {
let result = unsafe {
sys::opus_packet_get_nb_frames(input.as_ptr(), input.len() as _)
};
map_sys_error!(result => result as _)
}
#[inline]
pub fn get_nb_samples(input: &[u8], rate: SampleRate) -> Result<usize, ErrorCode> {
let result = unsafe {
sys::opus_packet_get_nb_samples(input.as_ptr(), input.len() as _, rate as _)
};
map_sys_error!(result => result as _)
}
#[inline]
pub fn soft_clip(input: &mut [f32], channels: Channels) {
let mut soft_clip_mem = mem::MaybeUninit::<[f32; 2]>::uninit();
unsafe {
sys::opus_pcm_soft_clip(
input.as_mut_ptr(), (input.len() / channels as usize) as _,
channels as _,
soft_clip_mem.as_mut_ptr() as _
)
}
}