From a032cb1d8def07c72ed9ea6ecd2ebb18b69579f2 Mon Sep 17 00:00:00 2001 From: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com> Date: Fri, 12 Aug 2022 14:36:39 -0300 Subject: [PATCH] fix: audio jittering Use the bigger sample_rate to avoid loosing data in the audio processing. GitLab: #741 Change-Id: I8f96923ee9f67767d4f2d4c73785a88925c5f031 --- src/media/audio/audiolayer.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/media/audio/audiolayer.cpp b/src/media/audio/audiolayer.cpp index e45e740393..29382c04d2 100644 --- a/src/media/audio/audiolayer.cpp +++ b/src/media/audio/audiolayer.cpp @@ -155,13 +155,10 @@ AudioLayer::setHasNativeAEC(bool hasNativeAEC) void AudioLayer::createAudioProcessor() { - auto nb_channels = std::min(audioFormat_.nb_channels, audioInputFormat_.nb_channels); - auto sample_rate = std::min(audioFormat_.sample_rate, audioInputFormat_.sample_rate); + auto nb_channels = std::max(audioFormat_.nb_channels, audioInputFormat_.nb_channels); + auto sample_rate = std::max(audioFormat_.sample_rate, audioInputFormat_.sample_rate); - // TODO: explain/rework this math?? - if (sample_rate % 16000u != 0) - sample_rate = 16000u * ((sample_rate / 16000u) + 1u); - sample_rate = std::clamp(sample_rate, 16000u, 96000u); + sample_rate = std::clamp(sample_rate, 16000u, 48000u); AudioFormat formatForProcessor {sample_rate, nb_channels}; -- GitLab