diff --git a/plugins/channelrx/demodatv/atvdemod.cpp b/plugins/channelrx/demodatv/atvdemod.cpp index a0ef3f93e..07ca22e2b 100644 --- a/plugins/channelrx/demodatv/atvdemod.cpp +++ b/plugins/channelrx/demodatv/atvdemod.cpp @@ -650,8 +650,9 @@ void ATVDemod::applySettings() return; } - if((m_objRFConfig.m_intFrequencyOffset != m_objRFRunning.m_intFrequencyOffset) || - (m_objConfig.m_intSampleRate != m_objRunning.m_intSampleRate)) + if((m_objRFConfig.m_intFrequencyOffset != m_objRFRunning.m_intFrequencyOffset) + || (m_objRFConfig.m_enmModulation != m_objRFRunning.m_enmModulation) + || (m_objConfig.m_intSampleRate != m_objRunning.m_intSampleRate)) { m_nco.setFreq(-m_objRFConfig.m_intFrequencyOffset, m_objConfig.m_intSampleRate); } @@ -674,7 +675,10 @@ void ATVDemod::applySettings() } m_interpolatorDistanceRemain = 0; - m_interpolator.create(16, m_objConfigPrivate.m_intTVSampleRate, m_objRFConfig.m_fltRFBandwidth / 2.2, 3.0); + m_interpolator.create(24, + m_objConfigPrivate.m_intTVSampleRate, + m_objRFConfig.m_fltRFBandwidth / getRFBandwidthDivisor(m_objRFConfig.m_enmModulation), + 3.0); m_objSettingsMutex.unlock(); } @@ -758,3 +762,20 @@ bool ATVDemod::getBFOLocked() return false; } } + +float ATVDemod::getRFBandwidthDivisor(ATVModulation modulation) +{ + switch(modulation) + { + case ATV_USB: + case ATV_LSB: + return 1.05f; + break; + case ATV_FM1: + case ATV_FM2: + case ATV_AM: + default: + return 2.2f; + } +} + diff --git a/plugins/channelrx/demodatv/atvdemod.h b/plugins/channelrx/demodatv/atvdemod.h index 80fe5be6f..c38d135cb 100644 --- a/plugins/channelrx/demodatv/atvdemod.h +++ b/plugins/channelrx/demodatv/atvdemod.h @@ -334,7 +334,7 @@ private: void applySettings(); void demod(Complex& c); - + static float getRFBandwidthDivisor(ATVModulation modulation); }; #endif // INCLUDE_ATVDEMOD_H diff --git a/plugins/channelrx/demodatv/atvdemodplugin.cpp b/plugins/channelrx/demodatv/atvdemodplugin.cpp index 8a972b8de..ab015d0c1 100644 --- a/plugins/channelrx/demodatv/atvdemodplugin.cpp +++ b/plugins/channelrx/demodatv/atvdemodplugin.cpp @@ -26,7 +26,7 @@ const PluginDescriptor ATVDemodPlugin::m_ptrPluginDescriptor = { QString("ATV Demodulator"), - QString("3.3.1"), + QString("3.3.2"), QString("(c) F4HKW for F4EXB / SDRAngel"), QString("https://github.com/f4exb/sdrangel"), true,