From 2131a7d4c5feb7909d805e9f9cd6921bac8036cc Mon Sep 17 00:00:00 2001 From: f4exb Date: Sun, 15 May 2022 11:10:39 +0200 Subject: [PATCH] SSB and NFM demod: do not process samples if channel sample rate is not set yet (==0) --- plugins/channelrx/demodnfm/nfmdemodsink.cpp | 8 ++++++-- plugins/channelrx/demodssb/ssbdemodsink.cpp | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/plugins/channelrx/demodnfm/nfmdemodsink.cpp b/plugins/channelrx/demodnfm/nfmdemodsink.cpp index a790e322c..9bbd55ec4 100644 --- a/plugins/channelrx/demodnfm/nfmdemodsink.cpp +++ b/plugins/channelrx/demodnfm/nfmdemodsink.cpp @@ -78,6 +78,10 @@ NFMDemodSink::NFMDemodSink() : void NFMDemodSink::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end) { + if (m_channelSampleRate == 0) { + return; + } + for (SampleVector::const_iterator it = begin; it != end; ++it) { Complex c(it->real(), it->imag()); @@ -244,8 +248,8 @@ void NFMDemodSink::processOneSample(Complex &ci) if (res != m_audioBufferFill) { - qDebug("NFMDemodSink::feed: %u/%u audio samples written", res, m_audioBufferFill); - qDebug("NFMDemodSink::feed: m_audioSampleRate: %u m_channelSampleRate: %d", m_audioSampleRate, m_channelSampleRate); + qDebug("NFMDemodSink::processOneSample: %u/%u audio samples written m_audioSampleRate: %u m_channelSampleRate: %d", + res, m_audioBufferFill, m_audioSampleRate, m_channelSampleRate); } m_audioBufferFill = 0; diff --git a/plugins/channelrx/demodssb/ssbdemodsink.cpp b/plugins/channelrx/demodssb/ssbdemodsink.cpp index b5ba4ad25..f65db7eaa 100644 --- a/plugins/channelrx/demodssb/ssbdemodsink.cpp +++ b/plugins/channelrx/demodssb/ssbdemodsink.cpp @@ -92,6 +92,10 @@ SSBDemodSink::~SSBDemodSink() void SSBDemodSink::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end) { + if (m_channelSampleRate == 0) { + return; + } + Complex ci; for(SampleVector::const_iterator it = begin; it < end; ++it) @@ -240,7 +244,7 @@ void SSBDemodSink::processOneSample(Complex &ci) uint res = m_audioFifo.write((const quint8*)&m_audioBuffer[0], m_audioBufferFill); if (res != m_audioBufferFill) { - qDebug("SSBDemodSink::feed: %u/%u samples written", res, m_audioBufferFill); + qDebug("SSBDemodSink::processOneSample: %u/%u samples written", res, m_audioBufferFill); } m_audioBufferFill = 0;