WebRTC-DeprecateGlobalFieldTrialString/Enabled/ - part 12/inf
rename WebRtcKeyValueConfig to FieldTrialsView
Bug: webrtc:10335
Change-Id: If725bd498c4c3daf144bee638230fa089fdde833
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/256965
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36365}
diff --git a/call/BUILD.gn b/call/BUILD.gn
index cb85feb..7bbb44d 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -42,6 +42,7 @@
":rtp_interfaces",
":video_stream_api",
"../api:fec_controller_api",
+ "../api:field_trials_view",
"../api:frame_transformer_interface",
"../api:network_state_predictor_api",
"../api:rtc_error",
@@ -60,7 +61,6 @@
"../api/task_queue",
"../api/transport:bitrate_settings",
"../api/transport:network_control",
- "../api/transport:webrtc_key_value_config",
"../modules/async_audio_processing",
"../modules/audio_device",
"../modules/audio_processing",
@@ -106,6 +106,7 @@
deps = [
"../api:array_view",
"../api:fec_controller_api",
+ "../api:field_trials_view",
"../api:frame_transformer_interface",
"../api:network_state_predictor_api",
"../api:rtp_headers",
@@ -114,7 +115,6 @@
"../api/rtc_event_log",
"../api/transport:bitrate_settings",
"../api/transport:network_control",
- "../api/transport:webrtc_key_value_config",
"../api/units:timestamp",
"../common_video:frame_counts",
"../modules/rtp_rtcp:rtp_rtcp_format",
@@ -174,11 +174,11 @@
"../api:array_view",
"../api:bitrate_allocation",
"../api:fec_controller_api",
+ "../api:field_trials_view",
"../api:network_state_predictor_api",
"../api:rtp_parameters",
"../api:sequence_checker",
"../api:transport_api",
- "../api:webrtc_key_value_config",
"../api/rtc_event_log",
"../api/transport:field_trial_based_config",
"../api/transport:goog_cc",
@@ -286,12 +286,12 @@
"../api:array_view",
"../api:callfactory_api",
"../api:fec_controller_api",
+ "../api:field_trials_view",
"../api:rtp_headers",
"../api:rtp_parameters",
"../api:sequence_checker",
"../api:simulated_network_api",
"../api:transport_api",
- "../api:webrtc_key_value_config",
"../api/rtc_event_log",
"../api/transport:network_control",
"../api/units:time_delta",
diff --git a/call/adaptation/BUILD.gn b/call/adaptation/BUILD.gn
index 4661c3e..9ce8ccd 100644
--- a/call/adaptation/BUILD.gn
+++ b/call/adaptation/BUILD.gn
@@ -32,10 +32,10 @@
"video_stream_input_state_provider.h",
]
deps = [
+ "../../api:field_trials_view",
"../../api:rtp_parameters",
"../../api:scoped_refptr",
"../../api:sequence_checker",
- "../../api:webrtc_key_value_config",
"../../api/adaptation:resource_adaptation_api",
"../../api/task_queue:task_queue",
"../../api/video:video_adaptation",
diff --git a/call/adaptation/video_stream_adapter.cc b/call/adaptation/video_stream_adapter.cc
index 313bcc3..f30a4d7 100644
--- a/call/adaptation/video_stream_adapter.cc
+++ b/call/adaptation/video_stream_adapter.cc
@@ -204,7 +204,7 @@
VideoStreamAdapter::VideoStreamAdapter(
VideoStreamInputStateProvider* input_state_provider,
VideoStreamEncoderObserver* encoder_stats_observer,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: input_state_provider_(input_state_provider),
encoder_stats_observer_(encoder_stats_observer),
balanced_settings_(field_trials),
diff --git a/call/adaptation/video_stream_adapter.h b/call/adaptation/video_stream_adapter.h
index a4a52f4..92a5aec 100644
--- a/call/adaptation/video_stream_adapter.h
+++ b/call/adaptation/video_stream_adapter.h
@@ -18,10 +18,10 @@
#include "absl/types/optional.h"
#include "absl/types/variant.h"
#include "api/adaptation/resource.h"
+#include "api/field_trials_view.h"
#include "api/rtp_parameters.h"
#include "api/video/video_adaptation_counters.h"
#include "api/video/video_stream_encoder_observer.h"
-#include "api/webrtc_key_value_config.h"
#include "call/adaptation/adaptation_constraint.h"
#include "call/adaptation/degradation_preference_provider.h"
#include "call/adaptation/video_source_restrictions.h"
@@ -125,7 +125,7 @@
public:
VideoStreamAdapter(VideoStreamInputStateProvider* input_state_provider,
VideoStreamEncoderObserver* encoder_stats_observer,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~VideoStreamAdapter();
VideoSourceRestrictions source_restrictions() const;
diff --git a/call/call.cc b/call/call.cc
index 22907b92..5b30661 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -247,7 +247,7 @@
Stats GetStats() const override;
- const WebRtcKeyValueConfig& trials() const override;
+ const FieldTrialsView& trials() const override;
TaskQueueBase* network_thread() const override;
TaskQueueBase* worker_thread() const override;
@@ -379,7 +379,7 @@
const std::unique_ptr<BitrateAllocator> bitrate_allocator_;
const Call::Config config_ RTC_GUARDED_BY(worker_thread_);
// Maps to config_.trials, can be used from any thread via `trials()`.
- const WebRtcKeyValueConfig& trials_;
+ const FieldTrialsView& trials_;
NetworkState audio_network_state_ RTC_GUARDED_BY(worker_thread_);
NetworkState video_network_state_ RTC_GUARDED_BY(worker_thread_);
@@ -1295,7 +1295,7 @@
return stats;
}
-const WebRtcKeyValueConfig& Call::trials() const {
+const FieldTrialsView& Call::trials() const {
return trials_;
}
diff --git a/call/call.h b/call/call.h
index 11451c5..e4652d2 100644
--- a/call/call.h
+++ b/call/call.h
@@ -174,7 +174,7 @@
virtual void SetClientBitratePreferences(
const BitrateSettings& preferences) = 0;
- virtual const WebRtcKeyValueConfig& trials() const = 0;
+ virtual const FieldTrialsView& trials() const = 0;
virtual TaskQueueBase* network_thread() const = 0;
virtual TaskQueueBase* worker_thread() const = 0;
diff --git a/call/call_config.h b/call/call_config.h
index ef505a4..3072fa4 100644
--- a/call/call_config.h
+++ b/call/call_config.h
@@ -11,6 +11,7 @@
#define CALL_CALL_CONFIG_H_
#include "api/fec_controller.h"
+#include "api/field_trials_view.h"
#include "api/metronome/metronome.h"
#include "api/neteq/neteq_factory.h"
#include "api/network_state_predictor.h"
@@ -18,7 +19,6 @@
#include "api/task_queue/task_queue_factory.h"
#include "api/transport/bitrate_settings.h"
#include "api/transport/network_control.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "call/audio_state.h"
#include "call/rtp_transport_config.h"
#include "call/rtp_transport_controller_send_factory_interface.h"
@@ -70,7 +70,7 @@
// Key-value mapping of internal configurations to apply,
// e.g. field trials.
- const WebRtcKeyValueConfig* trials = nullptr;
+ const FieldTrialsView* trials = nullptr;
TaskQueueBase* const network_task_queue_ = nullptr;
// RtpTransportControllerSend to use for this call.
diff --git a/call/call_factory.cc b/call/call_factory.cc
index 4035785..6d4b2aa 100644
--- a/call/call_factory.cc
+++ b/call/call_factory.cc
@@ -31,7 +31,7 @@
namespace {
using TimeScopedNetworkConfig = DegradedCall::TimeScopedNetworkConfig;
-bool ParseConfigParam(const WebRtcKeyValueConfig& trials,
+bool ParseConfigParam(const FieldTrialsView& trials,
absl::string_view exp_name,
int* field) {
std::string group = trials.Lookup(exp_name);
@@ -42,7 +42,7 @@
}
absl::optional<TimeScopedNetworkConfig> ParseDegradationConfig(
- const WebRtcKeyValueConfig& trials,
+ const FieldTrialsView& trials,
bool send) {
std::string exp_prefix = "WebRTCFakeNetwork";
if (send) {
@@ -80,7 +80,7 @@
}
std::vector<TimeScopedNetworkConfig> GetNetworkConfigs(
- const WebRtcKeyValueConfig& trials,
+ const FieldTrialsView& trials,
bool send) {
FieldTrialStructList<TimeScopedNetworkConfig> trials_list(
{FieldTrialStructMember("queue_length_packets",
diff --git a/call/degraded_call.cc b/call/degraded_call.cc
index 0d01e86..ef53851 100644
--- a/call/degraded_call.cc
+++ b/call/degraded_call.cc
@@ -277,7 +277,7 @@
return call_->GetStats();
}
-const WebRtcKeyValueConfig& DegradedCall::trials() const {
+const FieldTrialsView& DegradedCall::trials() const {
return call_->trials();
}
diff --git a/call/degraded_call.h b/call/degraded_call.h
index dd80a0c..dfd041a 100644
--- a/call/degraded_call.h
+++ b/call/degraded_call.h
@@ -90,7 +90,7 @@
Stats GetStats() const override;
- const WebRtcKeyValueConfig& trials() const override;
+ const FieldTrialsView& trials() const override;
TaskQueueBase* network_thread() const override;
TaskQueueBase* worker_thread() const override;
diff --git a/call/receive_time_calculator.cc b/call/receive_time_calculator.cc
index d6ffd39..417168b 100644
--- a/call/receive_time_calculator.cc
+++ b/call/receive_time_calculator.cc
@@ -24,7 +24,7 @@
} // namespace
ReceiveTimeCalculatorConfig::ReceiveTimeCalculatorConfig(
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: max_packet_time_repair("maxrep", TimeDelta::Millis(2000)),
stall_threshold("stall", TimeDelta::Millis(5)),
tolerance("tol", TimeDelta::Millis(1)),
@@ -39,12 +39,12 @@
ReceiveTimeCalculatorConfig::~ReceiveTimeCalculatorConfig() = default;
ReceiveTimeCalculator::ReceiveTimeCalculator(
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: config_(field_trials) {}
std::unique_ptr<ReceiveTimeCalculator>
ReceiveTimeCalculator::CreateFromFieldTrial(
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
if (!field_trials.IsEnabled(kBweReceiveTimeCorrection))
return nullptr;
return std::make_unique<ReceiveTimeCalculator>(field_trials);
diff --git a/call/receive_time_calculator.h b/call/receive_time_calculator.h
index 276ddda..57ba331 100644
--- a/call/receive_time_calculator.h
+++ b/call/receive_time_calculator.h
@@ -14,15 +14,14 @@
#include <memory>
+#include "api/field_trials_view.h"
#include "api/units/time_delta.h"
-#include "api/webrtc_key_value_config.h"
#include "rtc_base/experiments/field_trial_parser.h"
namespace webrtc {
struct ReceiveTimeCalculatorConfig {
- explicit ReceiveTimeCalculatorConfig(
- const WebRtcKeyValueConfig& field_trials);
+ explicit ReceiveTimeCalculatorConfig(const FieldTrialsView& field_trials);
ReceiveTimeCalculatorConfig(const ReceiveTimeCalculatorConfig&);
ReceiveTimeCalculatorConfig& operator=(const ReceiveTimeCalculatorConfig&) =
default;
@@ -44,8 +43,8 @@
class ReceiveTimeCalculator {
public:
static std::unique_ptr<ReceiveTimeCalculator> CreateFromFieldTrial(
- const WebRtcKeyValueConfig& field_trials);
- explicit ReceiveTimeCalculator(const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
+ explicit ReceiveTimeCalculator(const FieldTrialsView& field_trials);
int64_t ReconcileReceiveTimes(int64_t packet_time_us_,
int64_t system_time_us_,
int64_t safe_time_us_);
diff --git a/call/rtp_payload_params.cc b/call/rtp_payload_params.cc
index 5eff91f..ddd4470 100644
--- a/call/rtp_payload_params.cc
+++ b/call/rtp_payload_params.cc
@@ -127,7 +127,7 @@
RtpPayloadParams::RtpPayloadParams(const uint32_t ssrc,
const RtpPayloadState* state,
- const WebRtcKeyValueConfig& trials)
+ const FieldTrialsView& trials)
: ssrc_(ssrc),
generic_picture_id_experiment_(
absl::StartsWith(trials.Lookup("WebRTC-GenericPictureId"),
diff --git a/call/rtp_payload_params.h b/call/rtp_payload_params.h
index b1680a9..ff2de73 100644
--- a/call/rtp_payload_params.h
+++ b/call/rtp_payload_params.h
@@ -15,8 +15,8 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/video_codecs/video_encoder.h"
-#include "api/webrtc_key_value_config.h"
#include "call/rtp_config.h"
#include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h"
#include "modules/rtp_rtcp/source/rtp_video_header.h"
@@ -34,7 +34,7 @@
public:
RtpPayloadParams(uint32_t ssrc,
const RtpPayloadState* state,
- const WebRtcKeyValueConfig& trials);
+ const FieldTrialsView& trials);
RtpPayloadParams(const RtpPayloadParams& other);
~RtpPayloadParams();
diff --git a/call/rtp_transport_config.h b/call/rtp_transport_config.h
index 3a2c76b..f2030b3 100644
--- a/call/rtp_transport_config.h
+++ b/call/rtp_transport_config.h
@@ -13,11 +13,11 @@
#include <memory>
+#include "api/field_trials_view.h"
#include "api/network_state_predictor.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/transport/bitrate_settings.h"
#include "api/transport/network_control.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "rtc_base/task_queue.h"
namespace webrtc {
@@ -43,7 +43,7 @@
// Key-value mapping of internal configurations to apply,
// e.g. field trials.
- const WebRtcKeyValueConfig* trials = nullptr;
+ const FieldTrialsView* trials = nullptr;
};
} // namespace webrtc
diff --git a/call/rtp_transport_controller_send.cc b/call/rtp_transport_controller_send.cc
index f366324..e9a8602 100644
--- a/call/rtp_transport_controller_send.cc
+++ b/call/rtp_transport_controller_send.cc
@@ -59,11 +59,11 @@
contraints.start_bitrate_bps, clock);
}
-bool IsEnabled(const WebRtcKeyValueConfig& trials, absl::string_view key) {
+bool IsEnabled(const FieldTrialsView& trials, absl::string_view key) {
return absl::StartsWith(trials.Lookup(key), "Enabled");
}
-bool IsDisabled(const WebRtcKeyValueConfig& trials, absl::string_view key) {
+bool IsDisabled(const FieldTrialsView& trials, absl::string_view key) {
return absl::StartsWith(trials.Lookup(key), "Disabled");
}
@@ -74,7 +74,7 @@
} // namespace
RtpTransportControllerSend::PacerSettings::PacerSettings(
- const WebRtcKeyValueConfig& trials)
+ const FieldTrialsView& trials)
: tq_disabled("Disabled"),
holdback_window("holdback_window", PacingController::kMinSleepTime),
holdback_packets("holdback_packets",
@@ -91,7 +91,7 @@
const BitrateConstraints& bitrate_config,
std::unique_ptr<ProcessThread> process_thread,
TaskQueueFactory* task_queue_factory,
- const WebRtcKeyValueConfig& trials)
+ const FieldTrialsView& trials)
: clock_(clock),
event_log_(event_log),
bitrate_configurator_(bitrate_config),
diff --git a/call/rtp_transport_controller_send.h b/call/rtp_transport_controller_send.h
index ba14fdd..d9461db 100644
--- a/call/rtp_transport_controller_send.h
+++ b/call/rtp_transport_controller_send.h
@@ -59,7 +59,7 @@
const BitrateConstraints& bitrate_config,
std::unique_ptr<ProcessThread> process_thread,
TaskQueueFactory* task_queue_factory,
- const WebRtcKeyValueConfig& trials);
+ const FieldTrialsView& trials);
~RtpTransportControllerSend() override;
RtpTransportControllerSend(const RtpTransportControllerSend&) = delete;
@@ -132,7 +132,7 @@
private:
struct PacerSettings {
- explicit PacerSettings(const WebRtcKeyValueConfig& trials);
+ explicit PacerSettings(const FieldTrialsView& trials);
bool use_task_queue_pacer() const { return !tq_disabled.Get(); }
@@ -223,7 +223,7 @@
// and deleted before any other members.
rtc::TaskQueue task_queue_;
- const WebRtcKeyValueConfig& field_trials_;
+ const FieldTrialsView& field_trials_;
};
} // namespace webrtc
diff --git a/call/rtp_video_sender.cc b/call/rtp_video_sender.cc
index c5de3a7..116c878 100644
--- a/call/rtp_video_sender.cc
+++ b/call/rtp_video_sender.cc
@@ -56,7 +56,7 @@
using webrtc_internal_rtp_video_sender::RtpStreamSender;
bool PayloadTypeSupportsSkippingFecPackets(const std::string& payload_name,
- const WebRtcKeyValueConfig& trials) {
+ const FieldTrialsView& trials) {
const VideoCodecType codecType = PayloadStringToCodecType(payload_name);
if (codecType == kVideoCodecVP8 || codecType == kVideoCodecVP9) {
return true;
@@ -70,7 +70,7 @@
bool ShouldDisableRedAndUlpfec(bool flexfec_enabled,
const RtpConfig& rtp_config,
- const WebRtcKeyValueConfig& trials) {
+ const FieldTrialsView& trials) {
// Consistency of NACK and RED+ULPFEC parameters is checked in this function.
const bool nack_enabled = rtp_config.nack.rtp_history_ms > 0;
@@ -126,7 +126,7 @@
const RtpConfig& rtp,
const std::map<uint32_t, RtpState>& suspended_ssrcs,
int simulcast_index,
- const WebRtcKeyValueConfig& trials) {
+ const FieldTrialsView& trials) {
// If flexfec is configured that takes priority.
if (rtp.flexfec.payload_type >= 0) {
RTC_DCHECK_GE(rtp.flexfec.payload_type, 0);
@@ -197,7 +197,7 @@
FrameEncryptorInterface* frame_encryptor,
const CryptoOptions& crypto_options,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
- const WebRtcKeyValueConfig& trials) {
+ const FieldTrialsView& trials) {
RTC_DCHECK_GT(rtp_config.ssrcs.size(), 0);
RtpRtcpInterface::Configuration configuration;
@@ -359,7 +359,7 @@
FrameEncryptorInterface* frame_encryptor,
const CryptoOptions& crypto_options,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: field_trials_(field_trials),
send_side_bwe_with_overhead_(!absl::StartsWith(
field_trials_.Lookup("WebRTC-SendSideBwe-WithOverhead"),
diff --git a/call/rtp_video_sender.h b/call/rtp_video_sender.h
index 1fa9a8b..c4a2b92 100644
--- a/call/rtp_video_sender.h
+++ b/call/rtp_video_sender.h
@@ -21,10 +21,10 @@
#include "api/call/transport.h"
#include "api/fec_controller.h"
#include "api/fec_controller_override.h"
+#include "api/field_trials_view.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/sequence_checker.h"
#include "api/video_codecs/video_encoder.h"
-#include "api/webrtc_key_value_config.h"
#include "call/rtp_config.h"
#include "call/rtp_payload_params.h"
#include "call/rtp_transport_controller_send_interface.h"
@@ -86,7 +86,7 @@
FrameEncryptorInterface* frame_encryptor,
const CryptoOptions& crypto_options, // move inside RtpTransport
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~RtpVideoSender() override;
RtpVideoSender(const RtpVideoSender&) = delete;
@@ -167,7 +167,7 @@
DataSize overhead_per_packet,
Frequency framerate) const;
- const WebRtcKeyValueConfig& field_trials_;
+ const FieldTrialsView& field_trials_;
const bool send_side_bwe_with_overhead_;
const bool use_frame_rate_for_overhead_;
const bool has_packet_feedback_;
diff --git a/call/rtp_video_sender_unittest.cc b/call/rtp_video_sender_unittest.cc
index 7962ce2..b482b7f 100644
--- a/call/rtp_video_sender_unittest.cc
+++ b/call/rtp_video_sender_unittest.cc
@@ -119,7 +119,7 @@
const std::map<uint32_t, RtpPayloadState>& suspended_payload_states,
FrameCountObserver* frame_count_observer,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
- const WebRtcKeyValueConfig* field_trials = nullptr)
+ const FieldTrialsView* field_trials = nullptr)
: time_controller_(Timestamp::Millis(1000000)),
config_(CreateVideoSendStreamConfig(&transport_,
ssrcs,
@@ -162,7 +162,7 @@
int payload_type,
const std::map<uint32_t, RtpPayloadState>& suspended_payload_states,
FrameCountObserver* frame_count_observer,
- const WebRtcKeyValueConfig* field_trials = nullptr)
+ const FieldTrialsView* field_trials = nullptr)
: RtpVideoSenderTestFixture(ssrcs,
rtx_ssrcs,
payload_type,
@@ -176,7 +176,7 @@
const std::vector<uint32_t>& rtx_ssrcs,
int payload_type,
const std::map<uint32_t, RtpPayloadState>& suspended_payload_states,
- const WebRtcKeyValueConfig* field_trials = nullptr)
+ const FieldTrialsView* field_trials = nullptr)
: RtpVideoSenderTestFixture(ssrcs,
rtx_ssrcs,
payload_type,