diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.cpp b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.cpp index ca30dfc14..c1cfe6476 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.cpp +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.cpp @@ -182,6 +182,7 @@ void SDRdaemonSourceBuffer::checkSlotData(int slotIndex) if (!m_decoderSlots[slotIndex].m_decoded) { qDebug() << "SDRdaemonSourceBuffer::checkSlotData: incomplete frame:" + << " slotIndex: " << slotIndex << " m_blockCount: " << m_decoderSlots[slotIndex].m_blockCount << " m_recoveryCount: " << m_decoderSlots[slotIndex].m_recoveryCount; } @@ -258,12 +259,16 @@ void SDRdaemonSourceBuffer::writeData(char *array) if (m_cm256.cm256_decode(m_paramsCM256, m_decoderSlots[decoderIndex].m_cm256DescriptorBlocks)) // CM256 decode { qDebug() << "SDRdaemonSourceBuffer::writeData: decode CM256 error:" + << " decoderIndex: " << decoderIndex + << " m_blockCount: " << m_decoderSlots[decoderIndex].m_blockCount << " m_originalCount: " << m_decoderSlots[decoderIndex].m_originalCount << " m_recoveryCount: " << m_decoderSlots[decoderIndex].m_recoveryCount; } else { qDebug() << "SDRdaemonSourceBuffer::writeData: decode CM256 success:" + << " decoderIndex: " << decoderIndex + << " m_blockCount: " << m_decoderSlots[decoderIndex].m_blockCount << " m_originalCount: " << m_decoderSlots[decoderIndex].m_originalCount << " m_recoveryCount: " << m_decoderSlots[decoderIndex].m_recoveryCount; @@ -296,7 +301,7 @@ void SDRdaemonSourceBuffer::writeData(char *array) qDebug() << "SDRdaemonSourceBuffer::writeData: recovered block #" << blockIndex; } // restore missing blocks } // CM256 decode - } // revovery + } // recovery if (m_decoderSlots[decoderIndex].m_metaRetrieved) // block zero with its meta data has been received { @@ -304,12 +309,13 @@ void SDRdaemonSourceBuffer::writeData(char *array) if (!(*metaData == m_currentMeta)) { - int sampleRate = metaData->m_sampleRate; + uint32_t sampleRate = metaData->m_sampleRate; - if (sampleRate > 0) { - m_bufferLenSec = (float) m_framesNbBytes / (float) (sampleRate * m_currentMeta.m_sampleBytes * 2); + if (sampleRate != 0) + { + m_bufferLenSec = (float) m_framesNbBytes / (float) (sampleRate * metaData->m_sampleBytes * 2); m_balCorrLimit = sampleRate / 1000; // +/- 1 ms correction max per read - m_readNbBytes = (sampleRate * m_currentMeta.m_sampleBytes * 2) / 20; + m_readNbBytes = (sampleRate * metaData->m_sampleBytes * 2) / 20; } printMeta("SDRdaemonSourceBuffer::writeData: new meta", metaData); // print for change other than timestamp @@ -320,79 +326,6 @@ void SDRdaemonSourceBuffer::writeData(char *array) } // decode } -void SDRdaemonSourceBuffer::writeData0(char *array __attribute__((unused)), uint32_t length __attribute__((unused))) -{ -// Kept as comments for the out of sync blocks algorithms -// assert(length == m_udpPayloadSize); -// -// bool dataAvailable = false; -// SuperBlock *superBlock = (SuperBlock *) array; -// int frameIndex = superBlock->header.frameIndex; -// int decoderIndex = frameIndex % nbDecoderSlots; -// int blockIndex = superBlock->header.blockIndex; -// -//// qDebug() << "SDRdaemonSourceBuffer::writeData:" -//// << " frameIndex: " << frameIndex -//// << " decoderIndex: " << decoderIndex -//// << " blockIndex: " << blockIndex; -// -// if (m_frameHead == -1) // initial state -// { -// m_decoderIndexHead = decoderIndex; // new decoder slot head -// m_frameHead = frameIndex; -// initReadIndex(); // reset read index -// initDecodeAllSlots(); // initialize all slots -// } -// else -// { -// int frameDelta = m_frameHead - frameIndex; -// -// if (frameDelta < 0) -// { -// if (-frameDelta < nbDecoderSlots) // new frame head not too new -// { -// //qDebug() << "SDRdaemonSourceBuffer::writeData: new frame head (1): " << frameIndex << ":" << frameDelta << ":" << decoderIndex; -// m_decoderIndexHead = decoderIndex; // new decoder slot head -// m_frameHead = frameIndex; -// checkSlotData(decoderIndex); -// dataAvailable = true; -// initDecodeSlot(decoderIndex); // collect stats and re-initialize current slot -// } -// else if (-frameDelta <= 65536 - nbDecoderSlots) // loss of sync start over -// { -// //qDebug() << "SDRdaemonSourceBuffer::writeData: loss of sync start over (1)" << frameIndex << ":" << frameDelta << ":" << decoderIndex; -// m_decoderIndexHead = decoderIndex; // new decoder slot head -// m_frameHead = frameIndex; -// initReadIndex(); // reset read index -// initDecodeAllSlots(); // re-initialize all slots -// } -// } -// else -// { -// if (frameDelta > 65536 - nbDecoderSlots) // new frame head not too new -// { -// //qDebug() << "SDRdaemonSourceBuffer::writeData: new frame head (2): " << frameIndex << ":" << frameDelta << ":" << decoderIndex; -// m_decoderIndexHead = decoderIndex; // new decoder slot head -// m_frameHead = frameIndex; -// checkSlotData(decoderIndex); -// dataAvailable = true; -// initDecodeSlot(decoderIndex); // collect stats and re-initialize current slot -// } -// else if (frameDelta >= nbDecoderSlots) // loss of sync start over -// { -// //qDebug() << "SDRdaemonSourceBuffer::writeData: loss of sync start over (2)" << frameIndex << ":" << frameDelta << ":" << decoderIndex; -// m_decoderIndexHead = decoderIndex; // new decoder slot head -// m_frameHead = frameIndex; -// initReadIndex(); // reset read index -// initDecodeAllSlots(); // re-initialize all slots -// } -// } -// } -// -// // decoderIndex should now be correctly set -// -} - uint8_t *SDRdaemonSourceBuffer::readData(int32_t length) { uint8_t *buffer = (uint8_t *) m_frames; diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.h b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.h index 615cb2f5b..405ad38ce 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.h +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.h @@ -37,7 +37,6 @@ public: // R/W operations void writeData(char *array); //!< Write data into buffer. - void writeData0(char *array, uint32_t length); //!< Write data into buffer. uint8_t *readData(int32_t length); //!< Read data from buffer // meta data diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceudphandler.cpp b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceudphandler.cpp index 57d88fdb0..399ca525e 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceudphandler.cpp +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceudphandler.cpp @@ -195,7 +195,7 @@ void SDRdaemonSourceUDPHandler::processData() change = true; } - if (change && (m_samplerate != 0) && (m_centerFrequency != 0)) + if (change && (m_samplerate != 0)) { qDebug("SDRdaemonSourceUDPHandler::processData: m_samplerate: %u m_centerFrequency: %u kHz", m_samplerate, m_centerFrequency);