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

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

Issue 2949553002: Wire up experiment for improved screenshare bwe. (Closed)
Patch Set: Created 3 years, 6 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 | « no previous file | webrtc/modules/pacing/alr_detector.cc » ('j') | webrtc/video/full_stack_tests.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/pacing/alr_detector.h
diff --git a/webrtc/modules/pacing/alr_detector.h b/webrtc/modules/pacing/alr_detector.h
index d8870ff04bb14d783e803c041041c9b4fe066506..087e444da1e886d1d642ee1e4aa25d22bd99e046 100644
--- a/webrtc/modules/pacing/alr_detector.h
+++ b/webrtc/modules/pacing/alr_detector.h
@@ -11,6 +11,7 @@
#ifndef WEBRTC_MODULES_PACING_ALR_DETECTOR_H_
#define WEBRTC_MODULES_PACING_ALR_DETECTOR_H_
+#include "webrtc/base/optional.h"
#include "webrtc/base/rate_statistics.h"
#include "webrtc/common_types.h"
#include "webrtc/modules/pacing/paced_sender.h"
@@ -25,6 +26,7 @@ namespace webrtc {
// AlrDetector provides a signal that can be utilized to adjust
// estimate bandwidth.
// Note: This class is not thread-safe.
+
class AlrDetector {
public:
AlrDetector();
@@ -39,9 +41,28 @@ class AlrDetector {
// started or empty result if the sender is currently not application-limited.
rtc::Optional<int64_t> GetApplicationLimitedRegionStartTime() const;
+ struct AlrExperimentSettings {
+ float pacing_factor = PacedSender::kDefaultPaceMultiplier;
+ int64_t max_paced_queue_time = PacedSender::kMaxQueueLengthMs;
+ int alr_start_usage_percent = kDefaultAlrStartUsagePercent;
+ int alr_end_usage_percent = kDefaultAlrEndUsagePercent;
+ };
+ static rtc::Optional<AlrExperimentSettings> ParseAlrSettingsFromFieldTrial();
+
+ // Sent traffic percentage as a function of network capacity used to determine
+ // application-limited region. ALR region start when bandwidth usage drops
+ // below kAlrStartUsagePercent and ends when it raises above
+ // kAlrEndUsagePercent. NOTE: This is intentionally conservative at the moment
+ // until BW adjustments of application limited region is fine tuned.
+ static constexpr int kDefaultAlrStartUsagePercent = 60;
+ static constexpr int kDefaultAlrEndUsagePercent = 70;
+ static const char* kScreenshareProbingBweExperimentName;
+
private:
+ int alr_start_usage_percent_;
+ int alr_end_usage_percent_;
RateStatistics rate_;
- int estimated_bitrate_bps_ = 0;
+ int estimated_bitrate_bps_;
// Non-empty in ALR state.
rtc::Optional<int64_t> alr_started_time_ms_;
« no previous file with comments | « no previous file | webrtc/modules/pacing/alr_detector.cc » ('j') | webrtc/video/full_stack_tests.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698