From eedc6f62ff1212a5b0cd1ceb6a1bff05ccd059ee Mon Sep 17 00:00:00 2001 From: "Srivats P." Date: Sat, 29 Oct 2011 07:40:18 +0530 Subject: [PATCH] Fixed incorrect very long delay in "interleaved streams" mode --- server/abstractport.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/server/abstractport.cpp b/server/abstractport.cpp index 55e31a3..178338a 100644 --- a/server/abstractport.cpp +++ b/server/abstractport.cpp @@ -528,10 +528,15 @@ void AbstractPort::updatePacketListInterleaved() } } while ((sec < durSec) || (nsec < durNsec)); - quint64 delaySec = durSec - lastPktTxSec; - quint64 delayNsec = durNsec - lastPktTxNsec; - qDebug("loop Delay = %" PRIu64 "/%" PRIu64, delaySec, delayNsec); - setPacketListLoopMode(true, durSec - lastPktTxSec, durNsec - lastPktTxNsec); + qint64 delaySec = durSec - lastPktTxSec; + qint64 delayNsec = durNsec - lastPktTxNsec; + while (delayNsec < 0) + { + delayNsec += long(1e9); + delaySec--; + } + qDebug("loop Delay = %" PRId64 "/%" PRId64, delaySec, delayNsec); + setPacketListLoopMode(true, delaySec, delayNsec); isSendQueueDirty_ = false; }