DSD demod: request fixed 48000 S/s sample rate for the channel sample rate. Fixes #752

This commit is contained in:
f4exb 2021-04-19 11:42:01 +02:00
parent 19aaa6efda
commit 5e7fbec1ce
1 changed files with 2 additions and 5 deletions

View File

@ -151,7 +151,7 @@ void DSDDemodBaseband::applySettings(const DSDDemodSettings& settings, bool forc
{ {
if ((settings.m_inputFrequencyOffset != m_settings.m_inputFrequencyOffset) || force) if ((settings.m_inputFrequencyOffset != m_settings.m_inputFrequencyOffset) || force)
{ {
m_channelizer->setChannelization(m_sink.getAudioSampleRate(), settings.m_inputFrequencyOffset); m_channelizer->setChannelization(48000, settings.m_inputFrequencyOffset);
m_sink.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset()); m_sink.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset());
if (m_channelSampleRate != m_channelizer->getChannelSampleRate()) if (m_channelSampleRate != m_channelizer->getChannelSampleRate())
@ -172,10 +172,7 @@ void DSDDemodBaseband::applySettings(const DSDDemodSettings& settings, bool forc
audioDeviceManager->addAudioSink(m_sink.getAudioFifo2(), getInputMessageQueue(), audioDeviceIndex); audioDeviceManager->addAudioSink(m_sink.getAudioFifo2(), getInputMessageQueue(), audioDeviceIndex);
int audioSampleRate = audioDeviceManager->getOutputSampleRate(audioDeviceIndex); int audioSampleRate = audioDeviceManager->getOutputSampleRate(audioDeviceIndex);
if (m_sink.getAudioSampleRate() != audioSampleRate) if (m_sink.getAudioSampleRate() != audioSampleRate) {
{
m_channelizer->setChannelization(audioSampleRate, settings.m_inputFrequencyOffset);
m_sink.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset());
m_sink.applyAudioSampleRate(audioSampleRate); m_sink.applyAudioSampleRate(audioSampleRate);
} }
} }