Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
Loading...
Searching...
No Matches
roc::audio::BuiltinResampler Class Reference

Resamples audio stream with non-integer dynamically changing factor. More...

#include <resampler_builtin.h>

Inheritance diagram for roc::audio::BuiltinResampler:
roc::audio::IResampler roc::core::NonCopyable< T >

Public Member Functions

 BuiltinResampler (core::IAllocator &allocator, core::BufferFactory< sample_t > &buffer_factory, ResamplerProfile profile, core::nanoseconds_t frame_length, const audio::SampleSpec &sample_spec)
 Initialize.
 
virtual bool valid () const
 Check if object is successfully constructed.
 
virtual bool set_scaling (size_t input_rate, size_t output_rate, float multiplier)
 Set new resample factor.
 
virtual const core::Slice< sample_t > & begin_push_input ()
 Get buffer to be filled with input data.
 
virtual void end_push_input ()
 Commit buffer with input data.
 
virtual size_t pop_output (Frame &out)
 Read samples from input frame and fill output frame.
 
virtual bool valid () const =0
 Check if object is successfully constructed.
 
virtual bool set_scaling (size_t input_rate, size_t output_rate, float multiplier)=0
 Set new resample factor.
 
virtual const core::Slice< sample_t > & begin_push_input ()=0
 Get buffer to be filled with input data.
 
virtual void end_push_input ()=0
 Commit buffer with input data.
 
virtual size_t pop_output (Frame &out)=0
 Read samples from input buffer and fill output frame.
 

Detailed Description

Resamples audio stream with non-integer dynamically changing factor.

Definition at line 32 of file resampler_builtin.h.

Constructor & Destructor Documentation

◆ BuiltinResampler()

roc::audio::BuiltinResampler::BuiltinResampler ( core::IAllocator allocator,
core::BufferFactory< sample_t > &  buffer_factory,
ResamplerProfile  profile,
core::nanoseconds_t  frame_length,
const audio::SampleSpec sample_spec 
)

Initialize.

Member Function Documentation

◆ begin_push_input()

virtual const core::Slice< sample_t > & roc::audio::BuiltinResampler::begin_push_input ( )
virtual

Get buffer to be filled with input data.

Implements roc::audio::IResampler.

◆ end_push_input()

virtual void roc::audio::BuiltinResampler::end_push_input ( )
virtual

Commit buffer with input data.

Implements roc::audio::IResampler.

◆ pop_output()

virtual size_t roc::audio::BuiltinResampler::pop_output ( Frame out)
virtual

Read samples from input frame and fill output frame.

Implements roc::audio::IResampler.

◆ set_scaling()

virtual bool roc::audio::BuiltinResampler::set_scaling ( size_t  input_rate,
size_t  output_rate,
float  multiplier 
)
virtual

Set new resample factor.

Remarks
Resampling algorithm needs some window of input samples. The length of the window (length of sinc impulse response) is a compromise between SNR and speed. It depends on current resampling factor. So we choose length of input buffers to let it handle maximum length of input. If new scaling factor breaks equation this function returns false.

Implements roc::audio::IResampler.

◆ valid()

virtual bool roc::audio::BuiltinResampler::valid ( ) const
virtual

Check if object is successfully constructed.

Implements roc::audio::IResampler.


The documentation for this class was generated from the following file: