From 0a72b412e1af166acd724e7565b090365d1f05d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Spr=C3=A5ng?= Date: Wed, 12 Jan 2022 19:06:18 +0100 Subject: [PATCH] Add field trial flag forcing VP9 flexible mode for testing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: chromium:949536 Change-Id: Idb12a2be18cdec8313a74d35fe79c0235f66e393 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/246100 Reviewed-by: Danil Chapovalov Commit-Queue: Erik Språng Cr-Commit-Position: refs/heads/main@{#35672} --- media/engine/webrtc_video_engine.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/media/engine/webrtc_video_engine.cc b/media/engine/webrtc_video_engine.cc index cccb9fb397..8dd75c28ad 100644 --- a/media/engine/webrtc_video_engine.cc +++ b/media/engine/webrtc_video_engine.cc @@ -522,15 +522,16 @@ WebRtcVideoChannel::WebRtcVideoSendStream::ConfigureVideoEncoderSettings( // Ensure frame dropping is always enabled. RTC_DCHECK(vp9_settings.frameDroppingOn); if (!is_screencast) { - webrtc::FieldTrialFlag interlayer_pred_experiment_enabled = - webrtc::FieldTrialFlag("Enabled"); + webrtc::FieldTrialFlag interlayer_pred_experiment_enabled("Enabled"); webrtc::FieldTrialEnum inter_layer_pred_mode( "inter_layer_pred_mode", webrtc::InterLayerPredMode::kOnKeyPic, {{"off", webrtc::InterLayerPredMode::kOff}, {"on", webrtc::InterLayerPredMode::kOn}, {"onkeypic", webrtc::InterLayerPredMode::kOnKeyPic}}); + webrtc::FieldTrialFlag force_flexible_mode("FlexibleMode"); webrtc::ParseFieldTrial( - {&interlayer_pred_experiment_enabled, &inter_layer_pred_mode}, + {&interlayer_pred_experiment_enabled, &inter_layer_pred_mode, + &force_flexible_mode}, call_->trials().Lookup("WebRTC-Vp9InterLayerPred")); if (interlayer_pred_experiment_enabled) { vp9_settings.interLayerPred = inter_layer_pred_mode; @@ -538,6 +539,7 @@ WebRtcVideoChannel::WebRtcVideoSendStream::ConfigureVideoEncoderSettings( // Limit inter-layer prediction to key pictures by default. vp9_settings.interLayerPred = webrtc::InterLayerPredMode::kOnKeyPic; } + vp9_settings.flexibleMode = force_flexible_mode.Get(); } else { // Multiple spatial layers vp9 screenshare needs flexible mode. vp9_settings.flexibleMode = vp9_settings.numberOfSpatialLayers > 1;