fix: Correct Opus granulepos calculation for 48kHz

pull/23/head
Dave Behnke 1 month ago
parent c826a87a88
commit d72dc3176d

@ -187,7 +187,10 @@ void CAudioRecorder::Write(const int16_t* samples, int count)
if (len < 0) {
std::cerr << "AudioRecorder: Opus encode error: " << len << std::endl;
} else {
m_GranulePos += FRAME_SIZE;
// Ogg Opus always uses 48kHz for granulepos, regardless of input rate
// Input: 8000Hz. Frame: 480 samples (60ms).
// Output: 48000Hz. Frame: 2880 samples (60ms).
m_GranulePos += FRAME_SIZE * (48000 / SAMPLE_RATE);
ogg_packet packet;
packet.packet = out_buf;

Loading…
Cancel
Save

Powered by TurnKey Linux.