diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-06-04 16:32:25 +0200 |
---|---|---|
committer | laforge <laforge@gnumonks.org> | 2019-06-09 06:55:13 +0000 |
commit | bde55afd29fc9aae10eb11f6515821afa39b772d (patch) | |
tree | 482716d87f483a02e6a1f491d4cd3db7dfda8091 /Transceiver52M | |
parent | 4c50bf435babbbb4668e956b94fd1f58a58ef306 (diff) |
lms: Fix stream_stats checks with overrun/underrun
It was initially thought that underruns/overrun fields were
increasing-over-time values.
However, after reading LimeSuite code, it seems overrun and
underrun fields are actually reset upon every call to
LMS_GetStreamStatus().
Related: osmo-trx.git 928177125654c1e596ec3450a68882c031ebb929
Related: https://github.com/myriadrf/LimeSuite/issues/265
Change-Id: I677232a7b12ee83d26aa34d92f76a91d4b5a63a6
Diffstat (limited to 'Transceiver52M')
-rw-r--r-- | Transceiver52M/device/lms/LMSDevice.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 7d3ce81..0253d4c 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -583,23 +583,23 @@ void LMSDevice::update_stream_stats(size_t chan, bool * underrun, bool * overrun return; } - if (status.underrun > m_ctr[chan].rx_underruns) { + if (status.underrun) { changed = true; *underrun = true; LOGCHAN(chan, DDEV, ERROR) << "recv Underrun! (" << m_ctr[chan].rx_underruns << " -> " << status.underrun << ")"; } - m_ctr[chan].rx_underruns = status.underrun; + m_ctr[chan].rx_underruns += status.underrun; - if (status.overrun > m_ctr[chan].rx_overruns) { + if (status.overrun) { changed = true; *overrun = true; LOGCHAN(chan, DDEV, ERROR) << "recv Overrun! (" << m_ctr[chan].rx_overruns << " -> " << status.overrun << ")"; } - m_ctr[chan].rx_overruns = status.overrun; + m_ctr[chan].rx_overruns += status.overrun; if (status.droppedPackets) { changed = true; |