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/api/BUILD.gn b/api/BUILD.gn
index b736f93..c3f3051 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -171,6 +171,7 @@
":audio_options_api",
":callfactory_api",
":fec_controller_api",
+ ":field_trials_view",
":frame_transformer_interface",
":libjingle_logging_api",
":media_stream_interface",
@@ -200,7 +201,6 @@
"transport:enums",
"transport:network_control",
"transport:sctp_transport_factory_interface",
- "transport:webrtc_key_value_config",
"transport/rtp:rtp_source",
"units:data_rate",
"units:timestamp",
@@ -1224,9 +1224,15 @@
}
}
+rtc_source_set("field_trials_view") {
+ visibility = [ "*" ]
+ sources = [ "field_trials_view.h" ]
+ deps = [ "../rtc_base/system:rtc_export" ]
+ absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
+}
+
rtc_source_set("webrtc_key_value_config") {
visibility = [ "*" ]
sources = [ "webrtc_key_value_config.h" ]
- deps = [ "../rtc_base/system:rtc_export" ]
- absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
+ deps = [ ":field_trials_view" ]
}
diff --git a/api/audio_codecs/BUILD.gn b/api/audio_codecs/BUILD.gn
index 3c84af8..4fd30ce 100644
--- a/api/audio_codecs/BUILD.gn
+++ b/api/audio_codecs/BUILD.gn
@@ -32,7 +32,7 @@
"..:array_view",
"..:bitrate_allocation",
"..:scoped_refptr",
- "../../api:webrtc_key_value_config",
+ "../../api:field_trials_view",
"../../rtc_base:checks",
"../../rtc_base:rtc_base_approved",
"../../rtc_base:sanitizer",
diff --git a/api/audio_codecs/L16/BUILD.gn b/api/audio_codecs/L16/BUILD.gn
index 9e4a0f1..b35e67b 100644
--- a/api/audio_codecs/L16/BUILD.gn
+++ b/api/audio_codecs/L16/BUILD.gn
@@ -21,7 +21,7 @@
]
deps = [
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:pcm16b",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base:safe_minmax",
@@ -42,7 +42,7 @@
]
deps = [
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:pcm16b",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
diff --git a/api/audio_codecs/L16/audio_decoder_L16.cc b/api/audio_codecs/L16/audio_decoder_L16.cc
index 874a8a5..a03abe2 100644
--- a/api/audio_codecs/L16/audio_decoder_L16.cc
+++ b/api/audio_codecs/L16/audio_decoder_L16.cc
@@ -38,7 +38,7 @@
std::unique_ptr<AudioDecoder> AudioDecoderL16::MakeAudioDecoder(
const Config& config,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
if (!config.IsOk()) {
return nullptr;
}
diff --git a/api/audio_codecs/L16/audio_decoder_L16.h b/api/audio_codecs/L16/audio_decoder_L16.h
index ade8f98..5a01b7d 100644
--- a/api/audio_codecs/L16/audio_decoder_L16.h
+++ b/api/audio_codecs/L16/audio_decoder_L16.h
@@ -18,7 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_decoder.h"
#include "api/audio_codecs/audio_format.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -41,7 +41,7 @@
static std::unique_ptr<AudioDecoder> MakeAudioDecoder(
const Config& config,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/L16/audio_encoder_L16.cc b/api/audio_codecs/L16/audio_encoder_L16.cc
index 3994f5c..20259b9 100644
--- a/api/audio_codecs/L16/audio_encoder_L16.cc
+++ b/api/audio_codecs/L16/audio_encoder_L16.cc
@@ -60,7 +60,7 @@
const AudioEncoderL16::Config& config,
int payload_type,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
AudioEncoderPcm16B::Config c;
c.sample_rate_hz = config.sample_rate_hz;
c.num_channels = config.num_channels;
diff --git a/api/audio_codecs/L16/audio_encoder_L16.h b/api/audio_codecs/L16/audio_encoder_L16.h
index e0916df..4750984 100644
--- a/api/audio_codecs/L16/audio_encoder_L16.h
+++ b/api/audio_codecs/L16/audio_encoder_L16.h
@@ -18,7 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_format.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -46,7 +46,7 @@
const Config& config,
int payload_type,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/audio_decoder_factory_template.h b/api/audio_codecs/audio_decoder_factory_template.h
index 4badd82..4e39365 100644
--- a/api/audio_codecs/audio_decoder_factory_template.h
+++ b/api/audio_codecs/audio_decoder_factory_template.h
@@ -15,8 +15,8 @@
#include <vector>
#include "api/audio_codecs/audio_decoder_factory.h"
+#include "api/field_trials_view.h"
#include "api/scoped_refptr.h"
-#include "api/webrtc_key_value_config.h"
#include "rtc_base/ref_counted_object.h"
namespace webrtc {
@@ -34,7 +34,7 @@
static std::unique_ptr<AudioDecoder> MakeAudioDecoder(
const SdpAudioFormat& format,
absl::optional<AudioCodecPairId> codec_pair_id,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
return nullptr;
}
};
@@ -58,7 +58,7 @@
static std::unique_ptr<AudioDecoder> MakeAudioDecoder(
const SdpAudioFormat& format,
absl::optional<AudioCodecPairId> codec_pair_id,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
auto opt_config = T::SdpToConfig(format);
return opt_config ? T::MakeAudioDecoder(*opt_config, codec_pair_id)
: Helper<Ts...>::MakeAudioDecoder(format, codec_pair_id,
@@ -69,7 +69,7 @@
template <typename... Ts>
class AudioDecoderFactoryT : public AudioDecoderFactory {
public:
- explicit AudioDecoderFactoryT(const WebRtcKeyValueConfig* field_trials) {
+ explicit AudioDecoderFactoryT(const FieldTrialsView* field_trials) {
field_trials_ = field_trials;
}
@@ -90,7 +90,7 @@
field_trials_);
}
- const WebRtcKeyValueConfig* field_trials_;
+ const FieldTrialsView* field_trials_;
};
} // namespace audio_decoder_factory_template_impl
@@ -127,7 +127,7 @@
// how it is used.
template <typename... Ts>
rtc::scoped_refptr<AudioDecoderFactory> CreateAudioDecoderFactory(
- const WebRtcKeyValueConfig* field_trials = nullptr) {
+ const FieldTrialsView* field_trials = nullptr) {
// There's no technical reason we couldn't allow zero template parameters,
// but such a factory couldn't create any decoders, and callers can do this
// by mistake by simply forgetting the <> altogether. So we forbid it in
diff --git a/api/audio_codecs/audio_encoder_factory_template.h b/api/audio_codecs/audio_encoder_factory_template.h
index ceefab2..8490f46 100644
--- a/api/audio_codecs/audio_encoder_factory_template.h
+++ b/api/audio_codecs/audio_encoder_factory_template.h
@@ -15,8 +15,8 @@
#include <vector>
#include "api/audio_codecs/audio_encoder_factory.h"
+#include "api/field_trials_view.h"
#include "api/scoped_refptr.h"
-#include "api/webrtc_key_value_config.h"
#include "rtc_base/ref_counted_object.h"
namespace webrtc {
@@ -38,7 +38,7 @@
int payload_type,
const SdpAudioFormat& format,
absl::optional<AudioCodecPairId> codec_pair_id,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
return nullptr;
}
};
@@ -66,7 +66,7 @@
int payload_type,
const SdpAudioFormat& format,
absl::optional<AudioCodecPairId> codec_pair_id,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
auto opt_config = T::SdpToConfig(format);
if (opt_config) {
return T::MakeAudioEncoder(*opt_config, payload_type, codec_pair_id);
@@ -80,7 +80,7 @@
template <typename... Ts>
class AudioEncoderFactoryT : public AudioEncoderFactory {
public:
- explicit AudioEncoderFactoryT(const WebRtcKeyValueConfig* field_trials) {
+ explicit AudioEncoderFactoryT(const FieldTrialsView* field_trials) {
field_trials_ = field_trials;
}
@@ -103,7 +103,7 @@
field_trials_);
}
- const WebRtcKeyValueConfig* field_trials_;
+ const FieldTrialsView* field_trials_;
};
} // namespace audio_encoder_factory_template_impl
@@ -145,7 +145,7 @@
// how it is used.
template <typename... Ts>
rtc::scoped_refptr<AudioEncoderFactory> CreateAudioEncoderFactory(
- const WebRtcKeyValueConfig* field_trials = nullptr) {
+ const FieldTrialsView* field_trials = nullptr) {
// There's no technical reason we couldn't allow zero template parameters,
// but such a factory couldn't create any encoders, and callers can do this
// by mistake by simply forgetting the <> altogether. So we forbid it in
diff --git a/api/audio_codecs/builtin_audio_encoder_factory.cc b/api/audio_codecs/builtin_audio_encoder_factory.cc
index 4433893..530d64b 100644
--- a/api/audio_codecs/builtin_audio_encoder_factory.cc
+++ b/api/audio_codecs/builtin_audio_encoder_factory.cc
@@ -48,7 +48,7 @@
const Config& config,
int payload_type,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr) {
+ const FieldTrialsView* field_trials = nullptr) {
return T::MakeAudioEncoder(config, payload_type, codec_pair_id,
field_trials);
}
diff --git a/api/audio_codecs/g711/BUILD.gn b/api/audio_codecs/g711/BUILD.gn
index 1f0b7df..faac047 100644
--- a/api/audio_codecs/g711/BUILD.gn
+++ b/api/audio_codecs/g711/BUILD.gn
@@ -21,7 +21,7 @@
]
deps = [
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:g711",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base:safe_minmax",
@@ -42,7 +42,7 @@
]
deps = [
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:g711",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
diff --git a/api/audio_codecs/g711/audio_decoder_g711.cc b/api/audio_codecs/g711/audio_decoder_g711.cc
index b34b464..838f7e9 100644
--- a/api/audio_codecs/g711/audio_decoder_g711.cc
+++ b/api/audio_codecs/g711/audio_decoder_g711.cc
@@ -48,7 +48,7 @@
std::unique_ptr<AudioDecoder> AudioDecoderG711::MakeAudioDecoder(
const Config& config,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
if (!config.IsOk()) {
RTC_DCHECK_NOTREACHED();
return nullptr;
diff --git a/api/audio_codecs/g711/audio_decoder_g711.h b/api/audio_codecs/g711/audio_decoder_g711.h
index 62b0f88..0f7a98d 100644
--- a/api/audio_codecs/g711/audio_decoder_g711.h
+++ b/api/audio_codecs/g711/audio_decoder_g711.h
@@ -18,7 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_decoder.h"
#include "api/audio_codecs/audio_format.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -41,7 +41,7 @@
static std::unique_ptr<AudioDecoder> MakeAudioDecoder(
const Config& config,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/g711/audio_encoder_g711.cc b/api/audio_codecs/g711/audio_encoder_g711.cc
index 8c60304..1dca3b8 100644
--- a/api/audio_codecs/g711/audio_encoder_g711.cc
+++ b/api/audio_codecs/g711/audio_encoder_g711.cc
@@ -65,7 +65,7 @@
const Config& config,
int payload_type,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
if (!config.IsOk()) {
RTC_DCHECK_NOTREACHED();
return nullptr;
diff --git a/api/audio_codecs/g711/audio_encoder_g711.h b/api/audio_codecs/g711/audio_encoder_g711.h
index c2750e2..4b3eb84 100644
--- a/api/audio_codecs/g711/audio_encoder_g711.h
+++ b/api/audio_codecs/g711/audio_encoder_g711.h
@@ -18,7 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_format.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -46,7 +46,7 @@
const Config& config,
int payload_type,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/g722/BUILD.gn b/api/audio_codecs/g722/BUILD.gn
index fbce2c5..1441e6d 100644
--- a/api/audio_codecs/g722/BUILD.gn
+++ b/api/audio_codecs/g722/BUILD.gn
@@ -27,7 +27,7 @@
deps = [
":audio_encoder_g722_config",
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:g722",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base:safe_minmax",
@@ -48,7 +48,7 @@
]
deps = [
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:g722",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
diff --git a/api/audio_codecs/g722/audio_decoder_g722.cc b/api/audio_codecs/g722/audio_decoder_g722.cc
index 8f3a5c0..ed71634 100644
--- a/api/audio_codecs/g722/audio_decoder_g722.cc
+++ b/api/audio_codecs/g722/audio_decoder_g722.cc
@@ -37,7 +37,7 @@
std::unique_ptr<AudioDecoder> AudioDecoderG722::MakeAudioDecoder(
Config config,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
if (!config.IsOk()) {
RTC_DCHECK_NOTREACHED();
return nullptr;
diff --git a/api/audio_codecs/g722/audio_decoder_g722.h b/api/audio_codecs/g722/audio_decoder_g722.h
index 05e6130..6f7b253 100644
--- a/api/audio_codecs/g722/audio_decoder_g722.h
+++ b/api/audio_codecs/g722/audio_decoder_g722.h
@@ -18,7 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_decoder.h"
#include "api/audio_codecs/audio_format.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -35,7 +35,7 @@
static std::unique_ptr<AudioDecoder> MakeAudioDecoder(
Config config,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/g722/audio_encoder_g722.cc b/api/audio_codecs/g722/audio_encoder_g722.cc
index 812d66f..56a6c4d 100644
--- a/api/audio_codecs/g722/audio_encoder_g722.cc
+++ b/api/audio_codecs/g722/audio_encoder_g722.cc
@@ -63,7 +63,7 @@
const AudioEncoderG722Config& config,
int payload_type,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
if (!config.IsOk()) {
RTC_DCHECK_NOTREACHED();
return nullptr;
diff --git a/api/audio_codecs/g722/audio_encoder_g722.h b/api/audio_codecs/g722/audio_encoder_g722.h
index 14ddff7..78ceddd 100644
--- a/api/audio_codecs/g722/audio_encoder_g722.h
+++ b/api/audio_codecs/g722/audio_encoder_g722.h
@@ -19,7 +19,7 @@
#include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_format.h"
#include "api/audio_codecs/g722/audio_encoder_g722_config.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -36,7 +36,7 @@
const AudioEncoderG722Config& config,
int payload_type,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/ilbc/BUILD.gn b/api/audio_codecs/ilbc/BUILD.gn
index 1cac7ed..8dab307 100644
--- a/api/audio_codecs/ilbc/BUILD.gn
+++ b/api/audio_codecs/ilbc/BUILD.gn
@@ -27,7 +27,7 @@
deps = [
":audio_encoder_ilbc_config",
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:ilbc",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base:safe_minmax",
@@ -47,7 +47,7 @@
]
deps = [
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:ilbc",
"../../../rtc_base:rtc_base_approved",
]
diff --git a/api/audio_codecs/ilbc/audio_decoder_ilbc.cc b/api/audio_codecs/ilbc/audio_decoder_ilbc.cc
index 9a291ee..c583169 100644
--- a/api/audio_codecs/ilbc/audio_decoder_ilbc.cc
+++ b/api/audio_codecs/ilbc/audio_decoder_ilbc.cc
@@ -35,7 +35,7 @@
std::unique_ptr<AudioDecoder> AudioDecoderIlbc::MakeAudioDecoder(
Config config,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
return std::make_unique<AudioDecoderIlbcImpl>();
}
diff --git a/api/audio_codecs/ilbc/audio_decoder_ilbc.h b/api/audio_codecs/ilbc/audio_decoder_ilbc.h
index 4d9a4b7..60566c8 100644
--- a/api/audio_codecs/ilbc/audio_decoder_ilbc.h
+++ b/api/audio_codecs/ilbc/audio_decoder_ilbc.h
@@ -18,7 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_decoder.h"
#include "api/audio_codecs/audio_format.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
namespace webrtc {
@@ -31,7 +31,7 @@
static std::unique_ptr<AudioDecoder> MakeAudioDecoder(
Config config,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/ilbc/audio_encoder_ilbc.cc b/api/audio_codecs/ilbc/audio_encoder_ilbc.cc
index 6525887..b497948 100644
--- a/api/audio_codecs/ilbc/audio_encoder_ilbc.cc
+++ b/api/audio_codecs/ilbc/audio_encoder_ilbc.cc
@@ -77,7 +77,7 @@
const AudioEncoderIlbcConfig& config,
int payload_type,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
if (!config.IsOk()) {
RTC_DCHECK_NOTREACHED();
return nullptr;
diff --git a/api/audio_codecs/ilbc/audio_encoder_ilbc.h b/api/audio_codecs/ilbc/audio_encoder_ilbc.h
index 8dd4928..a530684 100644
--- a/api/audio_codecs/ilbc/audio_encoder_ilbc.h
+++ b/api/audio_codecs/ilbc/audio_encoder_ilbc.h
@@ -19,7 +19,7 @@
#include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_format.h"
#include "api/audio_codecs/ilbc/audio_encoder_ilbc_config.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
namespace webrtc {
@@ -35,7 +35,7 @@
const AudioEncoderIlbcConfig& config,
int payload_type,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/isac/BUILD.gn b/api/audio_codecs/isac/BUILD.gn
index b6aa810..2231371 100644
--- a/api/audio_codecs/isac/BUILD.gn
+++ b/api/audio_codecs/isac/BUILD.gn
@@ -65,7 +65,7 @@
]
deps = [
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:isac_fix",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
@@ -85,7 +85,7 @@
]
deps = [
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:isac_fix",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
@@ -105,7 +105,7 @@
]
deps = [
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:isac",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
@@ -125,7 +125,7 @@
]
deps = [
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:isac",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
diff --git a/api/audio_codecs/isac/audio_decoder_isac_fix.cc b/api/audio_codecs/isac/audio_decoder_isac_fix.cc
index 8927a16..b3ab91d 100644
--- a/api/audio_codecs/isac/audio_decoder_isac_fix.cc
+++ b/api/audio_codecs/isac/audio_decoder_isac_fix.cc
@@ -34,7 +34,7 @@
std::unique_ptr<AudioDecoder> AudioDecoderIsacFix::MakeAudioDecoder(
Config config,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
AudioDecoderIsacFixImpl::Config c;
c.sample_rate_hz = 16000;
return std::make_unique<AudioDecoderIsacFixImpl>(c);
diff --git a/api/audio_codecs/isac/audio_decoder_isac_fix.h b/api/audio_codecs/isac/audio_decoder_isac_fix.h
index 11b8766..8f61d9a 100644
--- a/api/audio_codecs/isac/audio_decoder_isac_fix.h
+++ b/api/audio_codecs/isac/audio_decoder_isac_fix.h
@@ -18,7 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_decoder.h"
#include "api/audio_codecs/audio_format.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -32,7 +32,7 @@
static std::unique_ptr<AudioDecoder> MakeAudioDecoder(
Config config,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/isac/audio_decoder_isac_float.cc b/api/audio_codecs/isac/audio_decoder_isac_float.cc
index ef27293..98f672b 100644
--- a/api/audio_codecs/isac/audio_decoder_isac_float.cc
+++ b/api/audio_codecs/isac/audio_decoder_isac_float.cc
@@ -43,7 +43,7 @@
std::unique_ptr<AudioDecoder> AudioDecoderIsacFloat::MakeAudioDecoder(
Config config,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
AudioDecoderIsacFloatImpl::Config c;
c.sample_rate_hz = config.sample_rate_hz;
if (!config.IsOk()) {
diff --git a/api/audio_codecs/isac/audio_decoder_isac_float.h b/api/audio_codecs/isac/audio_decoder_isac_float.h
index 501edfc..864c6b9 100644
--- a/api/audio_codecs/isac/audio_decoder_isac_float.h
+++ b/api/audio_codecs/isac/audio_decoder_isac_float.h
@@ -18,7 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_decoder.h"
#include "api/audio_codecs/audio_format.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -37,7 +37,7 @@
static std::unique_ptr<AudioDecoder> MakeAudioDecoder(
Config config,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/isac/audio_encoder_isac_fix.cc b/api/audio_codecs/isac/audio_encoder_isac_fix.cc
index 65a2d8f..3960377 100644
--- a/api/audio_codecs/isac/audio_encoder_isac_fix.cc
+++ b/api/audio_codecs/isac/audio_encoder_isac_fix.cc
@@ -57,7 +57,7 @@
AudioEncoderIsacFix::Config config,
int payload_type,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
AudioEncoderIsacFixImpl::Config c;
c.frame_size_ms = config.frame_size_ms;
c.bit_rate = config.bit_rate;
diff --git a/api/audio_codecs/isac/audio_encoder_isac_fix.h b/api/audio_codecs/isac/audio_encoder_isac_fix.h
index e8ff0fc..de0f1d1 100644
--- a/api/audio_codecs/isac/audio_encoder_isac_fix.h
+++ b/api/audio_codecs/isac/audio_encoder_isac_fix.h
@@ -18,7 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_format.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -46,7 +46,7 @@
Config config,
int payload_type,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/isac/audio_encoder_isac_float.cc b/api/audio_codecs/isac/audio_encoder_isac_float.cc
index 852cb69..e3e5008 100644
--- a/api/audio_codecs/isac/audio_encoder_isac_float.cc
+++ b/api/audio_codecs/isac/audio_encoder_isac_float.cc
@@ -69,7 +69,7 @@
const AudioEncoderIsacFloat::Config& config,
int payload_type,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
AudioEncoderIsacFloatImpl::Config c;
c.payload_type = payload_type;
c.sample_rate_hz = config.sample_rate_hz;
diff --git a/api/audio_codecs/isac/audio_encoder_isac_float.h b/api/audio_codecs/isac/audio_encoder_isac_float.h
index 8e1d505..d031d76 100644
--- a/api/audio_codecs/isac/audio_encoder_isac_float.h
+++ b/api/audio_codecs/isac/audio_encoder_isac_float.h
@@ -18,7 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_format.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -60,7 +60,7 @@
const Config& config,
int payload_type,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/opus/BUILD.gn b/api/audio_codecs/opus/BUILD.gn
index fbb116b..94d4d1b 100644
--- a/api/audio_codecs/opus/BUILD.gn
+++ b/api/audio_codecs/opus/BUILD.gn
@@ -46,7 +46,7 @@
deps = [
":audio_encoder_opus_config",
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:webrtc_opus",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
@@ -66,7 +66,7 @@
]
deps = [
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:webrtc_opus",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
@@ -84,7 +84,7 @@
sources = [ "audio_encoder_multi_channel_opus.cc" ]
deps = [
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:webrtc_multiopus",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
@@ -103,7 +103,7 @@
deps = [
":audio_decoder_opus_config",
"..:audio_codecs_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../modules/audio_coding:webrtc_multiopus",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
diff --git a/api/audio_codecs/opus/audio_decoder_multi_channel_opus.cc b/api/audio_codecs/opus/audio_decoder_multi_channel_opus.cc
index 5a0b794..0fb4e05 100644
--- a/api/audio_codecs/opus/audio_decoder_multi_channel_opus.cc
+++ b/api/audio_codecs/opus/audio_decoder_multi_channel_opus.cc
@@ -65,7 +65,7 @@
std::unique_ptr<AudioDecoder> AudioDecoderMultiChannelOpus::MakeAudioDecoder(
AudioDecoderMultiChannelOpusConfig config,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
return AudioDecoderMultiChannelOpusImpl::MakeAudioDecoder(config);
}
} // namespace webrtc
diff --git a/api/audio_codecs/opus/audio_decoder_multi_channel_opus.h b/api/audio_codecs/opus/audio_decoder_multi_channel_opus.h
index 2dcd26b..eafd6c6 100644
--- a/api/audio_codecs/opus/audio_decoder_multi_channel_opus.h
+++ b/api/audio_codecs/opus/audio_decoder_multi_channel_opus.h
@@ -19,7 +19,7 @@
#include "api/audio_codecs/audio_decoder.h"
#include "api/audio_codecs/audio_format.h"
#include "api/audio_codecs/opus/audio_decoder_multi_channel_opus_config.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -34,7 +34,7 @@
static std::unique_ptr<AudioDecoder> MakeAudioDecoder(
AudioDecoderMultiChannelOpusConfig config,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/opus/audio_decoder_opus.cc b/api/audio_codecs/opus/audio_decoder_opus.cc
index 0fe3367..efc9a73 100644
--- a/api/audio_codecs/opus/audio_decoder_opus.cc
+++ b/api/audio_codecs/opus/audio_decoder_opus.cc
@@ -74,7 +74,7 @@
std::unique_ptr<AudioDecoder> AudioDecoderOpus::MakeAudioDecoder(
Config config,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
if (!config.IsOk()) {
RTC_DCHECK_NOTREACHED();
return nullptr;
diff --git a/api/audio_codecs/opus/audio_decoder_opus.h b/api/audio_codecs/opus/audio_decoder_opus.h
index 4e44309..138c037 100644
--- a/api/audio_codecs/opus/audio_decoder_opus.h
+++ b/api/audio_codecs/opus/audio_decoder_opus.h
@@ -18,7 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_decoder.h"
#include "api/audio_codecs/audio_format.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -36,7 +36,7 @@
static std::unique_ptr<AudioDecoder> MakeAudioDecoder(
Config config,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/opus/audio_encoder_multi_channel_opus.cc b/api/audio_codecs/opus/audio_encoder_multi_channel_opus.cc
index b71a000..14f480b 100644
--- a/api/audio_codecs/opus/audio_encoder_multi_channel_opus.cc
+++ b/api/audio_codecs/opus/audio_encoder_multi_channel_opus.cc
@@ -67,7 +67,7 @@
const AudioEncoderMultiChannelOpusConfig& config,
int payload_type,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
return AudioEncoderMultiChannelOpusImpl::MakeAudioEncoder(config,
payload_type);
}
diff --git a/api/audio_codecs/opus/audio_encoder_multi_channel_opus.h b/api/audio_codecs/opus/audio_encoder_multi_channel_opus.h
index 58b959a..c1c4db3 100644
--- a/api/audio_codecs/opus/audio_encoder_multi_channel_opus.h
+++ b/api/audio_codecs/opus/audio_encoder_multi_channel_opus.h
@@ -19,7 +19,7 @@
#include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_format.h"
#include "api/audio_codecs/opus/audio_encoder_multi_channel_opus_config.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -35,7 +35,7 @@
const Config& config,
int payload_type,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/opus/audio_encoder_opus.cc b/api/audio_codecs/opus/audio_encoder_opus.cc
index 26fe8cc..5b6322d 100644
--- a/api/audio_codecs/opus/audio_encoder_opus.cc
+++ b/api/audio_codecs/opus/audio_encoder_opus.cc
@@ -33,7 +33,7 @@
const AudioEncoderOpusConfig& config,
int payload_type,
absl::optional<AudioCodecPairId> /*codec_pair_id*/,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
if (!config.IsOk()) {
RTC_DCHECK_NOTREACHED();
return nullptr;
diff --git a/api/audio_codecs/opus/audio_encoder_opus.h b/api/audio_codecs/opus/audio_encoder_opus.h
index 4fb0337..df93ae5 100644
--- a/api/audio_codecs/opus/audio_encoder_opus.h
+++ b/api/audio_codecs/opus/audio_encoder_opus.h
@@ -19,7 +19,7 @@
#include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_format.h"
#include "api/audio_codecs/opus/audio_encoder_opus_config.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -36,7 +36,7 @@
const AudioEncoderOpusConfig& config,
int payload_type,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
};
} // namespace webrtc
diff --git a/api/audio_codecs/opus_audio_encoder_factory.cc b/api/audio_codecs/opus_audio_encoder_factory.cc
index 867d200..8c286f2 100644
--- a/api/audio_codecs/opus_audio_encoder_factory.cc
+++ b/api/audio_codecs/opus_audio_encoder_factory.cc
@@ -38,7 +38,7 @@
const Config& config,
int payload_type,
absl::optional<AudioCodecPairId> codec_pair_id = absl::nullopt,
- const WebRtcKeyValueConfig* field_trials = nullptr) {
+ const FieldTrialsView* field_trials = nullptr) {
return T::MakeAudioEncoder(config, payload_type, codec_pair_id,
field_trials);
}
diff --git a/api/field_trials_view.h b/api/field_trials_view.h
new file mode 100644
index 0000000..299205d
--- /dev/null
+++ b/api/field_trials_view.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright 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 API_FIELD_TRIALS_VIEW_H_
+#define API_FIELD_TRIALS_VIEW_H_
+
+#include <string>
+
+#include "absl/strings/string_view.h"
+#include "rtc_base/system/rtc_export.h"
+
+namespace webrtc {
+
+// An interface that provides a key-value mapping for configuring internal
+// details of WebRTC. Note that there's no guarantess that the meaning of a
+// particular key value mapping will be preserved over time and no announcements
+// will be made if they are changed. It's up to the library user to ensure that
+// the behavior does not break.
+class RTC_EXPORT FieldTrialsView {
+ public:
+ virtual ~FieldTrialsView() = default;
+ // The configured value for the given key. Defaults to an empty string.
+ virtual std::string Lookup(absl::string_view key) const = 0;
+
+ bool IsEnabled(absl::string_view key) const {
+ return Lookup(key).find("Enabled") == 0;
+ }
+
+ bool IsDisabled(absl::string_view key) const {
+ return Lookup(key).find("Disabled") == 0;
+ }
+};
+
+// TODO(bugs.webrtc.org/10335): Remove once all migrated to
+// api/field_trials_view.h
+typedef FieldTrialsView WebRtcKeyValueConfig;
+
+} // namespace webrtc
+
+#endif // API_FIELD_TRIALS_VIEW_H_
diff --git a/api/ice_transport_interface.h b/api/ice_transport_interface.h
index c82027a..9d8bd5a 100644
--- a/api/ice_transport_interface.h
+++ b/api/ice_transport_interface.h
@@ -27,7 +27,7 @@
} // namespace cricket
namespace webrtc {
-class WebRtcKeyValueConfig;
+class FieldTrialsView;
// An ICE transport, as represented to the outside world.
// This object is refcounted, and is therefore alive until the
@@ -84,8 +84,8 @@
return ice_controller_factory_;
}
- const WebRtcKeyValueConfig* field_trials() { return field_trials_; }
- void set_field_trials(const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials() { return field_trials_; }
+ void set_field_trials(const FieldTrialsView* field_trials) {
field_trials_ = field_trials;
}
@@ -96,7 +96,7 @@
AsyncResolverFactory* async_resolver_factory_ = nullptr;
RtcEventLog* event_log_ = nullptr;
cricket::IceControllerFactoryInterface* ice_controller_factory_ = nullptr;
- const WebRtcKeyValueConfig* field_trials_ = nullptr;
+ const FieldTrialsView* field_trials_ = nullptr;
// TODO(https://crbug.com/webrtc/12657): Redesign to have const members.
};
diff --git a/api/peer_connection_interface.h b/api/peer_connection_interface.h
index 4c4a638..2f8e401 100644
--- a/api/peer_connection_interface.h
+++ b/api/peer_connection_interface.h
@@ -91,6 +91,7 @@
#include "api/data_channel_interface.h"
#include "api/dtls_transport_interface.h"
#include "api/fec_controller.h"
+#include "api/field_trials_view.h"
#include "api/ice_transport_interface.h"
#include "api/jsep.h"
#include "api/media_stream_interface.h"
@@ -117,7 +118,6 @@
#include "api/transport/enums.h"
#include "api/transport/network_control.h"
#include "api/transport/sctp_transport_factory_interface.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/turn_customizer.h"
#include "api/video/video_bitrate_allocator_factory.h"
#include "call/rtp_transport_controller_send_factory_interface.h"
@@ -1435,7 +1435,7 @@
std::unique_ptr<rtc::NetworkMonitorFactory> network_monitor_factory;
std::unique_ptr<NetEqFactory> neteq_factory;
std::unique_ptr<SctpTransportFactoryInterface> sctp_factory;
- std::unique_ptr<WebRtcKeyValueConfig> trials;
+ std::unique_ptr<FieldTrialsView> trials;
std::unique_ptr<RtpTransportControllerSendFactoryInterface>
transport_controller_send_factory;
std::unique_ptr<Metronome> metronome;
diff --git a/api/transport/BUILD.gn b/api/transport/BUILD.gn
index fb0fcf7..39157b0 100644
--- a/api/transport/BUILD.gn
+++ b/api/transport/BUILD.gn
@@ -32,7 +32,7 @@
]
deps = [
- ":webrtc_key_value_config",
+ "../../api:field_trials_view",
"../rtc_event_log",
"../units:data_rate",
"../units:data_size",
@@ -45,16 +45,6 @@
]
}
-rtc_source_set("webrtc_key_value_config") {
- visibility = [ "*" ]
- sources = [ "webrtc_key_value_config.h" ]
- deps = [
- "../../api:webrtc_key_value_config",
- "../../rtc_base/system:rtc_export",
- ]
- absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
-}
-
rtc_library("field_trial_based_config") {
visibility = [ "*" ]
sources = [
@@ -62,7 +52,7 @@
"field_trial_based_config.h",
]
deps = [
- ":webrtc_key_value_config",
+ "../../api:field_trials_view",
"../../system_wrappers:field_trial",
]
absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
@@ -88,8 +78,8 @@
]
deps = [
":network_control",
- ":webrtc_key_value_config",
"..:network_state_predictor_api",
+ "../../api:field_trials_view",
"../../modules/congestion_controller/goog_cc",
]
absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
diff --git a/api/transport/field_trial_based_config.h b/api/transport/field_trial_based_config.h
index 0754570..f0063ff 100644
--- a/api/transport/field_trial_based_config.h
+++ b/api/transport/field_trial_based_config.h
@@ -13,11 +13,11 @@
#include <string>
#include "absl/strings/string_view.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
namespace webrtc {
// Implementation using the field trial API fo the key value lookup.
-class FieldTrialBasedConfig : public WebRtcKeyValueConfig {
+class FieldTrialBasedConfig : public FieldTrialsView {
public:
std::string Lookup(absl::string_view key) const override;
};
diff --git a/api/transport/network_control.h b/api/transport/network_control.h
index c2b005e..8623224 100644
--- a/api/transport/network_control.h
+++ b/api/transport/network_control.h
@@ -15,9 +15,9 @@
#include <memory>
#include "absl/base/attributes.h"
+#include "api/field_trials_view.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/transport/network_types.h"
-#include "api/transport/webrtc_key_value_config.h"
namespace webrtc {
@@ -46,7 +46,7 @@
// Optional override of configuration of WebRTC internals. Using nullptr here
// indicates that the field trial API will be used.
- const WebRtcKeyValueConfig* key_value_config = nullptr;
+ const FieldTrialsView* key_value_config = nullptr;
// Optional override of event log.
RtcEventLog* event_log = nullptr;
};
@@ -132,7 +132,7 @@
class NetworkStateEstimatorFactory {
public:
virtual std::unique_ptr<NetworkStateEstimator> Create(
- const WebRtcKeyValueConfig* key_value_config) = 0;
+ const FieldTrialsView* key_value_config) = 0;
virtual ~NetworkStateEstimatorFactory() = default;
};
} // namespace webrtc
diff --git a/api/transport/webrtc_key_value_config.h b/api/transport/webrtc_key_value_config.h
deleted file mode 100644
index f666873..0000000
--- a/api/transport/webrtc_key_value_config.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 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 API_TRANSPORT_WEBRTC_KEY_VALUE_CONFIG_H_
-#define API_TRANSPORT_WEBRTC_KEY_VALUE_CONFIG_H_
-
-// TODO(bugs.webrtc.org/10335): Remove once all migrated to
-// "api/webrtc_key_value_config.h".
-#include "api/webrtc_key_value_config.h"
-
-#endif // API_TRANSPORT_WEBRTC_KEY_VALUE_CONFIG_H_
diff --git a/api/video/BUILD.gn b/api/video/BUILD.gn
index c096be8..dd78cac 100644
--- a/api/video/BUILD.gn
+++ b/api/video/BUILD.gn
@@ -269,7 +269,7 @@
deps = [
":video_stream_decoder",
- "../../api:webrtc_key_value_config",
+ "../../api:field_trials_view",
"../../rtc_base:rtc_base_approved",
"../../video:video_stream_decoder_impl",
"../task_queue",
diff --git a/api/video/video_stream_decoder_create.cc b/api/video/video_stream_decoder_create.cc
index c64a2d8..e14c3bc 100644
--- a/api/video/video_stream_decoder_create.cc
+++ b/api/video/video_stream_decoder_create.cc
@@ -23,7 +23,7 @@
std::map<int, std::pair<SdpVideoFormat, int>> decoder_settings,
// TODO(jonaso, webrtc:10335): Consider what to do with factories
// vs. field trials.
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
return std::make_unique<VideoStreamDecoderImpl>(
callbacks, decoder_factory, task_queue_factory,
std::move(decoder_settings), field_trials);
diff --git a/api/video/video_stream_decoder_create.h b/api/video/video_stream_decoder_create.h
index 9591412..974fd80 100644
--- a/api/video/video_stream_decoder_create.h
+++ b/api/video/video_stream_decoder_create.h
@@ -15,10 +15,10 @@
#include <memory>
#include <utility>
+#include "api/field_trials_view.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/video/video_stream_decoder.h"
#include "api/video_codecs/sdp_video_format.h"
-#include "api/webrtc_key_value_config.h"
namespace webrtc {
// The `decoder_settings` parameter is a map between:
@@ -30,7 +30,7 @@
VideoDecoderFactory* decoder_factory,
TaskQueueFactory* task_queue_factory,
std::map<int, std::pair<SdpVideoFormat, int>> decoder_settings,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
} // namespace webrtc
diff --git a/api/webrtc_key_value_config.h b/api/webrtc_key_value_config.h
index 32a2e47..e3cac59 100644
--- a/api/webrtc_key_value_config.h
+++ b/api/webrtc_key_value_config.h
@@ -10,32 +10,8 @@
#ifndef API_WEBRTC_KEY_VALUE_CONFIG_H_
#define API_WEBRTC_KEY_VALUE_CONFIG_H_
-#include <string>
-
-#include "absl/strings/string_view.h"
-#include "rtc_base/system/rtc_export.h"
-
-namespace webrtc {
-
-// An interface that provides a key-value mapping for configuring internal
-// details of WebRTC. Note that there's no guarantess that the meaning of a
-// particular key value mapping will be preserved over time and no announcements
-// will be made if they are changed. It's up to the library user to ensure that
-// the behavior does not break.
-class RTC_EXPORT WebRtcKeyValueConfig {
- public:
- virtual ~WebRtcKeyValueConfig() = default;
- // The configured value for the given key. Defaults to an empty string.
- virtual std::string Lookup(absl::string_view key) const = 0;
-
- bool IsEnabled(absl::string_view key) const {
- return Lookup(key).find("Enabled") == 0;
- }
-
- bool IsDisabled(absl::string_view key) const {
- return Lookup(key).find("Disabled") == 0;
- }
-};
-} // namespace webrtc
+// TODO(bugs.webrtc.org/10335): Remove once all migrated to
+// api/field_trials_view.h
+#include "api/field_trials_view.h"
#endif // API_WEBRTC_KEY_VALUE_CONFIG_H_
diff --git a/audio/BUILD.gn b/audio/BUILD.gn
index 5e51699..6ff2975 100644
--- a/audio/BUILD.gn
+++ b/audio/BUILD.gn
@@ -42,6 +42,7 @@
deps = [
"../api:array_view",
"../api:call_api",
+ "../api:field_trials_view",
"../api:frame_transformer_interface",
"../api:function_view",
"../api:rtp_headers",
@@ -49,7 +50,6 @@
"../api:scoped_refptr",
"../api:sequence_checker",
"../api:transport_api",
- "../api:webrtc_key_value_config",
"../api/audio:aec3_factory",
"../api/audio:audio_frame_api",
"../api/audio:audio_frame_processor",
diff --git a/audio/audio_send_stream.cc b/audio/audio_send_stream.cc
index c291534..cc1320c 100644
--- a/audio/audio_send_stream.cc
+++ b/audio/audio_send_stream.cc
@@ -88,7 +88,7 @@
}
AudioAllocationConfig::AudioAllocationConfig(
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
Parser()->Parse(field_trials.Lookup(kKey));
if (priority_bitrate_raw && !priority_bitrate.IsZero()) {
RTC_LOG(LS_WARNING) << "'priority_bitrate' and '_raw' are mutually "
@@ -107,7 +107,7 @@
RtcEventLog* event_log,
RtcpRttStats* rtcp_rtt_stats,
const absl::optional<RtpState>& suspended_rtp_state,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: AudioSendStream(
clock,
config,
@@ -142,7 +142,7 @@
RtcEventLog* event_log,
const absl::optional<RtpState>& suspended_rtp_state,
std::unique_ptr<voe::ChannelSendInterface> channel_send,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: clock_(clock),
field_trials_(field_trials),
rtp_transport_queue_(rtp_transport->GetWorkerQueue()),
diff --git a/audio/audio_send_stream.h b/audio/audio_send_stream.h
index ad40a89..23c7213 100644
--- a/audio/audio_send_stream.h
+++ b/audio/audio_send_stream.h
@@ -15,8 +15,8 @@
#include <utility>
#include <vector>
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
-#include "api/webrtc_key_value_config.h"
#include "audio/audio_level.h"
#include "audio/channel_send.h"
#include "call/audio_send_stream.h"
@@ -47,7 +47,7 @@
absl::optional<double> bitrate_priority;
std::unique_ptr<StructParametersParser> Parser();
- explicit AudioAllocationConfig(const WebRtcKeyValueConfig& field_trials);
+ explicit AudioAllocationConfig(const FieldTrialsView& field_trials);
};
namespace internal {
class AudioState;
@@ -64,7 +64,7 @@
RtcEventLog* event_log,
RtcpRttStats* rtcp_rtt_stats,
const absl::optional<RtpState>& suspended_rtp_state,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
// For unit tests, which need to supply a mock ChannelSend.
AudioSendStream(Clock* clock,
const webrtc::AudioSendStream::Config& config,
@@ -75,7 +75,7 @@
RtcEventLog* event_log,
const absl::optional<RtpState>& suspended_rtp_state,
std::unique_ptr<voe::ChannelSendInterface> channel_send,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
AudioSendStream() = delete;
AudioSendStream(const AudioSendStream&) = delete;
@@ -163,7 +163,7 @@
RTC_RUN_ON(worker_thread_checker_);
Clock* clock_;
- const WebRtcKeyValueConfig& field_trials_;
+ const FieldTrialsView& field_trials_;
SequenceChecker worker_thread_checker_;
SequenceChecker pacer_thread_checker_;
diff --git a/audio/channel_send.cc b/audio/channel_send.cc
index d6b5823..3f2f13c 100644
--- a/audio/channel_send.cc
+++ b/audio/channel_send.cc
@@ -78,7 +78,7 @@
uint32_t ssrc,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
TransportFeedbackObserver* feedback_observer,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~ChannelSend() override;
@@ -459,7 +459,7 @@
uint32_t ssrc,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
TransportFeedbackObserver* feedback_observer,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: ssrc_(ssrc),
event_log_(rtc_event_log),
_timeStamp(0), // This is just an offset, RTP module will add it's own
@@ -950,7 +950,7 @@
uint32_t ssrc,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
TransportFeedbackObserver* feedback_observer,
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
return std::make_unique<ChannelSend>(
clock, task_queue_factory, rtp_transport, rtcp_rtt_stats, rtc_event_log,
frame_encryptor, crypto_options, extmap_allow_mixed,
diff --git a/audio/channel_send.h b/audio/channel_send.h
index bfbfbee..a555b89 100644
--- a/audio/channel_send.h
+++ b/audio/channel_send.h
@@ -18,10 +18,10 @@
#include "api/audio/audio_frame.h"
#include "api/audio_codecs/audio_encoder.h"
#include "api/crypto/crypto_options.h"
+#include "api/field_trials_view.h"
#include "api/frame_transformer_interface.h"
#include "api/function_view.h"
#include "api/task_queue/task_queue_factory.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/rtp_rtcp/include/report_block_data.h"
#include "modules/rtp_rtcp/source/rtp_rtcp_interface.h"
#include "modules/rtp_rtcp/source/rtp_sender_audio.h"
@@ -137,7 +137,7 @@
uint32_t ssrc,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
TransportFeedbackObserver* feedback_observer,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
} // namespace voe
} // namespace webrtc
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,
diff --git a/media/BUILD.gn b/media/BUILD.gn
index b9d9208..eb29077 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -51,13 +51,13 @@
":rtc_media_config",
"../api:array_view",
"../api:audio_options_api",
+ "../api:field_trials_view",
"../api:frame_transformer_interface",
"../api:media_stream_interface",
"../api:rtc_error",
"../api:rtp_parameters",
"../api:scoped_refptr",
"../api:sequence_checker",
- "../api:webrtc_key_value_config",
"../api/audio:audio_frame_processor",
"../api/audio_codecs:audio_codecs_api",
"../api/crypto:frame_decryptor_interface",
@@ -249,6 +249,7 @@
deps = [
":rtc_media_base",
"../api:call_api",
+ "../api:field_trials_view",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api:rtp_parameters",
@@ -261,7 +262,6 @@
"../api/task_queue",
"../api/transport:bitrate_settings",
"../api/transport:field_trial_based_config",
- "../api/transport:webrtc_key_value_config",
"../api/transport/rtp:rtp_source",
"../api/units:data_rate",
"../api/video:video_bitrate_allocation",
@@ -453,7 +453,7 @@
]
deps = [
":rtc_data_sctp_transport_internal",
- "../api:webrtc_key_value_config",
+ "../api:field_trials_view",
"../api/transport:sctp_transport_factory_interface",
"../rtc_base:threading",
"../rtc_base/experiments:field_trial_parser",
diff --git a/media/base/codec.cc b/media/base/codec.cc
index a01914d..4935e94 100644
--- a/media/base/codec.cc
+++ b/media/base/codec.cc
@@ -129,7 +129,7 @@
}
bool Codec::Matches(const Codec& codec,
- const webrtc::WebRtcKeyValueConfig* field_trials) const {
+ const webrtc::FieldTrialsView* field_trials) const {
// Match the codec id/name based on the typical static/dynamic name rules.
// Matching is case-insensitive.
@@ -238,9 +238,8 @@
return bitrate == c.bitrate && channels == c.channels && Codec::operator==(c);
}
-bool AudioCodec::Matches(
- const AudioCodec& codec,
- const webrtc::WebRtcKeyValueConfig* field_trials) const {
+bool AudioCodec::Matches(const AudioCodec& codec,
+ const webrtc::FieldTrialsView* field_trials) const {
// If a nonzero clockrate is specified, it must match the actual clockrate.
// If a nonzero bitrate is specified, it must match the actual bitrate,
// unless the codec is VBR (0), where we just force the supplied value.
@@ -326,9 +325,8 @@
return Codec::operator==(c) && packetization == c.packetization;
}
-bool VideoCodec::Matches(
- const VideoCodec& other,
- const webrtc::WebRtcKeyValueConfig* field_trials) const {
+bool VideoCodec::Matches(const VideoCodec& other,
+ const webrtc::FieldTrialsView* field_trials) const {
return Codec::Matches(other, field_trials) &&
IsSameCodecSpecific(name, params, other.name, other.params);
}
diff --git a/media/base/codec.h b/media/base/codec.h
index 70ecfd3..c07cf60 100644
--- a/media/base/codec.h
+++ b/media/base/codec.h
@@ -17,9 +17,9 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/rtp_parameters.h"
#include "api/video_codecs/sdp_video_format.h"
-#include "api/webrtc_key_value_config.h"
#include "media/base/media_constants.h"
#include "rtc_base/system/rtc_export.h"
@@ -76,9 +76,8 @@
virtual ~Codec();
// Indicates if this codec is compatible with the specified codec.
- bool Matches(
- const Codec& codec,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr) const;
+ bool Matches(const Codec& codec,
+ const webrtc::FieldTrialsView* field_trials = nullptr) const;
bool MatchesCapability(const webrtc::RtpCodecCapability& capability) const;
// Find the parameter for `name` and write the value to `out`.
@@ -135,9 +134,8 @@
~AudioCodec() override = default;
// Indicates if this codec is compatible with the specified codec.
- bool Matches(
- const AudioCodec& codec,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr) const;
+ bool Matches(const AudioCodec& codec,
+ const webrtc::FieldTrialsView* field_trials = nullptr) const;
std::string ToString() const;
@@ -168,9 +166,8 @@
// Indicates if this video codec is the same as the other video codec, e.g. if
// they are both VP8 or VP9, or if they are both H264 with the same H264
// profile. H264 levels however are not compared.
- bool Matches(
- const VideoCodec& codec,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr) const;
+ bool Matches(const VideoCodec& codec,
+ const webrtc::FieldTrialsView* field_trials = nullptr) const;
std::string ToString() const;
diff --git a/media/base/media_engine.cc b/media/base/media_engine.cc
index 21c3787..813657e 100644
--- a/media/base/media_engine.cc
+++ b/media/base/media_engine.cc
@@ -152,7 +152,7 @@
}
CompositeMediaEngine::CompositeMediaEngine(
- std::unique_ptr<webrtc::WebRtcKeyValueConfig> trials,
+ std::unique_ptr<webrtc::FieldTrialsView> trials,
std::unique_ptr<VoiceEngineInterface> audio_engine,
std::unique_ptr<VideoEngineInterface> video_engine)
: trials_(std::move(trials)),
diff --git a/media/base/media_engine.h b/media/base/media_engine.h
index 7b4dbe4..5a6a8c29 100644
--- a/media/base/media_engine.h
+++ b/media/base/media_engine.h
@@ -18,9 +18,9 @@
#include "api/audio_codecs/audio_decoder_factory.h"
#include "api/audio_codecs/audio_encoder_factory.h"
#include "api/crypto/crypto_options.h"
+#include "api/field_trials_view.h"
#include "api/rtp_parameters.h"
#include "api/video/video_bitrate_allocator_factory.h"
-#include "api/webrtc_key_value_config.h"
#include "call/audio_state.h"
#include "media/base/codec.h"
#include "media/base/media_channel.h"
@@ -137,10 +137,10 @@
// CompositeMediaEngine constructs a MediaEngine from separate
// voice and video engine classes.
-// Optionally owns a WebRtcKeyValueConfig trials map.
+// Optionally owns a FieldTrialsView trials map.
class CompositeMediaEngine : public MediaEngineInterface {
public:
- CompositeMediaEngine(std::unique_ptr<webrtc::WebRtcKeyValueConfig> trials,
+ CompositeMediaEngine(std::unique_ptr<webrtc::FieldTrialsView> trials,
std::unique_ptr<VoiceEngineInterface> audio_engine,
std::unique_ptr<VideoEngineInterface> video_engine);
CompositeMediaEngine(std::unique_ptr<VoiceEngineInterface> audio_engine,
@@ -156,7 +156,7 @@
const VideoEngineInterface& video() const override;
private:
- const std::unique_ptr<webrtc::WebRtcKeyValueConfig> trials_;
+ const std::unique_ptr<webrtc::FieldTrialsView> trials_;
const std::unique_ptr<VoiceEngineInterface> voice_engine_;
const std::unique_ptr<VideoEngineInterface> video_engine_;
};
diff --git a/media/base/test_utils.h b/media/base/test_utils.h
index fbd9f35..fb18485 100644
--- a/media/base/test_utils.h
+++ b/media/base/test_utils.h
@@ -39,7 +39,7 @@
template <class C>
bool ContainsMatchingCodec(const std::vector<C>& codecs,
const C& codec,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+ const webrtc::FieldTrialsView* field_trials) {
typename std::vector<C>::const_iterator it;
for (it = codecs.begin(); it != codecs.end(); ++it) {
if (it->Matches(codec, field_trials)) {
diff --git a/media/engine/fake_webrtc_call.h b/media/engine/fake_webrtc_call.h
index 498efcf..d2a867f 100644
--- a/media/engine/fake_webrtc_call.h
+++ b/media/engine/fake_webrtc_call.h
@@ -360,9 +360,7 @@
*trials_, field_trial_string);
}
- const webrtc::WebRtcKeyValueConfig& trials() const override {
- return *trials_;
- }
+ const webrtc::FieldTrialsView& trials() const override { return *trials_; }
private:
webrtc::AudioSendStream* CreateAudioSendStream(
diff --git a/media/engine/simulcast.cc b/media/engine/simulcast.cc
index 3909685..93607e8 100644
--- a/media/engine/simulcast.cc
+++ b/media/engine/simulcast.cc
@@ -45,8 +45,7 @@
constexpr double kDefaultMaxRoundupRate = 0.1;
// TODO(webrtc:12415): Flip this to a kill switch when this feature launches.
-bool EnableLowresBitrateInterpolation(
- const webrtc::WebRtcKeyValueConfig& trials) {
+bool EnableLowresBitrateInterpolation(const webrtc::FieldTrialsView& trials) {
return absl::StartsWith(
trials.Lookup("WebRTC-LowresSimulcastBitrateInterpolation"), "Enabled");
}
@@ -134,7 +133,7 @@
// Multiway: Number of temporal layers for each simulcast stream.
int DefaultNumberOfTemporalLayers(int simulcast_id,
bool screenshare,
- const webrtc::WebRtcKeyValueConfig& trials) {
+ const webrtc::FieldTrialsView& trials) {
RTC_CHECK_GE(simulcast_id, 0);
RTC_CHECK_LT(simulcast_id, webrtc::kMaxSimulcastStreams);
@@ -291,7 +290,7 @@
int height,
size_t need_layers,
size_t layer_count,
- const webrtc::WebRtcKeyValueConfig& trials) {
+ const webrtc::FieldTrialsView& trials) {
if (!absl::StartsWith(trials.Lookup(kUseLegacySimulcastLayerLimitFieldTrial),
"Disabled")) {
// Max layers from one higher resolution in kSimulcastFormats will be used
@@ -327,7 +326,7 @@
int max_qp,
bool is_screenshare_with_conference_mode,
bool temporal_layers_supported,
- const webrtc::WebRtcKeyValueConfig& trials) {
+ const webrtc::FieldTrialsView& trials) {
RTC_DCHECK_LE(min_layers, max_layers);
RTC_DCHECK(max_layers > 1 || is_screenshare_with_conference_mode);
@@ -359,7 +358,7 @@
int max_qp,
bool temporal_layers_supported,
bool base_heavy_tl3_rate_alloc,
- const webrtc::WebRtcKeyValueConfig& trials) {
+ const webrtc::FieldTrialsView& trials) {
std::vector<webrtc::VideoStream> layers(layer_count);
const bool enable_lowres_bitrate_interpolation =
@@ -451,7 +450,7 @@
int max_qp,
bool temporal_layers_supported,
bool base_heavy_tl3_rate_alloc,
- const webrtc::WebRtcKeyValueConfig& trials) {
+ const webrtc::FieldTrialsView& trials) {
auto max_screenshare_layers = kMaxScreenshareSimulcastLayers;
size_t num_simulcast_layers =
std::min<int>(max_layers, max_screenshare_layers);
diff --git a/media/engine/simulcast.h b/media/engine/simulcast.h
index aa8c394..e367830 100644
--- a/media/engine/simulcast.h
+++ b/media/engine/simulcast.h
@@ -15,7 +15,7 @@
#include <vector>
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "api/units/data_rate.h"
#include "api/video_codecs/video_encoder_config.h"
@@ -43,7 +43,7 @@
int max_qp,
bool is_screenshare_with_conference_mode,
bool temporal_layers_supported,
- const webrtc::WebRtcKeyValueConfig& trials);
+ const webrtc::FieldTrialsView& trials);
// Gets the simulcast config layers for a non-screensharing case.
std::vector<webrtc::VideoStream> GetNormalSimulcastLayers(
@@ -54,7 +54,7 @@
int max_qp,
bool temporal_layers_supported,
bool base_heavy_tl3_rate_alloc,
- const webrtc::WebRtcKeyValueConfig& trials);
+ const webrtc::FieldTrialsView& trials);
// Gets simulcast config layers for screenshare settings.
std::vector<webrtc::VideoStream> GetScreenshareLayers(
@@ -65,7 +65,7 @@
int max_qp,
bool temporal_layers_supported,
bool base_heavy_tl3_rate_alloc,
- const webrtc::WebRtcKeyValueConfig& trials);
+ const webrtc::FieldTrialsView& trials);
} // namespace cricket
diff --git a/media/engine/webrtc_media_engine.cc b/media/engine/webrtc_media_engine.cc
index f083b9c..3c28feb 100644
--- a/media/engine/webrtc_media_engine.cc
+++ b/media/engine/webrtc_media_engine.cc
@@ -30,9 +30,9 @@
MediaEngineDependencies dependencies) {
// TODO(sprang): Make populating `dependencies.trials` mandatory and remove
// these fallbacks.
- std::unique_ptr<webrtc::WebRtcKeyValueConfig> fallback_trials(
+ std::unique_ptr<webrtc::FieldTrialsView> fallback_trials(
dependencies.trials ? nullptr : new webrtc::FieldTrialBasedConfig());
- const webrtc::WebRtcKeyValueConfig& trials =
+ const webrtc::FieldTrialsView& trials =
dependencies.trials ? *dependencies.trials : *fallback_trials;
auto audio_engine = std::make_unique<WebRtcVoiceEngine>(
dependencies.task_queue_factory, std::move(dependencies.adm),
@@ -137,7 +137,7 @@
const std::vector<webrtc::RtpExtension>& extensions,
bool (*supported)(absl::string_view),
bool filter_redundant_extensions,
- const webrtc::WebRtcKeyValueConfig& trials) {
+ const webrtc::FieldTrialsView& trials) {
// Don't check against old parameters; this should have been done earlier.
RTC_DCHECK(ValidateRtpExtensions(extensions, {}));
RTC_DCHECK(supported);
diff --git a/media/engine/webrtc_media_engine.h b/media/engine/webrtc_media_engine.h
index ff97760..27d6f34 100644
--- a/media/engine/webrtc_media_engine.h
+++ b/media/engine/webrtc_media_engine.h
@@ -19,11 +19,11 @@
#include "api/audio/audio_mixer.h"
#include "api/audio_codecs/audio_decoder_factory.h"
#include "api/audio_codecs/audio_encoder_factory.h"
+#include "api/field_trials_view.h"
#include "api/rtp_parameters.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/transport/bitrate_settings.h"
#include "api/transport/field_trial_based_config.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/video_codecs/video_decoder_factory.h"
#include "api/video_codecs/video_encoder_factory.h"
#include "media/base/codec.h"
@@ -53,7 +53,7 @@
std::unique_ptr<webrtc::VideoEncoderFactory> video_encoder_factory;
std::unique_ptr<webrtc::VideoDecoderFactory> video_decoder_factory;
- const webrtc::WebRtcKeyValueConfig* trials = nullptr;
+ const webrtc::FieldTrialsView* trials = nullptr;
};
// CreateMediaEngine may be called on any thread, though the engine is
@@ -76,7 +76,7 @@
const std::vector<webrtc::RtpExtension>& extensions,
bool (*supported)(absl::string_view),
bool filter_redundant_extensions,
- const webrtc::WebRtcKeyValueConfig& trials);
+ const webrtc::FieldTrialsView& trials);
webrtc::BitrateConstraints GetBitrateConfigForCodec(const Codec& codec);
diff --git a/media/engine/webrtc_video_engine.cc b/media/engine/webrtc_video_engine.cc
index 58ae499..0e2cfa2 100644
--- a/media/engine/webrtc_video_engine.cc
+++ b/media/engine/webrtc_video_engine.cc
@@ -82,13 +82,11 @@
return nullptr;
}
-bool IsEnabled(const webrtc::WebRtcKeyValueConfig& trials,
- absl::string_view name) {
+bool IsEnabled(const webrtc::FieldTrialsView& trials, absl::string_view name) {
return absl::StartsWith(trials.Lookup(name), "Enabled");
}
-bool IsDisabled(const webrtc::WebRtcKeyValueConfig& trials,
- absl::string_view name) {
+bool IsDisabled(const webrtc::FieldTrialsView& trials, absl::string_view name) {
return absl::StartsWith(trials.Lookup(name), "Disabled");
}
@@ -107,7 +105,7 @@
}
void AddDefaultFeedbackParams(VideoCodec* codec,
- const webrtc::WebRtcKeyValueConfig& trials) {
+ const webrtc::FieldTrialsView& trials) {
// Don't add any feedback params for RED and ULPFEC.
if (codec->name == kRedCodecName || codec->name == kUlpfecCodecName)
return;
@@ -164,7 +162,7 @@
std::vector<VideoCodec> GetPayloadTypesAndDefaultCodecs(
const T* factory,
bool is_decoder_factory,
- const webrtc::WebRtcKeyValueConfig& trials) {
+ const webrtc::FieldTrialsView& trials) {
if (!factory) {
return {};
}
@@ -331,7 +329,7 @@
// Returns true if the given codec is disallowed from doing simulcast.
bool IsCodecDisabledForSimulcast(const std::string& codec_name,
- const webrtc::WebRtcKeyValueConfig& trials) {
+ const webrtc::FieldTrialsView& trials) {
if (absl::EqualsIgnoreCase(codec_name, kVp9CodecName) ||
absl::EqualsIgnoreCase(codec_name, kAv1CodecName)) {
return true;
@@ -612,7 +610,7 @@
WebRtcVideoEngine::WebRtcVideoEngine(
std::unique_ptr<webrtc::VideoEncoderFactory> video_encoder_factory,
std::unique_ptr<webrtc::VideoDecoderFactory> video_decoder_factory,
- const webrtc::WebRtcKeyValueConfig& trials)
+ const webrtc::FieldTrialsView& trials)
: decoder_factory_(std::move(video_decoder_factory)),
encoder_factory_(std::move(video_encoder_factory)),
trials_(trials) {
@@ -3498,7 +3496,7 @@
int max_qp,
bool is_screenshare,
bool conference_mode,
- const webrtc::WebRtcKeyValueConfig* trials)
+ const webrtc::FieldTrialsView* trials)
: codec_name_(codec_name),
max_qp_(max_qp),
diff --git a/media/engine/webrtc_video_engine.h b/media/engine/webrtc_video_engine.h
index 940985d..f70ebca 100644
--- a/media/engine/webrtc_video_engine.h
+++ b/media/engine/webrtc_video_engine.h
@@ -94,7 +94,7 @@
WebRtcVideoEngine(
std::unique_ptr<webrtc::VideoEncoderFactory> video_encoder_factory,
std::unique_ptr<webrtc::VideoDecoderFactory> video_decoder_factory,
- const webrtc::WebRtcKeyValueConfig& trials);
+ const webrtc::FieldTrialsView& trials);
~WebRtcVideoEngine() override;
@@ -116,7 +116,7 @@
const std::unique_ptr<webrtc::VideoEncoderFactory> encoder_factory_;
const std::unique_ptr<webrtc::VideoBitrateAllocatorFactory>
bitrate_allocator_factory_;
- const webrtc::WebRtcKeyValueConfig& trials_;
+ const webrtc::FieldTrialsView& trials_;
};
class WebRtcVideoChannel : public VideoMediaChannel,
@@ -658,7 +658,7 @@
int max_qp,
bool is_screenshare,
bool conference_mode,
- const webrtc::WebRtcKeyValueConfig* trials);
+ const webrtc::FieldTrialsView* trials);
private:
std::vector<webrtc::VideoStream> CreateEncoderStreams(
@@ -686,7 +686,7 @@
// layering and various settings.
const bool conference_mode_;
const webrtc::FieldTrialBasedConfig fallback_trials_;
- const webrtc::WebRtcKeyValueConfig& trials_;
+ const webrtc::FieldTrialsView& trials_;
};
} // namespace cricket
diff --git a/media/engine/webrtc_voice_engine.cc b/media/engine/webrtc_voice_engine.cc
index 54d1963..be4dab9 100644
--- a/media/engine/webrtc_voice_engine.cc
+++ b/media/engine/webrtc_voice_engine.cc
@@ -23,7 +23,7 @@
#include "api/audio/audio_frame_processor.h"
#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/call/audio_sink.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "media/base/audio_source.h"
#include "media/base/media_constants.h"
#include "media/base/stream_params.h"
@@ -126,7 +126,7 @@
bool FindCodec(const std::vector<AudioCodec>& codecs,
const AudioCodec& codec,
AudioCodec* found_codec,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+ const webrtc::FieldTrialsView* field_trials) {
for (const AudioCodec& c : codecs) {
if (c.Matches(codec, field_trials)) {
if (found_codec != NULL) {
@@ -206,8 +206,7 @@
}
}
-bool IsEnabled(const webrtc::WebRtcKeyValueConfig& config,
- absl::string_view trial) {
+bool IsEnabled(const webrtc::FieldTrialsView& config, absl::string_view trial) {
return absl::StartsWith(config.Lookup(trial), "Enabled");
}
@@ -229,7 +228,7 @@
"use_slow_adaptation", &use_slow_adaptation);
}
- explicit AdaptivePtimeConfig(const webrtc::WebRtcKeyValueConfig& trials) {
+ explicit AdaptivePtimeConfig(const webrtc::FieldTrialsView& trials) {
Parser()->Parse(trials.Lookup("WebRTC-Audio-AdaptivePtime"));
#if WEBRTC_ENABLE_PROTOBUF
webrtc::audio_network_adaptor::config::ControllerManager config;
@@ -299,7 +298,7 @@
rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer,
rtc::scoped_refptr<webrtc::AudioProcessing> audio_processing,
webrtc::AudioFrameProcessor* audio_frame_processor,
- const webrtc::WebRtcKeyValueConfig& trials)
+ const webrtc::FieldTrialsView& trials)
: task_queue_factory_(task_queue_factory),
adm_(adm),
encoder_factory_(encoder_factory),
diff --git a/media/engine/webrtc_voice_engine.h b/media/engine/webrtc_voice_engine.h
index 1a0b544..f15b9f5 100644
--- a/media/engine/webrtc_voice_engine.h
+++ b/media/engine/webrtc_voice_engine.h
@@ -17,11 +17,11 @@
#include <vector>
#include "api/audio_codecs/audio_encoder_factory.h"
+#include "api/field_trials_view.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/transport/rtp/rtp_source.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "call/audio_state.h"
#include "call/call.h"
#include "media/base/media_engine.h"
@@ -55,7 +55,7 @@
rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer,
rtc::scoped_refptr<webrtc::AudioProcessing> audio_processing,
webrtc::AudioFrameProcessor* audio_frame_processor,
- const webrtc::WebRtcKeyValueConfig& trials);
+ const webrtc::FieldTrialsView& trials);
WebRtcVoiceEngine() = delete;
WebRtcVoiceEngine(const WebRtcVoiceEngine&) = delete;
diff --git a/media/sctp/sctp_transport_factory.cc b/media/sctp/sctp_transport_factory.cc
index 21b5b02..51ce372 100644
--- a/media/sctp/sctp_transport_factory.cc
+++ b/media/sctp/sctp_transport_factory.cc
@@ -10,7 +10,7 @@
#include "media/sctp/sctp_transport_factory.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/system/unused.h"
#ifdef WEBRTC_HAVE_DCSCTP
@@ -26,7 +26,7 @@
SctpTransportFactory::SctpTransportFactory(
rtc::Thread* network_thread,
- const webrtc::WebRtcKeyValueConfig& field_trials)
+ const webrtc::FieldTrialsView& field_trials)
: network_thread_(network_thread), use_usrsctp_("Disabled", false) {
RTC_UNUSED(network_thread_);
#ifdef WEBRTC_HAVE_DCSCTP
diff --git a/media/sctp/sctp_transport_factory.h b/media/sctp/sctp_transport_factory.h
index 4fcec8e..d117fde 100644
--- a/media/sctp/sctp_transport_factory.h
+++ b/media/sctp/sctp_transport_factory.h
@@ -13,8 +13,8 @@
#include <memory>
+#include "api/field_trials_view.h"
#include "api/transport/sctp_transport_factory_interface.h"
-#include "api/webrtc_key_value_config.h"
#include "media/sctp/sctp_transport_internal.h"
#include "rtc_base/experiments/field_trial_parser.h"
#include "rtc_base/thread.h"
@@ -23,9 +23,8 @@
class SctpTransportFactory : public webrtc::SctpTransportFactoryInterface {
public:
- explicit SctpTransportFactory(
- rtc::Thread* network_thread,
- const webrtc::WebRtcKeyValueConfig& field_trials);
+ explicit SctpTransportFactory(rtc::Thread* network_thread,
+ const webrtc::FieldTrialsView& field_trials);
std::unique_ptr<SctpTransportInternal> CreateSctpTransport(
rtc::PacketTransportInternal* transport) override;
diff --git a/modules/audio_coding/BUILD.gn b/modules/audio_coding/BUILD.gn
index af76a11..8866b47 100644
--- a/modules/audio_coding/BUILD.gn
+++ b/modules/audio_coding/BUILD.gn
@@ -118,7 +118,7 @@
deps = [
"../../api:array_view",
- "../../api:webrtc_key_value_config",
+ "../../api:field_trials_view",
"../../api/audio_codecs:audio_codecs_api",
"../../api/units:time_delta",
"../../common_audio",
diff --git a/modules/audio_coding/codecs/red/audio_encoder_copy_red.cc b/modules/audio_coding/codecs/red/audio_encoder_copy_red.cc
index c8a26e8..a9208de 100644
--- a/modules/audio_coding/codecs/red/audio_encoder_copy_red.cc
+++ b/modules/audio_coding/codecs/red/audio_encoder_copy_red.cc
@@ -39,8 +39,7 @@
AudioEncoderCopyRed::Config::Config(Config&&) = default;
AudioEncoderCopyRed::Config::~Config() = default;
-size_t GetMaxRedundancyFromFieldTrial(
- const WebRtcKeyValueConfig& field_trials) {
+size_t GetMaxRedundancyFromFieldTrial(const FieldTrialsView& field_trials) {
const std::string red_trial =
field_trials.Lookup("WebRTC-Audio-Red-For-Opus");
size_t redundancy = 0;
@@ -51,9 +50,8 @@
return redundancy;
}
-AudioEncoderCopyRed::AudioEncoderCopyRed(
- Config&& config,
- const WebRtcKeyValueConfig& field_trials)
+AudioEncoderCopyRed::AudioEncoderCopyRed(Config&& config,
+ const FieldTrialsView& field_trials)
: speech_encoder_(std::move(config.speech_encoder)),
primary_encoded_(0, kAudioMaxRtpPacketLen),
max_packet_length_(kAudioMaxRtpPacketLen),
diff --git a/modules/audio_coding/codecs/red/audio_encoder_copy_red.h b/modules/audio_coding/codecs/red/audio_encoder_copy_red.h
index e7471b3..359b5ea 100644
--- a/modules/audio_coding/codecs/red/audio_encoder_copy_red.h
+++ b/modules/audio_coding/codecs/red/audio_encoder_copy_red.h
@@ -21,8 +21,8 @@
#include "absl/types/optional.h"
#include "api/array_view.h"
#include "api/audio_codecs/audio_encoder.h"
+#include "api/field_trials_view.h"
#include "api/units/time_delta.h"
-#include "api/webrtc_key_value_config.h"
#include "rtc_base/buffer.h"
namespace webrtc {
@@ -43,8 +43,7 @@
std::unique_ptr<AudioEncoder> speech_encoder;
};
- AudioEncoderCopyRed(Config&& config,
- const WebRtcKeyValueConfig& field_trials);
+ AudioEncoderCopyRed(Config&& config, const FieldTrialsView& field_trials);
~AudioEncoderCopyRed() override;
diff --git a/modules/congestion_controller/goog_cc/BUILD.gn b/modules/congestion_controller/goog_cc/BUILD.gn
index 2c50c32..9daedc6 100644
--- a/modules/congestion_controller/goog_cc/BUILD.gn
+++ b/modules/congestion_controller/goog_cc/BUILD.gn
@@ -31,11 +31,11 @@
":pushback_controller",
":send_side_bwe",
"../..:module_api",
+ "../../../api:field_trials_view",
"../../../api:network_state_predictor_api",
"../../../api/rtc_event_log",
"../../../api/transport:field_trial_based_config",
"../../../api/transport:network_control",
- "../../../api/transport:webrtc_key_value_config",
"../../../api/units:data_rate",
"../../../api/units:data_size",
"../../../api/units:time_delta",
@@ -74,8 +74,8 @@
"congestion_window_pushback_controller.h",
]
deps = [
+ "../../../api:field_trials_view",
"../../../api/transport:network_control",
- "../../../api/transport:webrtc_key_value_config",
"../../../api/units:data_size",
"../../../rtc_base:checks",
"../../../rtc_base/experiments:rate_control_settings",
@@ -92,9 +92,9 @@
"alr_detector.h",
]
deps = [
+ "../../../api:field_trials_view",
"../../../api/rtc_event_log",
"../../../api/transport:field_trial_based_config",
- "../../../api/transport:webrtc_key_value_config",
"../../../logging:rtc_event_pacing",
"../../../rtc_base:checks",
"../../../rtc_base:safe_conversions",
@@ -124,10 +124,10 @@
]
deps = [
+ "../../../api:field_trials_view",
"../../../api:network_state_predictor_api",
"../../../api/rtc_event_log",
"../../../api/transport:network_control",
- "../../../api/transport:webrtc_key_value_config",
"../../../api/units:data_rate",
"../../../api/units:timestamp",
"../../../logging:rtc_event_bwe",
@@ -153,9 +153,9 @@
]
deps = [
"../../../api:array_view",
+ "../../../api:field_trials_view",
"../../../api:network_state_predictor_api",
"../../../api/transport:network_control",
- "../../../api/transport:webrtc_key_value_config",
"../../../api/units:data_rate",
"../../../api/units:data_size",
"../../../api/units:time_delta",
@@ -176,8 +176,8 @@
"loss_based_bandwidth_estimation.h",
]
deps = [
+ "../../../api:field_trials_view",
"../../../api/transport:network_control",
- "../../../api/transport:webrtc_key_value_config",
"../../../api/units:data_rate",
"../../../api/units:time_delta",
"../../../api/units:timestamp",
@@ -196,10 +196,10 @@
deps = [
":loss_based_bwe_v1",
":loss_based_bwe_v2",
+ "../../../api:field_trials_view",
"../../../api:network_state_predictor_api",
"../../../api/rtc_event_log",
"../../../api/transport:network_control",
- "../../../api/transport:webrtc_key_value_config",
"../../../api/units:data_rate",
"../../../api/units:time_delta",
"../../../api/units:timestamp",
@@ -228,10 +228,10 @@
deps = [
":estimators",
+ "../../../api:field_trials_view",
"../../../api:network_state_predictor_api",
"../../../api/rtc_event_log",
"../../../api/transport:network_control",
- "../../../api/transport:webrtc_key_value_config",
"../../../api/units:time_delta",
"../../../api/units:timestamp",
"../../../logging:rtc_event_bwe",
@@ -255,9 +255,9 @@
]
deps = [
+ "../../../api:field_trials_view",
"../../../api/rtc_event_log",
"../../../api/transport:network_control",
- "../../../api/transport:webrtc_key_value_config",
"../../../api/units:data_rate",
"../../../api/units:time_delta",
"../../../api/units:timestamp",
@@ -327,6 +327,7 @@
":probe_controller",
":pushback_controller",
":send_side_bwe",
+ "../../../api:field_trials_view",
"../../../api:network_state_predictor_api",
"../../../api/rtc_event_log",
"../../../api/test/network_emulation",
@@ -334,7 +335,6 @@
"../../../api/transport:field_trial_based_config",
"../../../api/transport:goog_cc",
"../../../api/transport:network_control",
- "../../../api/transport:webrtc_key_value_config",
"../../../api/units:data_rate",
"../../../api/units:data_size",
"../../../api/units:time_delta",
diff --git a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.cc b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.cc
index f3c992f..08b42a8 100644
--- a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.cc
+++ b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.cc
@@ -22,7 +22,7 @@
namespace webrtc {
AcknowledgedBitrateEstimator::AcknowledgedBitrateEstimator(
- const WebRtcKeyValueConfig* key_value_config)
+ const FieldTrialsView* key_value_config)
: AcknowledgedBitrateEstimator(
key_value_config,
std::make_unique<BitrateEstimator>(key_value_config)) {}
@@ -30,7 +30,7 @@
AcknowledgedBitrateEstimator::~AcknowledgedBitrateEstimator() {}
AcknowledgedBitrateEstimator::AcknowledgedBitrateEstimator(
- const WebRtcKeyValueConfig* key_value_config,
+ const FieldTrialsView* key_value_config,
std::unique_ptr<BitrateEstimator> bitrate_estimator)
: in_alr_(false), bitrate_estimator_(std::move(bitrate_estimator)) {}
diff --git a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.h b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.h
index 97dd965..d10846a 100644
--- a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.h
+++ b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.h
@@ -15,8 +15,8 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/transport/network_types.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/units/data_rate.h"
#include "modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h"
#include "modules/congestion_controller/goog_cc/bitrate_estimator.h"
@@ -27,11 +27,11 @@
: public AcknowledgedBitrateEstimatorInterface {
public:
AcknowledgedBitrateEstimator(
- const WebRtcKeyValueConfig* key_value_config,
+ const FieldTrialsView* key_value_config,
std::unique_ptr<BitrateEstimator> bitrate_estimator);
explicit AcknowledgedBitrateEstimator(
- const WebRtcKeyValueConfig* key_value_config);
+ const FieldTrialsView* key_value_config);
~AcknowledgedBitrateEstimator() override;
void IncomingPacketFeedbackVector(
diff --git a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.cc b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.cc
index d5b1a13..283c9a8 100644
--- a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.cc
+++ b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.cc
@@ -21,7 +21,7 @@
constexpr char RobustThroughputEstimatorSettings::kKey[];
RobustThroughputEstimatorSettings::RobustThroughputEstimatorSettings(
- const WebRtcKeyValueConfig* key_value_config) {
+ const FieldTrialsView* key_value_config) {
Parser()->Parse(
key_value_config->Lookup(RobustThroughputEstimatorSettings::kKey));
if (min_packets < 10 || kMaxPackets < min_packets) {
@@ -64,7 +64,7 @@
std::unique_ptr<AcknowledgedBitrateEstimatorInterface>
AcknowledgedBitrateEstimatorInterface::Create(
- const WebRtcKeyValueConfig* key_value_config) {
+ const FieldTrialsView* key_value_config) {
RobustThroughputEstimatorSettings simplified_estimator_settings(
key_value_config);
if (simplified_estimator_settings.enabled) {
diff --git a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h
index b6cee43..6dce69b 100644
--- a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h
+++ b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h
@@ -15,8 +15,8 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/transport/network_types.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/units/data_rate.h"
#include "rtc_base/experiments/struct_parameters_parser.h"
@@ -28,7 +28,7 @@
RobustThroughputEstimatorSettings() = delete;
explicit RobustThroughputEstimatorSettings(
- const WebRtcKeyValueConfig* key_value_config);
+ const FieldTrialsView* key_value_config);
bool enabled = false; // Set to true to use RobustThroughputEstimator.
@@ -64,7 +64,7 @@
class AcknowledgedBitrateEstimatorInterface {
public:
static std::unique_ptr<AcknowledgedBitrateEstimatorInterface> Create(
- const WebRtcKeyValueConfig* key_value_config);
+ const FieldTrialsView* key_value_config);
virtual ~AcknowledgedBitrateEstimatorInterface();
virtual void IncomingPacketFeedbackVector(
diff --git a/modules/congestion_controller/goog_cc/alr_detector.cc b/modules/congestion_controller/goog_cc/alr_detector.cc
index 6a62954..f1e649b 100644
--- a/modules/congestion_controller/goog_cc/alr_detector.cc
+++ b/modules/congestion_controller/goog_cc/alr_detector.cc
@@ -24,8 +24,7 @@
namespace webrtc {
namespace {
-AlrDetectorConfig GetConfigFromTrials(
- const WebRtcKeyValueConfig* key_value_config) {
+AlrDetectorConfig GetConfigFromTrials(const FieldTrialsView* key_value_config) {
RTC_CHECK(AlrExperimentSettings::MaxOneFieldTrialEnabled(*key_value_config));
absl::optional<AlrExperimentSettings> experiment_settings =
AlrExperimentSettings::CreateFromFieldTrial(
@@ -61,10 +60,10 @@
AlrDetector::AlrDetector(AlrDetectorConfig config, RtcEventLog* event_log)
: conf_(config), alr_budget_(0, true), event_log_(event_log) {}
-AlrDetector::AlrDetector(const WebRtcKeyValueConfig* key_value_config)
+AlrDetector::AlrDetector(const FieldTrialsView* key_value_config)
: AlrDetector(GetConfigFromTrials(key_value_config), nullptr) {}
-AlrDetector::AlrDetector(const WebRtcKeyValueConfig* key_value_config,
+AlrDetector::AlrDetector(const FieldTrialsView* key_value_config,
RtcEventLog* event_log)
: AlrDetector(GetConfigFromTrials(key_value_config), event_log) {}
AlrDetector::~AlrDetector() {}
diff --git a/modules/congestion_controller/goog_cc/alr_detector.h b/modules/congestion_controller/goog_cc/alr_detector.h
index ee3fe92..5e7a3e1 100644
--- a/modules/congestion_controller/goog_cc/alr_detector.h
+++ b/modules/congestion_controller/goog_cc/alr_detector.h
@@ -13,10 +13,11 @@
#include <stddef.h>
#include <stdint.h>
+
#include <memory>
#include "absl/types/optional.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "modules/pacing/interval_budget.h"
#include "rtc_base/experiments/alr_experiment.h"
#include "rtc_base/experiments/struct_parameters_parser.h"
@@ -46,9 +47,8 @@
class AlrDetector {
public:
AlrDetector(AlrDetectorConfig config, RtcEventLog* event_log);
- explicit AlrDetector(const WebRtcKeyValueConfig* key_value_config);
- AlrDetector(const WebRtcKeyValueConfig* key_value_config,
- RtcEventLog* event_log);
+ explicit AlrDetector(const FieldTrialsView* key_value_config);
+ AlrDetector(const FieldTrialsView* key_value_config, RtcEventLog* event_log);
~AlrDetector();
void OnBytesSent(size_t bytes_sent, int64_t send_time_ms);
diff --git a/modules/congestion_controller/goog_cc/bitrate_estimator.cc b/modules/congestion_controller/goog_cc/bitrate_estimator.cc
index 09b214a..9c68e48 100644
--- a/modules/congestion_controller/goog_cc/bitrate_estimator.cc
+++ b/modules/congestion_controller/goog_cc/bitrate_estimator.cc
@@ -32,7 +32,7 @@
} // namespace
-BitrateEstimator::BitrateEstimator(const WebRtcKeyValueConfig* key_value_config)
+BitrateEstimator::BitrateEstimator(const FieldTrialsView* key_value_config)
: sum_(0),
initial_window_ms_("initial_window_ms",
kInitialRateWindowMs,
diff --git a/modules/congestion_controller/goog_cc/bitrate_estimator.h b/modules/congestion_controller/goog_cc/bitrate_estimator.h
index 34114f0..a6f9858 100644
--- a/modules/congestion_controller/goog_cc/bitrate_estimator.h
+++ b/modules/congestion_controller/goog_cc/bitrate_estimator.h
@@ -14,7 +14,7 @@
#include <stdint.h>
#include "absl/types/optional.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "api/units/data_rate.h"
#include "api/units/timestamp.h"
#include "rtc_base/experiments/field_trial_parser.h"
@@ -28,7 +28,7 @@
// unrelated to congestion.
class BitrateEstimator {
public:
- explicit BitrateEstimator(const WebRtcKeyValueConfig* key_value_config);
+ explicit BitrateEstimator(const FieldTrialsView* key_value_config);
virtual ~BitrateEstimator();
virtual void Update(Timestamp at_time, DataSize amount, bool in_alr);
diff --git a/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.cc b/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.cc
index ec64282..2f188f3 100644
--- a/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.cc
+++ b/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.cc
@@ -23,7 +23,7 @@
namespace webrtc {
CongestionWindowPushbackController::CongestionWindowPushbackController(
- const WebRtcKeyValueConfig* key_value_config)
+ const FieldTrialsView* key_value_config)
: add_pacing_(
absl::StartsWith(key_value_config->Lookup(
"WebRTC-AddPacingToCongestionWindowPushback"),
diff --git a/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.h b/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.h
index 7a49a83..ea9ed97 100644
--- a/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.h
+++ b/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.h
@@ -15,7 +15,7 @@
#include <stdint.h>
#include "absl/types/optional.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "api/units/data_size.h"
namespace webrtc {
@@ -28,7 +28,7 @@
class CongestionWindowPushbackController {
public:
explicit CongestionWindowPushbackController(
- const WebRtcKeyValueConfig* key_value_config);
+ const FieldTrialsView* key_value_config);
void UpdateOutstandingData(int64_t outstanding_bytes);
void UpdatePacingQueue(int64_t pacing_bytes);
uint32_t UpdateTargetBitrate(uint32_t bitrate_bps);
diff --git a/modules/congestion_controller/goog_cc/delay_based_bwe.cc b/modules/congestion_controller/goog_cc/delay_based_bwe.cc
index 95d98b2..fddeca3 100644
--- a/modules/congestion_controller/goog_cc/delay_based_bwe.cc
+++ b/modules/congestion_controller/goog_cc/delay_based_bwe.cc
@@ -42,7 +42,7 @@
constexpr char BweSeparateAudioPacketsSettings::kKey[];
BweSeparateAudioPacketsSettings::BweSeparateAudioPacketsSettings(
- const WebRtcKeyValueConfig* key_value_config) {
+ const FieldTrialsView* key_value_config) {
Parser()->Parse(
key_value_config->Lookup(BweSeparateAudioPacketsSettings::kKey));
}
@@ -62,7 +62,7 @@
recovered_from_overuse(false),
backoff_in_alr(false) {}
-DelayBasedBwe::DelayBasedBwe(const WebRtcKeyValueConfig* key_value_config,
+DelayBasedBwe::DelayBasedBwe(const FieldTrialsView* key_value_config,
RtcEventLog* event_log,
NetworkStatePredictor* network_state_predictor)
: event_log_(event_log),
diff --git a/modules/congestion_controller/goog_cc/delay_based_bwe.h b/modules/congestion_controller/goog_cc/delay_based_bwe.h
index d37e05f..dd4f7d8 100644
--- a/modules/congestion_controller/goog_cc/delay_based_bwe.h
+++ b/modules/congestion_controller/goog_cc/delay_based_bwe.h
@@ -18,9 +18,9 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/network_state_predictor.h"
#include "api/transport/network_types.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "modules/congestion_controller/goog_cc/delay_increase_detector_interface.h"
#include "modules/congestion_controller/goog_cc/inter_arrival_delta.h"
#include "modules/congestion_controller/goog_cc/probe_bitrate_estimator.h"
@@ -37,7 +37,7 @@
BweSeparateAudioPacketsSettings() = default;
explicit BweSeparateAudioPacketsSettings(
- const WebRtcKeyValueConfig* key_value_config);
+ const FieldTrialsView* key_value_config);
bool enabled = false;
int packet_threshold = 10;
@@ -59,7 +59,7 @@
BandwidthUsage delay_detector_state;
};
- explicit DelayBasedBwe(const WebRtcKeyValueConfig* key_value_config,
+ explicit DelayBasedBwe(const FieldTrialsView* key_value_config,
RtcEventLog* event_log,
NetworkStatePredictor* network_state_predictor);
@@ -104,7 +104,7 @@
rtc::RaceChecker network_race_;
RtcEventLog* const event_log_;
- const WebRtcKeyValueConfig* const key_value_config_;
+ const FieldTrialsView* const key_value_config_;
// Alternatively, run two separate overuse detectors for audio and video,
// and fall back to the audio one if we haven't seen a video packet in a
diff --git a/modules/congestion_controller/goog_cc/goog_cc_network_control.cc b/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
index 1672032..5e85c9f 100644
--- a/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
+++ b/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
@@ -60,11 +60,11 @@
}
}
-bool IsEnabled(const WebRtcKeyValueConfig* config, absl::string_view key) {
+bool IsEnabled(const FieldTrialsView* config, absl::string_view key) {
return absl::StartsWith(config->Lookup(key), "Enabled");
}
-bool IsNotDisabled(const WebRtcKeyValueConfig* config, absl::string_view key) {
+bool IsNotDisabled(const FieldTrialsView* config, absl::string_view key) {
return !absl::StartsWith(config->Lookup(key), "Disabled");
}
} // namespace
diff --git a/modules/congestion_controller/goog_cc/goog_cc_network_control.h b/modules/congestion_controller/goog_cc/goog_cc_network_control.h
index 048279f..884b572 100644
--- a/modules/congestion_controller/goog_cc/goog_cc_network_control.h
+++ b/modules/congestion_controller/goog_cc/goog_cc_network_control.h
@@ -18,12 +18,12 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/network_state_predictor.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/transport/field_trial_based_config.h"
#include "api/transport/network_control.h"
#include "api/transport/network_types.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/units/data_rate.h"
#include "api/units/data_size.h"
#include "api/units/timestamp.h"
@@ -84,7 +84,7 @@
PacerConfig GetPacingRates(Timestamp at_time) const;
const FieldTrialBasedConfig trial_based_config_;
- const WebRtcKeyValueConfig* const key_value_config_;
+ const FieldTrialsView* const key_value_config_;
RtcEventLog* const event_log_;
const bool packet_feedback_only_;
FieldTrialFlag safe_reset_on_route_change_;
diff --git a/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.cc b/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.cc
index 33974dc..7524c84 100644
--- a/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.cc
+++ b/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.cc
@@ -75,7 +75,7 @@
return 1.0f - exp(interval / window * -1.0);
}
-bool IsEnabled(const webrtc::WebRtcKeyValueConfig& key_value_config,
+bool IsEnabled(const webrtc::FieldTrialsView& key_value_config,
absl::string_view name) {
return absl::StartsWith(key_value_config.Lookup(name), "Enabled");
}
@@ -83,7 +83,7 @@
} // namespace
LossBasedControlConfig::LossBasedControlConfig(
- const WebRtcKeyValueConfig* key_value_config)
+ const FieldTrialsView* key_value_config)
: enabled(IsEnabled(*key_value_config, kBweLossBasedControl)),
min_increase_factor("min_incr", 1.02),
max_increase_factor("max_incr", 1.08),
@@ -118,7 +118,7 @@
LossBasedControlConfig::~LossBasedControlConfig() = default;
LossBasedBandwidthEstimation::LossBasedBandwidthEstimation(
- const WebRtcKeyValueConfig* key_value_config)
+ const FieldTrialsView* key_value_config)
: config_(key_value_config),
average_loss_(0),
average_loss_max_(0),
diff --git a/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.h b/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.h
index 20ff092..9f69cab 100644
--- a/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.h
+++ b/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.h
@@ -13,8 +13,8 @@
#include <vector>
+#include "api/field_trials_view.h"
#include "api/transport/network_types.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/units/data_rate.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
@@ -23,7 +23,7 @@
namespace webrtc {
struct LossBasedControlConfig {
- explicit LossBasedControlConfig(const WebRtcKeyValueConfig* key_value_config);
+ explicit LossBasedControlConfig(const FieldTrialsView* key_value_config);
LossBasedControlConfig(const LossBasedControlConfig&);
LossBasedControlConfig& operator=(const LossBasedControlConfig&) = default;
~LossBasedControlConfig();
@@ -52,7 +52,7 @@
class LossBasedBandwidthEstimation {
public:
explicit LossBasedBandwidthEstimation(
- const WebRtcKeyValueConfig* key_value_config);
+ const FieldTrialsView* key_value_config);
// Returns the new estimate.
DataRate Update(Timestamp at_time,
DataRate min_bitrate,
diff --git a/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc b/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc
index 7c72b99..616fe71 100644
--- a/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc
+++ b/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc
@@ -21,9 +21,9 @@
#include "absl/algorithm/container.h"
#include "absl/types/optional.h"
#include "api/array_view.h"
+#include "api/field_trials_view.h"
#include "api/network_state_predictor.h"
#include "api/transport/network_types.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/units/data_rate.h"
#include "api/units/data_size.h"
#include "api/units/time_delta.h"
@@ -101,7 +101,7 @@
} // namespace
-LossBasedBweV2::LossBasedBweV2(const WebRtcKeyValueConfig* key_value_config)
+LossBasedBweV2::LossBasedBweV2(const FieldTrialsView* key_value_config)
: config_(CreateConfig(key_value_config)) {
if (!config_.has_value()) {
RTC_LOG(LS_VERBOSE) << "The configuration does not specify that the "
@@ -225,7 +225,7 @@
// Returns a `LossBasedBweV2::Config` iff the `key_value_config` specifies a
// configuration for the `LossBasedBweV2` which is explicitly enabled.
absl::optional<LossBasedBweV2::Config> LossBasedBweV2::CreateConfig(
- const WebRtcKeyValueConfig* key_value_config) {
+ const FieldTrialsView* key_value_config) {
FieldTrialParameter<bool> enabled("Enabled", false);
FieldTrialParameter<double> bandwidth_rampup_upper_bound_factor(
"BwRampupUpperBoundFactor", 1.1);
diff --git a/modules/congestion_controller/goog_cc/loss_based_bwe_v2.h b/modules/congestion_controller/goog_cc/loss_based_bwe_v2.h
index cc33387..0c496c8 100644
--- a/modules/congestion_controller/goog_cc/loss_based_bwe_v2.h
+++ b/modules/congestion_controller/goog_cc/loss_based_bwe_v2.h
@@ -17,9 +17,9 @@
#include "absl/types/optional.h"
#include "api/array_view.h"
+#include "api/field_trials_view.h"
#include "api/network_state_predictor.h"
#include "api/transport/network_types.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/units/data_rate.h"
#include "api/units/data_size.h"
#include "api/units/time_delta.h"
@@ -31,7 +31,7 @@
public:
// Creates a disabled `LossBasedBweV2` if the
// `key_value_config` is not valid.
- explicit LossBasedBweV2(const WebRtcKeyValueConfig* key_value_config);
+ explicit LossBasedBweV2(const FieldTrialsView* key_value_config);
LossBasedBweV2(const LossBasedBweV2&) = delete;
LossBasedBweV2& operator=(const LossBasedBweV2&) = delete;
@@ -112,7 +112,7 @@
};
static absl::optional<Config> CreateConfig(
- const WebRtcKeyValueConfig* key_value_config);
+ const FieldTrialsView* key_value_config);
bool IsConfigValid() const;
// Returns `0.0` if not enough loss statistics have been received.
diff --git a/modules/congestion_controller/goog_cc/probe_controller.cc b/modules/congestion_controller/goog_cc/probe_controller.cc
index df753ed..9c263eb 100644
--- a/modules/congestion_controller/goog_cc/probe_controller.cc
+++ b/modules/congestion_controller/goog_cc/probe_controller.cc
@@ -91,7 +91,7 @@
} // namespace
ProbeControllerConfig::ProbeControllerConfig(
- const WebRtcKeyValueConfig* key_value_config)
+ const FieldTrialsView* key_value_config)
: first_exponential_probe_scale("p1", 3.0),
second_exponential_probe_scale("p2", 6.0),
further_exponential_probe_scale("step_size", 2),
@@ -127,7 +127,7 @@
default;
ProbeControllerConfig::~ProbeControllerConfig() = default;
-ProbeController::ProbeController(const WebRtcKeyValueConfig* key_value_config,
+ProbeController::ProbeController(const FieldTrialsView* key_value_config,
RtcEventLog* event_log)
: enable_periodic_alr_probing_(false),
in_rapid_recovery_experiment_(absl::StartsWith(
diff --git a/modules/congestion_controller/goog_cc/probe_controller.h b/modules/congestion_controller/goog_cc/probe_controller.h
index d0f1458..86931ee 100644
--- a/modules/congestion_controller/goog_cc/probe_controller.h
+++ b/modules/congestion_controller/goog_cc/probe_controller.h
@@ -18,16 +18,16 @@
#include "absl/base/attributes.h"
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/transport/network_control.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/units/data_rate.h"
#include "rtc_base/experiments/field_trial_parser.h"
namespace webrtc {
struct ProbeControllerConfig {
- explicit ProbeControllerConfig(const WebRtcKeyValueConfig* key_value_config);
+ explicit ProbeControllerConfig(const FieldTrialsView* key_value_config);
ProbeControllerConfig(const ProbeControllerConfig&);
ProbeControllerConfig& operator=(const ProbeControllerConfig&) = default;
~ProbeControllerConfig();
@@ -58,7 +58,7 @@
// bitrate is adjusted by an application.
class ProbeController {
public:
- explicit ProbeController(const WebRtcKeyValueConfig* key_value_config,
+ explicit ProbeController(const FieldTrialsView* key_value_config,
RtcEventLog* event_log);
~ProbeController();
diff --git a/modules/congestion_controller/goog_cc/robust_throughput_estimator.h b/modules/congestion_controller/goog_cc/robust_throughput_estimator.h
index de48a9b..b67b49f 100644
--- a/modules/congestion_controller/goog_cc/robust_throughput_estimator.h
+++ b/modules/congestion_controller/goog_cc/robust_throughput_estimator.h
@@ -16,8 +16,8 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/transport/network_types.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/units/data_rate.h"
#include "modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h"
diff --git a/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.cc b/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.cc
index 631ef86..d0d7b83 100644
--- a/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.cc
+++ b/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.cc
@@ -17,10 +17,10 @@
#include <string>
#include "absl/strings/match.h"
+#include "api/field_trials_view.h"
#include "api/network_state_predictor.h"
#include "api/rtc_event_log/rtc_event.h"
#include "api/rtc_event_log/rtc_event_log.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/units/data_rate.h"
#include "api/units/time_delta.h"
#include "logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h"
@@ -158,7 +158,7 @@
return DataRate::BitsPerSec(capacity_estimate_bps_);
}
-RttBasedBackoff::RttBasedBackoff(const WebRtcKeyValueConfig* key_value_config)
+RttBasedBackoff::RttBasedBackoff(const FieldTrialsView* key_value_config)
: disabled_("Disabled"),
configured_limit_("limit", TimeDelta::Seconds(3)),
drop_fraction_("fraction", 0.8),
@@ -197,7 +197,7 @@
RttBasedBackoff::~RttBasedBackoff() = default;
SendSideBandwidthEstimation::SendSideBandwidthEstimation(
- const WebRtcKeyValueConfig* key_value_config,
+ const FieldTrialsView* key_value_config,
RtcEventLog* event_log)
: rtt_backoff_(key_value_config),
lost_packets_since_last_loss_update_(0),
diff --git a/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.h b/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.h
index bb53be8..cbcad86 100644
--- a/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.h
+++ b/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.h
@@ -20,9 +20,9 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/network_state_predictor.h"
#include "api/transport/network_types.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/units/data_rate.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
@@ -57,7 +57,7 @@
class RttBasedBackoff {
public:
- explicit RttBasedBackoff(const WebRtcKeyValueConfig* key_value_config);
+ explicit RttBasedBackoff(const FieldTrialsView* key_value_config);
~RttBasedBackoff();
void UpdatePropagationRtt(Timestamp at_time, TimeDelta propagation_rtt);
TimeDelta CorrectedRtt(Timestamp at_time) const;
@@ -78,7 +78,7 @@
class SendSideBandwidthEstimation {
public:
SendSideBandwidthEstimation() = delete;
- SendSideBandwidthEstimation(const WebRtcKeyValueConfig* key_value_config,
+ SendSideBandwidthEstimation(const FieldTrialsView* key_value_config,
RtcEventLog* event_log);
~SendSideBandwidthEstimation();
diff --git a/modules/congestion_controller/goog_cc/trendline_estimator.cc b/modules/congestion_controller/goog_cc/trendline_estimator.cc
index 7fdf66c..88182d4 100644
--- a/modules/congestion_controller/goog_cc/trendline_estimator.cc
+++ b/modules/congestion_controller/goog_cc/trendline_estimator.cc
@@ -34,8 +34,7 @@
const char kBweWindowSizeInPacketsExperiment[] =
"WebRTC-BweWindowSizeInPackets";
-size_t ReadTrendlineFilterWindowSize(
- const WebRtcKeyValueConfig* key_value_config) {
+size_t ReadTrendlineFilterWindowSize(const FieldTrialsView* key_value_config) {
std::string experiment_string =
key_value_config->Lookup(kBweWindowSizeInPacketsExperiment);
size_t window_size;
@@ -115,7 +114,7 @@
constexpr char TrendlineEstimatorSettings::kKey[];
TrendlineEstimatorSettings::TrendlineEstimatorSettings(
- const WebRtcKeyValueConfig* key_value_config) {
+ const FieldTrialsView* key_value_config) {
if (absl::StartsWith(
key_value_config->Lookup(kBweWindowSizeInPacketsExperiment),
"Enabled")) {
@@ -160,7 +159,7 @@
}
TrendlineEstimator::TrendlineEstimator(
- const WebRtcKeyValueConfig* key_value_config,
+ const FieldTrialsView* key_value_config,
NetworkStatePredictor* network_state_predictor)
: settings_(key_value_config),
smoothing_coef_(kDefaultTrendlineSmoothingCoeff),
diff --git a/modules/congestion_controller/goog_cc/trendline_estimator.h b/modules/congestion_controller/goog_cc/trendline_estimator.h
index 6fd44249..ffda25d 100644
--- a/modules/congestion_controller/goog_cc/trendline_estimator.h
+++ b/modules/congestion_controller/goog_cc/trendline_estimator.h
@@ -17,8 +17,8 @@
#include <memory>
#include <utility>
+#include "api/field_trials_view.h"
#include "api/network_state_predictor.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "modules/congestion_controller/goog_cc/delay_increase_detector_interface.h"
#include "rtc_base/experiments/struct_parameters_parser.h"
@@ -29,8 +29,7 @@
static constexpr unsigned kDefaultTrendlineWindowSize = 20;
TrendlineEstimatorSettings() = delete;
- explicit TrendlineEstimatorSettings(
- const WebRtcKeyValueConfig* key_value_config);
+ explicit TrendlineEstimatorSettings(const FieldTrialsView* key_value_config);
// Sort the packets in the window. Should be redundant,
// but then almost no cost.
@@ -51,7 +50,7 @@
class TrendlineEstimator : public DelayIncreaseDetectorInterface {
public:
- TrendlineEstimator(const WebRtcKeyValueConfig* key_value_config,
+ TrendlineEstimator(const FieldTrialsView* key_value_config,
NetworkStatePredictor* network_state_predictor);
~TrendlineEstimator() override;
diff --git a/modules/pacing/BUILD.gn b/modules/pacing/BUILD.gn
index 90e0eb7..97b3a7b 100644
--- a/modules/pacing/BUILD.gn
+++ b/modules/pacing/BUILD.gn
@@ -33,14 +33,14 @@
deps = [
":interval_budget",
"..:module_api",
+ "../../api:field_trials_view",
+ "../../api:field_trials_view",
"../../api:function_view",
"../../api:sequence_checker",
- "../../api:webrtc_key_value_config",
"../../api/rtc_event_log",
"../../api/task_queue:task_queue",
"../../api/transport:field_trial_based_config",
"../../api/transport:network_control",
- "../../api/transport:webrtc_key_value_config",
"../../api/units:data_rate",
"../../api/units:data_size",
"../../api/units:time_delta",
diff --git a/modules/pacing/DEPS b/modules/pacing/DEPS
index 1b2e6dc..42f3dfc 100644
--- a/modules/pacing/DEPS
+++ b/modules/pacing/DEPS
@@ -1,6 +1,6 @@
include_rules = [
"+system_wrappers",
- # Avoid directly using field_trial. Instead use WebRtcKeyValueConfig.
+ # Avoid directly using field_trial. Instead use FieldTrialsView.
"-system_wrappers/include/field_trial.h",
"+logging/rtc_event_log"
]
diff --git a/modules/pacing/bitrate_prober.cc b/modules/pacing/bitrate_prober.cc
index ed4b776..d2b93da 100644
--- a/modules/pacing/bitrate_prober.cc
+++ b/modules/pacing/bitrate_prober.cc
@@ -33,7 +33,7 @@
} // namespace
BitrateProberConfig::BitrateProberConfig(
- const WebRtcKeyValueConfig* key_value_config)
+ const FieldTrialsView* key_value_config)
: min_probe_packets_sent("min_probe_packets_sent", 5),
min_probe_delta("min_probe_delta", TimeDelta::Millis(1)),
min_probe_duration("min_probe_duration", TimeDelta::Millis(15)),
@@ -56,7 +56,7 @@
total_failed_probe_count_);
}
-BitrateProber::BitrateProber(const WebRtcKeyValueConfig& field_trials)
+BitrateProber::BitrateProber(const FieldTrialsView& field_trials)
: probing_state_(ProbingState::kDisabled),
next_probe_time_(Timestamp::PlusInfinity()),
total_probe_count_(0),
diff --git a/modules/pacing/bitrate_prober.h b/modules/pacing/bitrate_prober.h
index 3ac431c..94016d5 100644
--- a/modules/pacing/bitrate_prober.h
+++ b/modules/pacing/bitrate_prober.h
@@ -24,7 +24,7 @@
class RtcEventLog;
struct BitrateProberConfig {
- explicit BitrateProberConfig(const WebRtcKeyValueConfig* key_value_config);
+ explicit BitrateProberConfig(const FieldTrialsView* key_value_config);
BitrateProberConfig(const BitrateProberConfig&) = default;
BitrateProberConfig& operator=(const BitrateProberConfig&) = default;
~BitrateProberConfig() = default;
@@ -46,7 +46,7 @@
// on being protected by the caller.
class BitrateProber {
public:
- explicit BitrateProber(const WebRtcKeyValueConfig& field_trials);
+ explicit BitrateProber(const FieldTrialsView& field_trials);
~BitrateProber();
void SetEnabled(bool enable);
diff --git a/modules/pacing/paced_sender.cc b/modules/pacing/paced_sender.cc
index 56a1410..22c86f7 100644
--- a/modules/pacing/paced_sender.cc
+++ b/modules/pacing/paced_sender.cc
@@ -30,7 +30,7 @@
PacedSender::PacedSender(Clock* clock,
PacketRouter* packet_router,
- const WebRtcKeyValueConfig& field_trials,
+ const FieldTrialsView& field_trials,
ProcessThread* process_thread)
: process_mode_(
absl::StartsWith(field_trials.Lookup("WebRTC-Pacer-DynamicProcess"),
diff --git a/modules/pacing/paced_sender.h b/modules/pacing/paced_sender.h
index e938a1e..47fdaf3 100644
--- a/modules/pacing/paced_sender.h
+++ b/modules/pacing/paced_sender.h
@@ -19,10 +19,10 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/function_view.h"
#include "api/transport/field_trial_based_config.h"
#include "api/transport/network_types.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "modules/include/module.h"
#include "modules/pacing/bitrate_prober.h"
#include "modules/pacing/interval_budget.h"
@@ -56,7 +56,7 @@
// optional once all callers have been updated.
PacedSender(Clock* clock,
PacketRouter* packet_router,
- const WebRtcKeyValueConfig& field_trials,
+ const FieldTrialsView& field_trials,
ProcessThread* process_thread = nullptr);
~PacedSender() override;
diff --git a/modules/pacing/paced_sender_unittest.cc b/modules/pacing/paced_sender_unittest.cc
index 6f2728b..e833f34 100644
--- a/modules/pacing/paced_sender_unittest.cc
+++ b/modules/pacing/paced_sender_unittest.cc
@@ -48,7 +48,7 @@
(override));
};
-class ProcessModeTrials : public WebRtcKeyValueConfig {
+class ProcessModeTrials : public FieldTrialsView {
public:
explicit ProcessModeTrials(bool dynamic_process) : mode_(dynamic_process) {}
diff --git a/modules/pacing/pacing_controller.cc b/modules/pacing/pacing_controller.cc
index 7430adf..d580c2c 100644
--- a/modules/pacing/pacing_controller.cc
+++ b/modules/pacing/pacing_controller.cc
@@ -40,17 +40,15 @@
constexpr int kFirstPriority = 0;
-bool IsDisabled(const WebRtcKeyValueConfig& field_trials,
- absl::string_view key) {
+bool IsDisabled(const FieldTrialsView& field_trials, absl::string_view key) {
return absl::StartsWith(field_trials.Lookup(key), "Disabled");
}
-bool IsEnabled(const WebRtcKeyValueConfig& field_trials,
- absl::string_view key) {
+bool IsEnabled(const FieldTrialsView& field_trials, absl::string_view key) {
return absl::StartsWith(field_trials.Lookup(key), "Enabled");
}
-TimeDelta GetDynamicPaddingTarget(const WebRtcKeyValueConfig& field_trials) {
+TimeDelta GetDynamicPaddingTarget(const FieldTrialsView& field_trials) {
FieldTrialParameter<TimeDelta> padding_target("timedelta",
TimeDelta::Millis(5));
ParseFieldTrial({&padding_target},
@@ -94,7 +92,7 @@
PacingController::PacingController(Clock* clock,
PacketSender* packet_sender,
- const WebRtcKeyValueConfig& field_trials,
+ const FieldTrialsView& field_trials,
ProcessMode mode)
: mode_(mode),
clock_(clock),
diff --git a/modules/pacing/pacing_controller.h b/modules/pacing/pacing_controller.h
index 3947f03..c3e1dde 100644
--- a/modules/pacing/pacing_controller.h
+++ b/modules/pacing/pacing_controller.h
@@ -19,10 +19,10 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/function_view.h"
#include "api/transport/field_trial_based_config.h"
#include "api/transport/network_types.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "modules/pacing/bitrate_prober.h"
#include "modules/pacing/interval_budget.h"
#include "modules/pacing/round_robin_packet_queue.h"
@@ -85,7 +85,7 @@
PacingController(Clock* clock,
PacketSender* packet_sender,
- const WebRtcKeyValueConfig& field_trials,
+ const FieldTrialsView& field_trials,
ProcessMode mode);
~PacingController();
@@ -176,7 +176,7 @@
const ProcessMode mode_;
Clock* const clock_;
PacketSender* const packet_sender_;
- const WebRtcKeyValueConfig& field_trials_;
+ const FieldTrialsView& field_trials_;
const bool drain_large_queues_;
const bool send_padding_if_silent_;
diff --git a/modules/pacing/task_queue_paced_sender.cc b/modules/pacing/task_queue_paced_sender.cc
index 4849daf..1ae182c 100644
--- a/modules/pacing/task_queue_paced_sender.cc
+++ b/modules/pacing/task_queue_paced_sender.cc
@@ -31,7 +31,7 @@
TaskQueuePacedSender::TaskQueuePacedSender(
Clock* clock,
PacingController::PacketSender* packet_sender,
- const WebRtcKeyValueConfig& field_trials,
+ const FieldTrialsView& field_trials,
TaskQueueFactory* task_queue_factory,
TimeDelta max_hold_back_window,
int max_hold_back_window_in_packets)
diff --git a/modules/pacing/task_queue_paced_sender.h b/modules/pacing/task_queue_paced_sender.h
index 10fdfd7..d72982f 100644
--- a/modules/pacing/task_queue_paced_sender.h
+++ b/modules/pacing/task_queue_paced_sender.h
@@ -19,12 +19,12 @@
#include "absl/base/attributes.h"
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/units/data_size.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/pacing/pacing_controller.h"
#include "modules/pacing/rtp_packet_pacer.h"
#include "modules/rtp_rtcp/source/rtp_packet_to_send.h"
@@ -45,7 +45,7 @@
// latency.
TaskQueuePacedSender(Clock* clock,
PacingController::PacketSender* packet_sender,
- const WebRtcKeyValueConfig& field_trials,
+ const FieldTrialsView& field_trials,
TaskQueueFactory* task_queue_factory,
TimeDelta max_hold_back_window,
int max_hold_back_window_in_packets);
diff --git a/modules/remote_bitrate_estimator/BUILD.gn b/modules/remote_bitrate_estimator/BUILD.gn
index fd52b2d..b49e028 100644
--- a/modules/remote_bitrate_estimator/BUILD.gn
+++ b/modules/remote_bitrate_estimator/BUILD.gn
@@ -41,11 +41,11 @@
}
deps = [
+ "../../api:field_trials_view",
"../../api:network_state_predictor_api",
"../../api:rtp_headers",
"../../api/transport:field_trial_based_config",
"../../api/transport:network_control",
- "../../api/transport:webrtc_key_value_config",
"../../api/units:data_rate",
"../../api/units:data_size",
"../../api/units:time_delta",
diff --git a/modules/remote_bitrate_estimator/DEPS b/modules/remote_bitrate_estimator/DEPS
index 66a3201..35a6211 100644
--- a/modules/remote_bitrate_estimator/DEPS
+++ b/modules/remote_bitrate_estimator/DEPS
@@ -1,6 +1,6 @@
include_rules = [
"+logging/rtc_event_log",
"+system_wrappers",
- # Avoid directly using field_trial. Instead use WebRtcKeyValueConfig.
+ # Avoid directly using field_trial. Instead use FieldTrialsView.
"-system_wrappers/include/field_trial.h",
]
diff --git a/modules/remote_bitrate_estimator/aimd_rate_control.cc b/modules/remote_bitrate_estimator/aimd_rate_control.cc
index 3297df9..e77336d 100644
--- a/modules/remote_bitrate_estimator/aimd_rate_control.cc
+++ b/modules/remote_bitrate_estimator/aimd_rate_control.cc
@@ -35,17 +35,15 @@
constexpr char kBweBackOffFactorExperiment[] = "WebRTC-BweBackOffFactor";
-bool IsEnabled(const WebRtcKeyValueConfig& field_trials,
- absl::string_view key) {
+bool IsEnabled(const FieldTrialsView& field_trials, absl::string_view key) {
return absl::StartsWith(field_trials.Lookup(key), "Enabled");
}
-bool IsNotDisabled(const WebRtcKeyValueConfig& field_trials,
- absl::string_view key) {
+bool IsNotDisabled(const FieldTrialsView& field_trials, absl::string_view key) {
return !absl::StartsWith(field_trials.Lookup(key), "Disabled");
}
-double ReadBackoffFactor(const WebRtcKeyValueConfig& key_value_config) {
+double ReadBackoffFactor(const FieldTrialsView& key_value_config) {
std::string experiment_string =
key_value_config.Lookup(kBweBackOffFactorExperiment);
double backoff_factor;
@@ -67,10 +65,10 @@
} // namespace
-AimdRateControl::AimdRateControl(const WebRtcKeyValueConfig* key_value_config)
+AimdRateControl::AimdRateControl(const FieldTrialsView* key_value_config)
: AimdRateControl(key_value_config, /* send_side =*/false) {}
-AimdRateControl::AimdRateControl(const WebRtcKeyValueConfig* key_value_config,
+AimdRateControl::AimdRateControl(const FieldTrialsView* key_value_config,
bool send_side)
: min_configured_bitrate_(congestion_controller::GetMinBitrate()),
max_configured_bitrate_(DataRate::KilobitsPerSec(30000)),
diff --git a/modules/remote_bitrate_estimator/aimd_rate_control.h b/modules/remote_bitrate_estimator/aimd_rate_control.h
index 699b185..30e9710 100644
--- a/modules/remote_bitrate_estimator/aimd_rate_control.h
+++ b/modules/remote_bitrate_estimator/aimd_rate_control.h
@@ -14,8 +14,8 @@
#include <stdint.h>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/transport/network_types.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/units/data_rate.h"
#include "api/units/timestamp.h"
#include "modules/congestion_controller/goog_cc/link_capacity_estimator.h"
@@ -30,8 +30,8 @@
// multiplicatively.
class AimdRateControl {
public:
- explicit AimdRateControl(const WebRtcKeyValueConfig* key_value_config);
- AimdRateControl(const WebRtcKeyValueConfig* key_value_config, bool send_side);
+ explicit AimdRateControl(const FieldTrialsView* key_value_config);
+ AimdRateControl(const FieldTrialsView* key_value_config, bool send_side);
~AimdRateControl();
// Returns true if the target bitrate has been initialized. This happens
diff --git a/modules/remote_bitrate_estimator/overuse_detector.cc b/modules/remote_bitrate_estimator/overuse_detector.cc
index 710b3b2..672822b 100644
--- a/modules/remote_bitrate_estimator/overuse_detector.cc
+++ b/modules/remote_bitrate_estimator/overuse_detector.cc
@@ -33,7 +33,7 @@
const int kMaxNumDeltas = 60;
bool AdaptiveThresholdExperimentIsDisabled(
- const WebRtcKeyValueConfig& key_value_config) {
+ const FieldTrialsView& key_value_config) {
std::string experiment_string =
key_value_config.Lookup(kAdaptiveThresholdExperiment);
const size_t kMinExperimentLength = kDisabledPrefixLength;
@@ -44,7 +44,7 @@
// Gets thresholds from the experiment name following the format
// "WebRTC-AdaptiveBweThreshold/Enabled-0.5,0.002/".
-bool ReadExperimentConstants(const WebRtcKeyValueConfig& key_value_config,
+bool ReadExperimentConstants(const FieldTrialsView& key_value_config,
double* k_up,
double* k_down) {
std::string experiment_string =
@@ -57,7 +57,7 @@
"%lf,%lf", k_up, k_down) == 2;
}
-OveruseDetector::OveruseDetector(const WebRtcKeyValueConfig* key_value_config)
+OveruseDetector::OveruseDetector(const FieldTrialsView* key_value_config)
// Experiment is on by default, but can be disabled with finch by setting
// the field trial string to "WebRTC-AdaptiveBweThreshold/Disabled/".
: in_experiment_(!AdaptiveThresholdExperimentIsDisabled(*key_value_config)),
@@ -147,7 +147,7 @@
}
void OveruseDetector::InitializeExperiment(
- const WebRtcKeyValueConfig& key_value_config) {
+ const FieldTrialsView& key_value_config) {
RTC_DCHECK(in_experiment_);
double k_up = 0.0;
double k_down = 0.0;
diff --git a/modules/remote_bitrate_estimator/overuse_detector.h b/modules/remote_bitrate_estimator/overuse_detector.h
index 179e290..dfaea91 100644
--- a/modules/remote_bitrate_estimator/overuse_detector.h
+++ b/modules/remote_bitrate_estimator/overuse_detector.h
@@ -12,17 +12,17 @@
#include <stdint.h>
+#include "api/field_trials_view.h"
#include "api/network_state_predictor.h"
-#include "api/transport/webrtc_key_value_config.h"
namespace webrtc {
bool AdaptiveThresholdExperimentIsDisabled(
- const WebRtcKeyValueConfig& key_value_config);
+ const FieldTrialsView& key_value_config);
class OveruseDetector {
public:
- explicit OveruseDetector(const WebRtcKeyValueConfig* key_value_config);
+ explicit OveruseDetector(const FieldTrialsView* key_value_config);
virtual ~OveruseDetector();
OveruseDetector(const OveruseDetector&) = delete;
@@ -44,7 +44,7 @@
private:
void UpdateThreshold(double modified_offset, int64_t now_ms);
- void InitializeExperiment(const WebRtcKeyValueConfig& key_value_config);
+ void InitializeExperiment(const FieldTrialsView& key_value_config);
bool in_experiment_;
double k_up_;
diff --git a/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.cc b/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.cc
index c1c5697..028d0db 100644
--- a/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.cc
+++ b/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.cc
@@ -44,7 +44,7 @@
explicit Detector(int64_t last_packet_time_ms,
const OverUseDetectorOptions& options,
bool enable_burst_grouping,
- const WebRtcKeyValueConfig* key_value_config)
+ const FieldTrialsView* key_value_config)
: last_packet_time_ms(last_packet_time_ms),
inter_arrival(90 * kTimestampGroupLengthMs,
kTimestampToMs,
diff --git a/modules/remote_bitrate_estimator/remote_estimator_proxy.cc b/modules/remote_bitrate_estimator/remote_estimator_proxy.cc
index 7107368..fd5f629 100644
--- a/modules/remote_bitrate_estimator/remote_estimator_proxy.cc
+++ b/modules/remote_bitrate_estimator/remote_estimator_proxy.cc
@@ -31,7 +31,7 @@
RemoteEstimatorProxy::RemoteEstimatorProxy(
Clock* clock,
TransportFeedbackSender feedback_sender,
- const WebRtcKeyValueConfig* key_value_config,
+ const FieldTrialsView* key_value_config,
NetworkStateEstimator* network_state_estimator)
: clock_(clock),
feedback_sender_(std::move(feedback_sender)),
diff --git a/modules/remote_bitrate_estimator/remote_estimator_proxy.h b/modules/remote_bitrate_estimator/remote_estimator_proxy.h
index 4e9b2b5..438aa94 100644
--- a/modules/remote_bitrate_estimator/remote_estimator_proxy.h
+++ b/modules/remote_bitrate_estimator/remote_estimator_proxy.h
@@ -16,8 +16,8 @@
#include <memory>
#include <vector>
+#include "api/field_trials_view.h"
#include "api/transport/network_control.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
#include "modules/remote_bitrate_estimator/packet_arrival_map.h"
#include "rtc_base/experiments/field_trial_parser.h"
@@ -42,7 +42,7 @@
std::vector<std::unique_ptr<rtcp::RtcpPacket>> packets)>;
RemoteEstimatorProxy(Clock* clock,
TransportFeedbackSender feedback_sender,
- const WebRtcKeyValueConfig* key_value_config,
+ const FieldTrialsView* key_value_config,
NetworkStateEstimator* network_state_estimator);
~RemoteEstimatorProxy() override;
@@ -68,7 +68,7 @@
TimeDelta::Millis(100)};
FieldTrialParameter<double> bandwidth_fraction{"frac", 0.05};
explicit TransportWideFeedbackConfig(
- const WebRtcKeyValueConfig* key_value_config) {
+ const FieldTrialsView* key_value_config) {
ParseFieldTrial({&back_window, &min_interval, &max_interval,
&default_interval, &bandwidth_fraction},
key_value_config->Lookup(
diff --git a/modules/rtp_rtcp/BUILD.gn b/modules/rtp_rtcp/BUILD.gn
index 9922484..e6640fe 100644
--- a/modules/rtp_rtcp/BUILD.gn
+++ b/modules/rtp_rtcp/BUILD.gn
@@ -253,6 +253,7 @@
"..:module_api_public",
"..:module_fec_api",
"../../api:array_view",
+ "../../api:field_trials_view",
"../../api:frame_transformer_interface",
"../../api:function_view",
"../../api:libjingle_peerconnection_api",
@@ -267,7 +268,6 @@
"../../api/rtc_event_log",
"../../api/task_queue:task_queue",
"../../api/transport:field_trial_based_config",
- "../../api/transport:webrtc_key_value_config",
"../../api/transport/rtp:dependency_descriptor",
"../../api/transport/rtp:rtp_source",
"../../api/units:data_rate",
diff --git a/modules/rtp_rtcp/DEPS b/modules/rtp_rtcp/DEPS
index dac95dd..3eec1ca 100644
--- a/modules/rtp_rtcp/DEPS
+++ b/modules/rtp_rtcp/DEPS
@@ -3,6 +3,6 @@
"+common_video",
"+logging/rtc_event_log",
"+system_wrappers",
- # Avoid directly using field_trial. Instead use WebRtcKeyValueConfig.
+ # Avoid directly using field_trial. Instead use FieldTrialsView.
"-system_wrappers/include/field_trial.h",
]
diff --git a/modules/rtp_rtcp/source/deprecated/deprecated_rtp_sender_egress.cc b/modules/rtp_rtcp/source/deprecated/deprecated_rtp_sender_egress.cc
index db6b50a..35936c4 100644
--- a/modules/rtp_rtcp/source/deprecated/deprecated_rtp_sender_egress.cc
+++ b/modules/rtp_rtcp/source/deprecated/deprecated_rtp_sender_egress.cc
@@ -27,8 +27,7 @@
constexpr int kBitrateStatisticsWindowMs = 1000;
constexpr size_t kRtpSequenceNumberMapMaxEntries = 1 << 13;
-bool IsDisabled(absl::string_view name,
- const WebRtcKeyValueConfig* field_trials) {
+bool IsDisabled(absl::string_view name, const FieldTrialsView* field_trials) {
FieldTrialBasedConfig default_trials;
auto& trials = field_trials ? *field_trials : default_trials;
return absl::StartsWith(trials.Lookup(name), "Disabled");
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl2_unittest.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl2_unittest.cc
index 8592e42..48b0aac 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl2_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl2_unittest.cc
@@ -157,7 +157,7 @@
bool with_overhead = false;
};
-class FieldTrialConfig : public WebRtcKeyValueConfig {
+class FieldTrialConfig : public FieldTrialsView {
public:
static FieldTrialConfig GetFromTestConfig(const TestConfig& config) {
FieldTrialConfig trials;
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_interface.h b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
index a411b23..48c6071 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_interface.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
@@ -16,9 +16,9 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/frame_transformer_interface.h"
#include "api/scoped_refptr.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/video/video_bitrate_allocation.h"
#include "modules/rtp_rtcp/include/receive_statistics.h"
#include "modules/rtp_rtcp/include/report_block_data.h"
@@ -128,7 +128,7 @@
// If set, field trials are read from `field_trials`, otherwise
// defaults to webrtc::FieldTrialBasedConfig.
- const WebRtcKeyValueConfig* field_trials = nullptr;
+ const FieldTrialsView* field_trials = nullptr;
// SSRCs for media and retransmission, respectively.
// FlexFec SSRC is fetched from `flexfec_sender`.
diff --git a/modules/rtp_rtcp/source/rtp_sender.cc b/modules/rtp_rtcp/source/rtp_sender.cc
index d5c6c16..6989efc 100644
--- a/modules/rtp_rtcp/source/rtp_sender.cc
+++ b/modules/rtp_rtcp/source/rtp_sender.cc
@@ -138,7 +138,7 @@
extensions_map.IsRegistered(kRtpExtensionTransmissionTimeOffset);
}
-double GetMaxPaddingSizeFactor(const WebRtcKeyValueConfig* field_trials) {
+double GetMaxPaddingSizeFactor(const FieldTrialsView* field_trials) {
// Too low factor means RTX payload padding is rarely used and ineffective.
// Too high means we risk interrupting regular media packets.
// In practice, 3x seems to yield reasonable results.
diff --git a/modules/rtp_rtcp/source/rtp_sender.h b/modules/rtp_rtcp/source/rtp_sender.h
index d892970..0a80836 100644
--- a/modules/rtp_rtcp/source/rtp_sender.h
+++ b/modules/rtp_rtcp/source/rtp_sender.h
@@ -21,7 +21,7 @@
#include "absl/types/optional.h"
#include "api/array_view.h"
#include "api/call/transport.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "modules/rtp_rtcp/include/flexfec_sender.h"
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
#include "modules/rtp_rtcp/include/rtp_packet_sender.h"
diff --git a/modules/rtp_rtcp/source/rtp_sender_egress.cc b/modules/rtp_rtcp/source/rtp_sender_egress.cc
index e5c2e53..4a72059 100644
--- a/modules/rtp_rtcp/source/rtp_sender_egress.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_egress.cc
@@ -30,7 +30,7 @@
constexpr TimeDelta kUpdateInterval =
TimeDelta::Millis(kBitrateStatisticsWindowMs);
-bool IsTrialSetTo(const WebRtcKeyValueConfig* field_trials,
+bool IsTrialSetTo(const FieldTrialsView* field_trials,
absl::string_view name,
absl::string_view value) {
FieldTrialBasedConfig default_trials;
diff --git a/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc
index ee7123b..33c06c4 100644
--- a/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc
@@ -87,7 +87,7 @@
(override));
};
-class FieldTrialConfig : public WebRtcKeyValueConfig {
+class FieldTrialConfig : public FieldTrialsView {
public:
FieldTrialConfig() : overhead_enabled_(false) {}
~FieldTrialConfig() override {}
diff --git a/modules/rtp_rtcp/source/rtp_sender_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_unittest.cc
index d77d566..c28dd68 100644
--- a/modules/rtp_rtcp/source/rtp_sender_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_unittest.cc
@@ -100,7 +100,7 @@
(override));
};
-class FieldTrialConfig : public WebRtcKeyValueConfig {
+class FieldTrialConfig : public FieldTrialsView {
public:
FieldTrialConfig() : max_padding_factor_(1200) {}
~FieldTrialConfig() override {}
diff --git a/modules/rtp_rtcp/source/rtp_sender_video.cc b/modules/rtp_rtcp/source/rtp_sender_video.cc
index 6d6ba33..614a386 100644
--- a/modules/rtp_rtcp/source/rtp_sender_video.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_video.cc
@@ -118,7 +118,7 @@
}
absl::optional<VideoPlayoutDelay> LoadVideoPlayoutDelayOverride(
- const WebRtcKeyValueConfig* key_value_config) {
+ const FieldTrialsView* key_value_config) {
RTC_DCHECK(key_value_config);
FieldTrialOptional<int> playout_delay_min_ms("min_ms", absl::nullopt);
FieldTrialOptional<int> playout_delay_max_ms("max_ms", absl::nullopt);
diff --git a/modules/rtp_rtcp/source/rtp_sender_video.h b/modules/rtp_rtcp/source/rtp_sender_video.h
index 5164969..206fcab 100644
--- a/modules/rtp_rtcp/source/rtp_sender_video.h
+++ b/modules/rtp_rtcp/source/rtp_sender_video.h
@@ -79,7 +79,7 @@
bool require_frame_encryption = false;
bool enable_retransmit_all_layers = false;
absl::optional<int> red_payload_type;
- const WebRtcKeyValueConfig* field_trials = nullptr;
+ const FieldTrialsView* field_trials = nullptr;
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer;
TaskQueueBase* send_transport_queue = nullptr;
};
diff --git a/modules/rtp_rtcp/source/rtp_sender_video_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_video_unittest.cc
index dc845e4..fc4fefe 100644
--- a/modules/rtp_rtcp/source/rtp_sender_video_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_video_unittest.cc
@@ -127,7 +127,7 @@
public:
TestRtpSenderVideo(Clock* clock,
RTPSender* rtp_sender,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: RTPSenderVideo([&] {
Config config;
config.clock = clock;
@@ -146,7 +146,7 @@
}
};
-class FieldTrials : public WebRtcKeyValueConfig {
+class FieldTrials : public FieldTrialsView {
public:
explicit FieldTrials(bool use_send_side_bwe_with_overhead)
: use_send_side_bwe_with_overhead_(use_send_side_bwe_with_overhead),
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index a328d91..ebc8303 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -81,8 +81,8 @@
deps = [
"..:module_api",
+ "../../api:field_trials_view",
"../../api:sequence_checker",
- "../../api:webrtc_key_value_config",
"../../api/task_queue",
"../../api/units:time_delta",
"../../api/units:timestamp",
@@ -167,7 +167,7 @@
]
deps = [
":video_coding_utility",
- "../../api:webrtc_key_value_config",
+ "../../api:field_trials_view",
"../../api/units:timestamp",
"../../api/video:encoded_frame",
"../../rtc_base:logging",
@@ -188,7 +188,7 @@
"timing.h",
]
deps = [
- "../../api:webrtc_key_value_config",
+ "../../api:field_trials_view",
"../../api/units:time_delta",
"../../api/video:video_rtp_headers",
"../../rtc_base:logging",
@@ -221,7 +221,7 @@
]
deps = [
":rtt_filter",
- "../../api:webrtc_key_value_config",
+ "../../api:field_trials_view",
"../../api/units:data_size",
"../../api/units:frequency",
"../../api/units:time_delta",
@@ -310,11 +310,11 @@
"..:module_fec_api",
"../../api:array_view",
"../../api:fec_controller_api",
+ "../../api:field_trials_view",
"../../api:rtp_headers",
"../../api:rtp_packet_info",
"../../api:scoped_refptr",
"../../api:sequence_checker",
- "../../api:webrtc_key_value_config",
"../../api/task_queue",
"../../api/units:data_rate",
"../../api/units:data_size",
@@ -422,10 +422,10 @@
":video_coding",
"..:module_api",
"..:module_api_public",
+ "../../api:field_trials_view",
"../../api:rtp_headers",
"../../api:rtp_packet_info",
"../../api:sequence_checker",
- "../../api:webrtc_key_value_config",
"../../api/transport:field_trial_based_config",
"../../api/units:timestamp",
"../../api/video:encoded_image",
@@ -499,9 +499,9 @@
deps = [
":video_codec_interface",
"../../api:array_view",
+ "../../api:field_trials_view",
"../../api:scoped_refptr",
"../../api:sequence_checker",
- "../../api:webrtc_key_value_config",
"../../api/video:encoded_frame",
"../../api/video:encoded_image",
"../../api/video:video_adaptation",
@@ -755,10 +755,10 @@
":webrtc_libvpx_interface",
":webrtc_vp9_helpers",
"../../api:fec_controller_api",
+ "../../api:field_trials_view",
"../../api:refcountedbase",
"../../api:scoped_refptr",
"../../api/transport:field_trial_based_config",
- "../../api/transport:webrtc_key_value_config",
"../../api/video:video_frame",
"../../api/video:video_frame_i010",
"../../api/video:video_rtp_headers",
diff --git a/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.cc b/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.cc
index 669dc55..ffb4705 100644
--- a/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.cc
+++ b/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.cc
@@ -96,7 +96,7 @@
LibvpxVp9Decoder::LibvpxVp9Decoder()
: LibvpxVp9Decoder(FieldTrialBasedConfig()) {}
-LibvpxVp9Decoder::LibvpxVp9Decoder(const WebRtcKeyValueConfig& trials)
+LibvpxVp9Decoder::LibvpxVp9Decoder(const FieldTrialsView& trials)
: decode_complete_callback_(nullptr),
inited_(false),
decoder_(nullptr),
diff --git a/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.h b/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.h
index e5636d8..a680441 100644
--- a/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.h
+++ b/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.h
@@ -14,7 +14,7 @@
#ifdef RTC_ENABLE_VP9
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "api/video_codecs/video_decoder.h"
#include "common_video/include/video_frame_buffer_pool.h"
#include "modules/video_coding/codecs/vp9/include/vp9.h"
@@ -26,7 +26,7 @@
class LibvpxVp9Decoder : public VP9Decoder {
public:
LibvpxVp9Decoder();
- explicit LibvpxVp9Decoder(const WebRtcKeyValueConfig& trials);
+ explicit LibvpxVp9Decoder(const FieldTrialsView& trials);
virtual ~LibvpxVp9Decoder();
diff --git a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc
index 99680cb..c569053 100644
--- a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc
+++ b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc
@@ -194,7 +194,7 @@
LibvpxVp9Encoder::LibvpxVp9Encoder(const cricket::VideoCodec& codec,
std::unique_ptr<LibvpxInterface> interface,
- const WebRtcKeyValueConfig& trials)
+ const FieldTrialsView& trials)
: libvpx_(std::move(interface)),
encoded_image_(),
encoded_complete_callback_(nullptr),
@@ -1811,8 +1811,7 @@
// static
LibvpxVp9Encoder::VariableFramerateExperiment
-LibvpxVp9Encoder::ParseVariableFramerateConfig(
- const WebRtcKeyValueConfig& trials) {
+LibvpxVp9Encoder::ParseVariableFramerateConfig(const FieldTrialsView& trials) {
FieldTrialFlag enabled = FieldTrialFlag("Enabled");
FieldTrialParameter<double> framerate_limit("min_fps", 5.0);
FieldTrialParameter<int> qp("min_qp", 32);
@@ -1834,7 +1833,7 @@
// static
LibvpxVp9Encoder::QualityScalerExperiment
-LibvpxVp9Encoder::ParseQualityScalerConfig(const WebRtcKeyValueConfig& trials) {
+LibvpxVp9Encoder::ParseQualityScalerConfig(const FieldTrialsView& trials) {
FieldTrialFlag disabled = FieldTrialFlag("Disabled");
FieldTrialParameter<int> low_qp("low_qp", kLowVp9QpThreshold);
FieldTrialParameter<int> high_qp("hihg_qp", kHighVp9QpThreshold);
@@ -1873,7 +1872,7 @@
// static
LibvpxVp9Encoder::PerformanceFlags
LibvpxVp9Encoder::ParsePerformanceFlagsFromTrials(
- const WebRtcKeyValueConfig& trials) {
+ const FieldTrialsView& trials) {
struct Params : public PerformanceFlags::ParameterSet {
int min_pixel_count = 0;
};
diff --git a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.h b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.h
index b5e9cc6..8685464 100644
--- a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.h
+++ b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.h
@@ -19,7 +19,7 @@
#include <vector>
#include "api/fec_controller_override.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "api/video_codecs/video_encoder.h"
#include "api/video_codecs/vp9_profile.h"
#include "common_video/include/video_frame_buffer_pool.h"
@@ -37,7 +37,7 @@
public:
LibvpxVp9Encoder(const cricket::VideoCodec& codec,
std::unique_ptr<LibvpxInterface> interface,
- const WebRtcKeyValueConfig& trials);
+ const FieldTrialsView& trials);
~LibvpxVp9Encoder() override;
@@ -190,7 +190,7 @@
int frames_before_steady_state;
} variable_framerate_experiment_;
static VariableFramerateExperiment ParseVariableFramerateConfig(
- const WebRtcKeyValueConfig& trials);
+ const FieldTrialsView& trials);
FramerateControllerDeprecated variable_framerate_controller_;
const struct QualityScalerExperiment {
@@ -199,7 +199,7 @@
bool enabled;
} quality_scaler_experiment_;
static QualityScalerExperiment ParseQualityScalerConfig(
- const WebRtcKeyValueConfig& trials);
+ const FieldTrialsView& trials);
const bool external_ref_ctrl_;
// Flags that can affect speed vs quality tradeoff, and are configureable per
@@ -234,7 +234,7 @@
performance_flags_by_spatial_index_;
void UpdatePerformanceFlags();
static PerformanceFlags ParsePerformanceFlagsFromTrials(
- const WebRtcKeyValueConfig& trials);
+ const FieldTrialsView& trials);
static PerformanceFlags GetDefaultPerformanceFlags();
int num_steady_state_frames_;
diff --git a/modules/video_coding/deprecated/BUILD.gn b/modules/video_coding/deprecated/BUILD.gn
index 9e4b65f..0155fc4 100644
--- a/modules/video_coding/deprecated/BUILD.gn
+++ b/modules/video_coding/deprecated/BUILD.gn
@@ -17,7 +17,7 @@
deps = [
"..:nack_requester",
"../..:module_api",
- "../../../api:webrtc_key_value_config",
+ "../../../api:field_trials_view",
"../../../api/units:time_delta",
"../../../api/units:timestamp",
"../../../rtc_base:checks",
diff --git a/modules/video_coding/deprecated/nack_module.cc b/modules/video_coding/deprecated/nack_module.cc
index 4a6ae09..0768bc4 100644
--- a/modules/video_coding/deprecated/nack_module.cc
+++ b/modules/video_coding/deprecated/nack_module.cc
@@ -32,7 +32,7 @@
const int kNumReorderingBuckets = 10;
const int kDefaultSendNackDelayMs = 0;
-int64_t GetSendNackDelay(const WebRtcKeyValueConfig& field_trials) {
+int64_t GetSendNackDelay(const FieldTrialsView& field_trials) {
int64_t delay_ms = strtol(
field_trials.Lookup("WebRTC-SendNackDelayMs").c_str(), nullptr, 10);
if (delay_ms > 0 && delay_ms <= 20) {
@@ -62,7 +62,7 @@
absl::optional<DEPRECATED_NackModule::BackoffSettings>
DEPRECATED_NackModule::BackoffSettings::ParseFromFieldTrials(
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
// Matches magic number in RTPSender::OnReceivedNack().
const TimeDelta kDefaultMinRetryInterval = TimeDelta::Millis(5);
// Upper bound on link-delay considered for exponential backoff.
@@ -91,7 +91,7 @@
Clock* clock,
NackSender* nack_sender,
KeyFrameRequestSender* keyframe_request_sender,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: clock_(clock),
nack_sender_(nack_sender),
keyframe_request_sender_(keyframe_request_sender),
diff --git a/modules/video_coding/deprecated/nack_module.h b/modules/video_coding/deprecated/nack_module.h
index 8d17fff..3b49bd1 100644
--- a/modules/video_coding/deprecated/nack_module.h
+++ b/modules/video_coding/deprecated/nack_module.h
@@ -18,8 +18,8 @@
#include <vector>
#include "absl/base/attributes.h"
+#include "api/field_trials_view.h"
#include "api/units/time_delta.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/include/module.h"
#include "modules/include/module_common_types.h"
#include "modules/video_coding/histogram.h"
@@ -35,7 +35,7 @@
DEPRECATED_NackModule(Clock* clock,
NackSender* nack_sender,
KeyFrameRequestSender* keyframe_request_sender,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
int OnReceivedPacket(uint16_t seq_num, bool is_keyframe);
int OnReceivedPacket(uint16_t seq_num, bool is_keyframe, bool is_recovered);
@@ -72,7 +72,7 @@
struct BackoffSettings {
BackoffSettings(TimeDelta min_retry, TimeDelta max_rtt, double base);
static absl::optional<BackoffSettings> ParseFromFieldTrials(
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
// Min time between nacks.
const TimeDelta min_retry_interval;
diff --git a/modules/video_coding/frame_buffer2.cc b/modules/video_coding/frame_buffer2.cc
index bfa3b36..421da75 100644
--- a/modules/video_coding/frame_buffer2.cc
+++ b/modules/video_coding/frame_buffer2.cc
@@ -58,7 +58,7 @@
FrameBuffer::FrameBuffer(Clock* clock,
VCMTiming* timing,
VCMReceiveStatisticsCallback* stats_callback,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: decoded_frames_history_(kMaxFramesHistory),
clock_(clock),
callback_queue_(nullptr),
diff --git a/modules/video_coding/frame_buffer2.h b/modules/video_coding/frame_buffer2.h
index cd4cbcd..48aceab 100644
--- a/modules/video_coding/frame_buffer2.h
+++ b/modules/video_coding/frame_buffer2.h
@@ -18,9 +18,9 @@
#include <vector>
#include "absl/container/inlined_vector.h"
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/video/encoded_frame.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/video_coding/include/video_coding_defines.h"
#include "modules/video_coding/inter_frame_delay.h"
#include "modules/video_coding/jitter_estimator.h"
@@ -49,7 +49,7 @@
FrameBuffer(Clock* clock,
VCMTiming* timing,
VCMReceiveStatisticsCallback* stats_callback,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
FrameBuffer() = delete;
FrameBuffer(const FrameBuffer&) = delete;
diff --git a/modules/video_coding/frame_buffer2_unittest.cc b/modules/video_coding/frame_buffer2_unittest.cc
index b0e3f1d..def2e22 100644
--- a/modules/video_coding/frame_buffer2_unittest.cc
+++ b/modules/video_coding/frame_buffer2_unittest.cc
@@ -41,7 +41,7 @@
class VCMTimingFake : public VCMTiming {
public:
- explicit VCMTimingFake(Clock* clock, const WebRtcKeyValueConfig& field_trials)
+ explicit VCMTimingFake(Clock* clock, const FieldTrialsView& field_trials)
: VCMTiming(clock, field_trials) {}
Timestamp RenderTime(uint32_t frame_timestamp, Timestamp now) const override {
diff --git a/modules/video_coding/frame_buffer3.cc b/modules/video_coding/frame_buffer3.cc
index 7be5ffa..fab4ca7 100644
--- a/modules/video_coding/frame_buffer3.cc
+++ b/modules/video_coding/frame_buffer3.cc
@@ -64,7 +64,7 @@
FrameBuffer::FrameBuffer(int max_size,
int max_decode_history,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: legacy_frame_id_jump_behavior_(
!field_trials.IsDisabled("WebRTC-LegacyFrameIdJumpBehavior")),
max_size_(max_size),
diff --git a/modules/video_coding/frame_buffer3.h b/modules/video_coding/frame_buffer3.h
index 9683195..5bcfbd2 100644
--- a/modules/video_coding/frame_buffer3.h
+++ b/modules/video_coding/frame_buffer3.h
@@ -17,9 +17,9 @@
#include "absl/container/inlined_vector.h"
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/units/timestamp.h"
#include "api/video/encoded_frame.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/video_coding/utility/decoded_frames_history.h"
namespace webrtc {
@@ -37,7 +37,7 @@
FrameBuffer(int max_size,
int max_decode_history,
// TODO(hta): remove field trials!
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
FrameBuffer(const FrameBuffer&) = delete;
FrameBuffer& operator=(const FrameBuffer&) = delete;
~FrameBuffer() = default;
diff --git a/modules/video_coding/generic_decoder.cc b/modules/video_coding/generic_decoder.cc
index 78d77d3..2a87198 100644
--- a/modules/video_coding/generic_decoder.cc
+++ b/modules/video_coding/generic_decoder.cc
@@ -29,7 +29,7 @@
VCMDecodedFrameCallback::VCMDecodedFrameCallback(
VCMTiming* timing,
Clock* clock,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: _clock(clock),
_timing(timing),
_timestampMap(kDecoderFrameMemoryLength),
diff --git a/modules/video_coding/generic_decoder.h b/modules/video_coding/generic_decoder.h
index 34f22c4..a674858 100644
--- a/modules/video_coding/generic_decoder.h
+++ b/modules/video_coding/generic_decoder.h
@@ -13,10 +13,10 @@
#include <string>
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/units/time_delta.h"
#include "api/video_codecs/video_decoder.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/video_coding/encoded_frame.h"
#include "modules/video_coding/include/video_codec_interface.h"
#include "modules/video_coding/timestamp_map.h"
@@ -34,7 +34,7 @@
public:
VCMDecodedFrameCallback(VCMTiming* timing,
Clock* clock,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~VCMDecodedFrameCallback() override;
void SetUserReceiveCallback(VCMReceiveCallback* receiveCallback);
VCMReceiveCallback* UserReceiveCallback();
diff --git a/modules/video_coding/include/video_coding.h b/modules/video_coding/include/video_coding.h
index 8cedc4a..80398fc 100644
--- a/modules/video_coding/include/video_coding.h
+++ b/modules/video_coding/include/video_coding.h
@@ -11,9 +11,9 @@
#ifndef MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_H_
#define MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_H_
+#include "api/field_trials_view.h"
#include "api/video/video_frame.h"
#include "api/video_codecs/video_decoder.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/include/module.h"
#include "modules/rtp_rtcp/source/rtp_video_header.h"
#include "modules/video_coding/include/video_coding_defines.h"
@@ -31,7 +31,7 @@
// DEPRECATED.
static VideoCodingModule* Create(
Clock* clock,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
/*
* Receiver
diff --git a/modules/video_coding/jitter_buffer.cc b/modules/video_coding/jitter_buffer.cc
index 5983bc1..6464b8c 100644
--- a/modules/video_coding/jitter_buffer.cc
+++ b/modules/video_coding/jitter_buffer.cc
@@ -110,7 +110,7 @@
VCMJitterBuffer::VCMJitterBuffer(Clock* clock,
std::unique_ptr<EventWrapper> event,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: clock_(clock),
running_(false),
frame_event_(std::move(event)),
diff --git a/modules/video_coding/jitter_buffer.h b/modules/video_coding/jitter_buffer.h
index 70e65be..72feffd 100644
--- a/modules/video_coding/jitter_buffer.h
+++ b/modules/video_coding/jitter_buffer.h
@@ -17,7 +17,7 @@
#include <set>
#include <vector>
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "modules/include/module_common_types.h"
#include "modules/include/module_common_types_public.h"
#include "modules/video_coding/decoding_state.h"
@@ -72,7 +72,7 @@
public:
VCMJitterBuffer(Clock* clock,
std::unique_ptr<EventWrapper> event,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~VCMJitterBuffer();
diff --git a/modules/video_coding/jitter_estimator.cc b/modules/video_coding/jitter_estimator.cc
index e38dfaa..acc36a9 100644
--- a/modules/video_coding/jitter_estimator.cc
+++ b/modules/video_coding/jitter_estimator.cc
@@ -17,11 +17,11 @@
#include <cstdint>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/units/data_size.h"
#include "api/units/frequency.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/video_coding/rtt_filter.h"
#include "rtc_base/experiments/jitter_upper_bound_experiment.h"
#include "rtc_base/numerics/safe_conversions.h"
@@ -50,7 +50,7 @@
} // namespace
VCMJitterEstimator::VCMJitterEstimator(Clock* clock,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: fps_counter_(30), // TODO(sprang): Use an estimator with limit based on
// time, rather than number of samples.
time_deviation_upper_bound_(
diff --git a/modules/video_coding/jitter_estimator.h b/modules/video_coding/jitter_estimator.h
index 9672d88..20d318a 100644
--- a/modules/video_coding/jitter_estimator.h
+++ b/modules/video_coding/jitter_estimator.h
@@ -12,11 +12,11 @@
#define MODULES_VIDEO_CODING_JITTER_ESTIMATOR_H_
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/units/data_size.h"
#include "api/units/frequency.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/video_coding/rtt_filter.h"
#include "rtc_base/rolling_accumulator.h"
@@ -27,7 +27,7 @@
class VCMJitterEstimator {
public:
explicit VCMJitterEstimator(Clock* clock,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
virtual ~VCMJitterEstimator();
VCMJitterEstimator(const VCMJitterEstimator&) = delete;
VCMJitterEstimator& operator=(const VCMJitterEstimator&) = delete;
diff --git a/modules/video_coding/nack_requester.cc b/modules/video_coding/nack_requester.cc
index 7cd824e..1db716b 100644
--- a/modules/video_coding/nack_requester.cc
+++ b/modules/video_coding/nack_requester.cc
@@ -32,7 +32,7 @@
const int kNumReorderingBuckets = 10;
const int kDefaultSendNackDelayMs = 0;
-int64_t GetSendNackDelay(const WebRtcKeyValueConfig& field_trials) {
+int64_t GetSendNackDelay(const FieldTrialsView& field_trials) {
int64_t delay_ms = strtol(
field_trials.Lookup("WebRTC-SendNackDelayMs").c_str(), nullptr, 10);
if (delay_ms > 0 && delay_ms <= 20) {
@@ -109,7 +109,7 @@
absl::optional<NackRequester::BackoffSettings>
NackRequester::BackoffSettings::ParseFromFieldTrials(
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
// Matches magic number in RTPSender::OnReceivedNack().
const TimeDelta kDefaultMinRetryInterval = TimeDelta::Millis(5);
// Upper bound on link-delay considered for exponential backoff.
@@ -139,7 +139,7 @@
Clock* clock,
NackSender* nack_sender,
KeyFrameRequestSender* keyframe_request_sender,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: worker_thread_(current_queue),
clock_(clock),
nack_sender_(nack_sender),
diff --git a/modules/video_coding/nack_requester.h b/modules/video_coding/nack_requester.h
index a01fb7c..fc44a59 100644
--- a/modules/video_coding/nack_requester.h
+++ b/modules/video_coding/nack_requester.h
@@ -17,9 +17,9 @@
#include <set>
#include <vector>
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/units/time_delta.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/include/module_common_types.h"
#include "modules/video_coding/histogram.h"
#include "rtc_base/numerics/sequence_number_util.h"
@@ -72,7 +72,7 @@
Clock* clock,
NackSender* nack_sender,
KeyFrameRequestSender* keyframe_request_sender,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~NackRequester();
void ProcessNacks() override;
@@ -107,7 +107,7 @@
struct BackoffSettings {
BackoffSettings(TimeDelta min_retry, TimeDelta max_rtt, double base);
static absl::optional<BackoffSettings> ParseFromFieldTrials(
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
// Min time between nacks.
const TimeDelta min_retry_interval;
diff --git a/modules/video_coding/receiver.cc b/modules/video_coding/receiver.cc
index 1503731..3f954ec 100644
--- a/modules/video_coding/receiver.cc
+++ b/modules/video_coding/receiver.cc
@@ -32,7 +32,7 @@
VCMReceiver::VCMReceiver(VCMTiming* timing,
Clock* clock,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: VCMReceiver::VCMReceiver(timing,
clock,
absl::WrapUnique(EventWrapper::Create()),
@@ -43,7 +43,7 @@
Clock* clock,
std::unique_ptr<EventWrapper> receiver_event,
std::unique_ptr<EventWrapper> jitter_buffer_event,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: clock_(clock),
jitter_buffer_(clock_, std::move(jitter_buffer_event), field_trials),
timing_(timing),
diff --git a/modules/video_coding/receiver.h b/modules/video_coding/receiver.h
index c82ec2d..0bf756c 100644
--- a/modules/video_coding/receiver.h
+++ b/modules/video_coding/receiver.h
@@ -14,7 +14,7 @@
#include <memory>
#include <vector>
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "modules/video_coding/event_wrapper.h"
#include "modules/video_coding/include/video_coding.h"
#include "modules/video_coding/include/video_coding_defines.h"
@@ -31,7 +31,7 @@
public:
VCMReceiver(VCMTiming* timing,
Clock* clock,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
// Using this constructor, you can specify a different event implemetation for
// the jitter buffer. Useful for unit tests when you want to simulate incoming
@@ -41,7 +41,7 @@
Clock* clock,
std::unique_ptr<EventWrapper> receiver_event,
std::unique_ptr<EventWrapper> jitter_buffer_event,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~VCMReceiver();
diff --git a/modules/video_coding/timing.cc b/modules/video_coding/timing.cc
index da71279..f3d5cb4 100644
--- a/modules/video_coding/timing.cc
+++ b/modules/video_coding/timing.cc
@@ -24,7 +24,7 @@
constexpr TimeDelta kZeroPlayoutDelayDefaultMinPacing = TimeDelta::Millis(8);
} // namespace
-VCMTiming::VCMTiming(Clock* clock, const WebRtcKeyValueConfig& field_trials)
+VCMTiming::VCMTiming(Clock* clock, const FieldTrialsView& field_trials)
: clock_(clock),
ts_extrapolator_(
std::make_unique<TimestampExtrapolator>(clock_->CurrentTime())),
diff --git a/modules/video_coding/timing.h b/modules/video_coding/timing.h
index 7471740..5868178 100644
--- a/modules/video_coding/timing.h
+++ b/modules/video_coding/timing.h
@@ -14,9 +14,9 @@
#include <memory>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/units/time_delta.h"
#include "api/video/video_timing.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/video_coding/codec_timer.h"
#include "rtc_base/experiments/field_trial_parser.h"
#include "rtc_base/synchronization/mutex.h"
@@ -33,7 +33,7 @@
static constexpr auto kDefaultRenderDelay = TimeDelta::Millis(10);
static constexpr auto kDelayMaxChangeMsPerS = 100;
- VCMTiming(Clock* clock, const WebRtcKeyValueConfig& field_trials);
+ VCMTiming(Clock* clock, const FieldTrialsView& field_trials);
virtual ~VCMTiming() = default;
// Resets the timing to the initial state.
diff --git a/modules/video_coding/video_coding_impl.cc b/modules/video_coding/video_coding_impl.cc
index f3187d9..3e105a6 100644
--- a/modules/video_coding/video_coding_impl.cc
+++ b/modules/video_coding/video_coding_impl.cc
@@ -13,10 +13,10 @@
#include <algorithm>
#include <memory>
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/transport/field_trial_based_config.h"
#include "api/video/encoded_image.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/video_coding/include/video_codec_interface.h"
#include "modules/video_coding/timing.h"
#include "rtc_base/memory/always_valid_pointer.h"
@@ -45,7 +45,7 @@
class VideoCodingModuleImpl : public VideoCodingModule {
public:
explicit VideoCodingModuleImpl(Clock* clock,
- const WebRtcKeyValueConfig* field_trials)
+ const FieldTrialsView* field_trials)
: VideoCodingModule(),
field_trials_(field_trials),
timing_(new VCMTiming(clock, *field_trials_)),
@@ -109,7 +109,7 @@
}
private:
- AlwaysValidPointer<const WebRtcKeyValueConfig, FieldTrialBasedConfig>
+ AlwaysValidPointer<const FieldTrialsView, FieldTrialBasedConfig>
field_trials_;
SequenceChecker construction_thread_;
const std::unique_ptr<VCMTiming> timing_;
@@ -121,7 +121,7 @@
// new jitter buffer is in place.
VideoCodingModule* VideoCodingModule::Create(
Clock* clock,
- const WebRtcKeyValueConfig* field_trials) {
+ const FieldTrialsView* field_trials) {
RTC_DCHECK(clock);
return new VideoCodingModuleImpl(clock, field_trials);
}
diff --git a/modules/video_coding/video_coding_impl.h b/modules/video_coding/video_coding_impl.h
index 10adf55..3010b2f 100644
--- a/modules/video_coding/video_coding_impl.h
+++ b/modules/video_coding/video_coding_impl.h
@@ -16,8 +16,8 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/video_coding/decoder_database.h"
#include "modules/video_coding/frame_buffer.h"
#include "modules/video_coding/generic_decoder.h"
@@ -59,7 +59,7 @@
public:
VideoReceiver(Clock* clock,
VCMTiming* timing,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~VideoReceiver() override;
void RegisterReceiveCodec(uint8_t payload_type,
diff --git a/modules/video_coding/video_receiver.cc b/modules/video_coding/video_receiver.cc
index ebfdd1b..6db27c4 100644
--- a/modules/video_coding/video_receiver.cc
+++ b/modules/video_coding/video_receiver.cc
@@ -42,7 +42,7 @@
VideoReceiver::VideoReceiver(Clock* clock,
VCMTiming* timing,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: clock_(clock),
_timing(timing),
_receiver(_timing, clock_, field_trials),
diff --git a/modules/video_coding/video_receiver2.cc b/modules/video_coding/video_receiver2.cc
index e0df761..8557d68 100644
--- a/modules/video_coding/video_receiver2.cc
+++ b/modules/video_coding/video_receiver2.cc
@@ -30,7 +30,7 @@
VideoReceiver2::VideoReceiver2(Clock* clock,
VCMTiming* timing,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: clock_(clock),
timing_(timing),
decodedFrameCallback_(timing_, clock_, field_trials),
diff --git a/modules/video_coding/video_receiver2.h b/modules/video_coding/video_receiver2.h
index 45d774b..a634e0e 100644
--- a/modules/video_coding/video_receiver2.h
+++ b/modules/video_coding/video_receiver2.h
@@ -11,9 +11,9 @@
#ifndef MODULES_VIDEO_CODING_VIDEO_RECEIVER2_H_
#define MODULES_VIDEO_CODING_VIDEO_RECEIVER2_H_
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/video_codecs/video_decoder.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/video_coding/decoder_database.h"
#include "modules/video_coding/encoded_frame.h"
#include "modules/video_coding/generic_decoder.h"
@@ -31,7 +31,7 @@
public:
VideoReceiver2(Clock* clock,
VCMTiming* timing,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~VideoReceiver2();
void RegisterReceiveCodec(uint8_t payload_type,
diff --git a/p2p/BUILD.gn b/p2p/BUILD.gn
index 0524b56..9c2d839 100644
--- a/p2p/BUILD.gn
+++ b/p2p/BUILD.gn
@@ -86,12 +86,12 @@
deps = [
"../api:array_view",
"../api:async_dns_resolver",
+ "../api:field_trials_view",
"../api:libjingle_peerconnection_api",
"../api:packet_socket_factory",
"../api:rtc_error",
"../api:scoped_refptr",
"../api:sequence_checker",
- "../api:webrtc_key_value_config",
"../api:wrapping_async_dns_resolver",
"../api/crypto:options",
"../api/rtc_event_log",
@@ -239,11 +239,11 @@
":p2p_server_utils",
":p2p_test_utils",
":rtc_p2p",
+ "../api:field_trials_view",
"../api:libjingle_peerconnection_api",
"../api:mock_async_dns_resolver",
"../api:packet_socket_factory",
"../api:scoped_refptr",
- "../api:webrtc_key_value_config",
"../api/transport:stun_types",
"../api/units:time_delta",
"../rtc_base",
diff --git a/p2p/base/fake_port_allocator.h b/p2p/base/fake_port_allocator.h
index 3d93b07..59533fa 100644
--- a/p2p/base/fake_port_allocator.h
+++ b/p2p/base/fake_port_allocator.h
@@ -38,7 +38,7 @@
const std::string& username,
const std::string& password,
bool emit_localhost_for_anyaddress,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+ const webrtc::FieldTrialsView* field_trials) {
TestUDPPort* port =
new TestUDPPort(thread, factory, network, min_port, max_port, username,
password, emit_localhost_for_anyaddress, field_trials);
@@ -58,7 +58,7 @@
const std::string& username,
const std::string& password,
bool emit_localhost_for_anyaddress,
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: UDPPort(thread,
factory,
network,
@@ -82,7 +82,7 @@
int component,
const std::string& ice_ufrag,
const std::string& ice_pwd,
- const webrtc::WebRtcKeyValueConfig& field_trials)
+ const webrtc::FieldTrialsView& field_trials)
: PortAllocatorSession(content_name,
component,
ice_ufrag,
@@ -207,7 +207,7 @@
uint32_t candidate_filter_ = CF_ALL;
int transport_info_update_count_ = 0;
bool running_ = false;
- const webrtc::WebRtcKeyValueConfig& field_trials_;
+ const webrtc::FieldTrialsView& field_trials_;
};
class FakePortAllocator : public cricket::PortAllocator {
diff --git a/p2p/base/p2p_transport_channel.cc b/p2p/base/p2p_transport_channel.cc
index a8d84b9..1daec12 100644
--- a/p2p/base/p2p_transport_channel.cc
+++ b/p2p/base/p2p_transport_channel.cc
@@ -24,8 +24,8 @@
#include "absl/strings/match.h"
#include "api/async_dns_resolver.h"
#include "api/candidate.h"
+#include "api/field_trials_view.h"
#include "api/task_queue/queued_task.h"
-#include "api/webrtc_key_value_config.h"
#include "logging/rtc_event_log/ice_logger.h"
#include "p2p/base/basic_async_resolver_factory.h"
#include "p2p/base/basic_ice_controller.h"
@@ -61,7 +61,7 @@
}
uint32_t GetWeakPingIntervalInFieldTrial(
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+ const webrtc::FieldTrialsView* field_trials) {
if (field_trials != nullptr) {
uint32_t weak_ping_interval =
::strtoul(field_trials->Lookup("WebRTC-StunInterPacketDelay").c_str(),
@@ -134,7 +134,7 @@
const std::string& transport_name,
int component,
PortAllocator* allocator,
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: P2PTransportChannel(transport_name,
component,
allocator,
@@ -154,7 +154,7 @@
owned_dns_resolver_factory,
webrtc::RtcEventLog* event_log,
IceControllerFactoryInterface* ice_controller_factory,
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: transport_name_(transport_name),
component_(component),
allocator_(allocator),
@@ -709,7 +709,7 @@
}
void P2PTransportChannel::ParseFieldTrials(
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+ const webrtc::FieldTrialsView* field_trials) {
if (field_trials == nullptr) {
return;
}
diff --git a/p2p/base/p2p_transport_channel.h b/p2p/base/p2p_transport_channel.h
index 24c4b85..4f0ac02 100644
--- a/p2p/base/p2p_transport_channel.h
+++ b/p2p/base/p2p_transport_channel.h
@@ -111,11 +111,10 @@
// For testing only.
// TODO(zstein): Remove once AsyncDnsResolverFactory is required.
- P2PTransportChannel(
- const std::string& transport_name,
- int component,
- PortAllocator* allocator,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr);
+ P2PTransportChannel(const std::string& transport_name,
+ int component,
+ PortAllocator* allocator,
+ const webrtc::FieldTrialsView* field_trials = nullptr);
~P2PTransportChannel() override;
@@ -248,7 +247,7 @@
owned_dns_resolver_factory,
webrtc::RtcEventLog* event_log,
IceControllerFactoryInterface* ice_controller_factory,
- const webrtc::WebRtcKeyValueConfig* field_trials);
+ const webrtc::FieldTrialsView* field_trials);
bool IsGettingPorts() {
RTC_DCHECK_RUN_ON(network_thread_);
return allocator_session()->IsGettingPorts();
@@ -400,7 +399,7 @@
int64_t ComputeEstimatedDisconnectedTimeMs(int64_t now,
Connection* old_connection);
- void ParseFieldTrials(const webrtc::WebRtcKeyValueConfig* field_trials);
+ void ParseFieldTrials(const webrtc::FieldTrialsView* field_trials);
webrtc::ScopedTaskSafety task_safety_;
std::string transport_name_ RTC_GUARDED_BY(network_thread_);
diff --git a/p2p/base/p2p_transport_channel_unittest.cc b/p2p/base/p2p_transport_channel_unittest.cc
index c69530b..04d4850 100644
--- a/p2p/base/p2p_transport_channel_unittest.cc
+++ b/p2p/base/p2p_transport_channel_unittest.cc
@@ -4929,7 +4929,7 @@
P2PTransportChannel& StartTransportChannel(
bool prioritize_most_likely_to_work,
int stable_writable_connection_ping_interval,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr) {
+ const webrtc::FieldTrialsView* field_trials = nullptr) {
channel_.reset(
new P2PTransportChannel("checks", 1, allocator(), field_trials));
IceConfig config = channel_->config();
diff --git a/p2p/base/port.cc b/p2p/base/port.cc
index 72f4efb..74db59d 100644
--- a/p2p/base/port.cc
+++ b/p2p/base/port.cc
@@ -111,7 +111,7 @@
const rtc::Network* network,
const std::string& username_fragment,
const std::string& password,
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: thread_(thread),
factory_(factory),
type_(type),
@@ -142,7 +142,7 @@
uint16_t max_port,
const std::string& username_fragment,
const std::string& password,
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: thread_(thread),
factory_(factory),
type_(type),
diff --git a/p2p/base/port.h b/p2p/base/port.h
index 343170f..747700c 100644
--- a/p2p/base/port.h
+++ b/p2p/base/port.h
@@ -20,11 +20,11 @@
#include "absl/types/optional.h"
#include "api/candidate.h"
+#include "api/field_trials_view.h"
#include "api/packet_socket_factory.h"
#include "api/rtc_error.h"
#include "api/transport/field_trial_based_config.h"
#include "api/transport/stun.h"
-#include "api/webrtc_key_value_config.h"
#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h"
#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h"
#include "logging/rtc_event_log/ice_logger.h"
@@ -189,7 +189,7 @@
const rtc::Network* network,
const std::string& username_fragment,
const std::string& password,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr);
+ const webrtc::FieldTrialsView* field_trials = nullptr);
Port(rtc::Thread* thread,
const std::string& type,
rtc::PacketSocketFactory* factory,
@@ -198,7 +198,7 @@
uint16_t max_port,
const std::string& username_fragment,
const std::string& password,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr);
+ const webrtc::FieldTrialsView* field_trials = nullptr);
~Port() override;
// Note that the port type does NOT uniquely identify different subclasses of
@@ -499,7 +499,7 @@
MdnsNameRegistrationStatus::kNotStarted;
rtc::WeakPtrFactory<Port> weak_factory_;
- webrtc::AlwaysValidPointer<const webrtc::WebRtcKeyValueConfig,
+ webrtc::AlwaysValidPointer<const webrtc::FieldTrialsView,
webrtc::FieldTrialBasedConfig>
field_trials_;
diff --git a/p2p/base/stun_port.cc b/p2p/base/stun_port.cc
index 46052a0..1dfab8f 100644
--- a/p2p/base/stun_port.cc
+++ b/p2p/base/stun_port.cc
@@ -158,7 +158,7 @@
const std::string& username,
const std::string& password,
bool emit_local_for_anyaddress,
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: Port(thread,
LOCAL_PORT_TYPE,
factory,
@@ -182,7 +182,7 @@
const std::string& username,
const std::string& password,
bool emit_local_for_anyaddress,
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: Port(thread,
LOCAL_PORT_TYPE,
factory,
@@ -615,7 +615,7 @@
const std::string& password,
const ServerAddresses& servers,
absl::optional<int> stun_keepalive_interval,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+ const webrtc::FieldTrialsView* field_trials) {
// Using `new` to access a non-public constructor.
auto port = absl::WrapUnique(new StunPort(thread, factory, network, min_port,
max_port, username, password,
@@ -635,7 +635,7 @@
const std::string& username,
const std::string& password,
const ServerAddresses& servers,
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: UDPPort(thread,
factory,
network,
diff --git a/p2p/base/stun_port.h b/p2p/base/stun_port.h
index 485fca8..de40745 100644
--- a/p2p/base/stun_port.h
+++ b/p2p/base/stun_port.h
@@ -41,7 +41,7 @@
const std::string& password,
bool emit_local_for_anyaddress,
absl::optional<int> stun_keepalive_interval,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr) {
+ const webrtc::FieldTrialsView* field_trials = nullptr) {
// Using `new` to access a non-public constructor.
auto port = absl::WrapUnique(
new UDPPort(thread, factory, network, socket, username, password,
@@ -63,7 +63,7 @@
const std::string& password,
bool emit_local_for_anyaddress,
absl::optional<int> stun_keepalive_interval,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr) {
+ const webrtc::FieldTrialsView* field_trials = nullptr) {
// Using `new` to access a non-public constructor.
auto port = absl::WrapUnique(
new UDPPort(thread, factory, network, min_port, max_port, username,
@@ -127,7 +127,7 @@
const std::string& username,
const std::string& password,
bool emit_local_for_anyaddress,
- const webrtc::WebRtcKeyValueConfig* field_trials);
+ const webrtc::FieldTrialsView* field_trials);
UDPPort(rtc::Thread* thread,
rtc::PacketSocketFactory* factory,
@@ -136,7 +136,7 @@
const std::string& username,
const std::string& password,
bool emit_local_for_anyaddress,
- const webrtc::WebRtcKeyValueConfig* field_trials);
+ const webrtc::FieldTrialsView* field_trials);
bool Init();
@@ -275,7 +275,7 @@
const std::string& password,
const ServerAddresses& servers,
absl::optional<int> stun_keepalive_interval,
- const webrtc::WebRtcKeyValueConfig* field_trials);
+ const webrtc::FieldTrialsView* field_trials);
void PrepareAddress() override;
@@ -288,7 +288,7 @@
const std::string& username,
const std::string& password,
const ServerAddresses& servers,
- const webrtc::WebRtcKeyValueConfig* field_trials);
+ const webrtc::FieldTrialsView* field_trials);
};
} // namespace cricket
diff --git a/p2p/base/tcp_port.cc b/p2p/base/tcp_port.cc
index 8278ef0..1bbc9e9 100644
--- a/p2p/base/tcp_port.cc
+++ b/p2p/base/tcp_port.cc
@@ -92,7 +92,7 @@
const std::string& username,
const std::string& password,
bool allow_listen,
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: Port(thread,
LOCAL_PORT_TYPE,
factory,
diff --git a/p2p/base/tcp_port.h b/p2p/base/tcp_port.h
index 80e9a83..969d43c 100644
--- a/p2p/base/tcp_port.h
+++ b/p2p/base/tcp_port.h
@@ -43,7 +43,7 @@
const std::string& username,
const std::string& password,
bool allow_listen,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr) {
+ const webrtc::FieldTrialsView* field_trials = nullptr) {
// Using `new` to access a non-public constructor.
return absl::WrapUnique(new TCPPort(thread, factory, network, min_port,
max_port, username, password,
@@ -74,7 +74,7 @@
const std::string& username,
const std::string& password,
bool allow_listen,
- const webrtc::WebRtcKeyValueConfig* field_trials);
+ const webrtc::FieldTrialsView* field_trials);
// Handles sending using the local TCP socket.
int SendTo(const void* data,
diff --git a/p2p/base/transport_description_factory.cc b/p2p/base/transport_description_factory.cc
index 18c4a28..7eb21da 100644
--- a/p2p/base/transport_description_factory.cc
+++ b/p2p/base/transport_description_factory.cc
@@ -22,7 +22,7 @@
namespace cricket {
TransportDescriptionFactory::TransportDescriptionFactory(
- const webrtc::WebRtcKeyValueConfig& field_trials)
+ const webrtc::FieldTrialsView& field_trials)
: secure_(SEC_DISABLED), field_trials_(field_trials) {}
TransportDescriptionFactory::~TransportDescriptionFactory() = default;
diff --git a/p2p/base/transport_description_factory.h b/p2p/base/transport_description_factory.h
index 46f1c2f..b4d8822 100644
--- a/p2p/base/transport_description_factory.h
+++ b/p2p/base/transport_description_factory.h
@@ -13,7 +13,7 @@
#include <memory>
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "p2p/base/ice_credentials_iterator.h"
#include "p2p/base/transport_description.h"
#include "rtc_base/rtc_certificate.h"
@@ -39,7 +39,7 @@
public:
// Default ctor; use methods below to set configuration.
explicit TransportDescriptionFactory(
- const webrtc::WebRtcKeyValueConfig& field_trials);
+ const webrtc::FieldTrialsView& field_trials);
~TransportDescriptionFactory();
SecurePolicy secure() const { return secure_; }
@@ -75,7 +75,7 @@
const TransportDescription* current_description,
IceCredentialsIterator* ice_credentials) const;
- const webrtc::WebRtcKeyValueConfig& trials() const { return field_trials_; }
+ const webrtc::FieldTrialsView& trials() const { return field_trials_; }
private:
bool SetSecurityInfo(TransportDescription* description,
@@ -83,7 +83,7 @@
SecurePolicy secure_;
rtc::scoped_refptr<rtc::RTCCertificate> certificate_;
- const webrtc::WebRtcKeyValueConfig& field_trials_;
+ const webrtc::FieldTrialsView& field_trials_;
};
} // namespace cricket
diff --git a/p2p/base/turn_port.cc b/p2p/base/turn_port.cc
index d984b6c..ddf63fa 100644
--- a/p2p/base/turn_port.cc
+++ b/p2p/base/turn_port.cc
@@ -226,7 +226,7 @@
const std::vector<std::string>& tls_elliptic_curves,
webrtc::TurnCustomizer* customizer,
rtc::SSLCertificateVerifier* tls_cert_verifier,
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: Port(thread,
RELAY_PORT_TYPE,
factory,
@@ -266,7 +266,7 @@
const std::vector<std::string>& tls_elliptic_curves,
webrtc::TurnCustomizer* customizer,
rtc::SSLCertificateVerifier* tls_cert_verifier,
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: Port(thread,
RELAY_PORT_TYPE,
factory,
@@ -945,9 +945,8 @@
}
// static
-bool TurnPort::AllowedTurnPort(
- int port,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+bool TurnPort::AllowedTurnPort(int port,
+ const webrtc::FieldTrialsView* field_trials) {
// Port 53, 80 and 443 are used for existing deployments.
// Ports above 1024 are assumed to be OK to use.
if (port == 53 || port == 80 || port == 443 || port >= 1024) {
diff --git a/p2p/base/turn_port.h b/p2p/base/turn_port.h
index 89e6bd6..fa76695 100644
--- a/p2p/base/turn_port.h
+++ b/p2p/base/turn_port.h
@@ -216,7 +216,7 @@
const std::vector<std::string>& tls_elliptic_curves,
webrtc::TurnCustomizer* customizer,
rtc::SSLCertificateVerifier* tls_cert_verifier = nullptr,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr);
+ const webrtc::FieldTrialsView* field_trials = nullptr);
TurnPort(rtc::Thread* thread,
rtc::PacketSocketFactory* factory,
@@ -232,7 +232,7 @@
const std::vector<std::string>& tls_elliptic_curves,
webrtc::TurnCustomizer* customizer,
rtc::SSLCertificateVerifier* tls_cert_verifier = nullptr,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr);
+ const webrtc::FieldTrialsView* field_trials = nullptr);
// NOTE: This method needs to be accessible for StunPort
// return true if entry was created (i.e channel_number consumed).
@@ -258,7 +258,7 @@
typedef std::set<rtc::SocketAddress> AttemptedServerSet;
static bool AllowedTurnPort(int port,
- const webrtc::WebRtcKeyValueConfig* field_trials);
+ const webrtc::FieldTrialsView* field_trials);
void OnMessage(rtc::Message* pmsg) override;
bool CreateTurnClientSocket();
@@ -364,7 +364,7 @@
// must outlive the TurnPort's lifetime.
webrtc::TurnCustomizer* turn_customizer_ = nullptr;
- const webrtc::WebRtcKeyValueConfig* field_trials_;
+ const webrtc::FieldTrialsView* field_trials_;
// Optional TurnLoggingId.
// An identifier set by application that is added to TURN_ALLOCATE_REQUEST
diff --git a/p2p/client/basic_port_allocator.cc b/p2p/client/basic_port_allocator.cc
index 10d855c..8b4bf57 100644
--- a/p2p/client/basic_port_allocator.cc
+++ b/p2p/client/basic_port_allocator.cc
@@ -253,9 +253,8 @@
turn_port_prune_policy(), turn_customizer());
}
-void BasicPortAllocator::Init(
- RelayPortFactoryInterface* relay_port_factory,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+void BasicPortAllocator::Init(RelayPortFactoryInterface* relay_port_factory,
+ const webrtc::FieldTrialsView* field_trials) {
if (relay_port_factory != nullptr) {
relay_port_factory_ = relay_port_factory;
} else {
@@ -1686,7 +1685,7 @@
const ServerAddresses& stun_servers,
const std::string& username,
const std::string& password,
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: stun_servers(stun_servers), username(username), password(password) {
if (!stun_servers.empty())
stun_address = *(stun_servers.begin());
diff --git a/p2p/client/basic_port_allocator.h b/p2p/client/basic_port_allocator.h
index 6d650f5..01d07e7 100644
--- a/p2p/client/basic_port_allocator.h
+++ b/p2p/client/basic_port_allocator.h
@@ -15,8 +15,8 @@
#include <string>
#include <vector>
+#include "api/field_trials_view.h"
#include "api/turn_customizer.h"
-#include "api/webrtc_key_value_config.h"
#include "p2p/base/port_allocator.h"
#include "p2p/client/relay_port_factory_interface.h"
#include "p2p/client/turn_port_factory.h"
@@ -81,9 +81,7 @@
void SetVpnList(const std::vector<rtc::NetworkMask>& vpn_list) override;
- const webrtc::WebRtcKeyValueConfig* field_trials() const {
- return field_trials_;
- }
+ const webrtc::FieldTrialsView* field_trials() const { return field_trials_; }
private:
void OnIceRegathering(PortAllocatorSession* session,
@@ -92,12 +90,12 @@
// This function makes sure that relay_port_factory_ and field_trials_ is set
// properly.
void Init(RelayPortFactoryInterface* relay_port_factory,
- const webrtc::WebRtcKeyValueConfig* field_trials);
+ const webrtc::FieldTrialsView* field_trials);
bool MdnsObfuscationEnabled() const override;
- const webrtc::WebRtcKeyValueConfig* field_trials_;
- std::unique_ptr<webrtc::WebRtcKeyValueConfig> owned_field_trials_;
+ const webrtc::FieldTrialsView* field_trials_;
+ std::unique_ptr<webrtc::FieldTrialsView> owned_field_trials_;
rtc::NetworkManager* network_manager_;
rtc::PacketSocketFactory* socket_factory_;
int network_ignore_mask_ = rtc::kDefaultNetworkIgnoreMask;
@@ -310,7 +308,7 @@
PortConfiguration(const ServerAddresses& stun_servers,
const std::string& username,
const std::string& password,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr);
+ const webrtc::FieldTrialsView* field_trials = nullptr);
// Returns addresses of both the explicitly configured STUN servers,
// and TURN servers that should be used as STUN servers.
diff --git a/p2p/client/relay_port_factory_interface.h b/p2p/client/relay_port_factory_interface.h
index 7d63fac..4eec5db 100644
--- a/p2p/client/relay_port_factory_interface.h
+++ b/p2p/client/relay_port_factory_interface.h
@@ -26,7 +26,7 @@
namespace webrtc {
class TurnCustomizer;
-class WebRtcKeyValueConfig;
+class FieldTrialsView;
} // namespace webrtc
namespace cricket {
@@ -44,7 +44,7 @@
std::string username;
std::string password;
webrtc::TurnCustomizer* turn_customizer = nullptr;
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr;
+ const webrtc::FieldTrialsView* field_trials = nullptr;
};
// A factory for creating RelayPort's.
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 0ba0c68..792f0d3 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -379,10 +379,10 @@
":session_description",
":simulcast_description",
":used_ids",
+ "../api:field_trials_view",
"../api:libjingle_peerconnection_api",
"../api:rtp_parameters",
"../api:rtp_transceiver_direction",
- "../api:webrtc_key_value_config",
"../api/crypto:options",
"../media:rtc_data_sctp_transport_internal",
"../media:rtc_media_base",
@@ -610,9 +610,9 @@
deps = [
":external_hmac",
"../api:array_view",
+ "../api:field_trials_view",
"../api:scoped_refptr",
"../api:sequence_checker",
- "../api:webrtc_key_value_config",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../rtc_base",
"../rtc_base:checks",
@@ -635,9 +635,9 @@
deps = [
":rtp_transport",
":srtp_session",
+ "../api:field_trials_view",
"../api:libjingle_peerconnection_api",
"../api:rtc_error",
- "../api:webrtc_key_value_config",
"../media:rtc_media_base",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../p2p:rtc_p2p",
@@ -812,6 +812,7 @@
"../api:call_api",
"../api:callfactory_api",
"../api:fec_controller_api",
+ "../api:field_trials_view",
"../api:frame_transformer_interface",
"../api:ice_transport_factory",
"../api:libjingle_logging_api",
@@ -840,7 +841,6 @@
"../api/transport:field_trial_based_config",
"../api/transport:network_control",
"../api/transport:sctp_transport_factory_interface",
- "../api/transport:webrtc_key_value_config",
"../api/units:data_rate",
"../api/video:builtin_video_bitrate_allocator_factory",
"../api/video:video_bitrate_allocator_factory",
@@ -952,6 +952,7 @@
":channel_manager",
":rtc_pc_base",
"../api:callfactory_api",
+ "../api:field_trials_view",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api:refcountedbase",
@@ -960,7 +961,6 @@
"../api/neteq:neteq_api",
"../api/transport:field_trial_based_config",
"../api/transport:sctp_transport_factory_interface",
- "../api/transport:webrtc_key_value_config",
"../media:rtc_data_sctp_transport_factory",
"../media:rtc_media_base",
"../p2p:rtc_p2p",
@@ -1228,6 +1228,8 @@
":usage_pattern",
":webrtc_session_description_factory",
"../api:async_dns_resolver",
+ "../api:field_trials_view",
+ "../api:field_trials_view",
"../api:libjingle_logging_api",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
@@ -1238,14 +1240,12 @@
"../api:rtp_transceiver_direction",
"../api:scoped_refptr",
"../api:sequence_checker",
- "../api:webrtc_key_value_config",
"../api/adaptation:resource_adaptation_api",
"../api/crypto:options",
"../api/rtc_event_log:rtc_event_log",
"../api/transport:bitrate_settings",
"../api/transport:datagram_transport_interface",
"../api/transport:enums",
- "../api/transport:webrtc_key_value_config",
"../api/video:video_bitrate_allocator_factory",
"../api/video:video_codec_constants",
"../call:call_interfaces",
@@ -1330,12 +1330,12 @@
":rtp_transceiver",
":stats_collector_interface",
":transport_stats",
+ "../api:field_trials_view",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api:rtp_parameters",
"../api:scoped_refptr",
"../api:sequence_checker",
- "../api:webrtc_key_value_config",
"../api/audio_codecs:audio_codecs_api",
"../api/video:video_rtp_headers",
"../call:call_interfaces",
@@ -1505,6 +1505,7 @@
"../api:audio_options_api",
"../api:callfactory_api",
"../api:fec_controller_api",
+ "../api:field_trials_view",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api:network_state_predictor_api",
@@ -1520,7 +1521,6 @@
"../api/transport:bitrate_settings",
"../api/transport:network_control",
"../api/transport:sctp_transport_factory_interface",
- "../api/transport:webrtc_key_value_config",
"../api/units:data_rate",
"../call:call_interfaces",
"../call:rtp_interfaces",
@@ -2333,6 +2333,8 @@
"../api:create_peerconnection_factory",
"../api:fake_frame_decryptor",
"../api:fake_frame_encryptor",
+ "../api:field_trials_view",
+ "../api:field_trials_view",
"../api:function_view",
"../api:libjingle_logging_api",
"../api:libjingle_peerconnection_api",
@@ -2344,7 +2346,6 @@
"../api:rtc_error",
"../api:rtp_transceiver_direction",
"../api:scoped_refptr",
- "../api:webrtc_key_value_config",
"../api/adaptation:resource_adaptation_api",
"../api/audio:audio_mixer_api",
"../api/crypto:frame_decryptor_interface",
@@ -2357,7 +2358,6 @@
"../api/transport:datagram_transport_interface",
"../api/transport:field_trial_based_config",
"../api/transport:sctp_transport_factory_interface",
- "../api/transport:webrtc_key_value_config",
"../api/transport/rtp:rtp_source",
"../api/units:time_delta",
"../api/units:timestamp",
@@ -2516,6 +2516,7 @@
"../api:create_peerconnection_factory",
"../api:fake_frame_decryptor",
"../api:fake_frame_encryptor",
+ "../api:field_trials_view",
"../api:function_view",
"../api:libjingle_logging_api",
"../api:libjingle_peerconnection_api",
@@ -2536,7 +2537,6 @@
"../api/task_queue",
"../api/task_queue:default_task_queue_factory",
"../api/transport:field_trial_based_config",
- "../api/transport:webrtc_key_value_config",
"../api/transport/rtp:rtp_source",
"../api/units:time_delta",
"../api/video:builtin_video_bitrate_allocator_factory",
@@ -2632,18 +2632,18 @@
"../api:audio_options_api",
"../api:create_frame_generator",
"../api:create_peerconnection_factory",
+ "../api:field_trials_view",
+ "../api:field_trials_view",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api:rtc_error",
"../api:rtc_stats_api",
"../api:scoped_refptr",
"../api:sequence_checker",
- "../api:webrtc_key_value_config",
"../api/audio:audio_mixer_api",
"../api/audio_codecs:audio_codecs_api",
"../api/task_queue",
"../api/task_queue:default_task_queue_factory",
- "../api/transport:webrtc_key_value_config",
"../api/video:builtin_video_bitrate_allocator_factory",
"../api/video:video_frame",
"../api/video:video_rtp_headers",
diff --git a/pc/connection_context.cc b/pc/connection_context.cc
index 84a0dd3..ae02261 100644
--- a/pc/connection_context.cc
+++ b/pc/connection_context.cc
@@ -74,7 +74,7 @@
std::unique_ptr<SctpTransportFactoryInterface> MaybeCreateSctpFactory(
std::unique_ptr<SctpTransportFactoryInterface> factory,
rtc::Thread* network_thread,
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
if (factory) {
return factory;
}
diff --git a/pc/connection_context.h b/pc/connection_context.h
index 05f838f..3b8ac07 100644
--- a/pc/connection_context.h
+++ b/pc/connection_context.h
@@ -15,13 +15,13 @@
#include <string>
#include "api/call/call_factory_interface.h"
+#include "api/field_trials_view.h"
#include "api/media_stream_interface.h"
#include "api/peer_connection_interface.h"
#include "api/ref_counted_base.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "api/transport/sctp_transport_factory_interface.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "media/base/media_engine.h"
#include "p2p/base/basic_packet_socket_factory.h"
#include "pc/channel_manager.h"
@@ -75,7 +75,7 @@
rtc::Thread* network_thread() { return network_thread_; }
const rtc::Thread* network_thread() const { return network_thread_; }
- const WebRtcKeyValueConfig& trials() const { return *trials_.get(); }
+ const FieldTrialsView& trials() const { return *trials_.get(); }
// Accessors only used from the PeerConnectionFactory class
rtc::BasicNetworkManager* default_network_manager() {
@@ -114,7 +114,7 @@
rtc::Thread* const signaling_thread_;
// Accessed both on signaling thread and worker thread.
- std::unique_ptr<WebRtcKeyValueConfig> const trials_;
+ std::unique_ptr<FieldTrialsView> const trials_;
// channel_manager is accessed both on signaling thread and worker thread.
std::unique_ptr<cricket::ChannelManager> channel_manager_;
diff --git a/pc/dtls_srtp_transport.cc b/pc/dtls_srtp_transport.cc
index 9ec14f5..28de50b 100644
--- a/pc/dtls_srtp_transport.cc
+++ b/pc/dtls_srtp_transport.cc
@@ -28,7 +28,7 @@
namespace webrtc {
DtlsSrtpTransport::DtlsSrtpTransport(bool rtcp_mux_enabled,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: SrtpTransport(rtcp_mux_enabled, field_trials) {}
void DtlsSrtpTransport::SetDtlsTransports(
diff --git a/pc/dtls_srtp_transport.h b/pc/dtls_srtp_transport.h
index 2ee6e02..7958210 100644
--- a/pc/dtls_srtp_transport.h
+++ b/pc/dtls_srtp_transport.h
@@ -32,8 +32,7 @@
// configures the SrtpSessions in the base class.
class DtlsSrtpTransport : public SrtpTransport {
public:
- DtlsSrtpTransport(bool rtcp_mux_enabled,
- const WebRtcKeyValueConfig& field_trials);
+ DtlsSrtpTransport(bool rtcp_mux_enabled, const FieldTrialsView& field_trials);
// Set P2P layer RTP/RTCP DtlsTransports. When using RTCP-muxing,
// `rtcp_dtls_transport` is null.
diff --git a/pc/jsep_transport_controller.h b/pc/jsep_transport_controller.h
index 44d5981..e79ab05 100644
--- a/pc/jsep_transport_controller.h
+++ b/pc/jsep_transport_controller.h
@@ -139,7 +139,7 @@
std::function<void(rtc::SSLHandshakeError)> on_dtls_handshake_error_;
// Field trials.
- const webrtc::WebRtcKeyValueConfig* field_trials;
+ const webrtc::FieldTrialsView* field_trials;
};
// The ICE related events are fired on the `network_thread`.
diff --git a/pc/media_session.cc b/pc/media_session.cc
index 2ab661c..71a6d0a 100644
--- a/pc/media_session.cc
+++ b/pc/media_session.cc
@@ -301,7 +301,7 @@
bool include_rtx_streams,
bool include_flexfec_stream,
UniqueRandomIdGenerator* ssrc_generator,
- const webrtc::WebRtcKeyValueConfig& field_trials) {
+ const webrtc::FieldTrialsView& field_trials) {
StreamParams result;
result.id = sender.track_id;
@@ -400,7 +400,7 @@
UniqueRandomIdGenerator* ssrc_generator,
StreamParamsVec* current_streams,
MediaContentDescriptionImpl<C>* content_description,
- const webrtc::WebRtcKeyValueConfig& field_trials) {
+ const webrtc::FieldTrialsView& field_trials) {
// SCTP streams are not negotiated using SDP/ContentDescriptions.
if (IsSctpProtocol(content_description->protocol())) {
return true;
@@ -711,7 +711,7 @@
UniqueRandomIdGenerator* ssrc_generator,
StreamParamsVec* current_streams,
MediaContentDescriptionImpl<C>* offer,
- const webrtc::WebRtcKeyValueConfig& field_trials) {
+ const webrtc::FieldTrialsView& field_trials) {
offer->AddCodecs(codecs);
if (!AddStreamParams(media_description_options.sender_options,
session_options.rtcp_cname, ssrc_generator,
@@ -726,12 +726,11 @@
}
template <class C>
-static bool ReferencedCodecsMatch(
- const std::vector<C>& codecs1,
- const int codec1_id,
- const std::vector<C>& codecs2,
- const int codec2_id,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+static bool ReferencedCodecsMatch(const std::vector<C>& codecs1,
+ const int codec1_id,
+ const std::vector<C>& codecs2,
+ const int codec2_id,
+ const webrtc::FieldTrialsView* field_trials) {
const C* codec1 = FindCodecById(codecs1, codec1_id);
const C* codec2 = FindCodecById(codecs2, codec2_id);
return codec1 != nullptr && codec2 != nullptr &&
@@ -756,7 +755,7 @@
const std::vector<C>& offered_codecs,
std::vector<C>* negotiated_codecs,
bool keep_offer_order,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+ const webrtc::FieldTrialsView* field_trials) {
for (const C& ours : local_codecs) {
C theirs;
// Note that we intentionally only find one matching codec for each of our
@@ -815,12 +814,11 @@
// a member of `codecs1`. If `codec_to_match` is an RED or RTX codec, both
// the codecs themselves and their associated codecs must match.
template <class C>
-static bool FindMatchingCodec(
- const std::vector<C>& codecs1,
- const std::vector<C>& codecs2,
- const C& codec_to_match,
- C* found_codec,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+static bool FindMatchingCodec(const std::vector<C>& codecs1,
+ const std::vector<C>& codecs2,
+ const C& codec_to_match,
+ C* found_codec,
+ const webrtc::FieldTrialsView* field_trials) {
// `codec_to_match` should be a member of `codecs1`, in order to look up
// RED/RTX codecs' associated codecs correctly. If not, that's a programming
// error.
@@ -975,7 +973,7 @@
static void MergeCodecs(const std::vector<C>& reference_codecs,
std::vector<C>* offered_codecs,
UsedPayloadTypes* used_pltypes,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+ const webrtc::FieldTrialsView* field_trials) {
// Add all new codecs that are not RTX/RED codecs.
// The two-pass splitting of the loops means preferring payload types
// of actual codecs with respect to collisions.
@@ -1050,7 +1048,7 @@
const std::vector<webrtc::RtpCodecCapability>& codec_preferences,
const Codecs& codecs,
const Codecs& supported_codecs,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+ const webrtc::FieldTrialsView* field_trials) {
Codecs filtered_codecs;
bool want_rtx = false;
bool want_red = false;
@@ -1122,10 +1120,9 @@
// Compute the union of `codecs1` and `codecs2`.
template <class C>
-std::vector<C> ComputeCodecsUnion(
- const std::vector<C>& codecs1,
- const std::vector<C>& codecs2,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+std::vector<C> ComputeCodecsUnion(const std::vector<C>& codecs1,
+ const std::vector<C>& codecs2,
+ const webrtc::FieldTrialsView* field_trials) {
std::vector<C> all_codecs;
UsedPayloadTypes used_payload_types;
for (const C& codec : codecs1) {
@@ -1365,7 +1362,7 @@
UniqueRandomIdGenerator* ssrc_generator,
StreamParamsVec* current_streams,
MediaContentDescriptionImpl<C>* answer,
- const webrtc::WebRtcKeyValueConfig& field_trials) {
+ const webrtc::FieldTrialsView& field_trials) {
std::vector<C> negotiated_codecs;
NegotiateCodecs(local_codecs, offer->codecs(), &negotiated_codecs,
media_description_options.codec_preferences.empty(),
@@ -2054,7 +2051,7 @@
AudioCodecs* audio_codecs,
VideoCodecs* video_codecs,
UsedPayloadTypes* used_pltypes,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+ const webrtc::FieldTrialsView* field_trials) {
for (const ContentInfo* content : current_active_contents) {
if (IsMediaContentOfType(content, MEDIA_TYPE_AUDIO)) {
const AudioContentDescription* audio =
@@ -2080,7 +2077,7 @@
const std::vector<const ContentInfo*>& current_active_contents,
AudioCodecs* audio_codecs,
VideoCodecs* video_codecs) const {
- const webrtc::WebRtcKeyValueConfig* field_trials =
+ const webrtc::FieldTrialsView* field_trials =
&transport_desc_factory_->trials();
// First - get all codecs from the current description if the media type
// is used. Add them to `used_pltypes` so the payload type is not reused if a
@@ -2108,7 +2105,7 @@
const SessionDescription& remote_offer,
AudioCodecs* audio_codecs,
VideoCodecs* video_codecs) const {
- const webrtc::WebRtcKeyValueConfig* field_trials =
+ const webrtc::FieldTrialsView* field_trials =
&transport_desc_factory_->trials();
// First - get all codecs from the current description if the media type
// is used. Add them to `used_pltypes` so the payload type is not reused if a
@@ -2297,7 +2294,7 @@
StreamParamsVec* current_streams,
SessionDescription* desc,
IceCredentialsIterator* ice_credentials) const {
- const webrtc::WebRtcKeyValueConfig* field_trials =
+ const webrtc::FieldTrialsView* field_trials =
&transport_desc_factory_->trials();
// Filter audio_codecs (which includes all codecs, with correctly remapped
// payload types) based on transceiver direction.
@@ -2390,7 +2387,7 @@
StreamParamsVec* current_streams,
SessionDescription* desc,
IceCredentialsIterator* ice_credentials) const {
- const webrtc::WebRtcKeyValueConfig* field_trials =
+ const webrtc::FieldTrialsView* field_trials =
&transport_desc_factory_->trials();
// Filter video_codecs (which includes all codecs, with correctly remapped
// payload types) based on transceiver direction.
@@ -2587,7 +2584,7 @@
StreamParamsVec* current_streams,
SessionDescription* answer,
IceCredentialsIterator* ice_credentials) const {
- const webrtc::WebRtcKeyValueConfig* field_trials =
+ const webrtc::FieldTrialsView* field_trials =
&transport_desc_factory_->trials();
RTC_CHECK(IsMediaContentOfType(offer_content, MEDIA_TYPE_AUDIO));
const AudioContentDescription* offer_audio_description =
@@ -2706,7 +2703,7 @@
StreamParamsVec* current_streams,
SessionDescription* answer,
IceCredentialsIterator* ice_credentials) const {
- const webrtc::WebRtcKeyValueConfig* field_trials =
+ const webrtc::FieldTrialsView* field_trials =
&transport_desc_factory_->trials();
RTC_CHECK(IsMediaContentOfType(offer_content, MEDIA_TYPE_VIDEO));
const VideoContentDescription* offer_video_description =
@@ -2932,7 +2929,7 @@
}
void MediaSessionDescriptionFactory::ComputeAudioCodecsIntersectionAndUnion() {
- const webrtc::WebRtcKeyValueConfig* field_trials =
+ const webrtc::FieldTrialsView* field_trials =
&transport_desc_factory_->trials();
audio_sendrecv_codecs_.clear();
all_audio_codecs_.clear();
@@ -2962,7 +2959,7 @@
}
void MediaSessionDescriptionFactory::ComputeVideoCodecsIntersectionAndUnion() {
- const webrtc::WebRtcKeyValueConfig* field_trials =
+ const webrtc::FieldTrialsView* field_trials =
&transport_desc_factory_->trials();
video_sendrecv_codecs_.clear();
diff --git a/pc/media_session.h b/pc/media_session.h
index d6c7474..9a67ad1 100644
--- a/pc/media_session.h
+++ b/pc/media_session.h
@@ -19,10 +19,10 @@
#include <vector>
#include "api/crypto/crypto_options.h"
+#include "api/field_trials_view.h"
#include "api/media_types.h"
#include "api/rtp_parameters.h"
#include "api/rtp_transceiver_direction.h"
-#include "api/webrtc_key_value_config.h"
#include "media/base/media_constants.h"
#include "media/base/rid_description.h"
#include "media/base/stream_params.h"
diff --git a/pc/media_session_unittest.cc b/pc/media_session_unittest.cc
index 9d01e07..3ca6c85 100644
--- a/pc/media_session_unittest.cc
+++ b/pc/media_session_unittest.cc
@@ -4455,7 +4455,7 @@
template <class Codec>
bool CodecsMatch(const std::vector<Codec>& codecs1,
const std::vector<Codec>& codecs2,
- const webrtc::WebRtcKeyValueConfig* field_trials) {
+ const webrtc::FieldTrialsView* field_trials) {
if (codecs1.size() != codecs2.size()) {
return false;
}
diff --git a/pc/peer_connection.h b/pc/peer_connection.h
index 95bdfba..6ada0c0 100644
--- a/pc/peer_connection.h
+++ b/pc/peer_connection.h
@@ -27,6 +27,7 @@
#include "api/crypto/crypto_options.h"
#include "api/data_channel_interface.h"
#include "api/dtls_transport_interface.h"
+#include "api/field_trials_view.h"
#include "api/ice_transport_interface.h"
#include "api/jsep.h"
#include "api/media_stream_interface.h"
@@ -48,7 +49,6 @@
#include "api/transport/data_channel_transport_interface.h"
#include "api/transport/enums.h"
#include "api/turn_customizer.h"
-#include "api/webrtc_key_value_config.h"
#include "call/call.h"
#include "p2p/base/ice_transport_internal.h"
#include "p2p/base/port.h"
@@ -437,7 +437,7 @@
}
void RequestUsagePatternReportForTesting();
- const WebRtcKeyValueConfig& trials() override { return context_->trials(); }
+ const FieldTrialsView& trials() override { return context_->trials(); }
protected:
// Available for rtc::scoped_refptr creation
diff --git a/pc/peer_connection_factory.h b/pc/peer_connection_factory.h
index f09ca66..4ee102a 100644
--- a/pc/peer_connection_factory.h
+++ b/pc/peer_connection_factory.h
@@ -21,6 +21,7 @@
#include "absl/strings/string_view.h"
#include "api/audio_options.h"
#include "api/fec_controller.h"
+#include "api/field_trials_view.h"
#include "api/media_stream_interface.h"
#include "api/media_types.h"
#include "api/metronome/metronome.h"
@@ -36,7 +37,6 @@
#include "api/task_queue/task_queue_factory.h"
#include "api/transport/network_control.h"
#include "api/transport/sctp_transport_factory_interface.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "call/call.h"
#include "call/rtp_transport_controller_send_factory_interface.h"
#include "p2p/base/port_allocator.h"
@@ -115,7 +115,7 @@
return options_;
}
- const WebRtcKeyValueConfig& trials() const { return context_->trials(); }
+ const FieldTrialsView& trials() const { return context_->trials(); }
protected:
// Constructor used by the static Create() method. Modifies the dependencies.
diff --git a/pc/peer_connection_internal.h b/pc/peer_connection_internal.h
index eaff20a..66897ee 100644
--- a/pc/peer_connection_internal.h
+++ b/pc/peer_connection_internal.h
@@ -179,7 +179,7 @@
// Handler for the "channel closed" signal
virtual void OnSctpDataChannelClosed(DataChannelInterface* channel) {}
- virtual const WebRtcKeyValueConfig& trials() = 0;
+ virtual const FieldTrialsView& trials() = 0;
};
} // namespace webrtc
diff --git a/pc/peer_connection_jsep_unittest.cc b/pc/peer_connection_jsep_unittest.cc
index 590fa90..ac355d5 100644
--- a/pc/peer_connection_jsep_unittest.cc
+++ b/pc/peer_connection_jsep_unittest.cc
@@ -21,6 +21,7 @@
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "api/call/call_factory_interface.h"
+#include "api/field_trials_view.h"
#include "api/jsep.h"
#include "api/media_stream_interface.h"
#include "api/media_types.h"
@@ -36,7 +37,6 @@
#include "api/task_queue/task_queue_factory.h"
#include "api/transport/field_trial_based_config.h"
#include "api/transport/sctp_transport_factory_interface.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "media/base/media_engine.h"
#include "media/base/stream_params.h"
#include "media/engine/webrtc_media_engine.h"
diff --git a/pc/srtp_session.cc b/pc/srtp_session.cc
index b5b2442..41c9b46 100644
--- a/pc/srtp_session.cc
+++ b/pc/srtp_session.cc
@@ -18,7 +18,7 @@
#include "absl/base/attributes.h"
#include "absl/base/const_init.h"
#include "api/array_view.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "modules/rtp_rtcp/source/rtp_util.h"
#include "pc/external_hmac.h"
#include "rtc_base/byte_order.h"
@@ -42,7 +42,7 @@
SrtpSession::SrtpSession() {}
-SrtpSession::SrtpSession(const webrtc::WebRtcKeyValueConfig& field_trials) {
+SrtpSession::SrtpSession(const webrtc::FieldTrialsView& field_trials) {
dump_plain_rtp_ = field_trials.IsEnabled("WebRTC-Debugging-RtpDump");
}
diff --git a/pc/srtp_session.h b/pc/srtp_session.h
index c3979aa..1c61156 100644
--- a/pc/srtp_session.h
+++ b/pc/srtp_session.h
@@ -16,9 +16,9 @@
#include <vector>
+#include "api/field_trials_view.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
-#include "api/webrtc_key_value_config.h"
#include "rtc_base/synchronization/mutex.h"
// Forward declaration to avoid pulling in libsrtp headers here
@@ -36,7 +36,7 @@
class SrtpSession {
public:
SrtpSession();
- explicit SrtpSession(const webrtc::WebRtcKeyValueConfig& field_trials);
+ explicit SrtpSession(const webrtc::FieldTrialsView& field_trials);
~SrtpSession();
SrtpSession(const SrtpSession&) = delete;
diff --git a/pc/srtp_transport.cc b/pc/srtp_transport.cc
index b59fc1d..0991a25 100644
--- a/pc/srtp_transport.cc
+++ b/pc/srtp_transport.cc
@@ -35,7 +35,7 @@
namespace webrtc {
SrtpTransport::SrtpTransport(bool rtcp_mux_enabled,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: RtpTransport(rtcp_mux_enabled), field_trials_(field_trials) {}
RTCError SrtpTransport::SetSrtpSendKey(const cricket::CryptoParams& params) {
diff --git a/pc/srtp_transport.h b/pc/srtp_transport.h
index 2fec29e..e4b0d9f 100644
--- a/pc/srtp_transport.h
+++ b/pc/srtp_transport.h
@@ -20,8 +20,8 @@
#include "absl/types/optional.h"
#include "api/crypto_params.h"
+#include "api/field_trials_view.h"
#include "api/rtc_error.h"
-#include "api/webrtc_key_value_config.h"
#include "p2p/base/packet_transport_internal.h"
#include "pc/rtp_transport.h"
#include "pc/srtp_session.h"
@@ -37,8 +37,7 @@
// parameters for the SrtpSession underneath.
class SrtpTransport : public RtpTransport {
public:
- SrtpTransport(bool rtcp_mux_enabled,
- const WebRtcKeyValueConfig& field_trials);
+ SrtpTransport(bool rtcp_mux_enabled, const FieldTrialsView& field_trials);
virtual ~SrtpTransport() = default;
@@ -170,7 +169,7 @@
int decryption_failure_count_ = 0;
- const WebRtcKeyValueConfig& field_trials_;
+ const FieldTrialsView& field_trials_;
};
} // namespace webrtc
diff --git a/pc/stats_collector.cc b/pc/stats_collector.cc
index 44873fa..679a690 100644
--- a/pc/stats_collector.cc
+++ b/pc/stats_collector.cc
@@ -25,13 +25,13 @@
#include "api/audio_codecs/audio_encoder.h"
#include "api/candidate.h"
#include "api/data_channel_interface.h"
+#include "api/field_trials_view.h"
#include "api/media_types.h"
#include "api/rtp_sender_interface.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "api/video/video_content_type.h"
#include "api/video/video_timing.h"
-#include "api/webrtc_key_value_config.h"
#include "call/call.h"
#include "media/base/media_channel.h"
#include "modules/audio_processing/include/audio_processing_statistics.h"
diff --git a/pc/stats_collector.h b/pc/stats_collector.h
index 794437e..ea719c6 100644
--- a/pc/stats_collector.h
+++ b/pc/stats_collector.h
@@ -26,11 +26,11 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/media_stream_interface.h"
#include "api/peer_connection_interface.h"
#include "api/scoped_refptr.h"
#include "api/stats_types.h"
-#include "api/webrtc_key_value_config.h"
#include "p2p/base/connection_info.h"
#include "p2p/base/port.h"
#include "pc/peer_connection_internal.h"
diff --git a/pc/test/fake_peer_connection_base.h b/pc/test/fake_peer_connection_base.h
index 2b4dd73..c886305 100644
--- a/pc/test/fake_peer_connection_base.h
+++ b/pc/test/fake_peer_connection_base.h
@@ -17,8 +17,8 @@
#include <string>
#include <vector>
+#include "api/field_trials_view.h"
#include "api/sctp_transport_interface.h"
-#include "api/webrtc_key_value_config.h"
#include "pc/peer_connection_internal.h"
#include "test/scoped_key_value_config.h"
@@ -360,7 +360,7 @@
void SetSctpDataMid(const std::string& mid) override {}
void ResetSctpDataMid() override {}
- const WebRtcKeyValueConfig& trials() override { return field_trials_; }
+ const FieldTrialsView& trials() override { return field_trials_; }
protected:
webrtc::test::ScopedKeyValueConfig field_trials_;
diff --git a/pc/test/integration_test_helpers.h b/pc/test/integration_test_helpers.h
index 00417d9..78c91af 100644
--- a/pc/test/integration_test_helpers.h
+++ b/pc/test/integration_test_helpers.h
@@ -33,6 +33,7 @@
#include "api/candidate.h"
#include "api/crypto/crypto_options.h"
#include "api/data_channel_interface.h"
+#include "api/field_trials_view.h"
#include "api/ice_transport_interface.h"
#include "api/jsep.h"
#include "api/media_stream_interface.h"
@@ -52,7 +53,6 @@
#include "api/task_queue/default_task_queue_factory.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/transport/field_trial_based_config.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/uma_metrics.h"
#include "api/video/video_rotation.h"
#include "api/video_codecs/sdp_video_format.h"
@@ -1855,7 +1855,7 @@
expected_cipher_suite);
}
- const WebRtcKeyValueConfig& trials() const { return *field_trials_.get(); }
+ const FieldTrialsView& trials() const { return *field_trials_.get(); }
protected:
SdpSemantics sdp_semantics_;
@@ -1876,7 +1876,7 @@
std::vector<std::unique_ptr<cricket::TestTurnCustomizer>> turn_customizers_;
std::unique_ptr<PeerConnectionIntegrationWrapper> caller_;
std::unique_ptr<PeerConnectionIntegrationWrapper> callee_;
- std::unique_ptr<WebRtcKeyValueConfig> field_trials_;
+ std::unique_ptr<FieldTrialsView> field_trials_;
};
} // namespace webrtc
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 4015fc9..c762b9f 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -943,11 +943,11 @@
":stringutils",
":threading",
"../api:array_view",
+ "../api:field_trials_view",
"../api:function_view",
"../api:refcountedbase",
"../api:scoped_refptr",
"../api:sequence_checker",
- "../api:webrtc_key_value_config",
"../api/numerics",
"../api/task_queue",
"../api/transport:field_trial_based_config",
diff --git a/rtc_base/experiments/BUILD.gn b/rtc_base/experiments/BUILD.gn
index 5788484..2836352 100644
--- a/rtc_base/experiments/BUILD.gn
+++ b/rtc_base/experiments/BUILD.gn
@@ -15,8 +15,8 @@
]
deps = [
"../:rtc_base_approved",
+ "../../api:field_trials_view",
"../../api/transport:field_trial_based_config",
- "../../api/transport:webrtc_key_value_config",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
@@ -56,8 +56,8 @@
deps = [
":field_trial_parser",
"../:rtc_base_approved",
+ "../../api:field_trials_view",
"../../api/transport:field_trial_based_config",
- "../../api/transport:webrtc_key_value_config",
"../../system_wrappers:field_trial",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
@@ -71,8 +71,8 @@
deps = [
":field_trial_parser",
"../:rtc_base_approved",
+ "../../api:field_trials_view",
"../../api/transport:field_trial_based_config",
- "../../api/transport:webrtc_key_value_config",
"../../system_wrappers:field_trial",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
@@ -86,8 +86,8 @@
deps = [
":field_trial_parser",
"../:rtc_base_approved",
+ "../../api:field_trials_view",
"../../api/transport:field_trial_based_config",
- "../../api/transport:webrtc_key_value_config",
"../../system_wrappers:field_trial",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
@@ -126,7 +126,7 @@
deps = [
":field_trial_parser",
"../:rtc_base_approved",
- "../../api:webrtc_key_value_config",
+ "../../api:field_trials_view",
"../../api/video_codecs:video_codecs_api",
"../../system_wrappers:field_trial",
]
@@ -195,8 +195,8 @@
deps = [
":field_trial_parser",
"../:rtc_base_approved",
+ "../../api:field_trials_view",
"../../api/transport:field_trial_based_config",
- "../../api/transport:webrtc_key_value_config",
"../../api/units:data_size",
"../../api/video_codecs:video_codecs_api",
"../../system_wrappers:field_trial",
@@ -214,8 +214,8 @@
]
deps = [
":field_trial_parser",
+ "../../api:field_trials_view",
"../../api/transport:field_trial_based_config",
- "../../api/transport:webrtc_key_value_config",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
@@ -228,8 +228,8 @@
deps = [
":field_trial_parser",
":rate_control_settings",
+ "../../api:field_trials_view",
"../../api/transport:field_trial_based_config",
- "../../api/transport:webrtc_key_value_config",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
diff --git a/rtc_base/experiments/alr_experiment.cc b/rtc_base/experiments/alr_experiment.cc
index 119a401..36bf67d 100644
--- a/rtc_base/experiments/alr_experiment.cc
+++ b/rtc_base/experiments/alr_experiment.cc
@@ -32,7 +32,7 @@
}
bool AlrExperimentSettings::MaxOneFieldTrialEnabled(
- const WebRtcKeyValueConfig& key_value_config) {
+ const FieldTrialsView& key_value_config) {
return key_value_config.Lookup(kStrictPacingAndProbingExperimentName)
.empty() ||
key_value_config.Lookup(kScreenshareProbingBweExperimentName).empty();
@@ -46,7 +46,7 @@
absl::optional<AlrExperimentSettings>
AlrExperimentSettings::CreateFromFieldTrial(
- const WebRtcKeyValueConfig& key_value_config,
+ const FieldTrialsView& key_value_config,
const char* experiment_name) {
absl::optional<AlrExperimentSettings> ret;
std::string group_name = key_value_config.Lookup(experiment_name);
diff --git a/rtc_base/experiments/alr_experiment.h b/rtc_base/experiments/alr_experiment.h
index 5b0661c..bf6aa34 100644
--- a/rtc_base/experiments/alr_experiment.h
+++ b/rtc_base/experiments/alr_experiment.h
@@ -14,7 +14,7 @@
#include <stdint.h>
#include "absl/types/optional.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
namespace webrtc {
struct AlrExperimentSettings {
@@ -34,11 +34,10 @@
static absl::optional<AlrExperimentSettings> CreateFromFieldTrial(
const char* experiment_name);
static absl::optional<AlrExperimentSettings> CreateFromFieldTrial(
- const WebRtcKeyValueConfig& key_value_config,
+ const FieldTrialsView& key_value_config,
const char* experiment_name);
static bool MaxOneFieldTrialEnabled();
- static bool MaxOneFieldTrialEnabled(
- const WebRtcKeyValueConfig& key_value_config);
+ static bool MaxOneFieldTrialEnabled(const FieldTrialsView& key_value_config);
private:
AlrExperimentSettings() = default;
diff --git a/rtc_base/experiments/balanced_degradation_settings.cc b/rtc_base/experiments/balanced_degradation_settings.cc
index 7cd1a67..1652e31 100644
--- a/rtc_base/experiments/balanced_degradation_settings.cc
+++ b/rtc_base/experiments/balanced_degradation_settings.cc
@@ -332,7 +332,7 @@
generic(generic) {}
BalancedDegradationSettings::BalancedDegradationSettings(
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
FieldTrialStructList<Config> configs(
{FieldTrialStructMember("pixels", [](Config* c) { return &c->pixels; }),
FieldTrialStructMember("fps", [](Config* c) { return &c->fps; }),
diff --git a/rtc_base/experiments/balanced_degradation_settings.h b/rtc_base/experiments/balanced_degradation_settings.h
index 8255547..0b5e03d 100644
--- a/rtc_base/experiments/balanced_degradation_settings.h
+++ b/rtc_base/experiments/balanced_degradation_settings.h
@@ -14,8 +14,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"
namespace webrtc {
@@ -23,7 +23,7 @@
public:
static constexpr int kNoFpsDiff = -100;
- BalancedDegradationSettings(const WebRtcKeyValueConfig& field_trials);
+ BalancedDegradationSettings(const FieldTrialsView& field_trials);
~BalancedDegradationSettings();
struct CodecTypeSpecific {
diff --git a/rtc_base/experiments/bandwidth_quality_scaler_settings.cc b/rtc_base/experiments/bandwidth_quality_scaler_settings.cc
index 332ab6b..0a9df49 100644
--- a/rtc_base/experiments/bandwidth_quality_scaler_settings.cc
+++ b/rtc_base/experiments/bandwidth_quality_scaler_settings.cc
@@ -16,7 +16,7 @@
namespace webrtc {
BandwidthQualityScalerSettings::BandwidthQualityScalerSettings(
- const WebRtcKeyValueConfig* const key_value_config)
+ const FieldTrialsView* const key_value_config)
: bitrate_state_update_interval_s_("bitrate_state_update_interval_s_") {
ParseFieldTrial(
{&bitrate_state_update_interval_s_},
diff --git a/rtc_base/experiments/bandwidth_quality_scaler_settings.h b/rtc_base/experiments/bandwidth_quality_scaler_settings.h
index 959aea5..21e115d 100644
--- a/rtc_base/experiments/bandwidth_quality_scaler_settings.h
+++ b/rtc_base/experiments/bandwidth_quality_scaler_settings.h
@@ -12,7 +12,7 @@
#define RTC_BASE_EXPERIMENTS_BANDWIDTH_QUALITY_SCALER_SETTINGS_H_
#include "absl/types/optional.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/experiments/field_trial_parser.h"
namespace webrtc {
@@ -25,7 +25,7 @@
private:
explicit BandwidthQualityScalerSettings(
- const WebRtcKeyValueConfig* const key_value_config);
+ const FieldTrialsView* const key_value_config);
FieldTrialOptional<uint32_t> bitrate_state_update_interval_s_;
};
diff --git a/rtc_base/experiments/keyframe_interval_settings.cc b/rtc_base/experiments/keyframe_interval_settings.cc
index 76c85cb..413e2a9 100644
--- a/rtc_base/experiments/keyframe_interval_settings.cc
+++ b/rtc_base/experiments/keyframe_interval_settings.cc
@@ -21,7 +21,7 @@
} // namespace
KeyframeIntervalSettings::KeyframeIntervalSettings(
- const WebRtcKeyValueConfig* const key_value_config)
+ const FieldTrialsView* const key_value_config)
: min_keyframe_send_interval_ms_("min_keyframe_send_interval_ms") {
ParseFieldTrial({&min_keyframe_send_interval_ms_},
key_value_config->Lookup(kFieldTrialName));
diff --git a/rtc_base/experiments/keyframe_interval_settings.h b/rtc_base/experiments/keyframe_interval_settings.h
index 3f253f0..aff7854 100644
--- a/rtc_base/experiments/keyframe_interval_settings.h
+++ b/rtc_base/experiments/keyframe_interval_settings.h
@@ -12,7 +12,7 @@
#define RTC_BASE_EXPERIMENTS_KEYFRAME_INTERVAL_SETTINGS_H_
#include "absl/types/optional.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/experiments/field_trial_parser.h"
namespace webrtc {
@@ -29,8 +29,7 @@
absl::optional<int> MinKeyframeSendIntervalMs() const;
private:
- explicit KeyframeIntervalSettings(
- const WebRtcKeyValueConfig* key_value_config);
+ explicit KeyframeIntervalSettings(const FieldTrialsView* key_value_config);
FieldTrialOptional<int> min_keyframe_send_interval_ms_;
};
diff --git a/rtc_base/experiments/quality_rampup_experiment.cc b/rtc_base/experiments/quality_rampup_experiment.cc
index 35c83f7..509ba91 100644
--- a/rtc_base/experiments/quality_rampup_experiment.cc
+++ b/rtc_base/experiments/quality_rampup_experiment.cc
@@ -18,7 +18,7 @@
namespace webrtc {
QualityRampupExperiment::QualityRampupExperiment(
- const WebRtcKeyValueConfig* const key_value_config)
+ const FieldTrialsView* const key_value_config)
: min_pixels_("min_pixels"),
min_duration_ms_("min_duration_ms"),
max_bitrate_factor_("max_bitrate_factor") {
diff --git a/rtc_base/experiments/quality_rampup_experiment.h b/rtc_base/experiments/quality_rampup_experiment.h
index 719b189..e8048a3 100644
--- a/rtc_base/experiments/quality_rampup_experiment.h
+++ b/rtc_base/experiments/quality_rampup_experiment.h
@@ -12,7 +12,7 @@
#define RTC_BASE_EXPERIMENTS_QUALITY_RAMPUP_EXPERIMENT_H_
#include "absl/types/optional.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/experiments/field_trial_parser.h"
namespace webrtc {
@@ -38,7 +38,7 @@
private:
explicit QualityRampupExperiment(
- const WebRtcKeyValueConfig* const key_value_config);
+ const FieldTrialsView* const key_value_config);
FieldTrialOptional<int> min_pixels_;
FieldTrialOptional<int> min_duration_ms_;
diff --git a/rtc_base/experiments/quality_scaler_settings.cc b/rtc_base/experiments/quality_scaler_settings.cc
index d2443b0..85c9925 100644
--- a/rtc_base/experiments/quality_scaler_settings.cc
+++ b/rtc_base/experiments/quality_scaler_settings.cc
@@ -20,7 +20,7 @@
} // namespace
QualityScalerSettings::QualityScalerSettings(
- const WebRtcKeyValueConfig* const key_value_config)
+ const FieldTrialsView* const key_value_config)
: sampling_period_ms_("sampling_period_ms"),
average_qp_window_("average_qp_window"),
min_frames_("min_frames"),
diff --git a/rtc_base/experiments/quality_scaler_settings.h b/rtc_base/experiments/quality_scaler_settings.h
index b4b6a42..99827aa 100644
--- a/rtc_base/experiments/quality_scaler_settings.h
+++ b/rtc_base/experiments/quality_scaler_settings.h
@@ -12,7 +12,7 @@
#define RTC_BASE_EXPERIMENTS_QUALITY_SCALER_SETTINGS_H_
#include "absl/types/optional.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/experiments/field_trial_parser.h"
namespace webrtc {
@@ -30,8 +30,7 @@
absl::optional<double> InitialBitrateFactor() const;
private:
- explicit QualityScalerSettings(
- const WebRtcKeyValueConfig* const key_value_config);
+ explicit QualityScalerSettings(const FieldTrialsView* const key_value_config);
FieldTrialOptional<int> sampling_period_ms_;
FieldTrialOptional<int> average_qp_window_;
diff --git a/rtc_base/experiments/rate_control_settings.cc b/rtc_base/experiments/rate_control_settings.cc
index bed194e..91b475a 100644
--- a/rtc_base/experiments/rate_control_settings.cc
+++ b/rtc_base/experiments/rate_control_settings.cc
@@ -39,12 +39,12 @@
const char* kScreenshareHysteresisFieldTrialname =
"WebRTC-SimulcastScreenshareUpswitchHysteresisPercent";
-bool IsEnabled(const WebRtcKeyValueConfig* const key_value_config,
+bool IsEnabled(const FieldTrialsView* const key_value_config,
absl::string_view key) {
return absl::StartsWith(key_value_config->Lookup(key), "Enabled");
}
-void ParseHysteresisFactor(const WebRtcKeyValueConfig* const key_value_config,
+void ParseHysteresisFactor(const FieldTrialsView* const key_value_config,
absl::string_view key,
double* output_value) {
std::string group_name = key_value_config->Lookup(key);
@@ -94,7 +94,7 @@
}
RateControlSettings::RateControlSettings(
- const WebRtcKeyValueConfig* const key_value_config) {
+ const FieldTrialsView* const key_value_config) {
std::string congestion_window_config =
key_value_config->Lookup(CongestionWindowConfig::kKey).empty()
? kCongestionWindowDefaultFieldTrialString
@@ -120,7 +120,7 @@
}
RateControlSettings RateControlSettings::ParseFromKeyValueConfig(
- const WebRtcKeyValueConfig* const key_value_config) {
+ const FieldTrialsView* const key_value_config) {
FieldTrialBasedConfig field_trial_config;
return RateControlSettings(key_value_config ? key_value_config
: &field_trial_config);
diff --git a/rtc_base/experiments/rate_control_settings.h b/rtc_base/experiments/rate_control_settings.h
index 1c38e92..bad16d2 100644
--- a/rtc_base/experiments/rate_control_settings.h
+++ b/rtc_base/experiments/rate_control_settings.h
@@ -12,7 +12,7 @@
#define RTC_BASE_EXPERIMENTS_RATE_CONTROL_SETTINGS_H_
#include "absl/types/optional.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "api/units/data_size.h"
#include "api/video_codecs/video_codec.h"
#include "api/video_codecs/video_encoder_config.h"
@@ -57,7 +57,7 @@
static RateControlSettings ParseFromFieldTrials();
static RateControlSettings ParseFromKeyValueConfig(
- const WebRtcKeyValueConfig* const key_value_config);
+ const FieldTrialsView* const key_value_config);
// When CongestionWindowPushback is enabled, the pacer is oblivious to
// the congestion window. The relation between outstanding data and
@@ -93,8 +93,7 @@
bool BitrateAdjusterCanUseNetworkHeadroom() const;
private:
- explicit RateControlSettings(
- const WebRtcKeyValueConfig* const key_value_config);
+ explicit RateControlSettings(const FieldTrialsView* const key_value_config);
CongestionWindowConfig congestion_window_config_;
VideoRateControlConfig video_config_;
diff --git a/rtc_base/experiments/stable_target_rate_experiment.cc b/rtc_base/experiments/stable_target_rate_experiment.cc
index fa7a97b..b7246d4 100644
--- a/rtc_base/experiments/stable_target_rate_experiment.cc
+++ b/rtc_base/experiments/stable_target_rate_experiment.cc
@@ -19,7 +19,7 @@
} // namespace
StableTargetRateExperiment::StableTargetRateExperiment(
- const WebRtcKeyValueConfig* const key_value_config,
+ const FieldTrialsView* const key_value_config,
double default_video_hysteresis,
double default_screenshare_hysteresis)
: enabled_("enabled", false),
@@ -43,7 +43,7 @@
}
StableTargetRateExperiment StableTargetRateExperiment::ParseFromKeyValueConfig(
- const WebRtcKeyValueConfig* const key_value_config) {
+ const FieldTrialsView* const key_value_config) {
RateControlSettings rate_control =
RateControlSettings::ParseFromKeyValueConfig(key_value_config);
return StableTargetRateExperiment(
diff --git a/rtc_base/experiments/stable_target_rate_experiment.h b/rtc_base/experiments/stable_target_rate_experiment.h
index 299299c..be0f9da 100644
--- a/rtc_base/experiments/stable_target_rate_experiment.h
+++ b/rtc_base/experiments/stable_target_rate_experiment.h
@@ -11,7 +11,7 @@
#ifndef RTC_BASE_EXPERIMENTS_STABLE_TARGET_RATE_EXPERIMENT_H_
#define RTC_BASE_EXPERIMENTS_STABLE_TARGET_RATE_EXPERIMENT_H_
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/experiments/field_trial_parser.h"
namespace webrtc {
@@ -22,7 +22,7 @@
StableTargetRateExperiment(StableTargetRateExperiment&&);
static StableTargetRateExperiment ParseFromFieldTrials();
static StableTargetRateExperiment ParseFromKeyValueConfig(
- const WebRtcKeyValueConfig* const key_value_config);
+ const FieldTrialsView* const key_value_config);
bool IsEnabled() const;
double GetVideoHysteresisFactor() const;
@@ -30,7 +30,7 @@
private:
explicit StableTargetRateExperiment(
- const WebRtcKeyValueConfig* const key_value_config,
+ const FieldTrialsView* const key_value_config,
double default_video_hysteresis,
double default_screenshare_hysteresis);
diff --git a/rtc_base/network.cc b/rtc_base/network.cc
index b2bce37..b422b28 100644
--- a/rtc_base/network.cc
+++ b/rtc_base/network.cc
@@ -282,7 +282,7 @@
}
NetworkManagerBase::NetworkManagerBase(
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: enumeration_permission_(NetworkManager::ENUMERATION_ALLOWED),
signal_network_preference_change_(
field_trials
@@ -515,7 +515,7 @@
BasicNetworkManager::BasicNetworkManager(
NetworkMonitorFactory* network_monitor_factory,
SocketFactory* socket_factory,
- const webrtc::WebRtcKeyValueConfig* field_trials)
+ const webrtc::FieldTrialsView* field_trials)
: field_trials_(field_trials),
network_monitor_factory_(network_monitor_factory),
socket_factory_(socket_factory),
@@ -1137,15 +1137,13 @@
return mdns_responder_provider_->GetMdnsResponder();
}
-uint16_t Network::GetCost(
- const webrtc::WebRtcKeyValueConfig* field_trials) const {
+uint16_t Network::GetCost(const webrtc::FieldTrialsView* field_trials) const {
return GetCost(
- *webrtc::AlwaysValidPointer<const webrtc::WebRtcKeyValueConfig,
+ *webrtc::AlwaysValidPointer<const webrtc::FieldTrialsView,
webrtc::FieldTrialBasedConfig>(field_trials));
}
-uint16_t Network::GetCost(
- const webrtc::WebRtcKeyValueConfig& field_trials) const {
+uint16_t Network::GetCost(const webrtc::FieldTrialsView& field_trials) const {
AdapterType type = IsVpn() ? underlying_type_for_vpn_ : type_;
const bool use_differentiated_cellular_costs =
field_trials.IsEnabled("WebRTC-UseDifferentiatedCellularCosts");
diff --git a/rtc_base/network.h b/rtc_base/network.h
index d01a418..067ecb4 100644
--- a/rtc_base/network.h
+++ b/rtc_base/network.h
@@ -21,9 +21,9 @@
#include "absl/strings/string_view.h"
#include "api/array_view.h"
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/transport/field_trial_based_config.h"
-#include "api/webrtc_key_value_config.h"
#include "rtc_base/ip_address.h"
#include "rtc_base/mdns_responder_interface.h"
#include "rtc_base/memory/always_valid_pointer.h"
@@ -208,8 +208,7 @@
// Base class for NetworkManager implementations.
class RTC_EXPORT NetworkManagerBase : public NetworkManager {
public:
- NetworkManagerBase(
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr);
+ NetworkManagerBase(const webrtc::FieldTrialsView* field_trials = nullptr);
~NetworkManagerBase() override;
void GetNetworks(NetworkList* networks) const override;
@@ -281,24 +280,22 @@
ABSL_DEPRECATED(
"Use the version with socket_factory, see bugs.webrtc.org/13145")
explicit BasicNetworkManager(
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr)
+ const webrtc::FieldTrialsView* field_trials = nullptr)
: BasicNetworkManager(
/* network_monitor_factory= */ nullptr,
/* socket_factory= */ nullptr,
field_trials) {}
// This is used by lots of downstream code.
- BasicNetworkManager(
- SocketFactory* socket_factory,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr)
+ BasicNetworkManager(SocketFactory* socket_factory,
+ const webrtc::FieldTrialsView* field_trials = nullptr)
: BasicNetworkManager(/* network_monitor_factory= */ nullptr,
socket_factory,
field_trials) {}
- BasicNetworkManager(
- NetworkMonitorFactory* network_monitor_factory,
- SocketFactory* socket_factory,
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr);
+ BasicNetworkManager(NetworkMonitorFactory* network_monitor_factory,
+ SocketFactory* socket_factory,
+ const webrtc::FieldTrialsView* field_trials = nullptr);
~BasicNetworkManager() override;
void StartUpdating() override;
@@ -372,7 +369,7 @@
bool sent_first_update_ = true;
int start_count_ = 0;
// Chromium create BasicNetworkManager() w/o field trials.
- webrtc::AlwaysValidPointer<const webrtc::WebRtcKeyValueConfig,
+ webrtc::AlwaysValidPointer<const webrtc::FieldTrialsView,
webrtc::FieldTrialBasedConfig>
field_trials_;
std::vector<std::string> network_ignore_list_;
@@ -548,9 +545,8 @@
// Port::OnNetworkTypeChanged is called).
ABSL_DEPRECATED(
"Use the version with field trials, see bugs.webrtc.org/webrtc:10335")
- uint16_t GetCost(
- const webrtc::WebRtcKeyValueConfig* field_trials = nullptr) const;
- uint16_t GetCost(const webrtc::WebRtcKeyValueConfig& field_trials) const;
+ uint16_t GetCost(const webrtc::FieldTrialsView* field_trials = nullptr) const;
+ uint16_t GetCost(const webrtc::FieldTrialsView& field_trials) const;
// A unique id assigned by the network manager, which may be signaled
// to the remote side in the candidate.
diff --git a/rtc_base/network_monitor_factory.h b/rtc_base/network_monitor_factory.h
index b261ace..c76ed97 100644
--- a/rtc_base/network_monitor_factory.h
+++ b/rtc_base/network_monitor_factory.h
@@ -12,7 +12,7 @@
#define RTC_BASE_NETWORK_MONITOR_FACTORY_H_
namespace webrtc {
-class WebRtcKeyValueConfig;
+class FieldTrialsView;
} // namespace webrtc
namespace rtc {
@@ -29,7 +29,7 @@
class NetworkMonitorFactory {
public:
virtual NetworkMonitorInterface* CreateNetworkMonitor(
- const webrtc::WebRtcKeyValueConfig& field_trials) = 0;
+ const webrtc::FieldTrialsView& field_trials) = 0;
virtual ~NetworkMonitorFactory();
diff --git a/rtc_base/network_unittest.cc b/rtc_base/network_unittest.cc
index 5830793..ed02d8c 100644
--- a/rtc_base/network_unittest.cc
+++ b/rtc_base/network_unittest.cc
@@ -123,7 +123,7 @@
public:
FakeNetworkMonitorFactory() {}
NetworkMonitorInterface* CreateNetworkMonitor(
- const webrtc::WebRtcKeyValueConfig& field_trials) override {
+ const webrtc::FieldTrialsView& field_trials) override {
return new FakeNetworkMonitor();
}
};
@@ -319,7 +319,7 @@
public:
TestBasicNetworkManager(NetworkMonitorFactory* network_monitor_factory,
SocketFactory* socket_factory,
- const webrtc::WebRtcKeyValueConfig& field_trials)
+ const webrtc::FieldTrialsView& field_trials)
: BasicNetworkManager(network_monitor_factory,
socket_factory,
&field_trials) {}
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index eb191ef..5b81737 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -1583,8 +1583,8 @@
deps = [
":network_monitor_objc",
":network_monitor_observer",
+ "../api:field_trials_view",
"../api:sequence_checker",
- "../api:webrtc_key_value_config",
"../rtc_base",
"../rtc_base:threading",
"../rtc_base/task_utils:pending_task_safety_flag",
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index 34264c2..4c42fa7 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -579,10 +579,10 @@
":generated_base_jni",
":internal_jni",
":native_api_jni",
+ "../../api:field_trials_view",
"../../api:libjingle_peerconnection_api",
"../../api:scoped_refptr",
"../../api:sequence_checker",
- "../../api:webrtc_key_value_config",
"../../rtc_base",
"../../rtc_base:checks",
"../../rtc_base:ip_address",
diff --git a/sdk/android/src/jni/android_network_monitor.cc b/sdk/android/src/jni/android_network_monitor.cc
index ecf0adf..754267d 100644
--- a/sdk/android/src/jni/android_network_monitor.cc
+++ b/sdk/android/src/jni/android_network_monitor.cc
@@ -578,7 +578,7 @@
rtc::NetworkMonitorInterface*
AndroidNetworkMonitorFactory::CreateNetworkMonitor(
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
return new AndroidNetworkMonitor(AttachCurrentThreadIfNeeded(),
j_application_context_);
}
diff --git a/sdk/android/src/jni/android_network_monitor.h b/sdk/android/src/jni/android_network_monitor.h
index dfdb18f..60615bb 100644
--- a/sdk/android/src/jni/android_network_monitor.h
+++ b/sdk/android/src/jni/android_network_monitor.h
@@ -19,7 +19,7 @@
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/network_monitor.h"
#include "rtc_base/network_monitor_factory.h"
#include "rtc_base/string_utils.h"
@@ -167,7 +167,7 @@
~AndroidNetworkMonitorFactory() override;
rtc::NetworkMonitorInterface* CreateNetworkMonitor(
- const WebRtcKeyValueConfig& field_trials) override;
+ const FieldTrialsView& field_trials) override;
private:
ScopedJavaGlobalRef<jobject> j_application_context_;
diff --git a/sdk/objc/native/src/objc_network_monitor.h b/sdk/objc/native/src/objc_network_monitor.h
index 7375bbb..04566d2 100644
--- a/sdk/objc/native/src/objc_network_monitor.h
+++ b/sdk/objc/native/src/objc_network_monitor.h
@@ -14,8 +14,8 @@
#include <vector>
#include "absl/strings/string_view.h"
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
-#include "api/webrtc_key_value_config.h"
#include "rtc_base/network_monitor.h"
#include "rtc_base/network_monitor_factory.h"
#include "rtc_base/string_utils.h"
@@ -33,7 +33,7 @@
~ObjCNetworkMonitorFactory() override = default;
rtc::NetworkMonitorInterface* CreateNetworkMonitor(
- const WebRtcKeyValueConfig& field_trials) override;
+ const FieldTrialsView& field_trials) override;
};
class ObjCNetworkMonitor : public rtc::NetworkMonitorInterface,
diff --git a/sdk/objc/native/src/objc_network_monitor.mm b/sdk/objc/native/src/objc_network_monitor.mm
index 798d7ff..6a43b57 100644
--- a/sdk/objc/native/src/objc_network_monitor.mm
+++ b/sdk/objc/native/src/objc_network_monitor.mm
@@ -21,7 +21,7 @@
namespace webrtc {
rtc::NetworkMonitorInterface* ObjCNetworkMonitorFactory::CreateNetworkMonitor(
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
return new ObjCNetworkMonitor();
}
diff --git a/test/BUILD.gn b/test/BUILD.gn
index b3c53bf..6b9524e 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -235,7 +235,7 @@
deps = [
":field_trial",
- "../api:webrtc_key_value_config",
+ "../api:field_trials_view",
"../rtc_base:checks",
]
absl_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ]
@@ -249,7 +249,7 @@
deps = [
":field_trial",
- "../api:webrtc_key_value_config",
+ "../api:field_trials_view",
"../rtc_base:checks",
"../system_wrappers:field_trial",
]
diff --git a/test/explicit_key_value_config.cc b/test/explicit_key_value_config.cc
index 6a561fa..a080a0c 100644
--- a/test/explicit_key_value_config.cc
+++ b/test/explicit_key_value_config.cc
@@ -10,7 +10,7 @@
#include "test/explicit_key_value_config.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/checks.h"
namespace webrtc {
diff --git a/test/explicit_key_value_config.h b/test/explicit_key_value_config.h
index 0a728ab..355f01d 100644
--- a/test/explicit_key_value_config.h
+++ b/test/explicit_key_value_config.h
@@ -15,12 +15,12 @@
#include <string>
#include "absl/strings/string_view.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
namespace webrtc {
namespace test {
-class ExplicitKeyValueConfig : public WebRtcKeyValueConfig {
+class ExplicitKeyValueConfig : public FieldTrialsView {
public:
explicit ExplicitKeyValueConfig(const std::string& s);
std::string Lookup(absl::string_view key) const override;
diff --git a/test/fuzzers/BUILD.gn b/test/fuzzers/BUILD.gn
index 6f96b0c..60aa5d6 100644
--- a/test/fuzzers/BUILD.gn
+++ b/test/fuzzers/BUILD.gn
@@ -687,7 +687,7 @@
deps = [
"..:test_support",
"../../api:array_view",
- "../../api/transport:webrtc_key_value_config",
+ "../../api:field_trials_view",
"../../api/video:video_frame",
"../../api/video_codecs:video_codecs_api",
"../../modules/video_coding:frame_dependencies_calculator",
diff --git a/test/fuzzers/vp9_encoder_references_fuzzer.cc b/test/fuzzers/vp9_encoder_references_fuzzer.cc
index a26dc87..14eb845 100644
--- a/test/fuzzers/vp9_encoder_references_fuzzer.cc
+++ b/test/fuzzers/vp9_encoder_references_fuzzer.cc
@@ -14,7 +14,7 @@
#include "absl/base/macros.h"
#include "absl/container/inlined_vector.h"
#include "api/array_view.h"
-#include "api/transport/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "api/video/video_frame.h"
#include "api/video_codecs/video_codec.h"
#include "api/video_codecs/video_encoder.h"
@@ -168,7 +168,7 @@
LayerFrame frames_[kMaxFrameHistorySize];
};
-class FieldTrials : public WebRtcKeyValueConfig {
+class FieldTrials : public FieldTrialsView {
public:
explicit FieldTrials(FuzzDataHelper& config)
: flags_(config.ReadOrDefaultValue<uint8_t>(0)) {}
diff --git a/test/network/BUILD.gn b/test/network/BUILD.gn
index 6b53315..30cfb18 100644
--- a/test/network/BUILD.gn
+++ b/test/network/BUILD.gn
@@ -39,13 +39,13 @@
]
deps = [
"../../api:array_view",
+ "../../api:field_trials_view",
"../../api:network_emulation_manager_api",
"../../api:packet_socket_factory",
"../../api:scoped_refptr",
"../../api:sequence_checker",
"../../api:simulated_network_api",
"../../api:time_controller",
- "../../api:webrtc_key_value_config",
"../../api/numerics",
"../../api/test/network_emulation",
"../../api/transport:stun_types",
diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn
index 8496a20..471ac3c 100644
--- a/test/pc/e2e/BUILD.gn
+++ b/test/pc/e2e/BUILD.gn
@@ -52,6 +52,7 @@
deps = [
"../../../api:callfactory_api",
"../../../api:fec_controller_api",
+ "../../../api:field_trials_view",
"../../../api:libjingle_peerconnection_api",
"../../../api:packet_socket_factory",
"../../../api:peer_connection_quality_test_fixture_api",
@@ -59,7 +60,6 @@
"../../../api/rtc_event_log",
"../../../api/task_queue",
"../../../api/transport:network_control",
- "../../../api/transport:webrtc_key_value_config",
"../../../api/video_codecs:video_codecs_api",
"../../../modules/audio_processing:api",
"../../../p2p:rtc_p2p",
diff --git a/test/pc/e2e/peer_connection_quality_test_params.h b/test/pc/e2e/peer_connection_quality_test_params.h
index fae231c..d910826 100644
--- a/test/pc/e2e/peer_connection_quality_test_params.h
+++ b/test/pc/e2e/peer_connection_quality_test_params.h
@@ -18,11 +18,11 @@
#include "api/audio/audio_mixer.h"
#include "api/call/call_factory_interface.h"
#include "api/fec_controller.h"
+#include "api/field_trials_view.h"
#include "api/rtc_event_log/rtc_event_log_factory_interface.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/test/peerconnection_quality_test_fixture.h"
#include "api/transport/network_control.h"
-#include "api/transport/webrtc_key_value_config.h"
#include "api/video_codecs/video_decoder_factory.h"
#include "api/video_codecs/video_encoder_factory.h"
#include "modules/audio_processing/include/audio_processing.h"
@@ -57,7 +57,7 @@
std::unique_ptr<VideoEncoderFactory> video_encoder_factory;
std::unique_ptr<VideoDecoderFactory> video_decoder_factory;
- std::unique_ptr<WebRtcKeyValueConfig> trials;
+ std::unique_ptr<FieldTrialsView> trials;
rtc::scoped_refptr<webrtc::AudioProcessing> audio_processing;
rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer;
diff --git a/test/scenario/scenario_config.h b/test/scenario/scenario_config.h
index c7320e9..c0dcd65 100644
--- a/test/scenario/scenario_config.h
+++ b/test/scenario/scenario_config.h
@@ -52,7 +52,7 @@
struct CallClientConfig {
TransportControllerConfig transport;
- const WebRtcKeyValueConfig* field_trials = nullptr;
+ const FieldTrialsView* field_trials = nullptr;
};
struct PacketStreamConfig {
diff --git a/test/scoped_key_value_config.cc b/test/scoped_key_value_config.cc
index d6090b7..3b35c3d 100644
--- a/test/scoped_key_value_config.cc
+++ b/test/scoped_key_value_config.cc
@@ -10,7 +10,7 @@
#include "test/scoped_key_value_config.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "rtc_base/checks.h"
#include "system_wrappers/include/field_trial.h"
#include "test/field_trial.h"
diff --git a/test/scoped_key_value_config.h b/test/scoped_key_value_config.h
index a00f61a..0ecbddc 100644
--- a/test/scoped_key_value_config.h
+++ b/test/scoped_key_value_config.h
@@ -16,13 +16,13 @@
#include <string>
#include "absl/strings/string_view.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "test/field_trial.h"
namespace webrtc {
namespace test {
-class ScopedKeyValueConfig : public WebRtcKeyValueConfig {
+class ScopedKeyValueConfig : public FieldTrialsView {
public:
virtual ~ScopedKeyValueConfig();
ScopedKeyValueConfig();
diff --git a/video/BUILD.gn b/video/BUILD.gn
index b57aa26..74f09b2 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -61,13 +61,13 @@
":video_stream_encoder_impl",
"../api:array_view",
"../api:fec_controller_api",
+ "../api:field_trials_view",
"../api:frame_transformer_interface",
"../api:libjingle_peerconnection_api",
"../api:rtp_parameters",
"../api:scoped_refptr",
"../api:sequence_checker",
"../api:transport_api",
- "../api:webrtc_key_value_config",
"../api/crypto:frame_decryptor_interface",
"../api/crypto:options",
"../api/rtc_event_log",
@@ -169,9 +169,9 @@
":frame_dumping_decoder",
":video",
"../api:array_view",
+ "../api:field_trials_view",
"../api:scoped_refptr",
"../api:sequence_checker",
- "../api:webrtc_key_value_config",
"../api/crypto:frame_decryptor_interface",
"../api/task_queue",
"../api/transport:field_trial_based_config",
@@ -231,8 +231,8 @@
]
deps = [
+ "../api:field_trials_view",
"../api:sequence_checker",
- "../api:webrtc_key_value_config",
"../api/task_queue",
"../api/transport:field_trial_based_config",
"../api/video:encoded_frame",
@@ -279,8 +279,8 @@
]
deps = [
+ "../api:field_trials_view",
"../api:sequence_checker",
- "../api:webrtc_key_value_config",
"../api/task_queue",
"../api/units:time_delta",
"../api/video:video_frame",
@@ -312,8 +312,8 @@
":frame_decode_timing",
":task_queue_frame_decode_scheduler",
":video_receive_stream_timeout_tracker",
+ "../api:field_trials_view",
"../api:sequence_checker",
- "../api:webrtc_key_value_config",
"../api/metronome",
"../api/task_queue",
"../api/units:data_size",
@@ -435,9 +435,9 @@
deps = [
":frame_cadence_adapter",
+ "../api:field_trials_view",
"../api:rtp_parameters",
"../api:sequence_checker",
- "../api:webrtc_key_value_config",
"../api/adaptation:resource_adaptation_api",
"../api/task_queue:task_queue",
"../api/units:data_rate",
diff --git a/video/adaptation/BUILD.gn b/video/adaptation/BUILD.gn
index 84e6a32..9e946eb 100644
--- a/video/adaptation/BUILD.gn
+++ b/video/adaptation/BUILD.gn
@@ -33,10 +33,10 @@
]
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/units:data_rate",
diff --git a/video/adaptation/balanced_constraint.cc b/video/adaptation/balanced_constraint.cc
index 2a54840..623b696 100644
--- a/video/adaptation/balanced_constraint.cc
+++ b/video/adaptation/balanced_constraint.cc
@@ -20,7 +20,7 @@
BalancedConstraint::BalancedConstraint(
DegradationPreferenceProvider* degradation_preference_provider,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: encoder_target_bitrate_bps_(absl::nullopt),
balanced_settings_(field_trials),
degradation_preference_provider_(degradation_preference_provider) {
diff --git a/video/adaptation/balanced_constraint.h b/video/adaptation/balanced_constraint.h
index ba465ab..22c7d29 100644
--- a/video/adaptation/balanced_constraint.h
+++ b/video/adaptation/balanced_constraint.h
@@ -14,8 +14,8 @@
#include <string>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
-#include "api/webrtc_key_value_config.h"
#include "call/adaptation/adaptation_constraint.h"
#include "call/adaptation/degradation_preference_provider.h"
#include "rtc_base/experiments/balanced_degradation_settings.h"
@@ -27,7 +27,7 @@
public:
BalancedConstraint(
DegradationPreferenceProvider* degradation_preference_provider,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~BalancedConstraint() override = default;
void OnEncoderTargetBitrateUpdated(
diff --git a/video/adaptation/video_stream_encoder_resource_manager.cc b/video/adaptation/video_stream_encoder_resource_manager.cc
index 3b88ce5..24bcd2c 100644
--- a/video/adaptation/video_stream_encoder_resource_manager.cc
+++ b/video/adaptation/video_stream_encoder_resource_manager.cc
@@ -266,7 +266,7 @@
bool experiment_cpu_load_estimator,
std::unique_ptr<OveruseFrameDetector> overuse_detector,
DegradationPreferenceProvider* degradation_preference_provider,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: field_trials_(field_trials),
degradation_preference_provider_(degradation_preference_provider),
bitrate_constraint_(std::make_unique<BitrateConstraint>()),
diff --git a/video/adaptation/video_stream_encoder_resource_manager.h b/video/adaptation/video_stream_encoder_resource_manager.h
index c01be84..9e4b271 100644
--- a/video/adaptation/video_stream_encoder_resource_manager.h
+++ b/video/adaptation/video_stream_encoder_resource_manager.h
@@ -21,6 +21,7 @@
#include "absl/types/optional.h"
#include "api/adaptation/resource.h"
+#include "api/field_trials_view.h"
#include "api/rtp_parameters.h"
#include "api/scoped_refptr.h"
#include "api/task_queue/task_queue_base.h"
@@ -32,7 +33,6 @@
#include "api/video_codecs/video_codec.h"
#include "api/video_codecs/video_encoder.h"
#include "api/video_codecs/video_encoder_config.h"
-#include "api/webrtc_key_value_config.h"
#include "call/adaptation/resource_adaptation_processor_interface.h"
#include "call/adaptation/video_stream_adapter.h"
#include "call/adaptation/video_stream_input_state_provider.h"
@@ -81,7 +81,7 @@
bool experiment_cpu_load_estimator,
std::unique_ptr<OveruseFrameDetector> overuse_detector,
DegradationPreferenceProvider* degradation_preference_provider,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~VideoStreamEncoderResourceManager() override;
void Initialize(rtc::TaskQueue* encoder_queue);
@@ -183,7 +183,7 @@
const std::map<VideoAdaptationReason, VideoAdaptationCounters>&
active_counts);
- const WebRtcKeyValueConfig& field_trials_;
+ const FieldTrialsView& field_trials_;
DegradationPreferenceProvider* const degradation_preference_provider_;
std::unique_ptr<BitrateConstraint> bitrate_constraint_
RTC_GUARDED_BY(encoder_queue_);
diff --git a/video/buffered_frame_decryptor.cc b/video/buffered_frame_decryptor.cc
index fb4ea76..24cbaf8 100644
--- a/video/buffered_frame_decryptor.cc
+++ b/video/buffered_frame_decryptor.cc
@@ -23,7 +23,7 @@
BufferedFrameDecryptor::BufferedFrameDecryptor(
OnDecryptedFrameCallback* decrypted_frame_callback,
OnDecryptionStatusChangeCallback* decryption_status_change_callback,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: generic_descriptor_auth_experiment_(
!field_trials.IsDisabled("WebRTC-GenericDescriptorAuth")),
decrypted_frame_callback_(decrypted_frame_callback),
diff --git a/video/buffered_frame_decryptor.h b/video/buffered_frame_decryptor.h
index a12fc5d..681f89a 100644
--- a/video/buffered_frame_decryptor.h
+++ b/video/buffered_frame_decryptor.h
@@ -16,7 +16,7 @@
#include "api/crypto/crypto_options.h"
#include "api/crypto/frame_decryptor_interface.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "modules/video_coding/frame_object.h"
namespace webrtc {
@@ -59,7 +59,7 @@
explicit BufferedFrameDecryptor(
OnDecryptedFrameCallback* decrypted_frame_callback,
OnDecryptionStatusChangeCallback* decryption_status_change_callback,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~BufferedFrameDecryptor();
// This object cannot be copied.
diff --git a/video/frame_buffer_proxy.cc b/video/frame_buffer_proxy.cc
index c09c56a..d4da0da 100644
--- a/video/frame_buffer_proxy.cc
+++ b/video/frame_buffer_proxy.cc
@@ -43,7 +43,7 @@
FrameSchedulingReceiver* receiver,
TimeDelta max_wait_for_keyframe,
TimeDelta max_wait_for_frame,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: max_wait_for_keyframe_(max_wait_for_keyframe),
max_wait_for_frame_(max_wait_for_frame),
frame_buffer_(clock, timing, stats_proxy, field_trials),
@@ -182,7 +182,7 @@
TimeDelta max_wait_for_keyframe,
TimeDelta max_wait_for_frame,
std::unique_ptr<FrameDecodeScheduler> frame_decode_scheduler,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: field_trials_(field_trials),
max_wait_for_keyframe_(max_wait_for_keyframe),
max_wait_for_frame_(max_wait_for_frame),
@@ -488,7 +488,7 @@
}
RTC_NO_UNIQUE_ADDRESS SequenceChecker worker_sequence_checker_;
- const WebRtcKeyValueConfig& field_trials_;
+ const FieldTrialsView& field_trials_;
const TimeDelta max_wait_for_keyframe_;
const TimeDelta max_wait_for_frame_;
const absl::optional<RttMultExperiment::Settings> rtt_mult_settings_ =
@@ -544,8 +544,7 @@
constexpr const char* kFrameBufferFieldTrial = "WebRTC-FrameBuffer3";
-FrameBufferArm ParseFrameBufferFieldTrial(
- const WebRtcKeyValueConfig& field_trials) {
+FrameBufferArm ParseFrameBufferFieldTrial(const FieldTrialsView& field_trials) {
webrtc::FieldTrialEnum<FrameBufferArm> arm(
"arm", FrameBufferArm::kFrameBuffer2,
{
@@ -569,7 +568,7 @@
TimeDelta max_wait_for_keyframe,
TimeDelta max_wait_for_frame,
DecodeSynchronizer* decode_sync,
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
switch (ParseFrameBufferFieldTrial(field_trials)) {
case FrameBufferArm::kFrameBuffer3: {
auto scheduler =
diff --git a/video/frame_buffer_proxy.h b/video/frame_buffer_proxy.h
index 1a61f99..e01b28c 100644
--- a/video/frame_buffer_proxy.h
+++ b/video/frame_buffer_proxy.h
@@ -13,10 +13,10 @@
#include <memory>
+#include "api/field_trials_view.h"
#include "api/metronome/metronome.h"
#include "api/task_queue/task_queue_base.h"
#include "api/video/encoded_frame.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/video_coding/include/video_coding_defines.h"
#include "modules/video_coding/timing.h"
#include "rtc_base/task_queue.h"
@@ -49,7 +49,7 @@
TimeDelta max_wait_for_keyframe,
TimeDelta max_wait_for_frame,
DecodeSynchronizer* decode_sync,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
virtual ~FrameBufferProxy() = default;
// Run on the worker thread.
diff --git a/video/frame_buffer_proxy_unittest.cc b/video/frame_buffer_proxy_unittest.cc
index b133a94..d6f97db 100644
--- a/video/frame_buffer_proxy_unittest.cc
+++ b/video/frame_buffer_proxy_unittest.cc
@@ -198,7 +198,7 @@
(override));
};
-bool IsFrameBuffer2Enabled(const WebRtcKeyValueConfig& field_trials) {
+bool IsFrameBuffer2Enabled(const FieldTrialsView& field_trials) {
return field_trials.Lookup("WebRTC-FrameBuffer3").find("arm:FrameBuffer2") !=
std::string::npos;
}
diff --git a/video/frame_cadence_adapter.cc b/video/frame_cadence_adapter.cc
index 10cabb3..7fc7939 100644
--- a/video/frame_cadence_adapter.cc
+++ b/video/frame_cadence_adapter.cc
@@ -210,7 +210,7 @@
public:
FrameCadenceAdapterImpl(Clock* clock,
TaskQueueBase* queue,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~FrameCadenceAdapterImpl();
// FrameCadenceAdapterInterface overrides.
@@ -546,7 +546,7 @@
FrameCadenceAdapterImpl::FrameCadenceAdapterImpl(
Clock* clock,
TaskQueueBase* queue,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: clock_(clock),
queue_(queue),
zero_hertz_screenshare_enabled_(
@@ -742,7 +742,7 @@
std::unique_ptr<FrameCadenceAdapterInterface>
FrameCadenceAdapterInterface::Create(Clock* clock,
TaskQueueBase* queue,
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
return std::make_unique<FrameCadenceAdapterImpl>(clock, queue, field_trials);
}
diff --git a/video/frame_cadence_adapter.h b/video/frame_cadence_adapter.h
index 843d8eb..40e9805 100644
--- a/video/frame_cadence_adapter.h
+++ b/video/frame_cadence_adapter.h
@@ -14,11 +14,11 @@
#include <memory>
#include "absl/base/attributes.h"
+#include "api/field_trials_view.h"
#include "api/task_queue/task_queue_base.h"
#include "api/units/time_delta.h"
#include "api/video/video_frame.h"
#include "api/video/video_sink_interface.h"
-#include "api/webrtc_key_value_config.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/thread_annotations.h"
#include "system_wrappers/include/clock.h"
@@ -81,7 +81,7 @@
static std::unique_ptr<FrameCadenceAdapterInterface> Create(
Clock* clock,
TaskQueueBase* queue,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
// Call before using the rest of the API.
virtual void Initialize(Callback* callback) = 0;
diff --git a/video/frame_cadence_adapter_unittest.cc b/video/frame_cadence_adapter_unittest.cc
index edc6cae..4770f05 100644
--- a/video/frame_cadence_adapter_unittest.cc
+++ b/video/frame_cadence_adapter_unittest.cc
@@ -60,7 +60,7 @@
}
std::unique_ptr<FrameCadenceAdapterInterface> CreateAdapter(
- const WebRtcKeyValueConfig& field_trials,
+ const FieldTrialsView& field_trials,
Clock* clock) {
return FrameCadenceAdapterInterface::Create(clock, TaskQueueBase::Current(),
field_trials);
diff --git a/video/frame_decode_timing_unittest.cc b/video/frame_decode_timing_unittest.cc
index 743e722..0066afe 100644
--- a/video/frame_decode_timing_unittest.cc
+++ b/video/frame_decode_timing_unittest.cc
@@ -31,7 +31,7 @@
class FakeVCMTiming : public webrtc::VCMTiming {
public:
- explicit FakeVCMTiming(Clock* clock, const WebRtcKeyValueConfig& field_trials)
+ explicit FakeVCMTiming(Clock* clock, const FieldTrialsView& field_trials)
: webrtc::VCMTiming(clock, field_trials) {}
Timestamp RenderTime(uint32_t frame_timestamp, Timestamp now) const override {
diff --git a/video/receive_statistics_proxy.cc b/video/receive_statistics_proxy.cc
index 0a854ce..e42a559 100644
--- a/video/receive_statistics_proxy.cc
+++ b/video/receive_statistics_proxy.cc
@@ -77,7 +77,7 @@
return ss.str();
}
-bool EnableDecodeTimeHistogram(const WebRtcKeyValueConfig* field_trials) {
+bool EnableDecodeTimeHistogram(const FieldTrialsView* field_trials) {
if (field_trials == nullptr) {
return true;
}
@@ -89,7 +89,7 @@
ReceiveStatisticsProxy::ReceiveStatisticsProxy(
uint32_t remote_ssrc,
Clock* clock,
- const WebRtcKeyValueConfig* field_trials)
+ const FieldTrialsView* field_trials)
: clock_(clock),
start_ms_(clock->TimeInMilliseconds()),
enable_decode_time_histograms_(EnableDecodeTimeHistogram(field_trials)),
diff --git a/video/receive_statistics_proxy.h b/video/receive_statistics_proxy.h
index 8dab897..584b3c1 100644
--- a/video/receive_statistics_proxy.h
+++ b/video/receive_statistics_proxy.h
@@ -17,8 +17,8 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
-#include "api/webrtc_key_value_config.h"
#include "call/video_receive_stream.h"
#include "modules/include/module_common_types.h"
#include "modules/video_coding/include/video_coding_defines.h"
@@ -45,7 +45,7 @@
public:
ReceiveStatisticsProxy(uint32_t remote_ssrc,
Clock* clock,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
~ReceiveStatisticsProxy() = default;
VideoReceiveStream::Stats GetStats() const;
diff --git a/video/receive_statistics_proxy2.cc b/video/receive_statistics_proxy2.cc
index 5d49d36..5f12026 100644
--- a/video/receive_statistics_proxy2.cc
+++ b/video/receive_statistics_proxy2.cc
@@ -101,7 +101,7 @@
uint32_t remote_ssrc,
Clock* clock,
TaskQueueBase* worker_thread,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: clock_(clock),
start_ms_(clock->TimeInMilliseconds()),
enable_decode_time_histograms_(
diff --git a/video/receive_statistics_proxy2.h b/video/receive_statistics_proxy2.h
index afe7458..328c92c 100644
--- a/video/receive_statistics_proxy2.h
+++ b/video/receive_statistics_proxy2.h
@@ -17,10 +17,10 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/task_queue/task_queue_base.h"
#include "api/units/timestamp.h"
-#include "api/webrtc_key_value_config.h"
#include "call/video_receive_stream.h"
#include "modules/include/module_common_types.h"
#include "modules/video_coding/include/video_coding_defines.h"
@@ -52,7 +52,7 @@
ReceiveStatisticsProxy(uint32_t remote_ssrc,
Clock* clock,
TaskQueueBase* worker_thread,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~ReceiveStatisticsProxy() override;
VideoReceiveStream::Stats GetStats() const;
diff --git a/video/rtp_video_stream_receiver.cc b/video/rtp_video_stream_receiver.cc
index 1788823e..04484b9 100644
--- a/video/rtp_video_stream_receiver.cc
+++ b/video/rtp_video_stream_receiver.cc
@@ -19,7 +19,7 @@
#include "absl/algorithm/container.h"
#include "absl/memory/memory.h"
#include "absl/types/optional.h"
-#include "api/webrtc_key_value_config.h"
+#include "api/field_trials_view.h"
#include "media/base/media_constants.h"
#include "modules/pacing/packet_router.h"
#include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
@@ -59,7 +59,7 @@
constexpr int kPacketBufferStartSize = 512;
constexpr int kPacketBufferMaxSize = 2048;
-int PacketBufferMaxSize(const WebRtcKeyValueConfig& field_trials) {
+int PacketBufferMaxSize(const FieldTrialsView& field_trials) {
// The group here must be a positive power of 2, in which case that is used as
// size. All other values shall result in the default value being used.
const std::string group_name =
@@ -212,7 +212,7 @@
OnCompleteFrameCallback* complete_frame_callback,
rtc::scoped_refptr<FrameDecryptorInterface> frame_decryptor,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
- const WebRtcKeyValueConfig* field_trials)
+ const FieldTrialsView* field_trials)
: RtpVideoStreamReceiver(clock,
transport,
rtt_stats,
@@ -244,7 +244,7 @@
OnCompleteFrameCallback* complete_frame_callback,
rtc::scoped_refptr<FrameDecryptorInterface> frame_decryptor,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
- const WebRtcKeyValueConfig* field_trials)
+ const FieldTrialsView* field_trials)
: field_trials_(field_trials ? *field_trials : owned_field_trials_),
clock_(clock),
config_(*config),
diff --git a/video/rtp_video_stream_receiver.h b/video/rtp_video_stream_receiver.h
index 1e0f7bc..f46f257 100644
--- a/video/rtp_video_stream_receiver.h
+++ b/video/rtp_video_stream_receiver.h
@@ -103,7 +103,7 @@
OnCompleteFrameCallback* complete_frame_callback,
rtc::scoped_refptr<FrameDecryptorInterface> frame_decryptor,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
RtpVideoStreamReceiver(
Clock* clock,
@@ -125,7 +125,7 @@
OnCompleteFrameCallback* complete_frame_callback,
rtc::scoped_refptr<FrameDecryptorInterface> frame_decryptor,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
- const WebRtcKeyValueConfig* field_trials = nullptr);
+ const FieldTrialsView* field_trials = nullptr);
~RtpVideoStreamReceiver() override;
void AddReceiveCodec(uint8_t payload_type,
@@ -329,7 +329,7 @@
bool is_keyframe)
RTC_RUN_ON(worker_task_checker_);
- const WebRtcKeyValueConfig& field_trials_;
+ const FieldTrialsView& field_trials_;
FieldTrialBasedConfig owned_field_trials_;
Clock* const clock_;
diff --git a/video/rtp_video_stream_receiver2.cc b/video/rtp_video_stream_receiver2.cc
index 25687b3..9956760 100644
--- a/video/rtp_video_stream_receiver2.cc
+++ b/video/rtp_video_stream_receiver2.cc
@@ -56,7 +56,7 @@
constexpr int kPacketBufferStartSize = 512;
constexpr int kPacketBufferMaxSize = 2048;
-int PacketBufferMaxSize(const WebRtcKeyValueConfig& field_trials) {
+int PacketBufferMaxSize(const FieldTrialsView& field_trials) {
// The group here must be a positive power of 2, in which case that is used as
// size. All other values shall result in the default value being used.
const std::string group_name =
@@ -109,7 +109,7 @@
Clock* clock,
NackSender* nack_sender,
KeyFrameRequestSender* keyframe_request_sender,
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
if (config.rtp.nack.rtp_history_ms == 0)
return nullptr;
@@ -218,7 +218,7 @@
OnCompleteFrameCallback* complete_frame_callback,
rtc::scoped_refptr<FrameDecryptorInterface> frame_decryptor,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: field_trials_(field_trials),
clock_(clock),
config_(*config),
diff --git a/video/rtp_video_stream_receiver2.h b/video/rtp_video_stream_receiver2.h
index 88b012d..d907227 100644
--- a/video/rtp_video_stream_receiver2.h
+++ b/video/rtp_video_stream_receiver2.h
@@ -97,7 +97,7 @@
OnCompleteFrameCallback* complete_frame_callback,
rtc::scoped_refptr<FrameDecryptorInterface> frame_decryptor,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~RtpVideoStreamReceiver2() override;
void AddReceiveCodec(uint8_t payload_type,
@@ -287,7 +287,7 @@
bool is_keyframe)
RTC_RUN_ON(packet_sequence_checker_);
- const WebRtcKeyValueConfig& field_trials_;
+ const FieldTrialsView& field_trials_;
Clock* const clock_;
// Ownership of this object lies with VideoReceiveStream, which owns `this`.
const VideoReceiveStream::Config& config_;
diff --git a/video/send_statistics_proxy.cc b/video/send_statistics_proxy.cc
index aa8a078..bc4ff5d 100644
--- a/video/send_statistics_proxy.cc
+++ b/video/send_statistics_proxy.cc
@@ -110,7 +110,7 @@
}
absl::optional<int> GetFallbackMaxPixelsIfFieldTrialEnabled(
- const webrtc::WebRtcKeyValueConfig& field_trials) {
+ const webrtc::FieldTrialsView& field_trials) {
std::string group = field_trials.Lookup(kVp8ForcedFallbackEncoderFieldTrial);
return (absl::StartsWith(group, "Enabled"))
? GetFallbackMaxPixels(group.substr(7))
@@ -118,7 +118,7 @@
}
absl::optional<int> GetFallbackMaxPixelsIfFieldTrialDisabled(
- const webrtc::WebRtcKeyValueConfig& field_trials) {
+ const webrtc::FieldTrialsView& field_trials) {
std::string group = field_trials.Lookup(kVp8ForcedFallbackEncoderFieldTrial);
return (absl::StartsWith(group, "Disabled"))
? GetFallbackMaxPixels(group.substr(8))
@@ -132,7 +132,7 @@
Clock* clock,
const VideoSendStream::Config& config,
VideoEncoderConfig::ContentType content_type,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: clock_(clock),
payload_name_(config.rtp.payload_name),
rtp_config_(config.rtp),
diff --git a/video/send_statistics_proxy.h b/video/send_statistics_proxy.h
index f5d17ea..a1319d8 100644
--- a/video/send_statistics_proxy.h
+++ b/video/send_statistics_proxy.h
@@ -17,10 +17,10 @@
#include <string>
#include <vector>
+#include "api/field_trials_view.h"
#include "api/video/video_codec_constants.h"
#include "api/video/video_stream_encoder_observer.h"
#include "api/video_codecs/video_encoder_config.h"
-#include "api/webrtc_key_value_config.h"
#include "call/video_send_stream.h"
#include "modules/include/module_common_types_public.h"
#include "modules/rtp_rtcp/include/report_block_data.h"
@@ -53,7 +53,7 @@
SendStatisticsProxy(Clock* clock,
const VideoSendStream::Config& config,
VideoEncoderConfig::ContentType content_type,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~SendStatisticsProxy() override;
virtual VideoSendStream::Stats GetStats();
diff --git a/video/video_receive_stream2.cc b/video/video_receive_stream2.cc
index df99866..45415c3 100644
--- a/video/video_receive_stream2.cc
+++ b/video/video_receive_stream2.cc
@@ -130,8 +130,7 @@
absl::optional<webrtc::ColorSpace> color_space_;
};
-RenderResolution InitialDecoderResolution(
- const WebRtcKeyValueConfig& field_trials) {
+RenderResolution InitialDecoderResolution(const FieldTrialsView& field_trials) {
FieldTrialOptional<int> width("w");
FieldTrialOptional<int> height("h");
ParseFieldTrial({&width, &height},
diff --git a/video/video_send_stream.cc b/video/video_send_stream.cc
index ea51fb8..e3f04c8 100644
--- a/video/video_send_stream.cc
+++ b/video/video_send_stream.cc
@@ -63,7 +63,7 @@
VideoStreamEncoder::BitrateAllocationCallbackType
GetBitrateAllocationCallbackType(const VideoSendStream::Config& config,
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
if (webrtc::RtpExtension::FindHeaderExtensionByUri(
config.rtp.extensions,
webrtc::RtpExtension::kVideoLayersAllocationUri,
@@ -115,7 +115,7 @@
const VideoStreamEncoderSettings& encoder_settings,
VideoStreamEncoder::BitrateAllocationCallbackType
bitrate_allocation_callback_type,
- const WebRtcKeyValueConfig& field_trials) {
+ const FieldTrialsView& field_trials) {
std::unique_ptr<TaskQueueBase, TaskQueueDeleter> encoder_queue =
task_queue_factory->CreateTaskQueue("EncoderQueue",
TaskQueueFactory::Priority::NORMAL);
@@ -147,7 +147,7 @@
const std::map<uint32_t, RtpState>& suspended_ssrcs,
const std::map<uint32_t, RtpPayloadState>& suspended_payload_states,
std::unique_ptr<FecController> fec_controller,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: rtp_transport_queue_(transport->GetWorkerQueue()),
transport_(transport),
stats_proxy_(clock, config, encoder_config.content_type, field_trials),
diff --git a/video/video_send_stream.h b/video/video_send_stream.h
index 048de3d..1912307 100644
--- a/video/video_send_stream.h
+++ b/video/video_send_stream.h
@@ -16,9 +16,9 @@
#include <vector>
#include "api/fec_controller.h"
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/video/video_stream_encoder_interface.h"
-#include "api/webrtc_key_value_config.h"
#include "call/bitrate_allocator.h"
#include "call/video_receive_stream.h"
#include "call/video_send_stream.h"
@@ -70,7 +70,7 @@
const std::map<uint32_t, RtpState>& suspended_ssrcs,
const std::map<uint32_t, RtpPayloadState>& suspended_payload_states,
std::unique_ptr<FecController> fec_controller,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~VideoSendStream() override;
diff --git a/video/video_send_stream_impl.cc b/video/video_send_stream_impl.cc
index 27e5541..c151374 100644
--- a/video/video_send_stream_impl.cc
+++ b/video/video_send_stream_impl.cc
@@ -192,7 +192,7 @@
} // namespace
-PacingConfig::PacingConfig(const WebRtcKeyValueConfig& field_trials)
+PacingConfig::PacingConfig(const FieldTrialsView& field_trials)
: pacing_factor("factor", kStrictPacingMultiplier),
max_pacing_delay("max_delay",
TimeDelta::Millis(PacedSender::kMaxQueueLengthMs)) {
@@ -214,7 +214,7 @@
double initial_encoder_bitrate_priority,
VideoEncoderConfig::ContentType content_type,
RtpVideoSenderInterface* rtp_video_sender,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: clock_(clock),
has_alr_probing_(config->periodic_alr_bandwidth_probing ||
GetAlrSettings(content_type)),
diff --git a/video/video_send_stream_impl.h b/video/video_send_stream_impl.h
index a2c3dfe..076b25d 100644
--- a/video/video_send_stream_impl.h
+++ b/video/video_send_stream_impl.h
@@ -19,13 +19,13 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/video/encoded_image.h"
#include "api/video/video_bitrate_allocation.h"
#include "api/video/video_bitrate_allocator.h"
#include "api/video/video_stream_encoder_interface.h"
#include "api/video_codecs/video_encoder.h"
#include "api/video_codecs/video_encoder_config.h"
-#include "api/webrtc_key_value_config.h"
#include "call/bitrate_allocator.h"
#include "call/rtp_config.h"
#include "call/rtp_transport_controller_send_interface.h"
@@ -46,7 +46,7 @@
// Pacing buffer config; overridden by ALR config if provided.
struct PacingConfig {
- explicit PacingConfig(const WebRtcKeyValueConfig& field_trials);
+ explicit PacingConfig(const FieldTrialsView& field_trials);
PacingConfig(const PacingConfig&);
PacingConfig& operator=(const PacingConfig&) = default;
~PacingConfig();
@@ -75,7 +75,7 @@
double initial_encoder_bitrate_priority,
VideoEncoderConfig::ContentType content_type,
RtpVideoSenderInterface* rtp_video_sender,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~VideoSendStreamImpl() override;
void DeliverRtcp(const uint8_t* packet, size_t length);
diff --git a/video/video_stream_decoder_impl.cc b/video/video_stream_decoder_impl.cc
index 8704a6ef..5f275ff 100644
--- a/video/video_stream_decoder_impl.cc
+++ b/video/video_stream_decoder_impl.cc
@@ -24,7 +24,7 @@
VideoDecoderFactory* decoder_factory,
TaskQueueFactory* task_queue_factory,
std::map<int, std::pair<SdpVideoFormat, int>> decoder_settings,
- const WebRtcKeyValueConfig* field_trials)
+ const FieldTrialsView* field_trials)
: field_trials_(field_trials),
timing_(Clock::GetRealTimeClock(), *field_trials_),
decode_callbacks_(this),
diff --git a/video/video_stream_decoder_impl.h b/video/video_stream_decoder_impl.h
index d4fe1f7..f76506f 100644
--- a/video/video_stream_decoder_impl.h
+++ b/video/video_stream_decoder_impl.h
@@ -16,10 +16,10 @@
#include <utility>
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/transport/field_trial_based_config.h"
#include "api/video/video_stream_decoder.h"
-#include "api/webrtc_key_value_config.h"
#include "modules/video_coding/frame_buffer2.h"
#include "modules/video_coding/timing.h"
#include "rtc_base/memory/always_valid_pointer.h"
@@ -37,7 +37,7 @@
VideoDecoderFactory* decoder_factory,
TaskQueueFactory* task_queue_factory,
std::map<int, std::pair<SdpVideoFormat, int>> decoder_settings,
- const WebRtcKeyValueConfig* field_trials);
+ const FieldTrialsView* field_trials);
~VideoStreamDecoderImpl() override;
@@ -86,7 +86,7 @@
VideoStreamDecoderImpl::DecodeResult DecodeFrame(
std::unique_ptr<EncodedFrame> frame) RTC_RUN_ON(decode_queue_);
- AlwaysValidPointer<const WebRtcKeyValueConfig, FieldTrialBasedConfig>
+ AlwaysValidPointer<const FieldTrialsView, FieldTrialBasedConfig>
field_trials_;
VCMTiming timing_;
DecodeCallbacks decode_callbacks_;
diff --git a/video/video_stream_encoder.cc b/video/video_stream_encoder.cc
index 58a2620..c8bba6b 100644
--- a/video/video_stream_encoder.cc
+++ b/video/video_stream_encoder.cc
@@ -19,6 +19,7 @@
#include "absl/algorithm/container.h"
#include "absl/types/optional.h"
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/task_queue/queued_task.h"
#include "api/task_queue/task_queue_base.h"
@@ -30,7 +31,6 @@
#include "api/video/video_layers_allocation.h"
#include "api/video_codecs/sdp_video_format.h"
#include "api/video_codecs/video_encoder.h"
-#include "api/webrtc_key_value_config.h"
#include "call/adaptation/resource_adaptation_processor.h"
#include "call/adaptation/video_stream_adapter.h"
#include "modules/video_coding/include/video_codec_initializer.h"
@@ -598,7 +598,7 @@
std::unique_ptr<webrtc::TaskQueueBase, webrtc::TaskQueueDeleter>
encoder_queue,
BitrateAllocationCallbackType allocation_cb_type,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: field_trials_(field_trials),
worker_queue_(TaskQueueBase::Current()),
number_of_cores_(number_of_cores),
diff --git a/video/video_stream_encoder.h b/video/video_stream_encoder.h
index 6795986..f3dbd48 100644
--- a/video/video_stream_encoder.h
+++ b/video/video_stream_encoder.h
@@ -18,6 +18,7 @@
#include <vector>
#include "api/adaptation/resource.h"
+#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/units/data_rate.h"
#include "api/video/video_bitrate_allocator.h"
@@ -28,7 +29,6 @@
#include "api/video/video_stream_encoder_settings.h"
#include "api/video_codecs/video_codec.h"
#include "api/video_codecs/video_encoder.h"
-#include "api/webrtc_key_value_config.h"
#include "call/adaptation/adaptation_constraint.h"
#include "call/adaptation/resource_adaptation_processor.h"
#include "call/adaptation/resource_adaptation_processor_interface.h"
@@ -81,7 +81,7 @@
std::unique_ptr<webrtc::TaskQueueBase, webrtc::TaskQueueDeleter>
encoder_queue,
BitrateAllocationCallbackType allocation_cb_type,
- const WebRtcKeyValueConfig& field_trials);
+ const FieldTrialsView& field_trials);
~VideoStreamEncoder() override;
VideoStreamEncoder(const VideoStreamEncoder&) = delete;
@@ -252,7 +252,7 @@
void RequestEncoderSwitch() RTC_RUN_ON(&encoder_queue_);
- const WebRtcKeyValueConfig& field_trials_;
+ const FieldTrialsView& field_trials_;
TaskQueueBase* const worker_queue_;
const uint32_t number_of_cores_;
diff --git a/video/video_stream_encoder_unittest.cc b/video/video_stream_encoder_unittest.cc
index 09ca0b6..5999ab4 100644
--- a/video/video_stream_encoder_unittest.cc
+++ b/video/video_stream_encoder_unittest.cc
@@ -375,7 +375,7 @@
const VideoStreamEncoderSettings& settings,
VideoStreamEncoder::BitrateAllocationCallbackType
allocation_callback_type,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: VideoStreamEncoder(time_controller->GetClock(),
1 /* number_of_cores */,
stats_proxy,
@@ -612,7 +612,7 @@
MockableSendStatisticsProxy(Clock* clock,
const VideoSendStream::Config& config,
VideoEncoderConfig::ContentType content_type,
- const WebRtcKeyValueConfig& field_trials)
+ const FieldTrialsView& field_trials)
: SendStatisticsProxy(clock, config, content_type, field_trials) {}
VideoSendStream::Stats GetStats() override {
@@ -681,7 +681,7 @@
std::unique_ptr<AdaptedVideoStreamEncoder> CreateWithEncoderQueue(
std::unique_ptr<FrameCadenceAdapterInterface> zero_hertz_adapter,
std::unique_ptr<TaskQueueBase, TaskQueueDeleter> encoder_queue,
- const WebRtcKeyValueConfig* field_trials = nullptr) {
+ const FieldTrialsView* field_trials = nullptr) {
auto result = std::make_unique<AdaptedVideoStreamEncoder>(
time_controller_.GetClock(),
/*number_of_cores=*/1,