12#ifndef ROC_AUDIO_RESAMPLER_BUILTIN_H_
13#define ROC_AUDIO_RESAMPLER_BUILTIN_H_
53 virtual bool set_scaling(
size_t input_rate,
size_t output_rate,
float multiplier);
65 typedef uint32_t fixedpoint_t;
66 typedef uint64_t long_fixedpoint_t;
67 typedef int32_t signed_fixedpoint_t;
68 typedef int64_t signed_long_fixedpoint_t;
72 inline size_t channelize_index(
const size_t i,
const size_t ch_offset)
const {
78 bool check_config_()
const;
81 sample_t sinc_(fixedpoint_t x,
float fract_x);
86 sample_t resample_(
size_t channel_offset);
89 size_t n_ready_frames_;
97 const size_t frame_size_;
98 const size_t frame_size_ch_;
100 const size_t window_size_;
101 const fixedpoint_t qt_half_sinc_window_size_;
103 const size_t window_interp_;
104 const size_t window_interp_bits_;
110 fixedpoint_t qt_half_window_size_;
111 const fixedpoint_t qt_epsilon_;
113 const fixedpoint_t qt_frame_size_;
117 fixedpoint_t qt_sample_;
123 fixedpoint_t qt_sinc_step_;
Resamples audio stream with non-integer dynamically changing factor.
virtual void end_push_input()
Commit buffer with input data.
virtual bool set_scaling(size_t input_rate, size_t output_rate, float multiplier)
Set new resample factor.
virtual size_t pop_output(Frame &out)
Read samples from input frame and fill output frame.
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 const core::Slice< sample_t > & begin_push_input()
Get buffer to be filled with input data.
Sample stream specification. Defines sample rate and channel layout.
size_t num_channels() const
Get number of channels.
Memory allocator interface.
Base class for non-copyable objects.
Audio resampler interface.
float sample_t
Audio sample.
ResamplerProfile
Resampler parameters presets.
int64_t nanoseconds_t
Nanoseconds.
Commonly used types and functions.
Various units used in packets.