diff --git a/webrtc/call/call_perf_tests.cc b/webrtc/call/call_perf_tests.cc index 570b19b4ce..a510483690 100644 --- a/webrtc/call/call_perf_tests.cc +++ b/webrtc/call/call_perf_tests.cc @@ -290,7 +290,7 @@ void CallPerfTest::TestAudioVideoSync(FecMode fec, 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 ad3a4be0c6..65c1ba99e3 100644 --- a/webrtc/media/engine/internalencoderfactory.cc +++ b/webrtc/media/engine/internalencoderfactory.cc @@ -24,7 +24,7 @@ namespace { 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 8378ca342d..f1cd2ced45 100644 --- a/webrtc/media/engine/simulcast.cc +++ b/webrtc/media/engine/simulcast.cc @@ -299,8 +299,7 @@ bool ScreenshareLayerConfig::FromFieldTrialGroup( } 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 5aac3f81ac..11458d1ed0 100644 --- a/webrtc/media/engine/webrtcvideocapturer.cc +++ b/webrtc/media/engine/webrtcvideocapturer.cc @@ -230,12 +230,8 @@ void WebRtcVideoCapturer::OnSinkWantsChanged(const rtc::VideoSinkWants& wants) { // 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 c192b52402..39bec6472c 100644 --- a/webrtc/media/engine/webrtcvideoengine2.cc +++ b/webrtc/media/engine/webrtcvideoengine2.cc @@ -50,7 +50,7 @@ namespace { 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 e0d9884e8f..d774f788b7 100644 --- a/webrtc/media/engine/webrtcvoiceengine.cc +++ b/webrtc/media/engine/webrtcvoiceengine.cc @@ -982,8 +982,7 @@ RtpCapabilities WebRtcVoiceEngine::GetCapabilities() const { 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 @@ class WebRtcVoiceMediaChannel::WebRtcAudioSendStream : 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 @@ class WebRtcVoiceMediaChannel::WebRtcAudioSendStream 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 df0b470116..d8c74cd3ca 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 @@ void BitrateController::MakeDecision( // 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 c031756696..75655bb015 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 @@ AudioEncoderOpus::AudioEncoderOpus( const Config& config, AudioNetworkAdaptorCreator&& audio_network_adaptor_creator, std::unique_ptr 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 23f43b5426..e64def4391 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 @@ TEST(NetEqPerformanceTest, Run) { 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 @@ TEST(NetEqPerformanceTest, RunClean) { 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 2c683fd34b..f2338b9c00 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 @@ SendSideBandwidthEstimation::SendSideBandwidthEstimation(RtcEventLog* event_log) 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 1cba9e6aa1..77fda5a205 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 kBweTrendlineFilterExperiment[] = "WebRTC-BweTrendlineFilter"; 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 fa27cc0b18..97657d4c3f 100644 --- a/webrtc/modules/congestion_controller/transport_feedback_adapter.cc +++ b/webrtc/modules/congestion_controller/transport_feedback_adapter.cc @@ -45,9 +45,8 @@ TransportFeedbackAdapter::TransportFeedbackAdapter( 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 69769f035b..6c772120c8 100644 --- a/webrtc/modules/remote_bitrate_estimator/bwe_defines.cc +++ b/webrtc/modules/remote_bitrate_estimator/bwe_defines.cc @@ -18,8 +18,7 @@ namespace congestion_controller { 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 b243cacf0f..306cac9e15 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 @@ void BweTest::RunFor(int64_t time_ms) { // 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 @@ void BweTest::RunFairnessTest(BandwidthEstimatorType bwe_type, 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(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 12be6d622e..44d6ff88e2 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc +++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc @@ -124,8 +124,7 @@ RTPSender::RTPSender( 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(); // Random start, 16 bits. Can't be 0. diff --git a/webrtc/pc/peerconnection.cc b/webrtc/pc/peerconnection.cc index c3ec0b2aad..48ffebe222 100644 --- a/webrtc/pc/peerconnection.cc +++ b/webrtc/pc/peerconnection.cc @@ -2510,8 +2510,8 @@ bool PeerConnection::InitializePortAllocator_n( // 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 1a510a5ae4..8fc9e7b0ce 100644 --- a/webrtc/sdk/android/src/jni/androidmediaencoder_jni.cc +++ b/webrtc/sdk/android/src/jni/androidmediaencoder_jni.cc @@ -1298,11 +1298,11 @@ webrtc::VideoEncoder* MediaCodecVideoEncoderFactory::CreateVideoEncoder( const std::vector& 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 40273991be..6fcb182a6c 100644 --- a/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc +++ b/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc @@ -22,7 +22,7 @@ namespace { 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 62fbfd1a50..d649191563 100644 --- a/webrtc/system_wrappers/include/field_trial.h +++ b/webrtc/system_wrappers/include/field_trial.h @@ -62,6 +62,10 @@ namespace field_trial { // 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 0e2c286117..e5ed2476ab 100644 --- a/webrtc/system_wrappers/source/field_trial_default.cc +++ b/webrtc/system_wrappers/source/field_trial_default.cc @@ -53,6 +53,10 @@ std::string FindFullName(const std::string& name) { 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 4856de7905..f3c95a64cd 100644 --- a/webrtc/test/rtp_rtcp_observer.h +++ b/webrtc/test/rtp_rtcp_observer.h @@ -43,7 +43,7 @@ class RtpRtcpObserver { 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 8389cfcc5f..affadc0a76 100644 --- a/webrtc/video/video_quality_test.cc +++ b/webrtc/video/video_quality_test.cc @@ -1441,8 +1441,7 @@ void VideoQualityTest::RunWithAnalyzer(const Params& params) { // 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 466b5c2f00..c777ce863d 100644 --- a/webrtc/video/video_send_stream.cc +++ b/webrtc/video/video_send_stream.cc @@ -757,8 +757,8 @@ VideoSendStreamImpl::VideoSendStreamImpl( const VideoSendStream::Config* config, int initial_encoder_max_bitrate, std::map 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)),