Test field trial group with startswith rather than equals.
BUG=webrtc:7266
Review-Url: https://codereview.webrtc.org/2717973005
Cr-Commit-Position: refs/heads/master@{#16915}
diff --git a/webrtc/call/call_perf_tests.cc b/webrtc/call/call_perf_tests.cc
index 570b19b..a510483 100644
--- a/webrtc/call/call_perf_tests.cc
+++ b/webrtc/call/call_perf_tests.cc
@@ -290,7 +290,7 @@
observer.PrintResults();
// In quick test synchronization may not be achieved in time.
- if (field_trial::FindFullName("WebRTC-QuickPerfTest") != "Enabled") {
+ if (field_trial::IsEnabled("WebRTC-QuickPerfTest")) {
EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.AVSyncOffsetInMs"));
}
}
diff --git a/webrtc/media/engine/internalencoderfactory.cc b/webrtc/media/engine/internalencoderfactory.cc
index ad3a4be..65c1ba9 100644
--- a/webrtc/media/engine/internalencoderfactory.cc
+++ b/webrtc/media/engine/internalencoderfactory.cc
@@ -24,7 +24,7 @@
const char kFlexfecFieldTrialName[] = "WebRTC-FlexFEC-03";
bool IsFlexfecFieldTrialEnabled() {
- return webrtc::field_trial::FindFullName(kFlexfecFieldTrialName) == "Enabled";
+ return webrtc::field_trial::IsEnabled(kFlexfecFieldTrialName);
}
} // namespace
diff --git a/webrtc/media/engine/simulcast.cc b/webrtc/media/engine/simulcast.cc
index 8378ca3..f1cd2ce 100644
--- a/webrtc/media/engine/simulcast.cc
+++ b/webrtc/media/engine/simulcast.cc
@@ -299,8 +299,7 @@
}
bool UseSimulcastScreenshare() {
- return webrtc::field_trial::FindFullName(
- kSimulcastScreenshareFieldTrialName) == "Enabled";
+ return webrtc::field_trial::IsEnabled(kSimulcastScreenshareFieldTrialName);
}
} // namespace cricket
diff --git a/webrtc/media/engine/webrtcvideocapturer.cc b/webrtc/media/engine/webrtcvideocapturer.cc
index 5aac3f8..11458d1 100644
--- a/webrtc/media/engine/webrtcvideocapturer.cc
+++ b/webrtc/media/engine/webrtcvideocapturer.cc
@@ -230,12 +230,8 @@
// calls, can't take lock.
RTC_DCHECK(module_);
- const std::string group_name =
- webrtc::field_trial::FindFullName("WebRTC-CVO");
-
- if (group_name == "Disabled") {
+ if (webrtc::field_trial::FindFullName("WebRTC-CVO").find("Disabled") == 0)
return;
- }
VideoCapturer::OnSinkWantsChanged(wants);
bool result = module_->SetApplyRotation(wants.rotation_applied);
diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc
index c192b52..39bec64 100644
--- a/webrtc/media/engine/webrtcvideoengine2.cc
+++ b/webrtc/media/engine/webrtcvideoengine2.cc
@@ -50,7 +50,7 @@
const char kFlexfecFieldTrialName[] = "WebRTC-FlexFEC-03";
bool IsFlexfecFieldTrialEnabled() {
- return webrtc::field_trial::FindFullName(kFlexfecFieldTrialName) == "Enabled";
+ return webrtc::field_trial::IsEnabled(kFlexfecFieldTrialName);
}
// Wrap cricket::WebRtcVideoEncoderFactory as a webrtc::VideoEncoderFactory.
diff --git a/webrtc/media/engine/webrtcvoiceengine.cc b/webrtc/media/engine/webrtcvoiceengine.cc
index e0d9884..d774f78 100644
--- a/webrtc/media/engine/webrtcvoiceengine.cc
+++ b/webrtc/media/engine/webrtcvoiceengine.cc
@@ -982,8 +982,7 @@
capabilities.header_extensions.push_back(
webrtc::RtpExtension(webrtc::RtpExtension::kAudioLevelUri,
webrtc::RtpExtension::kAudioLevelDefaultId));
- if (webrtc::field_trial::FindFullName("WebRTC-Audio-SendSideBwe") ==
- "Enabled") {
+ if (webrtc::field_trial::IsEnabled("WebRTC-Audio-SendSideBwe")) {
capabilities.header_extensions.push_back(webrtc::RtpExtension(
webrtc::RtpExtension::kTransportSequenceNumberUri,
webrtc::RtpExtension::kTransportSequenceNumberDefaultId));
@@ -1194,8 +1193,8 @@
: voe_audio_transport_(voe_audio_transport),
call_(call),
config_(send_transport),
- send_side_bwe_with_overhead_(webrtc::field_trial::FindFullName(
- "WebRTC-SendSideBwe-WithOverhead") == "Enabled"),
+ send_side_bwe_with_overhead_(
+ webrtc::field_trial::IsEnabled("WebRTC-SendSideBwe-WithOverhead")),
max_send_bitrate_bps_(max_send_bitrate_bps),
rtp_parameters_(CreateRtpParametersWithOneEncoding()) {
RTC_DCHECK_GE(ch, 0);
@@ -1422,8 +1421,7 @@
stream_ = nullptr;
}
RTC_DCHECK(!stream_);
- if (webrtc::field_trial::FindFullName("WebRTC-Audio-SendSideBwe") ==
- "Enabled") {
+ if (webrtc::field_trial::IsEnabled("WebRTC-Audio-SendSideBwe")) {
config_.min_bitrate_bps = kOpusMinBitrateBps;
config_.max_bitrate_bps = kOpusBitrateFbBps;
// TODO(mflodman): Keep testing this and set proper values.
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/bitrate_controller.cc b/webrtc/modules/audio_coding/audio_network_adaptor/bitrate_controller.cc
index df0b470..d8c74cd 100644
--- a/webrtc/modules/audio_coding/audio_network_adaptor/bitrate_controller.cc
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/bitrate_controller.cc
@@ -51,8 +51,8 @@
// Current implementation of BitrateController can only work when
// |metrics.target_audio_bitrate_bps| includes overhead is enabled. This is
// currently governed by the following field trial.
- RTC_DCHECK_EQ("Enabled", webrtc::field_trial::FindFullName(
- "WebRTC-SendSideBwe-WithOverhead"));
+ RTC_DCHECK(
+ webrtc::field_trial::IsEnabled("WebRTC-SendSideBwe-WithOverhead"));
if (config->frame_length_ms)
frame_length_ms_ = *config->frame_length_ms;
int overhead_rate_bps =
diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc
index c031756..75655bb 100644
--- a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc
+++ b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc
@@ -183,8 +183,8 @@
const Config& config,
AudioNetworkAdaptorCreator&& audio_network_adaptor_creator,
std::unique_ptr<SmoothingFilter> bitrate_smoother)
- : send_side_bwe_with_overhead_(webrtc::field_trial::FindFullName(
- "WebRTC-SendSideBwe-WithOverhead") == "Enabled"),
+ : send_side_bwe_with_overhead_(webrtc::field_trial::IsEnabled(
+ "WebRTC-SendSideBwe-WithOverhead")),
packet_loss_rate_(0.0),
inst_(nullptr),
packet_loss_fraction_smoother_(new PacketLossFractionSmoother(
diff --git a/webrtc/modules/audio_coding/neteq/test/neteq_performance_unittest.cc b/webrtc/modules/audio_coding/neteq/test/neteq_performance_unittest.cc
index 23f43b5..e64def4 100644
--- a/webrtc/modules/audio_coding/neteq/test/neteq_performance_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq/test/neteq_performance_unittest.cc
@@ -22,7 +22,7 @@
const int kLossPeriod = 10; // Drop every 10th packet.
const double kDriftFactor = 0.1;
int64_t runtime = webrtc::test::NetEqPerformanceTest::Run(
- webrtc::field_trial::FindFullName("WebRTC-QuickPerfTest") == "Enabled"
+ webrtc::field_trial::IsEnabled("WebRTC-QuickPerfTest")
? kQuickSimulationTimeMs
: kSimulationTimeMs,
kLossPeriod, kDriftFactor);
@@ -40,7 +40,7 @@
const int kLossPeriod = 0; // No losses.
const double kDriftFactor = 0.0; // No clock drift.
int64_t runtime = webrtc::test::NetEqPerformanceTest::Run(
- webrtc::field_trial::FindFullName("WebRTC-QuickPerfTest") == "Enabled"
+ webrtc::field_trial::IsEnabled("WebRTC-QuickPerfTest")
? kQuickSimulationTimeMs
: kSimulationTimeMs,
kLossPeriod, kDriftFactor);
diff --git a/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc b/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc
index 2c683fd..f2338b9 100644
--- a/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc
+++ b/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc
@@ -73,8 +73,8 @@
rampup_uma_stats_updated_(kNumUmaRampupMetrics, false),
event_log_(event_log),
last_rtc_event_log_ms_(-1),
- in_timeout_experiment_(webrtc::field_trial::FindFullName(
- "WebRTC-FeedbackTimeout") == "Enabled") {
+ in_timeout_experiment_(
+ webrtc::field_trial::IsEnabled("WebRTC-FeedbackTimeout")) {
RTC_DCHECK(event_log);
}
diff --git a/webrtc/modules/congestion_controller/delay_based_bwe.cc b/webrtc/modules/congestion_controller/delay_based_bwe.cc
index 1cba9e6..77fda5a 100644
--- a/webrtc/modules/congestion_controller/delay_based_bwe.cc
+++ b/webrtc/modules/congestion_controller/delay_based_bwe.cc
@@ -57,8 +57,7 @@
const char kBweMedianSlopeFilterExperiment[] = "WebRTC-BweMedianSlopeFilter";
bool BitrateEstimateExperimentIsEnabled() {
- return webrtc::field_trial::FindFullName(kBitrateEstimateExperiment) ==
- "Enabled";
+ return webrtc::field_trial::IsEnabled(kBitrateEstimateExperiment);
}
bool TrendlineFilterExperimentIsEnabled() {
diff --git a/webrtc/modules/congestion_controller/transport_feedback_adapter.cc b/webrtc/modules/congestion_controller/transport_feedback_adapter.cc
index fa27cc0..97657d4 100644
--- a/webrtc/modules/congestion_controller/transport_feedback_adapter.cc
+++ b/webrtc/modules/congestion_controller/transport_feedback_adapter.cc
@@ -45,9 +45,8 @@
RtcEventLog* event_log,
Clock* clock,
BitrateController* bitrate_controller)
- : send_side_bwe_with_overhead_(webrtc::field_trial::FindFullName(
- "WebRTC-SendSideBwe-WithOverhead") ==
- "Enabled"),
+ : send_side_bwe_with_overhead_(
+ webrtc::field_trial::IsEnabled("WebRTC-SendSideBwe-WithOverhead")),
transport_overhead_bytes_per_packet_(0),
send_time_history_(clock, kSendTimeHistoryWindowMs),
event_log_(event_log),
diff --git a/webrtc/modules/remote_bitrate_estimator/bwe_defines.cc b/webrtc/modules/remote_bitrate_estimator/bwe_defines.cc
index 69769f0..6c77212 100644
--- a/webrtc/modules/remote_bitrate_estimator/bwe_defines.cc
+++ b/webrtc/modules/remote_bitrate_estimator/bwe_defines.cc
@@ -18,8 +18,7 @@
int GetMinBitrateBps() {
constexpr int kAudioMinBitrateBps = 5000;
constexpr int kMinBitrateBps = 10000;
- if (webrtc::field_trial::FindFullName("WebRTC-Audio-SendSideBwe") ==
- "Enabled") {
+ if (webrtc::field_trial::IsEnabled("WebRTC-Audio-SendSideBwe")) {
return kAudioMinBitrateBps;
}
return kMinBitrateBps;
diff --git a/webrtc/modules/remote_bitrate_estimator/test/bwe_test.cc b/webrtc/modules/remote_bitrate_estimator/test/bwe_test.cc
index b243cac..306cac9 100644
--- a/webrtc/modules/remote_bitrate_estimator/test/bwe_test.cc
+++ b/webrtc/modules/remote_bitrate_estimator/test/bwe_test.cc
@@ -167,7 +167,7 @@
// TODO(holmer): Support different feedback intervals for different flows.
// For quick perf tests ignore passed timeout
- if (field_trial::FindFullName("WebRTC-QuickPerfTest") == "Enabled") {
+ if (field_trial::IsEnabled("WebRTC-QuickPerfTest")) {
time_ms = kQuickTestTimeoutMs;
}
if (!uplink_.senders().empty()) {
@@ -380,7 +380,7 @@
PrintResults(capacity_kbps, total_utilization.GetBitrateStats(),
flow_delay_ms, flow_throughput_kbps);
- if (field_trial::FindFullName("WebRTC-QuickPerfTest") != "Enabled") {
+ if (field_trial::IsEnabled("WebRTC-QuickPerfTest")) {
for (int i : all_flow_ids) {
metric_recorders[i]->PlotThroughputHistogram(
title, flow_name, static_cast<int>(num_media_flows), 0);
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
index 12be6d6..44d6ff8 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
@@ -124,8 +124,7 @@
retransmission_rate_limiter_(retransmission_rate_limiter),
overhead_observer_(overhead_observer),
send_side_bwe_with_overhead_(
- webrtc::field_trial::FindFullName(
- "WebRTC-SendSideBwe-WithOverhead") == "Enabled") {
+ webrtc::field_trial::IsEnabled("WebRTC-SendSideBwe-WithOverhead")) {
// This random initialization is not intended to be cryptographic strong.
timestamp_offset_ = random_.Rand<uint32_t>();
// Random start, 16 bits. Can't be 0.
diff --git a/webrtc/pc/peerconnection.cc b/webrtc/pc/peerconnection.cc
index c3ec0b2..48ffebe 100644
--- a/webrtc/pc/peerconnection.cc
+++ b/webrtc/pc/peerconnection.cc
@@ -2510,8 +2510,8 @@
// by experiment.
if (configuration.disable_ipv6) {
portallocator_flags &= ~(cricket::PORTALLOCATOR_ENABLE_IPV6);
- } else if (webrtc::field_trial::FindFullName("WebRTC-IPv6Default") ==
- "Disabled") {
+ } else if (webrtc::field_trial::FindFullName("WebRTC-IPv6Default")
+ .find("Disabled") == 0) {
portallocator_flags &= ~(cricket::PORTALLOCATOR_ENABLE_IPV6);
}
diff --git a/webrtc/sdk/android/src/jni/androidmediaencoder_jni.cc b/webrtc/sdk/android/src/jni/androidmediaencoder_jni.cc
index 1a510a5..8fc9e7b 100644
--- a/webrtc/sdk/android/src/jni/androidmediaencoder_jni.cc
+++ b/webrtc/sdk/android/src/jni/androidmediaencoder_jni.cc
@@ -1298,11 +1298,11 @@
const std::vector<cricket::VideoCodec>&
MediaCodecVideoEncoderFactory::supported_codecs() const {
- if (webrtc::field_trial::FindFullName(kH264HighProfileFieldTrial) ==
- "Enabled")
+ if (webrtc::field_trial::IsEnabled(kH264HighProfileFieldTrial)) {
return supported_codecs_with_h264_hp_;
- else
+ } else {
return supported_codecs_;
+ }
}
void MediaCodecVideoEncoderFactory::DestroyVideoEncoder(
diff --git a/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc b/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc
index 4027399..6fcb182 100644
--- a/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc
+++ b/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc
@@ -22,7 +22,7 @@
const char kHighProfileExperiment[] = "WebRTC-H264HighProfile";
bool IsHighProfileEnabled() {
- return field_trial::FindFullName(kHighProfileExperiment) == "Enabled";
+ return field_trial::IsEnabled(kHighProfileExperiment);
}
}
diff --git a/webrtc/system_wrappers/include/field_trial.h b/webrtc/system_wrappers/include/field_trial.h
index 62fbfd1..d649191 100644
--- a/webrtc/system_wrappers/include/field_trial.h
+++ b/webrtc/system_wrappers/include/field_trial.h
@@ -62,6 +62,10 @@
// Note: To keep things tidy append all the trial names with WebRTC.
std::string FindFullName(const std::string& name);
+// Convenience method, returns true iff FindFullName(name) return a string that
+// starts with "Enabled".
+bool IsEnabled(const char* name);
+
} // namespace field_trial
} // namespace webrtc
diff --git a/webrtc/system_wrappers/source/field_trial_default.cc b/webrtc/system_wrappers/source/field_trial_default.cc
index 0e2c286..e5ed247 100644
--- a/webrtc/system_wrappers/source/field_trial_default.cc
+++ b/webrtc/system_wrappers/source/field_trial_default.cc
@@ -53,6 +53,10 @@
return std::string();
}
+bool IsEnabled(const char* name) {
+ return FindFullName(name).find("Enabled") == 0;
+}
+
// Optionally initialize field trial from a string.
void InitFieldTrialsFromString(const char* trials_string) {
trials_init_string = trials_string;
diff --git a/webrtc/test/rtp_rtcp_observer.h b/webrtc/test/rtp_rtcp_observer.h
index 4856de7..f3c95a6 100644
--- a/webrtc/test/rtp_rtcp_observer.h
+++ b/webrtc/test/rtp_rtcp_observer.h
@@ -43,7 +43,7 @@
virtual ~RtpRtcpObserver() {}
virtual bool Wait() {
- if (field_trial::FindFullName("WebRTC-QuickPerfTest") == "Enabled") {
+ if (field_trial::IsEnabled("WebRTC-QuickPerfTest")) {
observation_complete_.Wait(kShortTimeoutMs);
return true;
}
diff --git a/webrtc/video/video_quality_test.cc b/webrtc/video/video_quality_test.cc
index 8389cfc..affadc0 100644
--- a/webrtc/video/video_quality_test.cc
+++ b/webrtc/video/video_quality_test.cc
@@ -1441,8 +1441,7 @@
// abort.
VideoStream& selected_stream = params_.ss.streams[params_.ss.selected_stream];
- bool is_quick_test_enabled =
- field_trial::FindFullName("WebRTC-QuickPerfTest") == "Enabled";
+ bool is_quick_test_enabled = field_trial::IsEnabled("WebRTC-QuickPerfTest");
VideoAnalyzer analyzer(
&send_transport, params_.analyzer.test_label,
diff --git a/webrtc/video/video_send_stream.cc b/webrtc/video/video_send_stream.cc
index 466b5c2..c777ce8 100644
--- a/webrtc/video/video_send_stream.cc
+++ b/webrtc/video/video_send_stream.cc
@@ -757,8 +757,8 @@
const VideoSendStream::Config* config,
int initial_encoder_max_bitrate,
std::map<uint32_t, RtpState> suspended_ssrcs)
- : send_side_bwe_with_overhead_(webrtc::field_trial::FindFullName(
- "WebRTC-SendSideBwe-WithOverhead") == "Enabled"),
+ : send_side_bwe_with_overhead_(
+ webrtc::field_trial::IsEnabled("WebRTC-SendSideBwe-WithOverhead")),
stats_proxy_(stats_proxy),
config_(config),
suspended_ssrcs_(std::move(suspended_ssrcs)),