diff --git a/webrtc/Nack.cpp b/webrtc/Nack.cpp index 876f9fa1..8012a16c 100644 --- a/webrtc/Nack.cpp +++ b/webrtc/Nack.cpp @@ -205,10 +205,8 @@ void NackContext::clearNackStatus(uint16_t seq) { auto rtt = getCurrentMillisecond() - it->second.first_stamp; _nack_send_status.erase(it); - if (rtt >= 0) { - // rtt不能小于0 - _rtt = rtt; - } + // 限定rtt在合理有效范围内 + _rtt = max(10, min(rtt, kNackMaxMS / kNackMaxCount)); } void NackContext::recordNack(const FCI_NACK &nack) { @@ -280,7 +278,7 @@ uint64_t NackContext::reSendNack() { } // 没有任何包需要重传时返回0,否则返回下次重传间隔(不得低于5ms) - return _nack_send_status.empty() ? 0 : max(_rtt, 5); + return _nack_send_status.empty() ? 0 : _rtt; } } // namespace mediakit