Formatting of WebRTC-Vp9InterLayerPred field trial.

Use conventional style ../{Default|Disabled|Enabled} with parameter
inter_layer_pred_mode:{off|on|onkeypic} which maps directly to
InterLayerPredMode enum.

Bug: chromium:949536
Change-Id: If34e789b031d0db3eb2748b0b824492237ad5187
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137800
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28008}
This commit is contained in:
Sergey Silkin
2019-05-20 17:57:17 +02:00
committed by Commit Bot
parent 3be9da37bb
commit 19da5ced24
2 changed files with 37 additions and 21 deletions

View File

@ -29,6 +29,7 @@
#include "media/engine/webrtc_media_engine.h"
#include "media/engine/webrtc_voice_engine.h"
#include "rtc_base/copy_on_write_buffer.h"
#include "rtc_base/experiments/field_trial_parser.h"
#include "rtc_base/logging.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/time_utils.h"
@ -387,15 +388,18 @@ WebRtcVideoChannel::WebRtcVideoSendStream::ConfigureVideoEncoderSettings(
// Ensure frame dropping is always enabled.
RTC_DCHECK(vp9_settings.frameDroppingOn);
if (!is_screencast) {
const std::string group =
webrtc::field_trial::FindFullName("WebRTC-Vp9InterLayerPred");
int mode;
if (!group.empty() && sscanf(group.c_str(), "%d", &mode) == 1 &&
(mode == static_cast<int>(webrtc::InterLayerPredMode::kOn) ||
mode == static_cast<int>(webrtc::InterLayerPredMode::kOnKeyPic) ||
mode == static_cast<int>(webrtc::InterLayerPredMode::kOff))) {
vp9_settings.interLayerPred =
static_cast<webrtc::InterLayerPredMode>(mode);
webrtc::FieldTrialFlag interlayer_pred_experiment_enabled =
webrtc::FieldTrialFlag("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::ParseFieldTrial(
{&interlayer_pred_experiment_enabled, &inter_layer_pred_mode},
webrtc::field_trial::FindFullName("WebRTC-Vp9InterLayerPred"));
if (interlayer_pred_experiment_enabled) {
vp9_settings.interLayerPred = inter_layer_pred_mode;
} else {
// Limit inter-layer prediction to key pictures by default.
vp9_settings.interLayerPred = webrtc::InterLayerPredMode::kOnKeyPic;