From d97f92dcc32855a604258b3e1984850aa6438281 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 9 Dec 2023 12:52:56 +0100 Subject: [PATCH] Fixed AudioNetSink stereo handling --- sdrbase/audio/audionetsink.cpp | 15 +++++++++------ sdrbase/audio/audionetsink.h | 3 ++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/sdrbase/audio/audionetsink.cpp b/sdrbase/audio/audionetsink.cpp index eb14662ba..f6bcd7c9d 100644 --- a/sdrbase/audio/audionetsink.cpp +++ b/sdrbase/audio/audionetsink.cpp @@ -194,16 +194,19 @@ void AudioNetSink::setDecimationFilters() { case CodecPCMA: case CodecPCMU: - m_audioFilter.setDecimFilters(m_sampleRate, decimatedSampleRate, 3300.0, 300.0); + m_audioFilterR.setDecimFilters(m_sampleRate, decimatedSampleRate, 3300.0, 300.0); + m_audioFilterL.setDecimFilters(m_sampleRate, decimatedSampleRate, 3300.0, 300.0); break; case CodecG722: - m_audioFilter.setDecimFilters(m_sampleRate, decimatedSampleRate, 7000.0, 50.0); + m_audioFilterR.setDecimFilters(m_sampleRate, decimatedSampleRate, 7000.0, 50.0); + m_audioFilterL.setDecimFilters(m_sampleRate, decimatedSampleRate, 7000.0, 50.0); break; case CodecOpus: case CodecL8: case CodecL16: default: - m_audioFilter.setDecimFilters(m_sampleRate, decimatedSampleRate, 0.45*decimatedSampleRate, 50.0); + m_audioFilterR.setDecimFilters(m_sampleRate, decimatedSampleRate, 0.45*decimatedSampleRate, 50.0); + m_audioFilterL.setDecimFilters(m_sampleRate, decimatedSampleRate, 0.45*decimatedSampleRate, 50.0); break; } } @@ -214,7 +217,7 @@ void AudioNetSink::write(qint16 isample) if (m_decimation > 1) { - float lpSample = m_audioFilter.run(sample / 32768.0f); + float lpSample = m_audioFilterR.run(sample / 32768.0f); if (m_decimationCount >= m_decimation - 1) { @@ -367,8 +370,8 @@ void AudioNetSink::write(qint16 ilSample, qint16 irSample) if (m_decimation > 1) { - float lpLSample = m_audioFilter.runLP(lSample / 32768.0f); - float lpRSample = m_audioFilter.runLP(rSample / 32768.0f); + float lpLSample = m_audioFilterL.runLP(lSample / 32768.0f); + float lpRSample = m_audioFilterR.runLP(rSample / 32768.0f); if (m_decimationCount >= m_decimation - 1) { diff --git a/sdrbase/audio/audionetsink.h b/sdrbase/audio/audionetsink.h index a72bc7ce0..b83dc9944 100644 --- a/sdrbase/audio/audionetsink.h +++ b/sdrbase/audio/audionetsink.h @@ -88,7 +88,8 @@ protected: AudioCompressor m_audioCompressor; AudioG722 m_g722; AudioOpus m_opus; - AudioFilter m_audioFilter; + AudioFilter m_audioFilterR; + AudioFilter m_audioFilterL; int m_sampleRate; bool m_stereo; uint32_t m_decimation;