Remove WebRTC-VP8ConferenceTemporalLayers field trial
WebRTC-VP8ConferenceTemporalLayers experiment is restricted to <= M126. Number of temporal layers is controlled via scalaiblity mode now.
Bug: webrtc:351644568, b/352504711, chromium:40097057, b/140159553
Change-Id: I025f8f64e8d5144cf54fe8bf26e8b99daae6e079
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357104
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42637}
diff --git a/experiments/field_trials.py b/experiments/field_trials.py
index 3f94963..9a9ca91 100755
--- a/experiments/field_trials.py
+++ b/experiments/field_trials.py
@@ -805,9 +805,6 @@
FieldTrial('WebRTC-VP8-Postproc-Config-Arm',
42231704,
INDEFINITE),
- FieldTrial('WebRTC-VP8ConferenceTemporalLayers',
- 42234443,
- INDEFINITE),
FieldTrial('WebRTC-VP8IosMaxNumberOfThread',
42220027,
date(2024, 4, 1)),
@@ -887,7 +884,7 @@
]) # yapf: disable
POLICY_EXEMPT_FIELD_TRIALS_DIGEST: str = \
- 'd6beac9eb318c70cd1695598b3d3c069cd17b42f'
+ 'ad853beba9dddb16d9f45164a8d69b5d01e7d1c9'
REGISTERED_FIELD_TRIALS: FrozenSet[FieldTrial] = ACTIVE_FIELD_TRIALS.union(
POLICY_EXEMPT_FIELD_TRIALS)
diff --git a/test/BUILD.gn b/test/BUILD.gn
index a3e3966..f083e02 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -1391,6 +1391,8 @@
"../rtc_base:timeutils",
"../rtc_base/synchronization:mutex",
"../system_wrappers",
+ "../system_wrappers:field_trial",
+ "../test:explicit_key_value_config",
"../test:fileutils",
"../video/config:streams_config",
"//third_party/abseil-cpp/absl/strings",
diff --git a/test/video_codec_tester.cc b/test/video_codec_tester.cc
index 8744af9..6e290a3 100644
--- a/test/video_codec_tester.cc
+++ b/test/video_codec_tester.cc
@@ -46,7 +46,9 @@
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/task_queue_for_test.h"
#include "rtc_base/time_utils.h"
+#include "system_wrappers/include/field_trial.h"
#include "system_wrappers/include/sleep.h"
+#include "test/explicit_key_value_config.h"
#include "test/scoped_key_value_config.h"
#include "test/testsupport/file_utils.h"
#include "test/testsupport/frame_reader.h"
@@ -1291,11 +1293,7 @@
return;
}
- ScopedKeyValueConfig field_trials((rtc::StringBuilder()
- << "WebRTC-VP8ConferenceTemporalLayers/"
- << num_temporal_layers << "/")
- .str());
-
+ ExplicitKeyValueConfig field_trials(field_trial::GetFieldTrialString());
const std::vector<webrtc::VideoStream> streams = cricket::GetSimulcastConfig(
/*min_layer=*/1, num_spatial_layers, vc->width, vc->height,
/*is_screenshare=*/false, /*temporal_layers_supported=*/true,
@@ -1312,8 +1310,7 @@
SimulcastStream* ss = &vc->simulcastStream[i];
ss->width = streams[i].width;
ss->height = streams[i].height;
- RTC_CHECK_EQ(*streams[i].num_temporal_layers, num_temporal_layers);
- ss->numberOfTemporalLayers = *streams[i].num_temporal_layers;
+ ss->numberOfTemporalLayers = num_temporal_layers;
ss->maxBitrate = streams[i].max_bitrate_bps / 1000;
ss->targetBitrate = streams[i].target_bitrate_bps / 1000;
ss->minBitrate = streams[i].min_bitrate_bps / 1000;
diff --git a/video/config/simulcast.cc b/video/config/simulcast.cc
index ce20cec..ced7b89 100644
--- a/video/config/simulcast.cc
+++ b/video/config/simulcast.cc
@@ -178,27 +178,6 @@
return formats;
}
-// Multiway: Number of temporal layers for each simulcast stream.
-int DefaultNumberOfTemporalLayers(const webrtc::FieldTrialsView& trials) {
- const std::string group_name =
- trials.Lookup("WebRTC-VP8ConferenceTemporalLayers");
- if (group_name.empty())
- return kDefaultNumTemporalLayers;
-
- int num_temporal_layers = kDefaultNumTemporalLayers;
- if (sscanf(group_name.c_str(), "%d", &num_temporal_layers) == 1 &&
- num_temporal_layers > 0 &&
- num_temporal_layers <= webrtc::kMaxTemporalStreams) {
- return num_temporal_layers;
- }
-
- RTC_LOG(LS_WARNING) << "Attempt to set number of temporal layers to "
- "incorrect value: "
- << group_name;
-
- return kDefaultNumTemporalLayers;
-}
-
int FindSimulcastFormatIndex(int width,
int height,
bool enable_lowres_bitrate_interpolation,
@@ -260,7 +239,8 @@
std::vector<webrtc::VideoStream> layers(layer_count);
const bool enable_lowres_bitrate_interpolation =
EnableLowresBitrateInterpolation(trials);
- const int num_temporal_layers = DefaultNumberOfTemporalLayers(trials);
+ const int num_temporal_layers =
+ temporal_layers_supported ? kDefaultNumTemporalLayers : 1;
// Format width and height has to be divisible by |2 ^ num_simulcast_layers -
// 1|.
width = NormalizeSimulcastSize(trials, width, layer_count);
@@ -270,8 +250,7 @@
for (size_t s = layer_count - 1;; --s) {
layers[s].width = width;
layers[s].height = height;
- layers[s].num_temporal_layers =
- temporal_layers_supported ? num_temporal_layers : 1;
+ layers[s].num_temporal_layers = num_temporal_layers;
SimulcastFormat interpolated_format = InterpolateSimulcastFormat(
width, height, /*max_roundup_rate=*/absl::nullopt,