Allow overriding subsets of probing field trials

The probe configuration is currently a single field trial. To allow
multiple experiments with non-overlapping subsets of these keys I've
added a few extra keys that override different subsets of the config.

Bug: webrtc:10394
Change-Id: I54ffd1105129794fcdae4cce314910acaa4074af
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138274
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28076}
This commit is contained in:
Jonas Olsson
2019-05-27 13:31:45 +02:00
committed by Commit Bot
parent 6019d43a11
commit 2e8d78ce42
2 changed files with 17 additions and 1 deletions

View File

@ -13,8 +13,8 @@
#include <algorithm>
#include <initializer_list>
#include <string>
#include "absl/memory/memory.h"
#include "absl/memory/memory.h"
#include "api/units/data_rate.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
@ -110,6 +110,19 @@ ProbeControllerConfig::ProbeControllerConfig(
&alr_probing_interval, &alr_probe_scale, &first_allocation_probe_scale,
&second_allocation_probe_scale, &allocation_allow_further_probing},
key_value_config->Lookup("WebRTC-Bwe-ProbingConfiguration"));
// Specialized keys overriding subsets of WebRTC-Bwe-ProbingConfiguration
ParseFieldTrial(
{&first_exponential_probe_scale, &second_exponential_probe_scale},
key_value_config->Lookup("WebRTC-Bwe-InitialProbing"));
ParseFieldTrial({&further_exponential_probe_scale, &further_probe_threshold},
key_value_config->Lookup("WebRTC-Bwe-ExponentialProbing"));
ParseFieldTrial({&alr_probing_interval, &alr_probe_scale},
key_value_config->Lookup("WebRTC-Bwe-AlrProbing"));
ParseFieldTrial(
{&first_allocation_probe_scale, &second_allocation_probe_scale,
&allocation_allow_further_probing},
key_value_config->Lookup("WebRTC-Bwe-AllocationProbing"));
}
ProbeControllerConfig::ProbeControllerConfig(const ProbeControllerConfig&) =

View File

@ -41,6 +41,9 @@ BitrateProberConfig::BitrateProberConfig(
ParseFieldTrial({&min_probe_packets_sent, &min_probe_delta,
&min_probe_duration, &max_probe_delay},
key_value_config->Lookup("WebRTC-Bwe-ProbingConfiguration"));
ParseFieldTrial({&min_probe_packets_sent, &min_probe_delta,
&min_probe_duration, &max_probe_delay},
key_value_config->Lookup("WebRTC-Bwe-ProbingBehavior"));
}
BitrateProber::~BitrateProber() {