diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/output/Lime.cpp | 13 | ||||
| -rw-r--r-- | src/output/Lime.h | 3 | 
2 files changed, 4 insertions, 12 deletions
diff --git a/src/output/Lime.cpp b/src/output/Lime.cpp index 7aa7d67..3a5f893 100644 --- a/src/output/Lime.cpp +++ b/src/output/Lime.cpp @@ -378,18 +378,7 @@ void Lime::transmit_frame(const struct FrameData &frame)      etiLog.level(info) << "overrun" << LimeStatus.overrun << "underun" << LimeStatus.underrun << "drop" << LimeStatus.droppedPackets;  #endif -    /* if(LimeStatus.fifoFilledCount>LimeStatus.fifoSize-2*FRAME_LENGTH*m_interpolate) // Drop if Fifo is just 2 frames before fullness  -    { -        etiLog.level(info) << "Fifo overflow : drop"; -        return; -    }*/ - -    // Wait if Fifo is just 2 frames before fullness -    if (LimeStatus.fifoFilledCount < FRAME_LENGTH * 2 * m_interpolate) { -        etiLog.level(info) << "Fifo underflow : duplicate for filling garbage"; -        for (size_t i = 0; i < m_interpolate * 10; i++) -            LMS_SendStream(&m_tx_stream, buf, numSamples, NULL, 1000); -    } +    m_last_fifo_filled_count.store(LimeStatus.fifoFilledCount);      /*      if(LimeStatus.fifoFilledCount>=5*FRAME_LENGTH*m_interpolate) // Start if FIFO is half full { diff --git a/src/output/Lime.h b/src/output/Lime.h index 89f3b7e..8658053 100644 --- a/src/output/Lime.h +++ b/src/output/Lime.h @@ -39,6 +39,7 @@ DESCRIPTION:  #ifdef HAVE_LIMESDR +#include <atomic>  #include <string>  #include <memory> @@ -90,6 +91,8 @@ class Lime : public Output::SDRDevice      size_t m_interpolate = 1;      std::vector<complexf> interpolatebuf; +    std::atomic<uint32_t> m_last_fifo_filled_count = ATOMIC_VAR_INIT(0); +      size_t underflows = 0;      size_t overflows = 0;      size_t late_packets = 0;  | 
