Revert packet timer changes.

This commit is contained in:
Jonathan Naylor
2016-07-15 06:32:56 +01:00
parent f18c505852
commit 2a53923c9a
6 changed files with 56 additions and 21 deletions

View File

@@ -70,6 +70,7 @@ m_netN(0U),
m_networkWatchdog(1000U, 0U, 1500U),
m_rfTimeoutTimer(1000U, timeout),
m_netTimeoutTimer(1000U, timeout),
m_packetTimer(1000U, 0U, 300U),
m_interval(),
m_elapsed(),
m_rfFrames(0U),
@@ -678,6 +679,7 @@ void CDMRSlot::writeEndNet(bool writeEnd)
m_networkWatchdog.stop();
m_netTimeoutTimer.stop();
m_packetTimer.stop();
m_netFrames = 0U;
m_netLost = 0U;
@@ -1029,6 +1031,8 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
writeQueueNet(data);
m_packetTimer.start();
m_netFrames++;
// Save details in case we need to infill data
@@ -1080,6 +1084,8 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
writeQueueNet(data);
m_packetTimer.start();
m_netFrames++;
// Save details in case we need to infill data
@@ -1230,15 +1236,21 @@ void CDMRSlot::clock()
}
if (m_netState == RS_NET_AUDIO) {
unsigned int elapsed = m_elapsed.elapsed();
unsigned int frames = elapsed / DMR_SLOT_TIME;
m_packetTimer.clock(ms);
if (frames > m_netFrames) {
unsigned int count = frames - m_netFrames;
if (count > (300U / DMR_SLOT_TIME)) {
LogMessage("DMR Slot %u, lost audio for over 300ms filling in, elapsed: %ums, expected: %u, received: %u", m_slotNo, elapsed, frames, m_netFrames);
insertSilence(count - 1U);
if (m_packetTimer.isRunning() && m_packetTimer.hasExpired()) {
unsigned int elapsed = m_elapsed.elapsed();
unsigned int frames = elapsed / DMR_SLOT_TIME;
if (frames > m_netFrames) {
unsigned int count = frames - m_netFrames;
if (count > 3U) {
LogDebug("DMR Slot %u, lost audio for 300ms filling in, elapsed: %ums, expected: %u, received: %u", m_slotNo, elapsed, frames, m_netFrames);
insertSilence(count - 1U);
}
}
m_packetTimer.start();
}
}
}