| Index: webrtc/modules/pacing/alr_detector.cc
|
| diff --git a/webrtc/modules/pacing/alr_detector.cc b/webrtc/modules/pacing/alr_detector.cc
|
| index 993c6cd07edde5b87d2ea5f4b061dc5c183c5a40..49163cac7e37e80ff5967fd987ab255133efb02d 100644
|
| --- a/webrtc/modules/pacing/alr_detector.cc
|
| +++ b/webrtc/modules/pacing/alr_detector.cc
|
| @@ -12,6 +12,7 @@
|
|
|
| #include <string>
|
|
|
| +#include "webrtc/logging/rtc_event_log/rtc_event_log.h"
|
| #include "webrtc/rtc_base/checks.h"
|
| #include "webrtc/rtc_base/format_macros.h"
|
| #include "webrtc/rtc_base/logging.h"
|
| @@ -25,11 +26,14 @@ const char AlrDetector::kScreenshareProbingBweExperimentName[] =
|
| const char AlrDetector::kStrictPacingAndProbingExperimentName[] =
|
| "WebRTC-StrictPacingAndProbing";
|
|
|
| -AlrDetector::AlrDetector()
|
| +AlrDetector::AlrDetector() : AlrDetector(nullptr) {}
|
| +
|
| +AlrDetector::AlrDetector(RtcEventLog* event_log)
|
| : bandwidth_usage_percent_(kDefaultAlrBandwidthUsagePercent),
|
| alr_start_budget_level_percent_(kDefaultAlrStartBudgetLevelPercent),
|
| alr_stop_budget_level_percent_(kDefaultAlrStopBudgetLevelPercent),
|
| - alr_budget_(0, true) {
|
| + alr_budget_(0, true),
|
| + event_log_(event_log) {
|
| RTC_CHECK(
|
| field_trial::FindFullName(kStrictPacingAndProbingExperimentName)
|
| .empty() ||
|
| @@ -54,7 +58,6 @@ AlrDetector::~AlrDetector() {}
|
| void AlrDetector::OnBytesSent(size_t bytes_sent, int64_t delta_time_ms) {
|
| alr_budget_.UseBudget(bytes_sent);
|
| alr_budget_.IncreaseBudget(delta_time_ms);
|
| -
|
| if (alr_budget_.budget_level_percent() > alr_start_budget_level_percent_ &&
|
| !alr_started_time_ms_) {
|
| alr_started_time_ms_.emplace(rtc::TimeMillis());
|
| @@ -63,6 +66,12 @@ void AlrDetector::OnBytesSent(size_t bytes_sent, int64_t delta_time_ms) {
|
| alr_started_time_ms_) {
|
| alr_started_time_ms_.reset();
|
| }
|
| + int usage = 100 - alr_budget_.budget_level_percent();
|
| + uint32_t usage_kbps = usage * alr_budget_.target_rate_kbps() / 200;
|
| + usage_kbps *= 100.0 / bandwidth_usage_percent_;
|
| + if (event_log_)
|
| + event_log_->LogAlrState(alr_started_time_ms_.has_value(),
|
| + usage_kbps * 1000);
|
| }
|
|
|
| void AlrDetector::SetEstimatedBitrate(int bitrate_bps) {
|
|
|