#ifdef WHISPER_COMMON_FFMPEG
// as implemented in ffmpeg-trancode.cpp only embedded in common lib if whisper built with ffmpeg support
-extern bool ffmpeg_decode_audio(const std::string & ifname, std::vector<uint8_t> & wav_data);
+extern bool ffmpeg_decode_audio(const std::string & ifname, std::vector<uint8_t> & wav_data, int out_sample_rate = WHISPER_SAMPLE_RATE);
#endif
// extract f32 PCM frames from an initialized decoder, downmix to mono and keep the stereo split
#ifdef WHISPER_COMMON_FFMPEG
-#include "whisper.h"
-
#include <string>
#include <vector>
#include <cstdio>
return 44;
}
-bool ffmpeg_decode_audio(const std::string & ifname, std::vector<uint8_t> & wav_data) {
+bool ffmpeg_decode_audio(const std::string & ifname, std::vector<uint8_t> & wav_data, int out_sample_rate) {
{
const char * verbose = getenv("WHISPER_COMMON_FFMPEG_VERBOSE");
if (verbose && strcmp(verbose, "2") == 0) {
// Setup resampler: convert to 16-bit signed PCM, mono, 16000 Hz
const enum AVSampleFormat out_sample_fmt = AV_SAMPLE_FMT_S16;
- const int out_sample_rate = WHISPER_SAMPLE_RATE;
AVChannelLayout out_ch_layout = AV_CHANNEL_LAYOUT_MONO;