diff --git a/media/BUILD.gn b/media/BUILD.gn index 550f9f9fa0..28a8755615 100644 --- a/media/BUILD.gn +++ b/media/BUILD.gn @@ -320,7 +320,6 @@ rtc_library("rtc_audio_video") { "../rtc_base:checks", "../rtc_base:rtc_task_queue", "../rtc_base:stringutils", - "../rtc_base/experiments:experimental_screenshare_settings", "../rtc_base/experiments:field_trial_parser", "../rtc_base/experiments:min_video_bitrate_experiment", "../rtc_base/experiments:normalize_simulcast_size_experiment", diff --git a/media/engine/simulcast.cc b/media/engine/simulcast.cc index 5fc6a99d78..6e63ec6f7f 100644 --- a/media/engine/simulcast.cc +++ b/media/engine/simulcast.cc @@ -22,7 +22,6 @@ #include "modules/video_coding/utility/simulcast_rate_allocator.h" #include "rtc_base/arraysize.h" #include "rtc_base/checks.h" -#include "rtc_base/experiments/experimental_screenshare_settings.h" #include "rtc_base/experiments/min_video_bitrate_experiment.h" #include "rtc_base/experiments/normalize_simulcast_size_experiment.h" #include "rtc_base/experiments/rate_control_settings.h" @@ -379,13 +378,6 @@ std::vector GetScreenshareLayers( // more normal layout, with the regular 3 temporal layer pattern and no fps // restrictions. The base simulcast layer will still use legacy setup. if (num_simulcast_layers == kMaxScreenshareSimulcastLayers) { - auto experimental_settings = - webrtc::ExperimentalScreenshareSettings::ParseFromFieldTrials(); - if (temporal_layers_supported && - experimental_settings.BaseLayerMaxBitrate().has_value()) { - layers[0].max_bitrate_bps = *experimental_settings.BaseLayerMaxBitrate(); - } - // Add optional upper simulcast layer. const int num_temporal_layers = DefaultNumberOfTemporalLayers(1, true); int max_bitrate_bps; @@ -400,8 +392,7 @@ std::vector GetScreenshareLayers( } else if (DefaultNumberOfTemporalLayers(1, true) != 3 || base_heavy_tl3_rate_alloc) { // Experimental temporal layer mode used, use increased max bitrate. - max_bitrate_bps = experimental_settings.TopLayerMaxBitrate().value_or( - kScreenshareHighStreamMaxBitrate.bps()); + max_bitrate_bps = kScreenshareHighStreamMaxBitrate.bps(); using_boosted_bitrate = true; } else { // Keep current bitrates with default 3tl/8 frame settings. diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn index 3b97cac75b..364aa0efdb 100644 --- a/modules/video_coding/BUILD.gn +++ b/modules/video_coding/BUILD.gn @@ -315,7 +315,6 @@ rtc_library("video_coding_utility") { "../../rtc_base:rtc_base_approved", "../../rtc_base:rtc_numerics", "../../rtc_base:rtc_task_queue", - "../../rtc_base/experiments:experimental_screenshare_settings", "../../rtc_base/experiments:quality_scaler_settings", "../../rtc_base/experiments:quality_scaling_experiment", "../../rtc_base/experiments:rate_control_settings", @@ -442,7 +441,6 @@ rtc_library("webrtc_vp8") { "../../rtc_base:rtc_base_approved", "../../rtc_base:rtc_numerics", "../../rtc_base/experiments:cpu_speed_experiment", - "../../rtc_base/experiments:experimental_screenshare_settings", "../../rtc_base/experiments:field_trial_parser", "../../rtc_base/experiments:rate_control_settings", "../../system_wrappers:field_trial", diff --git a/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc index 7694dae6ec..ac04bc3e50 100644 --- a/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc +++ b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc @@ -33,7 +33,6 @@ #include "modules/video_coding/utility/simulcast_rate_allocator.h" #include "modules/video_coding/utility/simulcast_utility.h" #include "rtc_base/checks.h" -#include "rtc_base/experiments/experimental_screenshare_settings.h" #include "rtc_base/experiments/field_trial_parser.h" #include "rtc_base/experiments/field_trial_units.h" #include "rtc_base/logging.h" @@ -280,8 +279,6 @@ LibvpxVp8Encoder::LibvpxVp8Encoder(std::unique_ptr interface, : libvpx_(std::move(interface)), experimental_cpu_speed_config_arm_(CpuSpeedExperiment::GetConfigs()), rate_control_settings_(RateControlSettings::ParseFromFieldTrials()), - screenshare_max_qp_( - ExperimentalScreenshareSettings::ParseFromFieldTrials().MaxQp()), frame_buffer_controller_factory_( std::move(settings.frame_buffer_controller_factory)), resolution_bitrate_limits_(std::move(settings.resolution_bitrate_limits)), @@ -585,9 +582,6 @@ int LibvpxVp8Encoder::InitEncode(const VideoCodec* inst, qp_max_ = std::max(rate_control_settings_.LibvpxVp8QpMax().value(), static_cast(vpx_configs_[0].rc_min_quantizer)); } - if (codec_.mode == VideoCodecMode::kScreensharing && screenshare_max_qp_) { - qp_max_ = *screenshare_max_qp_; - } vpx_configs_[0].rc_max_quantizer = qp_max_; vpx_configs_[0].rc_undershoot_pct = 100; vpx_configs_[0].rc_overshoot_pct = 15; diff --git a/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.h b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.h index cc2f206814..8afcaae58f 100644 --- a/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.h +++ b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.h @@ -98,7 +98,6 @@ class LibvpxVp8Encoder : public VideoEncoder { const absl::optional> experimental_cpu_speed_config_arm_; const RateControlSettings rate_control_settings_; - const absl::optional screenshare_max_qp_; EncodedImageCallback* encoded_complete_callback_ = nullptr; VideoCodec codec_; diff --git a/modules/video_coding/utility/simulcast_utility.cc b/modules/video_coding/utility/simulcast_utility.cc index 3c3e235896..58cb991155 100644 --- a/modules/video_coding/utility/simulcast_utility.cc +++ b/modules/video_coding/utility/simulcast_utility.cc @@ -14,7 +14,6 @@ #include #include "rtc_base/checks.h" -#include "rtc_base/experiments/experimental_screenshare_settings.h" namespace webrtc { @@ -90,14 +89,6 @@ bool SimulcastUtility::IsConferenceModeScreenshare(const VideoCodec& codec) { return false; } - if (codec.numberOfSimulcastStreams > 0 && - ExperimentalScreenshareSettings::ParseFromFieldTrials() - .DefaultTlInBaseLayer() - .value_or(false)) { - // Don't use ScreenshareLayers for base layer, regardless of flags. - return false; - } - // Fixed default bitrates for legacy screenshare layers mode. return (codec.numberOfSimulcastStreams == 0 && codec.maxBitrate == 1000) || (codec.numberOfSimulcastStreams >= 1 && diff --git a/rtc_base/experiments/BUILD.gn b/rtc_base/experiments/BUILD.gn index f557526945..bb3e0ce8ae 100644 --- a/rtc_base/experiments/BUILD.gn +++ b/rtc_base/experiments/BUILD.gn @@ -182,19 +182,6 @@ rtc_library("keyframe_interval_settings_experiment") { ] } -rtc_library("experimental_screenshare_settings") { - sources = [ - "experimental_screenshare_settings.cc", - "experimental_screenshare_settings.h", - ] - deps = [ - ":field_trial_parser", - "../../api/transport:field_trial_based_config", - "../../api/transport:webrtc_key_value_config", - "//third_party/abseil-cpp/absl/types:optional", - ] -} - rtc_library("stable_target_rate_experiment") { sources = [ "stable_target_rate_experiment.cc", diff --git a/rtc_base/experiments/experimental_screenshare_settings.cc b/rtc_base/experiments/experimental_screenshare_settings.cc deleted file mode 100644 index ac5840a5ed..0000000000 --- a/rtc_base/experiments/experimental_screenshare_settings.cc +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2019 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#include "rtc_base/experiments/experimental_screenshare_settings.h" - -#include "api/transport/field_trial_based_config.h" - -namespace webrtc { - -namespace { -constexpr char kFieldTrialName[] = "WebRTC-ExperimentalScreenshareSettings"; -} // namespace - -ExperimentalScreenshareSettings::ExperimentalScreenshareSettings( - const WebRtcKeyValueConfig* key_value_config) - : max_qp_("max_qp"), - default_tl_in_base_layer_("default_tl_in_base_layer"), - base_layer_max_bitrate_("base_layer_max_bitrate"), - top_layer_max_bitrate("top_layer_max_bitrate") { - ParseFieldTrial({&max_qp_, &default_tl_in_base_layer_, - &base_layer_max_bitrate_, &top_layer_max_bitrate}, - key_value_config->Lookup(kFieldTrialName)); -} - -ExperimentalScreenshareSettings -ExperimentalScreenshareSettings::ParseFromFieldTrials() { - FieldTrialBasedConfig field_trial_config; - return ExperimentalScreenshareSettings(&field_trial_config); -} - -absl::optional ExperimentalScreenshareSettings::MaxQp() const { - return max_qp_.GetOptional(); -} - -absl::optional ExperimentalScreenshareSettings::DefaultTlInBaseLayer() - const { - return default_tl_in_base_layer_.GetOptional(); -} - -absl::optional ExperimentalScreenshareSettings::BaseLayerMaxBitrate() - const { - return base_layer_max_bitrate_.GetOptional(); -} - -absl::optional ExperimentalScreenshareSettings::TopLayerMaxBitrate() - const { - return top_layer_max_bitrate.GetOptional(); -} - -} // namespace webrtc diff --git a/rtc_base/experiments/experimental_screenshare_settings.h b/rtc_base/experiments/experimental_screenshare_settings.h deleted file mode 100644 index 8887a3e3c3..0000000000 --- a/rtc_base/experiments/experimental_screenshare_settings.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2019 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#ifndef RTC_BASE_EXPERIMENTS_EXPERIMENTAL_SCREENSHARE_SETTINGS_H_ -#define RTC_BASE_EXPERIMENTS_EXPERIMENTAL_SCREENSHARE_SETTINGS_H_ - -#include "absl/types/optional.h" -#include "api/transport/webrtc_key_value_config.h" -#include "rtc_base/experiments/field_trial_parser.h" - -namespace webrtc { - -class ExperimentalScreenshareSettings { - public: - static ExperimentalScreenshareSettings ParseFromFieldTrials(); - explicit ExperimentalScreenshareSettings( - const WebRtcKeyValueConfig* key_value_config); - - absl::optional MaxQp() const; - absl::optional DefaultTlInBaseLayer() const; - absl::optional BaseLayerMaxBitrate() const; - absl::optional TopLayerMaxBitrate() const; - - private: - FieldTrialOptional max_qp_; - FieldTrialOptional default_tl_in_base_layer_; - FieldTrialOptional base_layer_max_bitrate_; - FieldTrialOptional top_layer_max_bitrate; -}; - -} // namespace webrtc - -#endif // RTC_BASE_EXPERIMENTS_EXPERIMENTAL_SCREENSHARE_SETTINGS_H_