Add field trial flag forcing VP9 flexible mode for testing
Bug: chromium:949536
Change-Id: Idb12a2be18cdec8313a74d35fe79c0235f66e393
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/246100
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35672}
diff --git a/media/engine/webrtc_video_engine.cc b/media/engine/webrtc_video_engine.cc
index cccb9fb..8dd75c2 100644
--- a/media/engine/webrtc_video_engine.cc
+++ b/media/engine/webrtc_video_engine.cc
@@ -522,15 +522,16 @@
// 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<webrtc::InterLayerPredMode> 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 @@
// 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;