aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2019-06-04 16:32:25 +0200
committerlaforge <laforge@gnumonks.org>2019-06-09 06:55:13 +0000
commitbde55afd29fc9aae10eb11f6515821afa39b772d (patch)
tree482716d87f483a02e6a1f491d4cd3db7dfda8091
parent4c50bf435babbbb4668e956b94fd1f58a58ef306 (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
-rw-r--r--Transceiver52M/device/lms/LMSDevice.cpp8
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;