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
No known key found for this signature in database
GPG Key ID: 449E073F9DC10735
2 changed files with 2 additions and 5 deletions

View File

@ -36,7 +36,7 @@
#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

View File

@ -1,7 +1,5 @@
#ifdef WHISPER_COMMON_FFMPEG
#include "whisper.h"
#include <string>
#include <vector>
#include <cstdio>
@ -44,7 +42,7 @@ static size_t wav_header_write(uint8_t * buf, int num_channels, int sample_rate,
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) {
@ -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
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;