diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputthread.cpp b/plugins/samplesource/plutosdrinput/plutosdrinputthread.cpp index 614b2c248..cd67d63ce 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputthread.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinputthread.cpp @@ -23,7 +23,7 @@ PlutoSDRInputThread::PlutoSDRInputThread(uint32_t blocksize, DevicePlutoSDRBox* m_running(false), m_plutoBox(plutoBox), m_blockSize(blocksize), - m_convertBuffer(1<<15), + m_convertBuffer(blocksize), m_sampleFifo(sampleFifo), m_convertIt(m_convertBuffer.begin()), m_log2Decim(0), @@ -95,18 +95,21 @@ void PlutoSDRInputThread::run() is++; } - m_sampleFifo->write((unsigned char *) m_buf, is*2*sizeof(int16_t)); + //m_sampleFifo->write((unsigned char *) m_buf, is*2*sizeof(int16_t)); + convert(m_buf, 2 * m_blockSize); } m_running = false; } // Decimate according to specified log2 (ex: log2=4 => decim=16) -void PlutoSDRInputThread::convert() +void PlutoSDRInputThread::convert(const qint16* buf, qint32 len) { + SampleVector::iterator it = m_convertBuffer.begin(); + if (m_log2Decim == 0) { - m_decimators.decimate1(&m_convertIt, m_buf, 2*(1<write(m_convertBuffer.begin(), m_convertBuffer.end()); - m_convertIt = m_convertBuffer.begin(); - } + m_sampleFifo->write(m_convertBuffer.begin(), it); } diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputthread.h b/plugins/samplesource/plutosdrinput/plutosdrinputthread.h index 4fbd67438..42035a0e6 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputthread.h +++ b/plugins/samplesource/plutosdrinput/plutosdrinputthread.h @@ -61,7 +61,7 @@ private: Decimators m_decimators; void run(); - void convert(); + void convert(const qint16* buf, qint32 len); };