Use AudioProcessingBuilder everywhere AudioProcessing is created.
The AudioProcessingBuilder was recently introduced in https://webrtc-review.googlesource.com/c/src/+/34651 to make it easier to create APM instances. This CL replaces all calls to the old Create methods with the new AudioProcessingBuilder.
Bug: webrtc:8668
Change-Id: Ibb5f0fc0dbcc85fcf3355b01bec916f20fe0eb67
Reviewed-on: https://webrtc-review.googlesource.com/36082
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21534}
diff --git a/modules/audio_processing/aec_dump/aec_dump_integration_test.cc b/modules/audio_processing/aec_dump/aec_dump_integration_test.cc
index 720e4f5..a7d53b5 100644
--- a/modules/audio_processing/aec_dump/aec_dump_integration_test.cc
+++ b/modules/audio_processing/aec_dump/aec_dump_integration_test.cc
@@ -24,7 +24,7 @@
std::unique_ptr<webrtc::AudioProcessing> CreateAudioProcessing() {
webrtc::Config config;
std::unique_ptr<webrtc::AudioProcessing> apm(
- webrtc::AudioProcessing::Create(config));
+ webrtc::AudioProcessingBuilder().Create(config));
RTC_DCHECK(apm);
return apm;
}
diff --git a/modules/audio_processing/audio_processing_impl_locking_unittest.cc b/modules/audio_processing/audio_processing_impl_locking_unittest.cc
index 6c3bad5..d4cff45 100644
--- a/modules/audio_processing/audio_processing_impl_locking_unittest.cc
+++ b/modules/audio_processing/audio_processing_impl_locking_unittest.cc
@@ -496,7 +496,7 @@
render_thread_(RenderProcessorThreadFunc, this, "render"),
capture_thread_(CaptureProcessorThreadFunc, this, "capture"),
stats_thread_(StatsProcessorThreadFunc, this, "stats"),
- apm_(AudioProcessingImpl::Create()),
+ apm_(AudioProcessingBuilder().Create()),
render_thread_state_(kMaxFrameSize,
&rand_gen_,
&render_call_event_,
diff --git a/modules/audio_processing/audio_processing_performance_unittest.cc b/modules/audio_processing/audio_processing_performance_unittest.cc
index ea01f24..8dd81b2 100644
--- a/modules/audio_processing/audio_processing_performance_unittest.cc
+++ b/modules/audio_processing/audio_processing_performance_unittest.cc
@@ -559,7 +559,7 @@
int num_capture_channels = 1;
switch (simulation_config_.simulation_settings) {
case SettingsType::kDefaultApmMobile: {
- apm_.reset(AudioProcessingImpl::Create());
+ apm_.reset(AudioProcessingBuilder().Create());
ASSERT_TRUE(!!apm_);
set_default_mobile_apm_runtime_settings(apm_.get());
break;
@@ -567,7 +567,7 @@
case SettingsType::kDefaultApmDesktop: {
Config config;
add_default_desktop_config(&config);
- apm_.reset(AudioProcessingImpl::Create(config));
+ apm_.reset(AudioProcessingBuilder().Create(config));
ASSERT_TRUE(!!apm_);
set_default_desktop_apm_runtime_settings(apm_.get());
apm_->SetExtraOptions(config);
@@ -577,7 +577,7 @@
Config config;
add_beamformer_config(&config);
add_default_desktop_config(&config);
- apm_.reset(AudioProcessingImpl::Create(config));
+ apm_.reset(AudioProcessingBuilder().Create(config));
ASSERT_TRUE(!!apm_);
set_default_desktop_apm_runtime_settings(apm_.get());
apm_->SetExtraOptions(config);
@@ -588,14 +588,14 @@
Config config;
config.Set<Intelligibility>(new Intelligibility(true));
add_default_desktop_config(&config);
- apm_.reset(AudioProcessingImpl::Create(config));
+ apm_.reset(AudioProcessingBuilder().Create(config));
ASSERT_TRUE(!!apm_);
set_default_desktop_apm_runtime_settings(apm_.get());
apm_->SetExtraOptions(config);
break;
}
case SettingsType::kAllSubmodulesTurnedOff: {
- apm_.reset(AudioProcessingImpl::Create());
+ apm_.reset(AudioProcessingBuilder().Create());
ASSERT_TRUE(!!apm_);
turn_off_default_apm_runtime_settings(apm_.get());
break;
@@ -604,7 +604,7 @@
Config config;
config.Set<ExtendedFilter>(new ExtendedFilter(true));
config.Set<DelayAgnostic>(new DelayAgnostic(false));
- apm_.reset(AudioProcessingImpl::Create(config));
+ apm_.reset(AudioProcessingBuilder().Create(config));
ASSERT_TRUE(!!apm_);
set_default_desktop_apm_runtime_settings(apm_.get());
apm_->SetExtraOptions(config);
@@ -614,7 +614,7 @@
Config config;
config.Set<ExtendedFilter>(new ExtendedFilter(false));
config.Set<DelayAgnostic>(new DelayAgnostic(true));
- apm_.reset(AudioProcessingImpl::Create(config));
+ apm_.reset(AudioProcessingBuilder().Create(config));
ASSERT_TRUE(!!apm_);
set_default_desktop_apm_runtime_settings(apm_.get());
apm_->SetExtraOptions(config);
diff --git a/modules/audio_processing/audio_processing_unittest.cc b/modules/audio_processing/audio_processing_unittest.cc
index 335f836..a75037b 100644
--- a/modules/audio_processing/audio_processing_unittest.cc
+++ b/modules/audio_processing/audio_processing_unittest.cc
@@ -452,7 +452,7 @@
out_file_(NULL) {
Config config;
config.Set<ExperimentalAgc>(new ExperimentalAgc(false));
- apm_.reset(AudioProcessing::Create(config));
+ apm_.reset(AudioProcessingBuilder().Create(config));
}
void ApmTest::SetUp() {
@@ -1318,7 +1318,10 @@
testing::NiceMock<MockNonlinearBeamformer>* beamformer =
new testing::NiceMock<MockNonlinearBeamformer>(geometry, 1u);
std::unique_ptr<AudioProcessing> apm(
- AudioProcessing::Create(config, nullptr, nullptr, nullptr, beamformer));
+ AudioProcessingBuilder()
+ .SetNonlinearBeamformer(
+ std::unique_ptr<webrtc::NonlinearBeamformer>(beamformer))
+ .Create(config));
EXPECT_EQ(kNoErr, apm->gain_control()->Enable(true));
ChannelBuffer<float> src_buf(kSamplesPerChannel, kNumInputChannels);
ChannelBuffer<float> dest_buf(kSamplesPerChannel, kNumOutputChannels);
@@ -1582,7 +1585,7 @@
auto src_channels = &src[0];
auto dest_channels = &dest[0];
- apm_.reset(AudioProcessing::Create());
+ apm_.reset(AudioProcessingBuilder().Create());
EXPECT_NOERR(apm_->ProcessStream(
&src_channels, kSamples, sample_rate, LayoutFromChannels(1),
sample_rate, LayoutFromChannels(1), &dest_channels));
@@ -1962,7 +1965,8 @@
Config config;
config.Set<ExperimentalAgc>(new ExperimentalAgc(false));
- std::unique_ptr<AudioProcessing> fapm(AudioProcessing::Create(config));
+ std::unique_ptr<AudioProcessing> fapm(
+ AudioProcessingBuilder().Create(config));
EnableAllComponents();
EnableAllAPComponents(fapm.get());
for (int i = 0; i < ref_data.test_size(); i++) {
@@ -2114,7 +2118,7 @@
config.Set<ExperimentalAgc>(new ExperimentalAgc(false));
config.Set<ExtendedFilter>(
new ExtendedFilter(test->use_aec_extended_filter()));
- apm_.reset(AudioProcessing::Create(config));
+ apm_.reset(AudioProcessingBuilder().Create(config));
EnableAllComponents();
@@ -2329,7 +2333,7 @@
{AudioProcessing::kStereoAndKeyboard, AudioProcessing::kStereo},
};
- std::unique_ptr<AudioProcessing> ap(AudioProcessing::Create());
+ std::unique_ptr<AudioProcessing> ap(AudioProcessingBuilder().Create());
// Enable one component just to ensure some processing takes place.
ap->noise_suppression()->Enable(true);
for (size_t i = 0; i < arraysize(cf); ++i) {
@@ -2458,7 +2462,8 @@
const std::string& output_file_prefix) {
Config config;
config.Set<ExperimentalAgc>(new ExperimentalAgc(false));
- std::unique_ptr<AudioProcessing> ap(AudioProcessing::Create(config));
+ std::unique_ptr<AudioProcessing> ap(
+ AudioProcessingBuilder().Create(config));
EnableAllAPComponents(ap.get());
ProcessingConfig processing_config = {
@@ -2935,8 +2940,10 @@
new testing::NiceMock<test::MockCustomProcessing>();
auto mock_pre_processor =
std::unique_ptr<CustomProcessing>(mock_pre_processor_ptr);
- rtc::scoped_refptr<AudioProcessing> apm = AudioProcessing::Create(
- webrtc_config, nullptr, std::move(mock_pre_processor), nullptr, nullptr);
+ rtc::scoped_refptr<AudioProcessing> apm =
+ AudioProcessingBuilder()
+ .SetRenderPreProcessing(std::move(mock_pre_processor))
+ .Create(webrtc_config);
AudioFrame audio;
audio.num_channels_ = 1;
@@ -2982,7 +2989,8 @@
old_config.Set<ExtendedFilter>(new ExtendedFilter(true));
old_config.Set<DelayAgnostic>(new DelayAgnostic(true));
}
- std::unique_ptr<AudioProcessing> apm(AudioProcessing::Create(old_config));
+ std::unique_ptr<AudioProcessing> apm(
+ AudioProcessingBuilder().Create(old_config));
if (!apm) {
return apm;
}
diff --git a/modules/audio_processing/echo_cancellation_impl_unittest.cc b/modules/audio_processing/echo_cancellation_impl_unittest.cc
index 2b9e5c5..ec30abc 100644
--- a/modules/audio_processing/echo_cancellation_impl_unittest.cc
+++ b/modules/audio_processing/echo_cancellation_impl_unittest.cc
@@ -17,7 +17,7 @@
namespace webrtc {
TEST(EchoCancellationInternalTest, ExtendedFilter) {
- std::unique_ptr<AudioProcessing> ap(AudioProcessing::Create());
+ std::unique_ptr<AudioProcessing> ap(AudioProcessingBuilder().Create());
EXPECT_TRUE(ap->echo_cancellation()->aec_core() == NULL);
EXPECT_EQ(ap->kNoError, ap->echo_cancellation()->Enable(true));
@@ -47,7 +47,7 @@
}
TEST(EchoCancellationInternalTest, DelayAgnostic) {
- std::unique_ptr<AudioProcessing> ap(AudioProcessing::Create());
+ std::unique_ptr<AudioProcessing> ap(AudioProcessingBuilder().Create());
EXPECT_TRUE(ap->echo_cancellation()->aec_core() == NULL);
EXPECT_EQ(ap->kNoError, ap->echo_cancellation()->Enable(true));
diff --git a/modules/audio_processing/include/audio_processing.h b/modules/audio_processing/include/audio_processing.h
index 2e4fd0e..60bf0c7 100644
--- a/modules/audio_processing/include/audio_processing.h
+++ b/modules/audio_processing/include/audio_processing.h
@@ -112,7 +112,7 @@
// microphone volume is set too low. The value is clamped to its operating range
// [12, 255]. Here, 255 maps to 100%.
//
-// Must be provided through AudioProcessing::Create(Confg&).
+// Must be provided through AudioProcessingBuilder().Create(config).
#if defined(WEBRTC_CHROMIUM_BUILD)
static const int kAgcStartupMinVolume = 85;
#else
@@ -205,7 +205,7 @@
// data.
//
// Usage example, omitting error checking:
-// AudioProcessing* apm = AudioProcessing::Create(0);
+// AudioProcessing* apm = AudioProcessingBuilder().Create();
//
// AudioProcessing::Config config;
// config.level_controller.enabled = true;
diff --git a/modules/audio_processing/level_controller/level_controller_complexity_unittest.cc b/modules/audio_processing/level_controller/level_controller_complexity_unittest.cc
index 7d61cff..83f6725 100644
--- a/modules/audio_processing/level_controller/level_controller_complexity_unittest.cc
+++ b/modules/audio_processing/level_controller/level_controller_complexity_unittest.cc
@@ -86,7 +86,7 @@
apm_config.residual_echo_detector.enabled = include_default_apm_processing;
std::unique_ptr<AudioProcessing> apm;
- apm.reset(AudioProcessing::Create(config));
+ apm.reset(AudioProcessingBuilder().Create(config));
ASSERT_TRUE(apm.get());
apm->ApplyConfig(apm_config);
diff --git a/modules/audio_processing/test/audio_processing_simulator.cc b/modules/audio_processing/test/audio_processing_simulator.cc
index 2477a1f..a72ac1c 100644
--- a/modules/audio_processing/test/audio_processing_simulator.cc
+++ b/modules/audio_processing/test/audio_processing_simulator.cc
@@ -348,8 +348,9 @@
apm_config.residual_echo_detector.enabled = *settings_.use_ed;
}
- ap_.reset(AudioProcessing::Create(config, nullptr, nullptr,
- std::move(echo_control_factory), nullptr));
+ ap_.reset(AudioProcessingBuilder()
+ .SetEchoControlFactory(std::move(echo_control_factory))
+ .Create(config));
RTC_CHECK(ap_);
ap_->ApplyConfig(apm_config);
diff --git a/modules/audio_processing/test/debug_dump_replayer.cc b/modules/audio_processing/test/debug_dump_replayer.cc
index a027d07..262f347 100644
--- a/modules/audio_processing/test/debug_dump_replayer.cc
+++ b/modules/audio_processing/test/debug_dump_replayer.cc
@@ -193,7 +193,7 @@
// We only create APM once, since changes on these fields should not
// happen in current implementation.
if (!apm_.get()) {
- apm_.reset(AudioProcessing::Create(config));
+ apm_.reset(AudioProcessingBuilder().Create(config));
}
}
diff --git a/modules/audio_processing/test/debug_dump_test.cc b/modules/audio_processing/test/debug_dump_test.cc
index b901fd0..69231b2 100644
--- a/modules/audio_processing/test/debug_dump_test.cc
+++ b/modules/audio_processing/test/debug_dump_test.cc
@@ -139,15 +139,14 @@
output_(new ChannelBuffer<float>(output_config_.num_frames(),
output_config_.num_channels())),
worker_queue_("debug_dump_generator_worker_queue"),
- apm_(AudioProcessing::Create(
- config,
- nullptr,
- nullptr,
- (enable_aec3 ? std::unique_ptr<EchoControlFactory>(
- new EchoCanceller3Factory())
- : nullptr),
- nullptr)),
- dump_file_name_(dump_file_name) {}
+ dump_file_name_(dump_file_name) {
+ AudioProcessingBuilder apm_builder;
+ if (enable_aec3) {
+ apm_builder.SetEchoControlFactory(
+ std::unique_ptr<EchoControlFactory>(new EchoCanceller3Factory()));
+ }
+ apm_.reset(apm_builder.Create(config));
+}
DebugDumpGenerator::DebugDumpGenerator(
const Config& config,