/* * Copyright 2023 jacqueline * * SPDX-License-Identifier: GPL-3.0-only */ #pragma once #include #include #include #include "speex/speex_resampler.h" #include "sample.hpp" namespace audio { class Resampler { public: Resampler(uint32_t source_sample_rate, uint32_t target_sample_rate, uint8_t num_channels); ~Resampler(); auto Process(std::span input, std::span output, bool end_of_data) -> std::pair; private: int err_; SpeexResamplerState* resampler_; uint8_t num_channels_; }; } // namespace audio