2026-02-24 15:57:32 +08:00

32 lines
767 B
C++

#ifndef OPUS_RESAMPLER_H
#define OPUS_RESAMPLER_H
#include <cstdint>
#include <vector>
#include "opus.h"
#include "resampler_structs.h"
class OpusResampler {
public:
OpusResampler();
~OpusResampler();
void Configure(int input_sample_rate, int output_sample_rate, int channels = 1);
void Process(const int16_t *input, int input_samples, int16_t *output);
int GetOutputSamples(int input_samples) const;
int input_sample_rate() const { return input_sample_rate_; }
int output_sample_rate() const { return output_sample_rate_; }
int channels() const { return channels_; }
private:
std::vector<silk_resampler_state_struct> resampler_states_;
int input_sample_rate_;
int output_sample_rate_;
int channels_;
};
#endif