pub struct StreamingStft<T: Float + FftNum> { /* private fields */ }Implementations§
Source§impl<T: Float + FftNum + FromPrimitive + Debug> StreamingStft<T>
impl<T: Float + FftNum + FromPrimitive + Debug> StreamingStft<T>
pub fn new(config: StftConfig<T>) -> Selfwhere
FftPlanner<T>: FftPlannerTrait<T>,
pub fn push_samples(&mut self, samples: &[T]) -> Vec<SpectrumFrame<T>>
Sourcepub fn push_samples_into(
&mut self,
samples: &[T],
output: &mut Vec<SpectrumFrame<T>>,
) -> usize
pub fn push_samples_into( &mut self, samples: &[T], output: &mut Vec<SpectrumFrame<T>>, ) -> usize
Push samples and write frames into a pre-allocated buffer. Returns the number of frames written.
Sourcepub fn push_samples_write(
&mut self,
samples: &[T],
frame_pool: &mut [SpectrumFrame<T>],
pool_index: &mut usize,
) -> usize
pub fn push_samples_write( &mut self, samples: &[T], frame_pool: &mut [SpectrumFrame<T>], pool_index: &mut usize, ) -> usize
Push samples and write directly into pre-existing SpectrumFrame buffers. This is a zero-allocation method - frames must be pre-allocated with correct size. Returns the number of frames written.
§Example
ⓘ
let mut frame_pool = vec![SpectrumFrame::new(config.freq_bins()); 16];
let mut frame_index = 0;
let frames_written = stft.push_samples_write(chunk, &mut frame_pool, &mut frame_index);
// Process frames 0..frames_writtenpub fn flush(&mut self) -> Vec<SpectrumFrame<T>>
pub fn reset(&mut self)
pub fn buffered_samples(&self) -> usize
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for StreamingStft<T>
impl<T> !RefUnwindSafe for StreamingStft<T>
impl<T> Send for StreamingStft<T>
impl<T> Sync for StreamingStft<T>
impl<T> Unpin for StreamingStft<T>where
T: Unpin,
impl<T> !UnwindSafe for StreamingStft<T>
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