From 5afa3f2690517ce06242aaecce9409bfbba891c1 Mon Sep 17 00:00:00 2001 From: tschumim Date: Fri, 18 Aug 2017 03:38:49 -0700 Subject: [PATCH] Fix for alr detection bug on pause. BUG=webrtc:7926 Review-Url: https://codereview.webrtc.org/2995183002 Cr-Commit-Position: refs/heads/master@{#19407} --- webrtc/modules/pacing/interval_budget.cc | 2 ++ webrtc/modules/pacing/paced_sender.cc | 7 +++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/webrtc/modules/pacing/interval_budget.cc b/webrtc/modules/pacing/interval_budget.cc index 0cd6cf5bbe..7e4fe0200a 100644 --- a/webrtc/modules/pacing/interval_budget.cc +++ b/webrtc/modules/pacing/interval_budget.cc @@ -15,6 +15,7 @@ namespace webrtc { namespace { constexpr int kWindowMs = 500; +constexpr int kDeltaTimeMs = 2000; } IntervalBudget::IntervalBudget(int initial_target_rate_kbps) @@ -34,6 +35,7 @@ void IntervalBudget::set_target_rate_kbps(int target_rate_kbps) { } void IntervalBudget::IncreaseBudget(int64_t delta_time_ms) { + RTC_DCHECK_LT(delta_time_ms, kDeltaTimeMs); int bytes = target_rate_kbps_ * delta_time_ms / 8; if (bytes_remaining_ < 0 || can_build_up_underuse_) { // We overused last interval, compensate this interval. diff --git a/webrtc/modules/pacing/paced_sender.cc b/webrtc/modules/pacing/paced_sender.cc index acfcd1fbff..74a885a66f 100644 --- a/webrtc/modules/pacing/paced_sender.cc +++ b/webrtc/modules/pacing/paced_sender.cc @@ -406,7 +406,8 @@ int64_t PacedSender::TimeUntilNextProcess() { void PacedSender::Process() { int64_t now_us = clock_->TimeInMicroseconds(); rtc::CritScope cs(&critsect_); - int64_t elapsed_time_ms = (now_us - time_last_update_us_ + 500) / 1000; + int64_t elapsed_time_ms = std::min( + kMaxIntervalTimeMs, (now_us - time_last_update_us_ + 500) / 1000); int target_bitrate_kbps = pacing_bitrate_kbps_; if (paused_) { @@ -417,7 +418,7 @@ void PacedSender::Process() { if (packet_counter_ == 0) return; size_t bytes_sent = SendPadding(1, pacing_info); - alr_detector_->OnBytesSent(bytes_sent, now_us / 1000); + alr_detector_->OnBytesSent(bytes_sent, elapsed_time_ms); return; } @@ -437,8 +438,6 @@ void PacedSender::Process() { } media_budget_->set_target_rate_kbps(target_bitrate_kbps); - - elapsed_time_ms = std::min(kMaxIntervalTimeMs, elapsed_time_ms); UpdateBudgetWithElapsedTime(elapsed_time_ms); }