12#ifndef ROC_AUDIO_RESAMPLER_SPEEX_H_
13#define ROC_AUDIO_RESAMPLER_SPEEX_H_
29#include <speex/speex_resampler.h>
50 virtual bool set_scaling(
size_t input_rate,
size_t output_rate,
float multiplier);
64 SpeexResamplerState* speex_state_;
67 const spx_uint32_t in_frame_size_;
68 spx_uint32_t in_frame_pos_;
70 const spx_uint32_t num_ch_;
Sample stream specification. Defines sample rate and channel layout.
Resamples audio stream using speex resampler.
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 const core::Slice< sample_t > & begin_push_input()
Get buffer to be filled with input data.
SpeexResampler(core::IAllocator &allocator, core::BufferFactory< sample_t > &buffer_factory, ResamplerProfile profile, core::nanoseconds_t frame_length, const audio::SampleSpec &sample_spec)
Initialize.
virtual size_t pop_output(Frame &out)
Read samples from input frame and fill output frame.
virtual bool valid() const
Check if object is successfully constructed.
Memory allocator interface.
Base class for non-copyable objects.
Audio resampler interface.
ResamplerProfile
Resampler parameters presets.
int64_t nanoseconds_t
Nanoseconds.
Commonly used types and functions.
Various units used in packets.