From b6c81fe726c20abf7286bd21b2652425eaaf5d4d Mon Sep 17 00:00:00 2001 From: vsonnier Date: Sat, 9 Mar 2019 14:19:42 +0100 Subject: [PATCH] Add traces about MTU used size --- src/sdr/SoapySDRThread.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/sdr/SoapySDRThread.cpp b/src/sdr/SoapySDRThread.cpp index 4013c69..334cae8 100644 --- a/src/sdr/SoapySDRThread.cpp +++ b/src/sdr/SoapySDRThread.cpp @@ -101,9 +101,7 @@ bool SDRThread::init() { int streamMTU = device->getStreamMTU(stream); mtuElems.store(streamMTU); - - std::cout << "Device Stream MTU: " << mtuElems.load() << std::endl << std::flush; - + deviceInfo.load()->setStreamArgs(currentStreamArgs); deviceConfig.load()->setStreamOpts(currentStreamArgs); @@ -135,9 +133,13 @@ bool SDRThread::init() { numChannels.store(getOptimalChannelCount(sampleRate.load())); numElems.store(getOptimalElementCount(sampleRate.load(), TARGET_DISPLAY_FPS)); - //fallback if mtuElems was wrong. + + //fallback if mtuElems was wrong if (!mtuElems.load()) { mtuElems.store(numElems.load()); + std::cout << "SDRThread::init(): Device Stream MTU is broken, use " << mtuElems.load() << "instead..." << std::endl << std::flush; + } else { + std::cout << "SDRThread::init(): Device Stream set to MTU: " << mtuElems.load() << std::endl << std::flush; } overflowBuffer.data.resize(mtuElems.load()); @@ -198,8 +200,8 @@ void SDRThread::assureBufferMinSize(SDRThreadIQData * dataOut, size_t minSize) { // a 'this.numElems' sized batch of samples (SDRThreadIQData) and push it into iqDataOutQueue. //this batch of samples is built to represent 1 frame / TARGET_DISPLAY_FPS. int SDRThread::readStream(SDRThreadIQDataQueuePtr iqDataOutQueue) { - int flags; - long long timeNs; + int flags = 0; + long long timeNs = 0; int n_read = 0; int nElems = numElems.load(); @@ -447,10 +449,15 @@ void SDRThread::updateSettings() { numChannels.store(getOptimalChannelCount(sampleRate.load())); numElems.store(getOptimalElementCount(sampleRate.load(), TARGET_DISPLAY_FPS)); int streamMTU = device->getStreamMTU(stream); + mtuElems.store(streamMTU); + //fallback if mtuElems was wrong if (!mtuElems.load()) { mtuElems.store(numElems.load()); + std::cout << "SDRThread::updateSettings(): Device Stream MTU is broken, use " << mtuElems.load() << "instead..." << std::endl << std::flush; + } else { + std::cout << "SDRThread::updateSettings(): Device Stream changing to MTU: " << mtuElems.load() << std::endl << std::flush; } overflowBuffer.data.resize(mtuElems.load());