Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1901)

Unified Diff: webrtc/modules/pacing/alr_detector.cc

Issue 2997883002: Video/Screenshare loopback tool.
Patch Set: Rebase Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/pacing/alr_detector.h ('k') | webrtc/modules/pacing/bitrate_prober.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) {
« no previous file with comments | « webrtc/modules/pacing/alr_detector.h ('k') | webrtc/modules/pacing/bitrate_prober.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698