pub struct ResamplingProd<T: Sample> { /* private fields */ }
Expand description
The producer end of a realtime-safe spsc channel for sending samples across streams.
If the input and output samples rates differ, then this will automatically resample the input stream to match the output stream. If the sample rates match, then no resampling will occur.
Internally this uses the ringbuf
crate.
Implementations§
Source§impl<T: Sample> ResamplingProd<T>
impl<T: Sample> ResamplingProd<T>
Sourcepub fn push(&mut self, data: &[T]) -> usize
pub fn push(&mut self, data: &[T]) -> usize
Push the given data in interleaved format.
Returns the number of frames (not samples) that were successfully pushed.
If this number is less than the number of frames in data
, then it means
an overflow has occured.
Sourcepub fn available_frames(&self) -> usize
pub fn available_frames(&self) -> usize
Returns the number of frames that are currently available to be pushed to the buffer.
Sourcepub fn num_channels(&self) -> NonZeroUsize
pub fn num_channels(&self) -> NonZeroUsize
The number of channels configured for this stream.
Auto Trait Implementations§
impl<T> !Freeze for ResamplingProd<T>
impl<T> !RefUnwindSafe for ResamplingProd<T>
impl<T> Send for ResamplingProd<T>
impl<T> !Sync for ResamplingProd<T>
impl<T> Unpin for ResamplingProd<T>
impl<T> UnwindSafe for ResamplingProd<T>where
T: RefUnwindSafe,
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