pub struct Resampler { /* private fields */ }Expand description
Offline polyphase sinc resampler.
Construct once and reuse for any number of buffers at the same rate pair.
input_rate/output_rate may be f32, f64, or integer types via the
Into<f64> bounds.
use br41ndmg::Resampler;
let resampler = Resampler::new(44_100.0_f32, 48_000.0_f32)?;
let output = resampler.resample(&[0.0_f32; 512])?;Implementations§
Source§impl Resampler
impl Resampler
Sourcepub fn new<I, O>(input_rate: I, output_rate: O) -> Result<Self, ResampleError>
pub fn new<I, O>(input_rate: I, output_rate: O) -> Result<Self, ResampleError>
Build a resampler with the default filter parameters.
Sourcepub fn with_filter_params<I, O>(
input_rate: I,
output_rate: O,
filter_params: PolyphaseFilterParams,
) -> Result<Self, ResampleError>
pub fn with_filter_params<I, O>( input_rate: I, output_rate: O, filter_params: PolyphaseFilterParams, ) -> Result<Self, ResampleError>
Build a resampler with a custom PolyphaseFilterParams.
pub fn input_rate(&self) -> f64
Sourcepub fn output_rate(&self) -> f64
pub fn output_rate(&self) -> f64
Target sample rate in Hz.
Sourcepub fn filter_params(&self) -> PolyphaseFilterParams
pub fn filter_params(&self) -> PolyphaseFilterParams
Snapshot of the active filter parameters.
Sourcepub fn resample_interleaved(
&self,
input: &[f32],
channels: usize,
) -> Result<Vec<f32>, ResampleError>
pub fn resample_interleaved( &self, input: &[f32], channels: usize, ) -> Result<Vec<f32>, ResampleError>
Resample a mono (channels == 1) interleaved buffer.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Resampler
impl RefUnwindSafe for Resampler
impl Send for Resampler
impl Sync for Resampler
impl Unpin for Resampler
impl UnsafeUnpin for Resampler
impl UnwindSafe for Resampler
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