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}
This commit is contained in:
Jonas Oreland 2022-03-29 11:04:48 +02:00 committed by WebRTC LUCI CQ
parent bddfa1d9de
commit e62c2f2c77
303 changed files with 785 additions and 831 deletions

View file

@ -171,6 +171,7 @@ rtc_library("libjingle_peerconnection_api") {
":audio_options_api",
":callfactory_api",
":fec_controller_api",
":field_trials_view",
":frame_transformer_interface",
":libjingle_logging_api",
":media_stream_interface",
@ -200,7 +201,6 @@ rtc_library("libjingle_peerconnection_api") {
"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 @@ if (rtc_include_tests) {
}
}
rtc_source_set("webrtc_key_value_config") {
rtc_source_set("field_trials_view") {
visibility = [ "*" ]
sources = [ "webrtc_key_value_config.h" ]
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 = [ ":field_trials_view" ]
}

View file

@ -32,7 +32,7 @@ rtc_library("audio_codecs_api") {
"..: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",

View file

@ -21,7 +21,7 @@ rtc_library("audio_encoder_L16") {
]
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 @@ rtc_library("audio_decoder_L16") {
]
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",

View file

@ -38,7 +38,7 @@ void AudioDecoderL16::AppendSupportedDecoders(
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;
}

View file

@ -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 @@ struct RTC_EXPORT AudioDecoderL16 {
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

View file

@ -60,7 +60,7 @@ std::unique_ptr<AudioEncoder> AudioEncoderL16::MakeAudioEncoder(
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;

View file

@ -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 @@ struct RTC_EXPORT AudioEncoderL16 {
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

View file

@ -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 @@ struct Helper<> {
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 @@ struct Helper<T, Ts...> {
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 @@ struct Helper<T, Ts...> {
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 @@ class AudioDecoderFactoryT : public AudioDecoderFactory {
field_trials_);
}
const WebRtcKeyValueConfig* field_trials_;
const FieldTrialsView* field_trials_;
};
} // namespace audio_decoder_factory_template_impl
@ -127,7 +127,7 @@ class AudioDecoderFactoryT : public AudioDecoderFactory {
// 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

View file

@ -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 @@ struct Helper<> {
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 @@ struct Helper<T, Ts...> {
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 @@ struct Helper<T, Ts...> {
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 @@ class AudioEncoderFactoryT : public AudioEncoderFactory {
field_trials_);
}
const WebRtcKeyValueConfig* field_trials_;
const FieldTrialsView* field_trials_;
};
} // namespace audio_encoder_factory_template_impl
@ -145,7 +145,7 @@ class AudioEncoderFactoryT : public AudioEncoderFactory {
// 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

View file

@ -48,7 +48,7 @@ struct NotAdvertised {
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);
}

View file

@ -21,7 +21,7 @@ rtc_library("audio_encoder_g711") {
]
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 @@ rtc_library("audio_decoder_g711") {
]
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",

View file

@ -48,7 +48,7 @@ void AudioDecoderG711::AppendSupportedDecoders(
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;

View file

@ -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 @@ struct RTC_EXPORT AudioDecoderG711 {
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

View file

@ -65,7 +65,7 @@ std::unique_ptr<AudioEncoder> AudioEncoderG711::MakeAudioEncoder(
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;

View file

@ -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 @@ struct RTC_EXPORT AudioEncoderG711 {
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

View file

@ -27,7 +27,7 @@ rtc_library("audio_encoder_g722") {
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 @@ rtc_library("audio_decoder_g722") {
]
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",

View file

@ -37,7 +37,7 @@ void AudioDecoderG722::AppendSupportedDecoders(
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;

View file

@ -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 @@ struct RTC_EXPORT AudioDecoderG722 {
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

View file

@ -63,7 +63,7 @@ std::unique_ptr<AudioEncoder> AudioEncoderG722::MakeAudioEncoder(
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;

View file

@ -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 @@ struct RTC_EXPORT AudioEncoderG722 {
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

View file

@ -27,7 +27,7 @@ rtc_library("audio_encoder_ilbc") {
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 @@ rtc_library("audio_decoder_ilbc") {
]
deps = [
"..:audio_codecs_api",
"../../../api:webrtc_key_value_config",
"../../../api:field_trials_view",
"../../../modules/audio_coding:ilbc",
"../../../rtc_base:rtc_base_approved",
]

View file

@ -35,7 +35,7 @@ void AudioDecoderIlbc::AppendSupportedDecoders(
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>();
}

View file

@ -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 @@ struct AudioDecoderIlbc {
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

View file

@ -77,7 +77,7 @@ std::unique_ptr<AudioEncoder> AudioEncoderIlbc::MakeAudioEncoder(
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;

View file

@ -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 @@ struct AudioEncoderIlbc {
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

View file

@ -65,7 +65,7 @@ rtc_library("audio_encoder_isac_fix") {
]
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 @@ rtc_library("audio_decoder_isac_fix") {
]
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 @@ rtc_library("audio_encoder_isac_float") {
]
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 @@ rtc_library("audio_decoder_isac_float") {
]
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",

View file

@ -34,7 +34,7 @@ void AudioDecoderIsacFix::AppendSupportedDecoders(
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);

View file

@ -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 @@ struct RTC_EXPORT AudioDecoderIsacFix {
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

View file

@ -43,7 +43,7 @@ void AudioDecoderIsacFloat::AppendSupportedDecoders(
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()) {

View file

@ -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 @@ struct RTC_EXPORT AudioDecoderIsacFloat {
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

View file

@ -57,7 +57,7 @@ std::unique_ptr<AudioEncoder> AudioEncoderIsacFix::MakeAudioEncoder(
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;

View file

@ -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 @@ struct RTC_EXPORT AudioEncoderIsacFix {
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

View file

@ -69,7 +69,7 @@ std::unique_ptr<AudioEncoder> AudioEncoderIsacFloat::MakeAudioEncoder(
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;

View file

@ -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 @@ struct RTC_EXPORT AudioEncoderIsacFloat {
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

View file

@ -46,7 +46,7 @@ rtc_library("audio_encoder_opus") {
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 @@ rtc_library("audio_decoder_opus") {
]
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 @@ rtc_library("audio_encoder_multiopus") {
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 @@ rtc_library("audio_decoder_multiopus") {
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",

View file

@ -65,7 +65,7 @@ void AudioDecoderMultiChannelOpus::AppendSupportedDecoders(
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

View file

@ -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 @@ struct RTC_EXPORT AudioDecoderMultiChannelOpus {
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

View file

@ -74,7 +74,7 @@ void AudioDecoderOpus::AppendSupportedDecoders(
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;

View file

@ -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 @@ struct RTC_EXPORT AudioDecoderOpus {
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

View file

@ -67,7 +67,7 @@ std::unique_ptr<AudioEncoder> AudioEncoderMultiChannelOpus::MakeAudioEncoder(
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);
}

View file

@ -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 @@ struct RTC_EXPORT AudioEncoderMultiChannelOpus {
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

View file

@ -33,7 +33,7 @@ std::unique_ptr<AudioEncoder> AudioEncoderOpus::MakeAudioEncoder(
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;

View file

@ -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 @@ struct RTC_EXPORT AudioEncoderOpus {
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

View file

@ -38,7 +38,7 @@ struct NotAdvertised {
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);
}

46
api/field_trials_view.h Normal file
View file

@ -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_

View file

@ -27,7 +27,7 @@ class IceControllerFactoryInterface;
} // 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 @@ struct IceTransportInit final {
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 @@ struct IceTransportInit final {
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.
};

View file

@ -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 @@ struct RTC_EXPORT PeerConnectionFactoryDependencies final {
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;

View file

@ -32,7 +32,7 @@ rtc_library("network_control") {
]
deps = [
":webrtc_key_value_config",
"../../api:field_trials_view",
"../rtc_event_log",
"../units:data_rate",
"../units:data_size",
@ -45,16 +45,6 @@ rtc_library("network_control") {
]
}
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 @@ rtc_library("field_trial_based_config") {
"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 @@ rtc_library("goog_cc") {
]
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" ]

View file

@ -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;
};

View file

@ -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 @@ struct NetworkControllerConfig {
// 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 NetworkStateEstimator {
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

View file

@ -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_

View file

@ -269,7 +269,7 @@ rtc_library("video_stream_decoder_create") {
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",

View file

@ -23,7 +23,7 @@ std::unique_ptr<VideoStreamDecoderInterface> CreateVideoStreamDecoder(
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);

View file

@ -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 @@ std::unique_ptr<VideoStreamDecoderInterface> CreateVideoStreamDecoder(
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

View file

@ -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_

View file

@ -42,6 +42,7 @@ rtc_library("audio") {
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 @@ rtc_library("audio") {
"../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",

View file

@ -88,7 +88,7 @@ std::unique_ptr<StructParametersParser> AudioAllocationConfig::Parser() {
}
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 @@ AudioSendStream::AudioSendStream(
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 @@ AudioSendStream::AudioSendStream(
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()),

View file

@ -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 @@ struct AudioAllocationConfig {
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 @@ class AudioSendStream final : public webrtc::AudioSendStream,
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 @@ class AudioSendStream final : public webrtc::AudioSendStream,
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 @@ class AudioSendStream final : public webrtc::AudioSendStream,
RTC_RUN_ON(worker_thread_checker_);
Clock* clock_;
const WebRtcKeyValueConfig& field_trials_;
const FieldTrialsView& field_trials_;
SequenceChecker worker_thread_checker_;
SequenceChecker pacer_thread_checker_;

View file

@ -78,7 +78,7 @@ class ChannelSend : public ChannelSendInterface,
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 @@ ChannelSend::ChannelSend(
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 @@ std::unique_ptr<ChannelSendInterface> CreateChannelSend(
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,

View file

@ -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 @@ std::unique_ptr<ChannelSendInterface> CreateChannelSend(
uint32_t ssrc,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
TransportFeedbackObserver* feedback_observer,
const WebRtcKeyValueConfig& field_trials);
const FieldTrialsView& field_trials);
} // namespace voe
} // namespace webrtc

View file

@ -42,6 +42,7 @@ rtc_library("call_interfaces") {
":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 @@ rtc_library("call_interfaces") {
"../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 @@ rtc_library("rtp_interfaces") {
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 @@ rtc_library("rtp_interfaces") {
"../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 @@ rtc_library("rtp_sender") {
"../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 @@ rtc_library("call") {
"../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",

View file

@ -32,10 +32,10 @@ rtc_library("resource_adaptation") {
"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",

View file

@ -204,7 +204,7 @@ const VideoAdaptationCounters& Adaptation::counters() const {
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),

View file

@ -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 @@ class VideoStreamAdapter {
public:
VideoStreamAdapter(VideoStreamInputStateProvider* input_state_provider,
VideoStreamEncoderObserver* encoder_stats_observer,
const WebRtcKeyValueConfig& field_trials);
const FieldTrialsView& field_trials);
~VideoStreamAdapter();
VideoSourceRestrictions source_restrictions() const;

View file

@ -247,7 +247,7 @@ class Call final : public webrtc::Call,
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 @@ class Call final : public webrtc::Call,
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 @@ Call::Stats Call::GetStats() const {
return stats;
}
const WebRtcKeyValueConfig& Call::trials() const {
const FieldTrialsView& Call::trials() const {
return trials_;
}

View file

@ -174,7 +174,7 @@ class Call {
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;

View file

@ -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 @@ struct CallConfig {
// 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.

View file

@ -31,7 +31,7 @@ namespace webrtc {
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 @@ bool ParseConfigParam(const WebRtcKeyValueConfig& trials,
}
absl::optional<TimeScopedNetworkConfig> ParseDegradationConfig(
const WebRtcKeyValueConfig& trials,
const FieldTrialsView& trials,
bool send) {
std::string exp_prefix = "WebRTCFakeNetwork";
if (send) {
@ -80,7 +80,7 @@ absl::optional<TimeScopedNetworkConfig> ParseDegradationConfig(
}
std::vector<TimeScopedNetworkConfig> GetNetworkConfigs(
const WebRtcKeyValueConfig& trials,
const FieldTrialsView& trials,
bool send) {
FieldTrialStructList<TimeScopedNetworkConfig> trials_list(
{FieldTrialStructMember("queue_length_packets",

View file

@ -277,7 +277,7 @@ Call::Stats DegradedCall::GetStats() const {
return call_->GetStats();
}
const WebRtcKeyValueConfig& DegradedCall::trials() const {
const FieldTrialsView& DegradedCall::trials() const {
return call_->trials();
}

View file

@ -90,7 +90,7 @@ class DegradedCall : public Call, private PacketReceiver {
Stats GetStats() const override;
const WebRtcKeyValueConfig& trials() const override;
const FieldTrialsView& trials() const override;
TaskQueueBase* network_thread() const override;
TaskQueueBase* worker_thread() const override;

View file

@ -24,7 +24,7 @@ const char kBweReceiveTimeCorrection[] = "WebRTC-Bwe-ReceiveTimeFix";
} // 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(
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);

View file

@ -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 @@ struct ReceiveTimeCalculatorConfig {
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_);

View file

@ -127,7 +127,7 @@ void SetVideoTiming(const EncodedImage& image, VideoSendTiming* timing) {
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"),

View file

@ -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 @@ class RtpPayloadParams final {
public:
RtpPayloadParams(uint32_t ssrc,
const RtpPayloadState* state,
const WebRtcKeyValueConfig& trials);
const FieldTrialsView& trials);
RtpPayloadParams(const RtpPayloadParams& other);
~RtpPayloadParams();

View file

@ -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 @@ struct RtpTransportConfig {
// Key-value mapping of internal configurations to apply,
// e.g. field trials.
const WebRtcKeyValueConfig* trials = nullptr;
const FieldTrialsView* trials = nullptr;
};
} // namespace webrtc

View file

@ -59,11 +59,11 @@ TargetRateConstraints ConvertConstraints(const BitrateConstraints& contraints,
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 @@ bool IsRelayed(const rtc::NetworkRoute& route) {
} // 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 @@ RtpTransportControllerSend::RtpTransportControllerSend(
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),

View file

@ -59,7 +59,7 @@ class RtpTransportControllerSend final
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 @@ class RtpTransportControllerSend final
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 @@ class RtpTransportControllerSend final
// and deleted before any other members.
rtc::TaskQueue task_queue_;
const WebRtcKeyValueConfig& field_trials_;
const FieldTrialsView& field_trials_;
};
} // namespace webrtc

View file

@ -56,7 +56,7 @@ static const size_t kPathMTU = 1500;
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 PayloadTypeSupportsSkippingFecPackets(const std::string& payload_name,
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 @@ std::unique_ptr<VideoFecGenerator> MaybeCreateFecGenerator(
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 @@ std::vector<RtpStreamSender> CreateRtpStreamSenders(
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 @@ RtpVideoSender::RtpVideoSender(
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"),

View file

@ -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 @@ class RtpVideoSender : public RtpVideoSenderInterface,
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 @@ class RtpVideoSender : public RtpVideoSenderInterface,
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_;

View file

@ -119,7 +119,7 @@ class RtpVideoSenderTestFixture {
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 @@ class RtpVideoSenderTestFixture {
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 @@ class RtpVideoSenderTestFixture {
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,

View file

@ -51,13 +51,13 @@ rtc_library("rtc_media_base") {
":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 @@ rtc_library("rtc_audio_video") {
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 @@ rtc_library("rtc_audio_video") {
"../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 @@ rtc_library("rtc_data_sctp_transport_factory") {
]
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",

View file

@ -129,7 +129,7 @@ bool Codec::operator==(const Codec& c) const {
}
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 @@ bool AudioCodec::operator==(const AudioCodec& c) const {
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 @@ bool VideoCodec::operator==(const VideoCodec& c) const {
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);
}

View file

@ -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 @@ struct RTC_EXPORT Codec {
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 @@ struct AudioCodec : public Codec {
~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 @@ struct RTC_EXPORT VideoCodec : public Codec {
// 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;

View file

@ -152,7 +152,7 @@ webrtc::RTCError CheckRtpParametersInvalidModificationAndValues(
}
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)),

View file

@ -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 @@ class MediaEngineInterface {
// 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 @@ class CompositeMediaEngine : public MediaEngineInterface {
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_;
};

View file

@ -39,7 +39,7 @@ inline std::vector<T> MakeVector(const T a[], size_t s) {
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)) {

View file

@ -360,9 +360,7 @@ class FakeCall final : public webrtc::Call, public webrtc::PacketReceiver {
*trials_, field_trial_string);
}
const webrtc::WebRtcKeyValueConfig& trials() const override {
return *trials_;
}
const webrtc::FieldTrialsView& trials() const override { return *trials_; }
private:
webrtc::AudioSendStream* CreateAudioSendStream(

View file

@ -45,8 +45,7 @@ constexpr char kUseLegacySimulcastLayerLimitFieldTrial[] =
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 @@ const int kMaxScreenshareSimulcastLayers = 2;
// 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 @@ size_t LimitSimulcastLayerCount(int width,
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 @@ std::vector<webrtc::VideoStream> GetSimulcastConfig(
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 @@ std::vector<webrtc::VideoStream> GetNormalSimulcastLayers(
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 @@ std::vector<webrtc::VideoStream> GetScreenshareLayers(
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);

View file

@ -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 @@ std::vector<webrtc::VideoStream> GetSimulcastConfig(
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 @@ std::vector<webrtc::VideoStream> GetNormalSimulcastLayers(
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 @@ std::vector<webrtc::VideoStream> GetScreenshareLayers(
int max_qp,
bool temporal_layers_supported,
bool base_heavy_tl3_rate_alloc,
const webrtc::WebRtcKeyValueConfig& trials);
const webrtc::FieldTrialsView& trials);
} // namespace cricket

View file

@ -30,9 +30,9 @@ std::unique_ptr<MediaEngineInterface> CreateMediaEngine(
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 @@ std::vector<webrtc::RtpExtension> FilterRtpExtensions(
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);

View file

@ -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 @@ struct MediaEngineDependencies {
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 @@ std::vector<webrtc::RtpExtension> FilterRtpExtensions(
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);

View file

@ -82,13 +82,11 @@ const char* StreamTypeToString(
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 @@ bool IsScaleFactorsPowerOfTwo(const webrtc::VideoEncoderConfig& config) {
}
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 @@ template <class T>
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 @@ static bool ValidateStreamParams(const StreamParams& sp) {
// 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 @@ void DefaultUnsignalledSsrcHandler::SetDefaultSink(
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 @@ EncoderStreamFactory::EncoderStreamFactory(
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),

View file

@ -94,7 +94,7 @@ class WebRtcVideoEngine : public VideoEngineInterface {
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 @@ class WebRtcVideoEngine : public VideoEngineInterface {
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 @@ class EncoderStreamFactory
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 @@ class EncoderStreamFactory
// layering and various settings.
const bool conference_mode_;
const webrtc::FieldTrialBasedConfig fallback_trials_;
const webrtc::WebRtcKeyValueConfig& trials_;
const webrtc::FieldTrialsView& trials_;
};
} // namespace cricket

View file

@ -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 IsCodec(const AudioCodec& codec, const char* ref_name) {
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 @@ absl::optional<int> ComputeSendBitrate(int max_send_bitrate_bps,
}
}
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 @@ struct AdaptivePtimeConfig {
"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 @@ WebRtcVoiceEngine::WebRtcVoiceEngine(
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),

View file

@ -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 @@ class WebRtcVoiceEngine final : public VoiceEngineInterface {
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;

View file

@ -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 @@ namespace cricket {
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

View file

@ -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 @@ namespace cricket {
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;

View file

@ -118,7 +118,7 @@ rtc_library("red") {
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",

View file

@ -39,8 +39,7 @@ AudioEncoderCopyRed::Config::Config() = default;
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 @@ size_t GetMaxRedundancyFromFieldTrial(
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),

View file

@ -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 @@ class AudioEncoderCopyRed final : public AudioEncoder {
std::unique_ptr<AudioEncoder> speech_encoder;
};
AudioEncoderCopyRed(Config&& config,
const WebRtcKeyValueConfig& field_trials);
AudioEncoderCopyRed(Config&& config, const FieldTrialsView& field_trials);
~AudioEncoderCopyRed() override;

Some files were not shown because too many files have changed in this diff Show more