diff --git a/plugins/samplesink/usrpoutput/usrpoutputthread.cpp b/plugins/samplesink/usrpoutput/usrpoutputthread.cpp index c8209c75c..e158eb4eb 100644 --- a/plugins/samplesink/usrpoutput/usrpoutputthread.cpp +++ b/plugins/samplesink/usrpoutput/usrpoutputthread.cpp @@ -123,22 +123,27 @@ void USRPOutputThread::run() // Interpolate according to specified log2 (ex: log2=4 => decim=16) void USRPOutputThread::callback(qint16* buf, qint32 len) { + if (len <= 0) { + return; + } + + const unsigned int interpolationFactor = 1U << m_log2Interp; SampleVector& data = m_sampleFifo->getData(); unsigned int iPart1Begin, iPart1End, iPart2Begin, iPart2End; - m_sampleFifo->read(len/(1<read(static_cast(len)/interpolationFactor, iPart1Begin, iPart1End, iPart2Begin, iPart2End); if (iPart1Begin != iPart1End) { callbackPart(buf, data, iPart1Begin, iPart1End); } - unsigned int shift = (iPart1End - iPart1Begin)*(1<(len)) {