From 97866403224a7b989ed13a399e028082c8c62abc Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 15 Aug 2017 12:29:54 +0200 Subject: [PATCH] UDPSink utility: use fixed payload size in bytes --- plugins/channelrx/udpsrc/udpsrc.cpp | 2 +- sdrbase/util/udpsink.h | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/plugins/channelrx/udpsrc/udpsrc.cpp b/plugins/channelrx/udpsrc/udpsrc.cpp index 9ba62a754..f015f6d09 100644 --- a/plugins/channelrx/udpsrc/udpsrc.cpp +++ b/plugins/channelrx/udpsrc/udpsrc.cpp @@ -67,7 +67,7 @@ UDPSrc::UDPSrc(MessageQueue* uiMessageQueue, UDPSrcGUI* udpSrcGUI, BasebandSampl m_scale = 0; m_boost = 0; m_magsq = 0; - UDPFilter = new fftfilt(0.0, (m_rfBandwidth / 2.0) / m_outputSampleRate, udpBLockSampleSize * sizeof(Sample)); + UDPFilter = new fftfilt(0.0, (m_rfBandwidth / 2.0) / m_outputSampleRate, udpBLockSampleSize); m_phaseDiscri.setFMScaling((float) m_outputSampleRate / (2.0f * m_fmDeviation)); diff --git a/sdrbase/util/udpsink.h b/sdrbase/util/udpsink.h index e8ccb522f..d3bb6916e 100644 --- a/sdrbase/util/udpsink.h +++ b/sdrbase/util/udpsink.h @@ -31,22 +31,25 @@ class UDPSink public: UDPSink(QObject *parent, unsigned int udpSize, unsigned int port) : m_udpSize(udpSize), + m_udpSamples(udpSize/sizeof(T)), m_address(QHostAddress::LocalHost), m_port(port), m_sampleBufferIndex(0) { - m_sampleBuffer = new T[m_udpSize]; + assert(m_udpSamples > 0); + m_sampleBuffer = new T[m_udpSamples]; m_socket = new QUdpSocket(parent); } UDPSink (QObject *parent, unsigned int udpSize, QHostAddress& address, unsigned int port) : m_udpSize(udpSize), + m_udpSamples(udpSize/sizeof(T)), m_address(address), m_port(port), m_sampleBufferIndex(0) { - assert(m_udpSize > 2); - m_sampleBuffer = new T[m_udpSize]; + assert(m_udpSamples > 0); + m_sampleBuffer = new T[m_udpSamples]; m_socket = new QUdpSocket(parent); } @@ -61,14 +64,14 @@ public: void write(T sample) { - if (m_sampleBufferIndex < m_udpSize) + if (m_sampleBufferIndex < m_udpSamples) { m_sampleBuffer[m_sampleBufferIndex] = sample; m_sampleBufferIndex++; } else { - m_socket->writeDatagram((const char*)&m_sampleBuffer[0], (qint64 ) (m_udpSize * sizeof(T)), m_address, m_port); + m_socket->writeDatagram((const char*)&m_sampleBuffer[0], (qint64 ) m_udpSize, m_address, m_port); m_sampleBuffer[0] = sample; m_sampleBufferIndex = 1; } @@ -76,6 +79,7 @@ public: private: unsigned int m_udpSize; + unsigned int m_udpSamples; QHostAddress m_address; unsigned int m_port; QUdpSocket *m_socket;