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

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

Issue 2986893002: Piggybacking simulcast id and ALR experiment id into video content type extension. (Closed)
Patch Set: Add metrics sliced on AlrExperiment group 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
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..194ddbccf83c305e221bae1771c2584b4cf64961 100644
--- a/webrtc/modules/pacing/alr_detector.cc
+++ b/webrtc/modules/pacing/alr_detector.cc
@@ -10,6 +10,7 @@
#include "webrtc/modules/pacing/alr_detector.h"
+#include <map>
#include <string>
#include "webrtc/rtc_base/checks.h"
@@ -81,6 +82,16 @@ AlrDetector::ParseAlrSettingsFromFieldTrial(const char* experiment_name) {
rtc::Optional<AlrExperimentSettings> ret;
std::string group_name = field_trial::FindFullName(experiment_name);
+ static std::map<const char*,
+ rtc::Optional<AlrDetector::AlrExperimentSettings>>
+ computed_results;
+
+ auto it = computed_results.find(experiment_name);
+ if (it != computed_results.end()) {
+ return it->second;
+ }
+ computed_results[experiment_name] = ret;
sprang_webrtc 2017/08/24 09:13:16 Looks like you can drop this insertion?
ilnik 2017/08/25 12:35:07 No. Currently the function may exit below if it fa
+
const std::string kIgnoredSuffix = "_Dogfood";
if (group_name.rfind(kIgnoredSuffix) ==
group_name.length() - kIgnoredSuffix.length()) {
@@ -91,11 +102,12 @@ AlrDetector::ParseAlrSettingsFromFieldTrial(const char* experiment_name) {
return ret;
AlrExperimentSettings settings;
- if (sscanf(group_name.c_str(), "%f,%" PRId64 ",%d,%d,%d",
+ if (sscanf(group_name.c_str(), "%f,%" PRId64 ",%d,%d,%d,%d",
&settings.pacing_factor, &settings.max_paced_queue_time,
&settings.alr_bandwidth_usage_percent,
&settings.alr_start_budget_level_percent,
- &settings.alr_stop_budget_level_percent) == 5) {
+ &settings.alr_stop_budget_level_percent,
+ &settings.group_id) == 6) {
ret.emplace(settings);
LOG(LS_INFO) << "Using ALR experiment settings: "
"pacing factor: "
@@ -106,11 +118,13 @@ AlrDetector::ParseAlrSettingsFromFieldTrial(const char* experiment_name) {
<< ", ALR end budget level percent: "
<< settings.alr_start_budget_level_percent
<< ", ALR end budget level percent: "
- << settings.alr_stop_budget_level_percent;
+ << settings.alr_stop_budget_level_percent
+ << ", ALR experiment group ID: " << settings.group_id;
} else {
LOG(LS_INFO) << "Failed to parse ALR experiment: " << experiment_name;
}
+ computed_results[experiment_name] = ret;
return ret;
}

Powered by Google App Engine
This is Rietveld 408576698