mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-06-13 12:02:32 -04:00
SSB Demod: clamp audio to 16 bit samples boundaries for better audio overdrive robustness. Fixes #2452
This commit is contained in:
parent
f7b9727ef9
commit
c333fb505c
@ -195,16 +195,12 @@ void SSBDemodSink::processOneSample(Complex &ci)
|
|||||||
|
|
||||||
if (m_audioBinaual)
|
if (m_audioBinaual)
|
||||||
{
|
{
|
||||||
if (m_audioFlipChannels)
|
Real left = m_audioFlipChannels ? z.imag() : z.real();
|
||||||
{
|
Real right = m_audioFlipChannels ? z.real() : z.imag();
|
||||||
m_audioBuffer[m_audioBufferFill].r = (qint16)(z.imag() * m_volume);
|
left = std::clamp(left * m_volume, -32767.0f, 32767.0f);
|
||||||
m_audioBuffer[m_audioBufferFill].l = (qint16)(z.real() * m_volume);
|
right = std::clamp(right * m_volume, -32767.0f, 32767.0f);
|
||||||
}
|
m_audioBuffer[m_audioBufferFill].l = (qint16)left;
|
||||||
else
|
m_audioBuffer[m_audioBufferFill].r = (qint16)right;
|
||||||
{
|
|
||||||
m_audioBuffer[m_audioBufferFill].r = (qint16)(z.real() * m_volume);
|
|
||||||
m_audioBuffer[m_audioBufferFill].l = (qint16)(z.imag() * m_volume);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_demodBuffer[m_demodBufferFill++] = z.real();
|
m_demodBuffer[m_demodBufferFill++] = z.real();
|
||||||
m_demodBuffer[m_demodBufferFill++] = z.imag();
|
m_demodBuffer[m_demodBufferFill++] = z.imag();
|
||||||
@ -212,7 +208,7 @@ void SSBDemodSink::processOneSample(Complex &ci)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
Real demod = (z.real() + z.imag()) * 0.7;
|
Real demod = (z.real() + z.imag()) * 0.7;
|
||||||
qint16 sample = (qint16)(demod * m_volume);
|
qint16 sample = (qint16)(std::clamp(demod * m_volume, -32767.0f, 32767.0f));
|
||||||
m_audioBuffer[m_audioBufferFill].l = sample;
|
m_audioBuffer[m_audioBufferFill].l = sample;
|
||||||
m_audioBuffer[m_audioBufferFill].r = sample;
|
m_audioBuffer[m_audioBufferFill].r = sample;
|
||||||
m_demodBuffer[m_demodBufferFill++] = (z.real() + z.imag()) * 0.7;
|
m_demodBuffer[m_demodBufferFill++] = (z.real() + z.imag()) * 0.7;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user