Revert "Exercise AV1 simulcast paths in tests."
This reverts commit c8ab6c449c84f17fabf8da58456d396bdb5da762.
Reason for revert: new test fails to run upstream
Original change's description:
> Exercise AV1 simulcast paths in tests.
>
> This is something we get "for free" with the
> "WebRTC-AllowDisablingLegacyScalability" field trial that has been
> wired up to support VP9 simulcast.
>
> This test works and passes, however the ramp-up time is pretty bad.
> - VP9 simulcast takes approximately 4 seconds to ramp up.
> - VP9 SVC takes approximately 16 seconds to ramp up.
> - AV1 simulcast takes approximately 22 seconds to ramp up.
>
> A TODO is added (webrtc:15006) and the test is given extra timeout,
> a full minute to get bytes flowing on all layers.
>
> Despite ramp-up being bad, it's important to test that AV1 simulcast
> is in fact working to avoid regressions due to obsolete assumptions
> about which codec do or do not support simulcast. AV1 simulcast is an
> opt-in feature so there is no harm in the API not being perfect yet.
>
> Bug: webrtc:15005, webrtc:15006
> Change-Id: If0158d172647f0462bd6db802406249d93e01871
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/297982
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Commit-Queue: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#39586}
Bug: webrtc:15005, webrtc:15006
Change-Id: I7da6df8bb51219e7d0acfd3b62b4ec08e25bfdc7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/298049
Owners-Override: Jeremy Leconte <jleconte@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#39595}
diff --git a/pc/peer_connection_simulcast_unittest.cc b/pc/peer_connection_simulcast_unittest.cc
index c21c11d..8e110aa 100644
--- a/pc/peer_connection_simulcast_unittest.cc
+++ b/pc/peer_connection_simulcast_unittest.cc
@@ -1506,81 +1506,4 @@
EXPECT_THAT(*outbound_rtps[2]->scalability_mode, StrEq("L1T3"));
}
-// TODO(https://crbug.com/webrtc/15005): A field trial shouldn't be needed to
-// get spec-compliant behavior! The same field trial is also used for VP9
-// simulcast (https://crbug.com/webrtc/14884).
-TEST_F(PeerConnectionSimulcastWithMediaFlowTests,
- SendingThreeEncodings_AV1_Simulcast) {
- test::ScopedFieldTrials field_trials(
- "WebRTC-AllowDisablingLegacyScalability/Enabled/");
-
- rtc::scoped_refptr<PeerConnectionTestWrapper> local_pc_wrapper = CreatePc();
- rtc::scoped_refptr<PeerConnectionTestWrapper> remote_pc_wrapper = CreatePc();
- ExchangeIceCandidates(local_pc_wrapper, remote_pc_wrapper);
-
- std::vector<SimulcastLayer> layers =
- CreateLayers({"f", "h", "q"}, /*active=*/true);
- rtc::scoped_refptr<RtpTransceiverInterface> transceiver =
- AddTransceiverWithSimulcastLayers(local_pc_wrapper, remote_pc_wrapper,
- layers);
- std::vector<RtpCodecCapability> codecs =
- GetCapabilitiesAndRestrictToCodec(local_pc_wrapper, "AV1");
- transceiver->SetCodecPreferences(codecs);
-
- // Opt-in to spec-compliant simulcast by explicitly setting the
- // `scalability_mode`.
- rtc::scoped_refptr<RtpSenderInterface> sender = transceiver->sender();
- RtpParameters parameters = sender->GetParameters();
- ASSERT_EQ(parameters.encodings.size(), 3u);
- parameters.encodings[0].scalability_mode = "L1T3";
- parameters.encodings[1].scalability_mode = "L1T3";
- parameters.encodings[2].scalability_mode = "L1T3";
- sender->SetParameters(parameters);
-
- NegotiateWithSimulcastTweaks(local_pc_wrapper, remote_pc_wrapper, layers);
- local_pc_wrapper->WaitForConnection();
- remote_pc_wrapper->WaitForConnection();
-
- // GetParameters() does not report any fallback.
- parameters = sender->GetParameters();
- ASSERT_EQ(parameters.encodings.size(), 3u);
- EXPECT_THAT(parameters.encodings[0].scalability_mode,
- Optional(std::string("L1T3")));
- EXPECT_THAT(parameters.encodings[1].scalability_mode,
- Optional(std::string("L1T3")));
- EXPECT_THAT(parameters.encodings[2].scalability_mode,
- Optional(std::string("L1T3")));
-
- // Wait until media is flowing on all three layers.
- // Ramp up time is needed before all three layers are sending.
- //
- // This test is given 2X timeout because AV1 simulcast ramp-up time is
- // terrible compared to other codecs.
- // TODO(https://crbug.com/webrtc/15006): Improve the ramp-up time and stop
- // giving this test extra long timeout.
- EXPECT_TRUE_WAIT(HasOutboundRtpBytesSent(local_pc_wrapper, 3u),
- (2 * kLongTimeoutForRampingUp).ms());
- // Sometimes additional ramp up is needed to get the expected resolutions. If
- // that has not happened yet we log (`log_during_ramp_up=true`).
- EXPECT_TRUE_WAIT(HasOutboundRtpExpectedResolutions(
- local_pc_wrapper,
- {{"f", 320, 180}, {"h", 640, 360}, {"q", 1280, 720}},
- /*log_during_ramp_up=*/true),
- kLongTimeoutForRampingUp.ms());
- // Verify codec and scalability mode.
- rtc::scoped_refptr<const RTCStatsReport> report = GetStats(local_pc_wrapper);
- std::vector<const RTCOutboundRtpStreamStats*> outbound_rtps =
- report->GetStatsOfType<RTCOutboundRtpStreamStats>();
- ASSERT_THAT(outbound_rtps, SizeIs(3u));
- EXPECT_THAT(GetCurrentCodecMimeType(report, *outbound_rtps[0]),
- StrCaseEq("video/AV1"));
- EXPECT_THAT(GetCurrentCodecMimeType(report, *outbound_rtps[1]),
- StrCaseEq("video/AV1"));
- EXPECT_THAT(GetCurrentCodecMimeType(report, *outbound_rtps[2]),
- StrCaseEq("video/AV1"));
- EXPECT_THAT(*outbound_rtps[0]->scalability_mode, StrEq("L1T3"));
- EXPECT_THAT(*outbound_rtps[1]->scalability_mode, StrEq("L1T3"));
- EXPECT_THAT(*outbound_rtps[2]->scalability_mode, StrEq("L1T3"));
-}
-
} // namespace webrtc