Enable Video-QualityScaling experiment by default

Bug: webrtc:12401
Change-Id: Iebf3130e785892bb9fddf1012bc46027a21085a4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/204000
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33091}
This commit is contained in:
Ilya Nikolaevskiy 2021-01-28 14:58:24 +01:00 committed by Commit Bot
parent 54b925cfc2
commit 066b5b6ed7
4 changed files with 15 additions and 9 deletions

View file

@ -115,8 +115,7 @@ INSTANTIATE_TEST_SUITE_P(
FieldTrials, FieldTrials,
QualityScalerTest, QualityScalerTest,
::testing::Values( ::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) { TEST_P(QualityScalerTest, DownscalesAfterContinuousFramedrop) {
task_queue_.SendTask([this] { TriggerScale(kScaleDown); }, RTC_FROM_HERE); task_queue_.SendTask([this] { TriggerScale(kScaleDown); }, RTC_FROM_HERE);

View file

@ -19,6 +19,8 @@
namespace webrtc { namespace webrtc {
namespace { namespace {
constexpr char kFieldTrial[] = "WebRTC-Video-QualityScaling"; 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 kMinQp = 1;
constexpr int kMaxVp8Qp = 127; constexpr int kMaxVp8Qp = 127;
constexpr int kMaxVp9Qp = 255; constexpr int kMaxVp9Qp = 255;
@ -38,14 +40,16 @@ absl::optional<VideoEncoder::QpThresholds> GetThresholds(int low,
} // namespace } // namespace
bool QualityScalingExperiment::Enabled() { bool QualityScalingExperiment::Enabled() {
return webrtc::field_trial::IsEnabled(kFieldTrial); return !webrtc::field_trial::IsDisabled(kFieldTrial);
} }
absl::optional<QualityScalingExperiment::Settings> absl::optional<QualityScalingExperiment::Settings>
QualityScalingExperiment::ParseSettings() { 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()) if (group.empty())
return absl::nullopt; group = kDefaultQualityScalingSetttings;
Settings s; Settings s;
if (sscanf(group.c_str(), "Enabled-%d,%d,%d,%d,%d,%d,%d,%d,%f,%f,%d", if (sscanf(group.c_str(), "Enabled-%d,%d,%d,%d,%d,%d,%d,%d,%f,%f,%d",

View file

@ -38,9 +38,9 @@ void ExpectEqualConfig(QualityScalingExperiment::Config a,
} }
} // namespace } // namespace
TEST(QualityScalingExperimentTest, DisabledWithoutFieldTrial) { TEST(QualityScalingExperimentTest, DefaultEnabledWithoutFieldTrial) {
webrtc::test::ScopedFieldTrials field_trials(""); webrtc::test::ScopedFieldTrials field_trials("");
EXPECT_FALSE(QualityScalingExperiment::Enabled()); EXPECT_TRUE(QualityScalingExperiment::Enabled());
} }
TEST(QualityScalingExperimentTest, EnabledWithFieldTrial) { TEST(QualityScalingExperimentTest, EnabledWithFieldTrial) {
@ -59,9 +59,10 @@ TEST(QualityScalingExperimentTest, ParseSettings) {
ExpectEqualSettings(kExpected, *settings); ExpectEqualSettings(kExpected, *settings);
} }
TEST(QualityScalingExperimentTest, ParseSettingsFailsWithoutFieldTrial) { TEST(QualityScalingExperimentTest, ParseSettingsUsesDefaultsWithoutFieldTrial) {
webrtc::test::ScopedFieldTrials field_trials(""); webrtc::test::ScopedFieldTrials field_trials("");
EXPECT_FALSE(QualityScalingExperiment::ParseSettings()); // Uses some default hard coded values.
EXPECT_TRUE(QualityScalingExperiment::ParseSettings());
} }
TEST(QualityScalingExperimentTest, ParseSettingsFailsWithInvalidFieldTrial) { TEST(QualityScalingExperimentTest, ParseSettingsFailsWithInvalidFieldTrial) {

View file

@ -5517,6 +5517,8 @@ TEST_F(VideoStreamEncoderTest, RampsUpInQualityWhenBwIsHigh) {
TEST_F(VideoStreamEncoderTest, TEST_F(VideoStreamEncoderTest,
QualityScalerAdaptationsRemovedWhenQualityScalingDisabled) { QualityScalerAdaptationsRemovedWhenQualityScalingDisabled) {
webrtc::test::ScopedFieldTrials field_trials(
"WebRTC-Video-QualityScaling/Disabled/");
AdaptingFrameForwarder source(&time_controller_); AdaptingFrameForwarder source(&time_controller_);
source.set_adaptation_enabled(true); source.set_adaptation_enabled(true);
video_stream_encoder_->SetSource(&source, video_stream_encoder_->SetSource(&source,