diff --git a/modules/video_coding/utility/quality_scaler_unittest.cc b/modules/video_coding/utility/quality_scaler_unittest.cc index d5b22a8a29..d92cffc5bf 100644 --- a/modules/video_coding/utility/quality_scaler_unittest.cc +++ b/modules/video_coding/utility/quality_scaler_unittest.cc @@ -115,8 +115,7 @@ INSTANTIATE_TEST_SUITE_P( FieldTrials, QualityScalerTest, ::testing::Values( - "WebRTC-Video-QualityScaling/Enabled-1,2,3,4,5,6,7,8,0.9,0.99,1/", - "")); + "WebRTC-Video-QualityScaling/Enabled-1,2,3,4,5,6,7,8,0.9,0.99,1/")); TEST_P(QualityScalerTest, DownscalesAfterContinuousFramedrop) { task_queue_.SendTask([this] { TriggerScale(kScaleDown); }, RTC_FROM_HERE); diff --git a/rtc_base/experiments/quality_scaling_experiment.cc b/rtc_base/experiments/quality_scaling_experiment.cc index ca58ba858a..64347fe9f5 100644 --- a/rtc_base/experiments/quality_scaling_experiment.cc +++ b/rtc_base/experiments/quality_scaling_experiment.cc @@ -19,6 +19,8 @@ namespace webrtc { namespace { constexpr char kFieldTrial[] = "WebRTC-Video-QualityScaling"; +constexpr char kDefaultQualityScalingSetttings[] = + "Enabled-29,95,149,205,24,37,26,36,0.9995,0.9999,1"; constexpr int kMinQp = 1; constexpr int kMaxVp8Qp = 127; constexpr int kMaxVp9Qp = 255; @@ -38,14 +40,16 @@ absl::optional GetThresholds(int low, } // namespace bool QualityScalingExperiment::Enabled() { - return webrtc::field_trial::IsEnabled(kFieldTrial); + return !webrtc::field_trial::IsDisabled(kFieldTrial); } absl::optional QualityScalingExperiment::ParseSettings() { - const std::string group = webrtc::field_trial::FindFullName(kFieldTrial); + std::string group = webrtc::field_trial::FindFullName(kFieldTrial); + // TODO(http:crbug.org/webrtc/12401): Completely remove the experiment code + // after few releases. if (group.empty()) - return absl::nullopt; + group = kDefaultQualityScalingSetttings; Settings s; if (sscanf(group.c_str(), "Enabled-%d,%d,%d,%d,%d,%d,%d,%d,%f,%f,%d", diff --git a/rtc_base/experiments/quality_scaling_experiment_unittest.cc b/rtc_base/experiments/quality_scaling_experiment_unittest.cc index 7a345b629f..2ecdd7c49e 100644 --- a/rtc_base/experiments/quality_scaling_experiment_unittest.cc +++ b/rtc_base/experiments/quality_scaling_experiment_unittest.cc @@ -38,9 +38,9 @@ void ExpectEqualConfig(QualityScalingExperiment::Config a, } } // namespace -TEST(QualityScalingExperimentTest, DisabledWithoutFieldTrial) { +TEST(QualityScalingExperimentTest, DefaultEnabledWithoutFieldTrial) { webrtc::test::ScopedFieldTrials field_trials(""); - EXPECT_FALSE(QualityScalingExperiment::Enabled()); + EXPECT_TRUE(QualityScalingExperiment::Enabled()); } TEST(QualityScalingExperimentTest, EnabledWithFieldTrial) { @@ -59,9 +59,10 @@ TEST(QualityScalingExperimentTest, ParseSettings) { ExpectEqualSettings(kExpected, *settings); } -TEST(QualityScalingExperimentTest, ParseSettingsFailsWithoutFieldTrial) { +TEST(QualityScalingExperimentTest, ParseSettingsUsesDefaultsWithoutFieldTrial) { webrtc::test::ScopedFieldTrials field_trials(""); - EXPECT_FALSE(QualityScalingExperiment::ParseSettings()); + // Uses some default hard coded values. + EXPECT_TRUE(QualityScalingExperiment::ParseSettings()); } TEST(QualityScalingExperimentTest, ParseSettingsFailsWithInvalidFieldTrial) { diff --git a/video/video_stream_encoder_unittest.cc b/video/video_stream_encoder_unittest.cc index aed1625f9e..8220daa465 100644 --- a/video/video_stream_encoder_unittest.cc +++ b/video/video_stream_encoder_unittest.cc @@ -5517,6 +5517,8 @@ TEST_F(VideoStreamEncoderTest, RampsUpInQualityWhenBwIsHigh) { TEST_F(VideoStreamEncoderTest, QualityScalerAdaptationsRemovedWhenQualityScalingDisabled) { + webrtc::test::ScopedFieldTrials field_trials( + "WebRTC-Video-QualityScaling/Disabled/"); AdaptingFrameForwarder source(&time_controller_); source.set_adaptation_enabled(true); video_stream_encoder_->SetSource(&source,