Revert "Enable WebRTC-Vp9DependencyDescriptor by default"

This reverts commit 472707150662bc4e174072e445938e5c405aa884.

Reason for revert: Suspected cause for crashes in perf tests.

Original change's description:
> Enable WebRTC-Vp9DependencyDescriptor by default
>
> Bug: chromium:1178444
> Change-Id: I420e1e9b3c557b8b186cb08c15b962a779e1ca17
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226941
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34584}

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:1178444
Change-Id: I582d6d1c9d2091ca37b0943235b5cea8d4e2790d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227282
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34619}
diff --git a/call/rtp_payload_params.cc b/call/rtp_payload_params.cc
index af3874b..c3387f1 100644
--- a/call/rtp_payload_params.cc
+++ b/call/rtp_payload_params.cc
@@ -133,8 +133,8 @@
           absl::StartsWith(trials.Lookup("WebRTC-GenericPictureId"),
                            "Enabled")),
       simulate_generic_vp9_(
-          !absl::StartsWith(trials.Lookup("WebRTC-Vp9DependencyDescriptor"),
-                            "Disabled")) {
+          absl::StartsWith(trials.Lookup("WebRTC-Vp9DependencyDescriptor"),
+                           "Enabled")) {
   for (auto& spatial_layer : last_shared_frame_id_)
     spatial_layer.fill(-1);
 
diff --git a/call/rtp_payload_params_unittest.cc b/call/rtp_payload_params_unittest.cc
index 59c8f23..7db38db 100644
--- a/call/rtp_payload_params_unittest.cc
+++ b/call/rtp_payload_params_unittest.cc
@@ -463,9 +463,17 @@
   ConvertAndCheck(1, 20, VideoFrameType::kVideoFrameDelta, kNoSync, {10, 15});
 }
 
