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