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:
parent
c14e2cc4ca
commit
ea615affcc
@ -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)
|
||||||
|
|||||||
@ -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",
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user