Disable "follow preferred order for codec fallback" by default
The feature causes "no video" issue in M135+. See webrtc:416659453 for
details.
Bug: webrtc:416659453
Change-Id: Id7509b5e9c8f99c5914f74911878daf83459d5da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/393180
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#44742}
diff --git a/media/engine/webrtc_video_engine_unittest.cc b/media/engine/webrtc_video_engine_unittest.cc
index 31b9b4f..596c555 100644
--- a/media/engine/webrtc_video_engine_unittest.cc
+++ b/media/engine/webrtc_video_engine_unittest.cc
@@ -2556,6 +2556,8 @@
TEST_F(WebRtcVideoChannelBaseTest,
RequestEncoderFallbackNextCodecFollowNegotiatedOrder) {
+ webrtc::test::ScopedKeyValueConfig field_trials(
+ field_trials_, "WebRTC-SwitchEncoderFollowCodecPreferenceOrder/Enabled/");
VideoSenderParameters parameters;
parameters.codecs.push_back(GetEngineCodec("VP9"));
parameters.codecs.push_back(GetEngineCodec("AV1"));
diff --git a/video/video_stream_encoder.cc b/video/video_stream_encoder.cc
index 212108e..53125ff 100644
--- a/video/video_stream_encoder.cc
+++ b/video/video_stream_encoder.cc
@@ -1530,7 +1530,7 @@
}
if (!preferred_fallback_encoder) {
- if (!env_.field_trials().IsDisabled(
+ if (env_.field_trials().IsEnabled(
kSwitchEncoderFollowCodecPreferenceOrderFieldTrial)) {
encoder_fallback_requested_ = true;
settings_.encoder_switch_request_callback->RequestEncoderFallback();
diff --git a/video/video_stream_encoder_unittest.cc b/video/video_stream_encoder_unittest.cc
index ea47223..bbae05d 100644
--- a/video/video_stream_encoder_unittest.cc
+++ b/video/video_stream_encoder_unittest.cc
@@ -8314,7 +8314,9 @@
.WillByDefault(Return(WEBRTC_VIDEO_CODEC_ENCODER_FAILURE));
Event encode_attempted;
- EXPECT_CALL(switch_callback, RequestEncoderFallback())
+ EXPECT_CALL(switch_callback,
+ RequestEncoderSwitch(Field(&SdpVideoFormat::name, "VP8"),
+ /*allow_default_fallback=*/true))
.WillOnce([&encode_attempted]() { encode_attempted.Set(); });
video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr));
@@ -8387,6 +8389,9 @@
constexpr int kDontCare = 100;
constexpr int kNumFrames = 8;
+ webrtc::test::ScopedKeyValueConfig field_trials(
+ field_trials_, "WebRTC-SwitchEncoderFollowCodecPreferenceOrder/Enabled/");
+
NiceMock<MockVideoEncoder> video_encoder;
StrictMock<MockEncoderSwitchRequestCallback> switch_callback;
video_send_config_.encoder_settings.encoder_switch_request_callback =
@@ -8444,10 +8449,6 @@
constexpr int kSufficientBitrateToNotDrop = 1000;
constexpr int kDontCare = 100;
- webrtc::test::ScopedKeyValueConfig field_trials(
- field_trials_,
- "WebRTC-SwitchEncoderFollowCodecPreferenceOrder/Disabled/");
-
NiceMock<MockVideoEncoder> video_encoder;
StrictMock<MockEncoderSwitchRequestCallback> switch_callback;
video_send_config_.encoder_settings.encoder_switch_request_callback =