mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 05:40:42 +01:00
Remove unused audio options and corresponding media constraints
- experimental AGC (aka googAutoGainControl2) removed in [1] - experimental NS (aka googNoiseSuppression2) removed in [2] - typing noise detection (aka googTypingNoiseDetection) removed in [3] - cricket::AudioOptions::tx_agc_ are unused [1] https://webrtc-review.googlesource.com/c/src/+/219463 [2] https://webrtc-review.googlesource.com/c/src/+/232128 [3] https://chromium-review.googlesource.com/c/chromium/src/+/1617352 Bug: webrtc:11226 Change-Id: Id1ecef3d3e193c210fc11832e16db4f84d866d14 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/250680 Reviewed-by: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Sam Zackrisson <saza@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/main@{#35987}
This commit is contained in:
parent
63472e5aea
commit
93348d89bc
7 changed files with 3 additions and 124 deletions
|
@ -55,13 +55,7 @@ void AudioOptions::SetAll(const AudioOptions& change) {
|
|||
SetFrom(&audio_jitter_buffer_enable_rtx_handling,
|
||||
change.audio_jitter_buffer_enable_rtx_handling);
|
||||
SetFrom(&typing_detection, change.typing_detection);
|
||||
SetFrom(&experimental_agc, change.experimental_agc);
|
||||
SetFrom(&experimental_ns, change.experimental_ns);
|
||||
SetFrom(&residual_echo_detector, change.residual_echo_detector);
|
||||
SetFrom(&tx_agc_target_dbov, change.tx_agc_target_dbov);
|
||||
SetFrom(&tx_agc_digital_compression_gain,
|
||||
change.tx_agc_digital_compression_gain);
|
||||
SetFrom(&tx_agc_limiter, change.tx_agc_limiter);
|
||||
SetFrom(&combined_audio_video_bwe, change.combined_audio_video_bwe);
|
||||
SetFrom(&audio_network_adaptor, change.audio_network_adaptor);
|
||||
SetFrom(&audio_network_adaptor_config, change.audio_network_adaptor_config);
|
||||
|
@ -85,12 +79,7 @@ bool AudioOptions::operator==(const AudioOptions& o) const {
|
|||
audio_jitter_buffer_enable_rtx_handling ==
|
||||
o.audio_jitter_buffer_enable_rtx_handling &&
|
||||
typing_detection == o.typing_detection &&
|
||||
experimental_agc == o.experimental_agc &&
|
||||
experimental_ns == o.experimental_ns &&
|
||||
residual_echo_detector == o.residual_echo_detector &&
|
||||
tx_agc_target_dbov == o.tx_agc_target_dbov &&
|
||||
tx_agc_digital_compression_gain == o.tx_agc_digital_compression_gain &&
|
||||
tx_agc_limiter == o.tx_agc_limiter &&
|
||||
combined_audio_video_bwe == o.combined_audio_video_bwe &&
|
||||
audio_network_adaptor == o.audio_network_adaptor &&
|
||||
audio_network_adaptor_config == o.audio_network_adaptor_config &&
|
||||
|
@ -119,13 +108,7 @@ std::string AudioOptions::ToString() const {
|
|||
ToStringIfSet(&result, "audio_jitter_buffer_enable_rtx_handling",
|
||||
audio_jitter_buffer_enable_rtx_handling);
|
||||
ToStringIfSet(&result, "typing", typing_detection);
|
||||
ToStringIfSet(&result, "experimental_agc", experimental_agc);
|
||||
ToStringIfSet(&result, "experimental_ns", experimental_ns);
|
||||
ToStringIfSet(&result, "residual_echo_detector", residual_echo_detector);
|
||||
ToStringIfSet(&result, "tx_agc_target_dbov", tx_agc_target_dbov);
|
||||
ToStringIfSet(&result, "tx_agc_digital_compression_gain",
|
||||
tx_agc_digital_compression_gain);
|
||||
ToStringIfSet(&result, "tx_agc_limiter", tx_agc_limiter);
|
||||
ToStringIfSet(&result, "combined_audio_video_bwe", combined_audio_video_bwe);
|
||||
ToStringIfSet(&result, "audio_network_adaptor", audio_network_adaptor);
|
||||
ToStringIfSet(&result, "init_recording_on_send", init_recording_on_send);
|
||||
|
|
|
@ -64,16 +64,10 @@ struct RTC_EXPORT AudioOptions {
|
|||
// TODO(bugs.webrtc.org/11226): Remove.
|
||||
// Audio processing to detect typing.
|
||||
absl::optional<bool> typing_detection;
|
||||
absl::optional<bool> experimental_agc;
|
||||
absl::optional<bool> experimental_ns;
|
||||
// TODO(bugs.webrtc.org/11539): Deprecated, replaced by
|
||||
// webrtc::CreateEchoDetector() and injection when creating the audio
|
||||
// processing module.
|
||||
absl::optional<bool> residual_echo_detector;
|
||||
// Note that tx_agc_* only applies to non-experimental AGC.
|
||||
absl::optional<uint16_t> tx_agc_target_dbov;
|
||||
absl::optional<uint16_t> tx_agc_digital_compression_gain;
|
||||
absl::optional<bool> tx_agc_limiter;
|
||||
// Enable combined audio+bandwidth BWE.
|
||||
// TODO(pthatcher): This flag is set from the
|
||||
// "googCombinedAudioVideoBwe", but not used anywhere. So delete it,
|
||||
|
|
|
@ -404,14 +404,12 @@ void WebRtcVoiceEngine::Init() {
|
|||
options.noise_suppression = true;
|
||||
options.typing_detection = true;
|
||||
#endif
|
||||
options.experimental_ns = false;
|
||||
options.highpass_filter = true;
|
||||
options.stereo_swapping = false;
|
||||
options.audio_jitter_buffer_max_packets = 200;
|
||||
options.audio_jitter_buffer_fast_accelerate = false;
|
||||
options.audio_jitter_buffer_min_delay_ms = 0;
|
||||
options.audio_jitter_buffer_enable_rtx_handling = false;
|
||||
options.experimental_agc = false;
|
||||
bool error = ApplyOptions(options);
|
||||
RTC_DCHECK(error);
|
||||
}
|
||||
|
@ -464,17 +462,14 @@ bool WebRtcVoiceEngine::ApplyOptions(const AudioOptions& options_in) {
|
|||
// Override noise suppression options for Android.
|
||||
#if defined(WEBRTC_ANDROID)
|
||||
options.typing_detection = false;
|
||||
options.experimental_ns = false;
|
||||
#endif
|
||||
|
||||
// Set and adjust gain control options.
|
||||
#if defined(WEBRTC_IOS)
|
||||
// On iOS, VPIO provides built-in AGC.
|
||||
options.auto_gain_control = false;
|
||||
options.experimental_agc = false;
|
||||
RTC_LOG(LS_INFO) << "Always disable AGC on iOS. Use built-in instead.";
|
||||
#elif defined(WEBRTC_ANDROID)
|
||||
options.experimental_agc = false;
|
||||
#endif
|
||||
|
||||
#if defined(WEBRTC_IOS) || defined(WEBRTC_ANDROID)
|
||||
|
@ -582,18 +577,8 @@ bool WebRtcVoiceEngine::ApplyOptions(const AudioOptions& options_in) {
|
|||
return true;
|
||||
}
|
||||
|
||||
if (options.experimental_ns) {
|
||||
experimental_ns_ = options.experimental_ns;
|
||||
}
|
||||
|
||||
webrtc::AudioProcessing::Config apm_config = ap->GetConfig();
|
||||
|
||||
#if !(defined(WEBRTC_ANDROID) || defined(WEBRTC_IOS))
|
||||
if (experimental_ns_.has_value()) {
|
||||
apm_config.transient_suppression.enabled = experimental_ns_.value();
|
||||
}
|
||||
#endif
|
||||
|
||||
if (options.echo_cancellation) {
|
||||
apm_config.echo_canceller.enabled = *options.echo_cancellation;
|
||||
apm_config.echo_canceller.mobile_mode = use_mobile_software_aec;
|
||||
|
@ -610,16 +595,6 @@ bool WebRtcVoiceEngine::ApplyOptions(const AudioOptions& options_in) {
|
|||
apm_config.gain_controller1.kAdaptiveAnalog;
|
||||
#endif
|
||||
}
|
||||
if (options.tx_agc_target_dbov) {
|
||||
apm_config.gain_controller1.target_level_dbfs = *options.tx_agc_target_dbov;
|
||||
}
|
||||
if (options.tx_agc_digital_compression_gain) {
|
||||
apm_config.gain_controller1.compression_gain_db =
|
||||
*options.tx_agc_digital_compression_gain;
|
||||
}
|
||||
if (options.tx_agc_limiter) {
|
||||
apm_config.gain_controller1.enable_limiter = *options.tx_agc_limiter;
|
||||
}
|
||||
|
||||
if (options.highpass_filter) {
|
||||
apm_config.high_pass_filter.enabled = *options.highpass_filter;
|
||||
|
|
|
@ -124,9 +124,6 @@ class WebRtcVoiceEngine final : public VoiceEngineInterface {
|
|||
bool is_dumping_aec_ = false;
|
||||
bool initialized_ = false;
|
||||
|
||||
// Cache experimental_ns and apply in case they are missing in the audio
|
||||
// options.
|
||||
absl::optional<bool> experimental_ns_;
|
||||
// Jitter buffer settings for new streams.
|
||||
size_t audio_jitter_buffer_max_packets_ = 200;
|
||||
bool audio_jitter_buffer_fast_accelerate_ = false;
|
||||
|
|
|
@ -2474,58 +2474,6 @@ TEST_P(WebRtcVoiceEngineTestFake, PlayoutWithMultipleStreams) {
|
|||
EXPECT_TRUE(channel_->RemoveRecvStream(kSsrcY));
|
||||
}
|
||||
|
||||
TEST_P(WebRtcVoiceEngineTestFake, TxAgcConfigViaOptions) {
|
||||
EXPECT_TRUE(SetupSendStream());
|
||||
EXPECT_CALL(*adm_, BuiltInAGCIsAvailable())
|
||||
.Times(::testing::AtLeast(1))
|
||||
.WillRepeatedly(Return(false));
|
||||
|
||||
if (!use_null_apm_) {
|
||||
// Ensure default options.
|
||||
VerifyGainControlEnabledCorrectly();
|
||||
VerifyGainControlDefaultSettings();
|
||||
}
|
||||
|
||||
const auto& agc_config = apm_config_.gain_controller1;
|
||||
|
||||
send_parameters_.options.auto_gain_control = false;
|
||||
SetSendParameters(send_parameters_);
|
||||
if (!use_null_apm_) {
|
||||
EXPECT_FALSE(agc_config.enabled);
|
||||
}
|
||||
send_parameters_.options.auto_gain_control = absl::nullopt;
|
||||
|
||||
send_parameters_.options.tx_agc_target_dbov = 5;
|
||||
SetSendParameters(send_parameters_);
|
||||
if (!use_null_apm_) {
|
||||
EXPECT_EQ(5, agc_config.target_level_dbfs);
|
||||
}
|
||||
send_parameters_.options.tx_agc_target_dbov = absl::nullopt;
|
||||
|
||||
send_parameters_.options.tx_agc_digital_compression_gain = 10;
|
||||
SetSendParameters(send_parameters_);
|
||||
if (!use_null_apm_) {
|
||||
EXPECT_EQ(10, agc_config.compression_gain_db);
|
||||
}
|
||||
send_parameters_.options.tx_agc_digital_compression_gain = absl::nullopt;
|
||||
|
||||
send_parameters_.options.tx_agc_limiter = false;
|
||||
SetSendParameters(send_parameters_);
|
||||
if (!use_null_apm_) {
|
||||
EXPECT_FALSE(agc_config.enable_limiter);
|
||||
}
|
||||
send_parameters_.options.tx_agc_limiter = absl::nullopt;
|
||||
|
||||
SetSendParameters(send_parameters_);
|
||||
if (!use_null_apm_) {
|
||||
// Expect all options to have been preserved.
|
||||
EXPECT_FALSE(agc_config.enabled);
|
||||
EXPECT_EQ(5, agc_config.target_level_dbfs);
|
||||
EXPECT_EQ(10, agc_config.compression_gain_db);
|
||||
EXPECT_FALSE(agc_config.enable_limiter);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_P(WebRtcVoiceEngineTestFake, SetAudioNetworkAdaptorViaOptions) {
|
||||
EXPECT_TRUE(SetupSendStream());
|
||||
send_parameters_.options.audio_network_adaptor = true;
|
||||
|
|
|
@ -95,14 +95,8 @@ const char MediaConstraints::kValueFalse[] = "false";
|
|||
// Audio constraints.
|
||||
const char MediaConstraints::kGoogEchoCancellation[] = "googEchoCancellation";
|
||||
const char MediaConstraints::kAutoGainControl[] = "googAutoGainControl";
|
||||
const char MediaConstraints::kExperimentalAutoGainControl[] =
|
||||
"googAutoGainControl2";
|
||||
const char MediaConstraints::kNoiseSuppression[] = "googNoiseSuppression";
|
||||
const char MediaConstraints::kExperimentalNoiseSuppression[] =
|
||||
"googNoiseSuppression2";
|
||||
const char MediaConstraints::kHighpassFilter[] = "googHighpassFilter";
|
||||
const char MediaConstraints::kTypingNoiseDetection[] =
|
||||
"googTypingNoiseDetection";
|
||||
const char MediaConstraints::kAudioMirroring[] = "googAudioMirroring";
|
||||
const char MediaConstraints::kAudioNetworkAdaptorConfig[] =
|
||||
"googAudioNetworkAdaptorConfig";
|
||||
|
@ -190,19 +184,10 @@ void CopyConstraintsIntoAudioOptions(const MediaConstraints* constraints,
|
|||
&options->echo_cancellation);
|
||||
ConstraintToOptional<bool>(constraints, MediaConstraints::kAutoGainControl,
|
||||
&options->auto_gain_control);
|
||||
ConstraintToOptional<bool>(constraints,
|
||||
MediaConstraints::kExperimentalAutoGainControl,
|
||||
&options->experimental_agc);
|
||||
ConstraintToOptional<bool>(constraints, MediaConstraints::kNoiseSuppression,
|
||||
&options->noise_suppression);
|
||||
ConstraintToOptional<bool>(constraints,
|
||||
MediaConstraints::kExperimentalNoiseSuppression,
|
||||
&options->experimental_ns);
|
||||
ConstraintToOptional<bool>(constraints, MediaConstraints::kHighpassFilter,
|
||||
&options->highpass_filter);
|
||||
ConstraintToOptional<bool>(constraints,
|
||||
MediaConstraints::kTypingNoiseDetection,
|
||||
&options->typing_detection);
|
||||
ConstraintToOptional<bool>(constraints, MediaConstraints::kAudioMirroring,
|
||||
&options->stereo_swapping);
|
||||
ConstraintToOptional<std::string>(
|
||||
|
|
|
@ -59,12 +59,9 @@ class MediaConstraints {
|
|||
// These keys are google specific.
|
||||
static const char kGoogEchoCancellation[]; // googEchoCancellation
|
||||
|
||||
static const char kAutoGainControl[]; // googAutoGainControl
|
||||
static const char kExperimentalAutoGainControl[]; // googAutoGainControl2
|
||||
static const char kNoiseSuppression[]; // googNoiseSuppression
|
||||
static const char kExperimentalNoiseSuppression[]; // googNoiseSuppression2
|
||||
static const char kHighpassFilter[]; // googHighpassFilter
|
||||
static const char kTypingNoiseDetection[]; // googTypingNoiseDetection
|
||||
static const char kAutoGainControl[]; // googAutoGainControl
|
||||
static const char kNoiseSuppression[]; // googNoiseSuppression
|
||||
static const char kHighpassFilter[]; // googHighpassFilter
|
||||
static const char kAudioMirroring[]; // googAudioMirroring
|
||||
static const char
|
||||
kAudioNetworkAdaptorConfig[]; // googAudioNetworkAdaptorConfig
|
||||
|
|
Loading…
Reference in a new issue