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}
This commit is contained in:
Sergey Silkin 2024-07-12 16:47:13 +02:00 committed by WebRTC LUCI CQ
parent c14e2cc4ca
commit ea615affcc
4 changed files with 10 additions and 35 deletions

View File

@ -805,9 +805,6 @@ POLICY_EXEMPT_FIELD_TRIALS: FrozenSet[FieldTrial] = frozenset([
FieldTrial('WebRTC-VP8-Postproc-Config-Arm', FieldTrial('WebRTC-VP8-Postproc-Config-Arm',
42231704, 42231704,
INDEFINITE), INDEFINITE),
FieldTrial('WebRTC-VP8ConferenceTemporalLayers',
42234443,
INDEFINITE),
FieldTrial('WebRTC-VP8IosMaxNumberOfThread', FieldTrial('WebRTC-VP8IosMaxNumberOfThread',
42220027, 42220027,
date(2024, 4, 1)), date(2024, 4, 1)),
@ -887,7 +884,7 @@ POLICY_EXEMPT_FIELD_TRIALS: FrozenSet[FieldTrial] = frozenset([
]) # yapf: disable ]) # yapf: disable
POLICY_EXEMPT_FIELD_TRIALS_DIGEST: str = \ POLICY_EXEMPT_FIELD_TRIALS_DIGEST: str = \
'd6beac9eb318c70cd1695598b3d3c069cd17b42f' 'ad853beba9dddb16d9f45164a8d69b5d01e7d1c9'
REGISTERED_FIELD_TRIALS: FrozenSet[FieldTrial] = ACTIVE_FIELD_TRIALS.union( REGISTERED_FIELD_TRIALS: FrozenSet[FieldTrial] = ACTIVE_FIELD_TRIALS.union(
POLICY_EXEMPT_FIELD_TRIALS) POLICY_EXEMPT_FIELD_TRIALS)

View File

@ -1391,6 +1391,8 @@ rtc_library("video_codec_tester") {
"../rtc_base:timeutils", "../rtc_base:timeutils",
"../rtc_base/synchronization:mutex", "../rtc_base/synchronization:mutex",
"../system_wrappers", "../system_wrappers",
"../system_wrappers:field_trial",
"../test:explicit_key_value_config",
"../test:fileutils", "../test:fileutils",
"../video/config:streams_config", "../video/config:streams_config",
"//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/strings",

View File

@ -46,7 +46,9 @@
#include "rtc_base/synchronization/mutex.h" #include "rtc_base/synchronization/mutex.h"
#include "rtc_base/task_queue_for_test.h" #include "rtc_base/task_queue_for_test.h"
#include "rtc_base/time_utils.h" #include "rtc_base/time_utils.h"
#include "system_wrappers/include/field_trial.h"
#include "system_wrappers/include/sleep.h" #include "system_wrappers/include/sleep.h"
#include "test/explicit_key_value_config.h"
#include "test/scoped_key_value_config.h" #include "test/scoped_key_value_config.h"
#include "test/testsupport/file_utils.h" #include "test/testsupport/file_utils.h"
#include "test/testsupport/frame_reader.h" #include "test/testsupport/frame_reader.h"
@ -1291,11 +1293,7 @@ void ConfigureSimulcast(VideoCodec* vc) {
return; return;
} }
ScopedKeyValueConfig field_trials((rtc::StringBuilder() ExplicitKeyValueConfig field_trials(field_trial::GetFieldTrialString());
<< "WebRTC-VP8ConferenceTemporalLayers/"
<< num_temporal_layers << "/")
.str());
const std::vector<webrtc::VideoStream> streams = cricket::GetSimulcastConfig( const std::vector<webrtc::VideoStream> streams = cricket::GetSimulcastConfig(
/*min_layer=*/1, num_spatial_layers, vc->width, vc->height, /*min_layer=*/1, num_spatial_layers, vc->width, vc->height,
/*is_screenshare=*/false, /*temporal_layers_supported=*/true, /*is_screenshare=*/false, /*temporal_layers_supported=*/true,
@ -1312,8 +1310,7 @@ void ConfigureSimulcast(VideoCodec* vc) {
SimulcastStream* ss = &vc->simulcastStream[i]; SimulcastStream* ss = &vc->simulcastStream[i];
ss->width = streams[i].width; ss->width = streams[i].width;
ss->height = streams[i].height; ss->height = streams[i].height;
RTC_CHECK_EQ(*streams[i].num_temporal_layers, num_temporal_layers); ss->numberOfTemporalLayers = num_temporal_layers;
ss->numberOfTemporalLayers = *streams[i].num_temporal_layers;
ss->maxBitrate = streams[i].max_bitrate_bps / 1000; ss->maxBitrate = streams[i].max_bitrate_bps / 1000;
ss->targetBitrate = streams[i].target_bitrate_bps / 1000; ss->targetBitrate = streams[i].target_bitrate_bps / 1000;
ss->minBitrate = streams[i].min_bitrate_bps / 1000; ss->minBitrate = streams[i].min_bitrate_bps / 1000;

View File

@ -178,27 +178,6 @@ std::vector<SimulcastFormat> GetSimulcastFormats(
return formats; 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 FindSimulcastFormatIndex(int width,
int height, int height,
bool enable_lowres_bitrate_interpolation, bool enable_lowres_bitrate_interpolation,
@ -260,7 +239,8 @@ std::vector<webrtc::VideoStream> GetNormalSimulcastLayers(
std::vector<webrtc::VideoStream> layers(layer_count); std::vector<webrtc::VideoStream> layers(layer_count);
const bool enable_lowres_bitrate_interpolation = const bool enable_lowres_bitrate_interpolation =
EnableLowresBitrateInterpolation(trials); 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 - // Format width and height has to be divisible by |2 ^ num_simulcast_layers -
// 1|. // 1|.
width = NormalizeSimulcastSize(trials, width, layer_count); width = NormalizeSimulcastSize(trials, width, layer_count);
@ -270,8 +250,7 @@ std::vector<webrtc::VideoStream> GetNormalSimulcastLayers(
for (size_t s = layer_count - 1;; --s) { for (size_t s = layer_count - 1;; --s) {
layers[s].width = width; layers[s].width = width;
layers[s].height = height; layers[s].height = height;
layers[s].num_temporal_layers = layers[s].num_temporal_layers = num_temporal_layers;
temporal_layers_supported ? num_temporal_layers : 1;
SimulcastFormat interpolated_format = InterpolateSimulcastFormat( SimulcastFormat interpolated_format = InterpolateSimulcastFormat(
width, height, /*max_roundup_rate=*/absl::nullopt, width, height, /*max_roundup_rate=*/absl::nullopt,