fix range clipping when using rxAudioGain or txAudioGain (previous code would allow a negative gain (to lower amplitude) to allow overflowing sample values);

pull/86/head
Bryan Biedenkapp 11 months ago
parent cacec1fe8a
commit 03de7fdb0b

@ -1655,12 +1655,10 @@ void HostBridge::decodeDMRAudioFrame(uint8_t* ambe, uint32_t srcId, uint32_t dst
sample = (short)newSample; sample = (short)newSample;
// clip if necessary // clip if necessary
if (m_rxAudioGain > 1.0f) { if (newSample > 32767)
if (newSample > 32767) sample = 32767;
sample = 32767; else if (newSample < -32767)
else if (newSample < -32767) sample = -32767;
sample = -32767;
}
samples[n] = sample; samples[n] = sample;
} }
@ -1897,12 +1895,10 @@ void HostBridge::encodeDMRAudioFrame(uint8_t* pcm, uint32_t forcedSrcId, uint32_
sample = (short)newSample; sample = (short)newSample;
// clip if necessary // clip if necessary
if (m_txAudioGain > 1.0f) { if (newSample > 32767)
if (newSample > 32767) sample = 32767;
sample = 32767; else if (newSample < -32767)
else if (newSample < -32767) sample = -32767;
sample = -32767;
}
samples[n] = sample; samples[n] = sample;
} }
@ -2329,12 +2325,10 @@ void HostBridge::decodeP25AudioFrame(uint8_t* ldu, uint32_t srcId, uint32_t dstI
sample = (short)newSample; sample = (short)newSample;
// clip if necessary // clip if necessary
if (m_rxAudioGain > 1.0f) { if (newSample > 32767)
if (newSample > 32767) sample = 32767;
sample = 32767; else if (newSample < -32767)
else if (newSample < -32767) sample = -32767;
sample = -32767;
}
samples[n] = sample; samples[n] = sample;
} }
@ -2469,12 +2463,10 @@ void HostBridge::encodeP25AudioFrame(uint8_t* pcm, uint32_t forcedSrcId, uint32_
sample = (short)newSample; sample = (short)newSample;
// clip if necessary // clip if necessary
if (m_txAudioGain > 1.0f) { if (newSample > 32767)
if (newSample > 32767) sample = 32767;
sample = 32767; else if (newSample < -32767)
else if (newSample < -32767) sample = -32767;
sample = -32767;
}
samples[n] = sample; samples[n] = sample;
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.