From 03de7fdb0be3f22b6982e23b6e1347cbe46e1c0d Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Tue, 18 Mar 2025 16:45:53 -0400 Subject: [PATCH] fix range clipping when using rxAudioGain or txAudioGain (previous code would allow a negative gain (to lower amplitude) to allow overflowing sample values); --- src/bridge/HostBridge.cpp | 40 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/src/bridge/HostBridge.cpp b/src/bridge/HostBridge.cpp index 48661cb7..3e55971d 100644 --- a/src/bridge/HostBridge.cpp +++ b/src/bridge/HostBridge.cpp @@ -1655,12 +1655,10 @@ void HostBridge::decodeDMRAudioFrame(uint8_t* ambe, uint32_t srcId, uint32_t dst sample = (short)newSample; // clip if necessary - if (m_rxAudioGain > 1.0f) { - if (newSample > 32767) - sample = 32767; - else if (newSample < -32767) - sample = -32767; - } + if (newSample > 32767) + sample = 32767; + else if (newSample < -32767) + sample = -32767; samples[n] = sample; } @@ -1897,12 +1895,10 @@ void HostBridge::encodeDMRAudioFrame(uint8_t* pcm, uint32_t forcedSrcId, uint32_ sample = (short)newSample; // clip if necessary - if (m_txAudioGain > 1.0f) { - if (newSample > 32767) - sample = 32767; - else if (newSample < -32767) - sample = -32767; - } + if (newSample > 32767) + sample = 32767; + else if (newSample < -32767) + sample = -32767; samples[n] = sample; } @@ -2329,12 +2325,10 @@ void HostBridge::decodeP25AudioFrame(uint8_t* ldu, uint32_t srcId, uint32_t dstI sample = (short)newSample; // clip if necessary - if (m_rxAudioGain > 1.0f) { - if (newSample > 32767) - sample = 32767; - else if (newSample < -32767) - sample = -32767; - } + if (newSample > 32767) + sample = 32767; + else if (newSample < -32767) + sample = -32767; samples[n] = sample; } @@ -2469,12 +2463,10 @@ void HostBridge::encodeP25AudioFrame(uint8_t* pcm, uint32_t forcedSrcId, uint32_ sample = (short)newSample; // clip if necessary - if (m_txAudioGain > 1.0f) { - if (newSample > 32767) - sample = 32767; - else if (newSample < -32767) - sample = -32767; - } + if (newSample > 32767) + sample = 32767; + else if (newSample < -32767) + sample = -32767; samples[n] = sample; }