common : pass sample rate to ffmpeg_decode_audio()

This commit is contained in:
Georgi Gerganov
2026-05-31 15:48:05 +03:00
parent f39cc71282
commit 6c343e7a4e
2 changed files with 2 additions and 5 deletions

View File

@@ -36,7 +36,7 @@
#ifdef WHISPER_COMMON_FFMPEG #ifdef WHISPER_COMMON_FFMPEG
// as implemented in ffmpeg-trancode.cpp only embedded in common lib if whisper built with ffmpeg support // 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 #endif
// extract f32 PCM frames from an initialized decoder, downmix to mono and keep the stereo split // extract f32 PCM frames from an initialized decoder, downmix to mono and keep the stereo split

View File

@@ -1,7 +1,5 @@
#ifdef WHISPER_COMMON_FFMPEG #ifdef WHISPER_COMMON_FFMPEG
#include "whisper.h"
#include <string> #include <string>
#include <vector> #include <vector>
#include <cstdio> #include <cstdio>
@@ -44,7 +42,7 @@ static size_t wav_header_write(uint8_t * buf, int num_channels, int sample_rate,
return 44; 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"); const char * verbose = getenv("WHISPER_COMMON_FFMPEG_VERBOSE");
if (verbose && strcmp(verbose, "2") == 0) { if (verbose && strcmp(verbose, "2") == 0) {
@@ -116,7 +114,6 @@ bool ffmpeg_decode_audio(const std::string & ifname, std::vector<uint8_t> & wav_
// Setup resampler: convert to 16-bit signed PCM, mono, 16000 Hz // Setup resampler: convert to 16-bit signed PCM, mono, 16000 Hz
const enum AVSampleFormat out_sample_fmt = AV_SAMPLE_FMT_S16; 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; AVChannelLayout out_ch_layout = AV_CHANNEL_LAYOUT_MONO;