-TEST(RtpPayloadParamsVp9ToGenericTest, NoScalability) {
-  RtpPayloadState state;
-  RtpPayloadParams params(/*ssrc=*/123, &state, FieldTrialBasedConfig());
+class RtpPayloadParamsVp9ToGenericTest : public ::testing::Test {
+ protected:
+  RtpPayloadParamsVp9ToGenericTest()
+      : field_trials_("WebRTC-Vp9DependencyDescriptor/Enabled/") {}
+
+  test::ExplicitKeyValueConfig field_trials_;
+  RtpPayloadState state_;
+};
+
+TEST_F(RtpPayloadParamsVp9ToGenericTest, NoScalability) {
+  RtpPayloadParams params(/*ssrc=*/123, &state_, field_trials_);
 
   EncodedImage encoded_image;
   CodecSpecificInfo codec_info;
@@ -512,13 +520,12 @@
   EXPECT_THAT(header.generic->chain_diffs, ElementsAre(3 - 1));
 }
 
-TEST(RtpPayloadParamsVp9ToGenericTest, TemporalScalabilityWith2Layers) {
+TEST_F(RtpPayloadParamsVp9ToGenericTest, TemporalScalabilityWith2Layers) {
   // Test with 2 temporal layers structure that is not used by webrtc:
   //    1---3   5
   //   /   /   /   ...
   //  0---2---4---
-  RtpPayloadState state;
-  RtpPayloadParams params(/*ssrc=*/123, &state, FieldTrialBasedConfig());
+  RtpPayloadParams params(/*ssrc=*/123, &state_, field_trials_);
 
   EncodedImage image;
   CodecSpecificInfo info;
@@ -617,11 +624,10 @@
   EXPECT_THAT(headers[5].generic->chain_diffs, ElementsAre(2));
 }
 
-TEST(RtpPayloadParamsVp9ToGenericTest, TemporalScalabilityWith3Layers) {
+TEST_F(RtpPayloadParamsVp9ToGenericTest, TemporalScalabilityWith3Layers) {
   // Test with 3 temporal layers structure that is not used by webrtc, but used
   // by chromium: https://imgur.com/pURAGvp
-  RtpPayloadState state;
-  RtpPayloadParams params(/*ssrc=*/123, &state, FieldTrialBasedConfig());
+  RtpPayloadParams params(/*ssrc=*/123, &state_, field_trials_);
 
   EncodedImage image;
   CodecSpecificInfo info;
@@ -762,12 +768,11 @@
   EXPECT_THAT(headers[8].generic->chain_diffs, ElementsAre(8));
 }
 
-TEST(RtpPayloadParamsVp9ToGenericTest, SpatialScalabilityKSvc) {
+TEST_F(RtpPayloadParamsVp9ToGenericTest, SpatialScalabilityKSvc) {
   //  1---3--
   //  |     ...
   //  0---2--
-  RtpPayloadState state;
-  RtpPayloadParams params(/*ssrc=*/123, &state, FieldTrialBasedConfig());
+  RtpPayloadParams params(/*ssrc=*/123, &state_, field_trials_);
 
   EncodedImage image;
   CodecSpecificInfo info;
diff --git a/call/rtp_video_sender.cc b/call/rtp_video_sender.cc
index 0e29a4c..5b6712d 100644
--- a/call/rtp_video_sender.cc
+++ b/call/rtp_video_sender.cc
@@ -367,9 +367,9 @@
           field_trials_.Lookup("WebRTC-Video-UseFrameRateForOverhead"),
           "Enabled")),
       has_packet_feedback_(TransportSeqNumExtensionConfigured(rtp_config)),
-      simulate_vp9_structure_(!absl::StartsWith(
+      simulate_vp9_structure_(absl::StartsWith(
           field_trials_.Lookup("WebRTC-Vp9DependencyDescriptor"),
-          "Disabled")),
+          "Enabled")),
       active_(false),
       suspended_ssrcs_(std::move(suspended_ssrcs)),
       fec_controller_(std::move(fec_controller)),
diff --git a/call/rtp_video_sender_unittest.cc b/call/rtp_video_sender_unittest.cc
index a45473f..334d97c 100644
--- a/call/rtp_video_sender_unittest.cc
+++ b/call/rtp_video_sender_unittest.cc
@@ -772,6 +772,8 @@
 
 TEST(RtpVideoSenderTest,
      SupportsDependencyDescriptorForVp9NotProvidedByEncoder) {
+  test::ScopedFieldTrials field_trials(
+      "WebRTC-Vp9DependencyDescriptor/Enabled/");
   RtpVideoSenderTestFixture test({kSsrc1}, {}, kPayloadType, {});
   test.router()->SetActive(true);
 
diff --git a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc
index 88d3b7d..f29ad92 100644
--- a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc
+++ b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc
@@ -228,8 +228,8 @@
       ss_info_needed_(false),
       force_all_active_layers_(false),
       use_svc_controller_(
-          !absl::StartsWith(trials.Lookup("WebRTC-Vp9DependencyDescriptor"),
-                            "Disabled")),
+          absl::StartsWith(trials.Lookup("WebRTC-Vp9DependencyDescriptor"),
+                           "Enabled")),
       is_flexible_mode_(false),
       variable_framerate_experiment_(ParseVariableFramerateConfig(trials)),
       variable_framerate_controller_(
diff --git a/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc b/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc
index 41e349e..e965384 100644
--- a/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc
+++ b/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc
@@ -257,6 +257,8 @@
 }
 
 TEST(Vp9ImplTest, EncodeAttachesTemplateStructureWithSvcController) {
+  test::ScopedFieldTrials override_field_trials(
+      "WebRTC-Vp9DependencyDescriptor/Enabled/");
   std::unique_ptr<VideoEncoder> encoder = VP9Encoder::Create();
   VideoCodec codec_settings = DefaultCodecSettings();
   EXPECT_EQ(encoder->InitEncode(&codec_settings, kSettings),
@@ -299,6 +301,8 @@
 }
 
 TEST(Vp9ImplTest, EncodeTemporalLayersWithSvcController) {
+  test::ScopedFieldTrials override_field_trials(
+      "WebRTC-Vp9DependencyDescriptor/Enabled/");
   std::unique_ptr<VideoEncoder> encoder = VP9Encoder::Create();
   VideoCodec codec_settings = DefaultCodecSettings();
   codec_settings.VP9()->numberOfTemporalLayers = 2;
@@ -346,6 +350,8 @@
 }
 
 TEST(Vp9ImplTest, EncodeSpatialLayersWithSvcController) {
+  test::ScopedFieldTrials override_field_trials(
+      "WebRTC-Vp9DependencyDescriptor/Enabled/");
   std::unique_ptr<VideoEncoder> encoder = VP9Encoder::Create();
   VideoCodec codec_settings = DefaultCodecSettings();
   codec_settings.VP9()->numberOfSpatialLayers = 2;
@@ -481,6 +487,8 @@
 }
 
 TEST(Vp9ImplTest, EnableDisableSpatialLayersWithSvcController) {
+  test::ScopedFieldTrials override_field_trials(
+      "WebRTC-Vp9DependencyDescriptor/Enabled/");
   const int num_spatial_layers = 3;
   // Configure encoder to produce 3 spatial layers. Encode frames of layer 0
   // then enable layer 1 and encode more frames and so on.
@@ -555,6 +563,8 @@
 }
 
 TEST(Vp9ImplTest, SpatialUpswitchNotAtGOFBoundary) {
+  test::ScopedFieldTrials override_field_trials(
+      "WebRTC-Vp9DependencyDescriptor/Enabled/");
   std::unique_ptr<VideoEncoder> encoder = VP9Encoder::Create();
   VideoCodec codec_settings = DefaultCodecSettings();
   ConfigureSvc(codec_settings, /*num_spatial_layers=*/3,
@@ -753,6 +763,8 @@
 TEST(Vp9ImplTest, DisableEnableBaseLayerWithSvcControllerTriggersKeyFrame) {
   // Configure encoder to produce N spatial layers. Encode frames for all
   // layers. Then disable all but the last layer. Then reenable all back again.
+  test::ScopedFieldTrials override_field_trials(
+      "WebRTC-Vp9DependencyDescriptor/Enabled/");
   const size_t num_spatial_layers = 3;
   const size_t num_temporal_layers = 3;
   // Must not be multiple of temporal period to exercise all code paths.
@@ -2342,17 +2354,8 @@
                            absl::WrapUnique<LibvpxInterface>(vpx), trials);
 
   VideoCodec settings = DefaultCodecSettings();
-  constexpr int kNumSpatialLayers = 3;
-  constexpr int kNumTemporalLayers = 3;
-  ConfigureSvc(settings, kNumSpatialLayers, kNumTemporalLayers);
-  VideoBitrateAllocation bitrate_allocation;
-  for (int si = 0; si < kNumSpatialLayers; ++si) {
-    for (int ti = 0; ti < kNumTemporalLayers; ++ti) {
-      uint32_t bitrate_bps =
-          settings.spatialLayers[si].targetBitrate * 1'000 / kNumTemporalLayers;
-      bitrate_allocation.SetBitrate(si, ti, bitrate_bps);
-    }
-  }
+  const int kNumSpatialLayers = 3;
+  ConfigureSvc(settings, kNumSpatialLayers, /*num_temporal_layers=*/3);
   vpx_image_t img;
 
   // Speed settings per spatial layer, for TL0.
@@ -2364,11 +2367,6 @@
   const int kLoopFilter[VPX_MAX_LAYERS] = {1, 0, 0};
 
   ON_CALL(*vpx, img_wrap).WillByDefault(GetWrapImageFunction(&img));
-  ON_CALL(*vpx, codec_enc_init)
-      .WillByDefault(WithArg<0>([](vpx_codec_ctx_t* ctx) {
-        memset(ctx, 0, sizeof(*ctx));
-        return VPX_CODEC_OK;
-      }));
   ON_CALL(*vpx, codec_enc_config_default)
       .WillByDefault(DoAll(WithArg<1>([](vpx_codec_enc_cfg_t* cfg) {
                              memset(cfg, 0, sizeof(vpx_codec_enc_cfg_t));
@@ -2393,9 +2391,6 @@
 
   EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, encoder.InitEncode(&settings, kSettings));
 
-  encoder.SetRates(VideoEncoder::RateControlParameters(bitrate_allocation,
-                                                       settings.maxFramerate));
-
   MockEncodedImageCallback callback;
   encoder.RegisterEncodeCompleteCallback(&callback);
   auto frame_generator = test::CreateSquareFrameGenerator(
diff --git a/test/fuzzers/vp9_encoder_references_fuzzer.cc b/test/fuzzers/vp9_encoder_references_fuzzer.cc
index eba4db5..9c793ae 100644
--- a/test/fuzzers/vp9_encoder_references_fuzzer.cc
+++ b/test/fuzzers/vp9_encoder_references_fuzzer.cc
@@ -174,6 +174,7 @@
   ~FieldTrials() override = default;
   std::string Lookup(absl::string_view key) const override {
     static constexpr absl::string_view kBinaryFieldTrials[] = {
+        "WebRTC-Vp9DependencyDescriptor",
         "WebRTC-Vp9ExternalRefCtrl",
         "WebRTC-Vp9IssueKeyFrameOnLayerDeactivation",
     };