From 29b691a5af68c0fd060a257a7b9c09ba03bdded0 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sun, 9 Apr 2017 17:43:23 +0200 Subject: [PATCH] ATV Demod: optimize scope feed --- plugins/channelrx/demodatv/atvdemod.cpp | 11 ++++++----- plugins/channelrx/demodatv/atvdemod.h | 2 ++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/plugins/channelrx/demodatv/atvdemod.cpp b/plugins/channelrx/demodatv/atvdemod.cpp index aa5071527..48646fea7 100644 --- a/plugins/channelrx/demodatv/atvdemod.cpp +++ b/plugins/channelrx/demodatv/atvdemod.cpp @@ -221,10 +221,9 @@ void ATVDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto if ((m_objRunning.m_intVideoTabIndex == 1) && (m_objScopeSink != 0)) // do only if scope tab is selected and scope is available { m_objScopeSink->feed(m_objScopeSampleBuffer.begin(), m_objScopeSampleBuffer.end(), false); // m_ssb = positive only + m_objScopeSampleBuffer.clear(); } - m_objScopeSampleBuffer.clear(); - if (ptrBufferToRelease != 0) { delete ptrBufferToRelease; @@ -404,10 +403,12 @@ void ATVDemod::demod(Complex& c) fltVal = 0.0f; } - fltVal = (fltVal < -1.0f) ? -1.0f : (fltVal > 1.0f) ? 1.0f : fltVal; - m_objScopeSampleBuffer.push_back(Sample(fltVal*32767.0f, 0.0f)); - fltVal = m_objRunning.m_blnInvertVideo ? 1.0f - fltVal : fltVal; + fltVal = (fltVal < -1.0f) ? -1.0f : (fltVal > 1.0f) ? 1.0f : fltVal; + + if ((m_objRunning.m_intVideoTabIndex == 1) && (m_objScopeSink != 0)) { // feed scope buffer only if scope is present and visible + m_objScopeSampleBuffer.push_back(Sample(fltVal*32767.0f, 0.0f)); + } m_fltAmpLineAverage += fltVal; diff --git a/plugins/channelrx/demodatv/atvdemod.h b/plugins/channelrx/demodatv/atvdemod.h index 512cbeb2c..15364661a 100644 --- a/plugins/channelrx/demodatv/atvdemod.h +++ b/plugins/channelrx/demodatv/atvdemod.h @@ -385,6 +385,8 @@ private: AvgExpInt m_objAvgColIndex; int m_intAvgColIndex; + SampleVector m_sampleBuffer; + //*************** RF *************** MovingAverage m_objMagSqAverage;