11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
22PROMEKI_NAMESPACE_BEGIN
58 using UPtr = UniquePtr<AudioResampler>;
61 using ProcessResult = Result<size_t>;
69 AudioResampler(
const AudioResampler &) =
delete;
70 AudioResampler &operator=(
const AudioResampler &) =
delete;
73 AudioResampler(AudioResampler &&) noexcept;
76 AudioResampler &operator=(AudioResampler &&) noexcept;
97 Error setup(
unsigned int channels, const SrcQuality &quality = SrcQuality::SincMedium);
102 unsigned int channels() const;
107 SrcQuality quality() const;
112 double ratio() const;
128 Error setRatio(
double ratio);
139 Error setRatio(
float inputRate,
float outputRate);
156 Error process(const
float *dataIn,
long inputFrames,
float *dataOut,
long outputFrames,
long &inputUsed,
157 long &outputGen,
bool endOfInput = false);
197 int filterDelayInputFrames() const;
212 Duration filterDelay(
double inputRate) const;
216 using ImplPtr = UniquePtr<Impl>;