Rename AudioProcessingFactory to Builder

To stress there is no intention to use each instance more than once.

Bug: webrtc:369904700
Change-Id: Id53ad804f39f8ee596ec0b45ff15393009fdfab0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/366640
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43324}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 6c3b397..b38e6b0 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -99,7 +99,7 @@
       "audio:audio_device",
       "audio:audio_mixer_api",
       "audio:audio_processing",
-      "audio:builtin_audio_processing_factory",
+      "audio:builtin_audio_processing_builder",
       "audio_codecs:audio_codecs_api",
       "video_codecs:video_codecs_api",
     ]
diff --git a/api/audio/BUILD.gn b/api/audio/BUILD.gn
index d4b3b93..3269d11 100644
--- a/api/audio/BUILD.gn
+++ b/api/audio/BUILD.gn
@@ -85,12 +85,12 @@
   ]
 }
 
-rtc_library("builtin_audio_processing_factory") {
+rtc_library("builtin_audio_processing_builder") {
   visibility = [ "*" ]
   configs += [ "../../modules/audio_processing:apm_debug_dump" ]
   sources = [
-    "builtin_audio_processing_factory.cc",
-    "builtin_audio_processing_factory.h",
+    "builtin_audio_processing_builder.cc",
+    "builtin_audio_processing_builder.h",
   ]
   deps = [
     ":audio_processing",
@@ -169,11 +169,11 @@
     testonly = true
     sources = [
       "audio_processing_unittest.cc",
-      "builtin_audio_processing_factory_unittest.cc",
+      "builtin_audio_processing_builder_unittest.cc",
     ]
     deps = [
       ":audio_processing",
-      ":builtin_audio_processing_factory",
+      ":builtin_audio_processing_builder",
       "..:make_ref_counted",
       "..:scoped_refptr",
       "../../modules/audio_processing:mocks",
diff --git a/api/audio/audio_processing.cc b/api/audio/audio_processing.cc
index 793c1a6..52023a5 100644
--- a/api/audio/audio_processing.cc
+++ b/api/audio/audio_processing.cc
@@ -214,16 +214,17 @@
   return builder.str();
 }
 
-absl::Nonnull<std::unique_ptr<AudioProcessingFactory>> CustomAudioProcessing(
+absl::Nonnull<std::unique_ptr<AudioProcessingBuilderInterface>>
+CustomAudioProcessing(
     absl::Nonnull<scoped_refptr<AudioProcessing>> audio_processing) {
-  class Factory : public AudioProcessingFactory {
+  class Builder : public AudioProcessingBuilderInterface {
    public:
-    explicit Factory(absl::Nonnull<scoped_refptr<AudioProcessing>> ap)
+    explicit Builder(absl::Nonnull<scoped_refptr<AudioProcessing>> ap)
         : ap_(std::move(ap)) {}
 
-    absl::Nullable<scoped_refptr<AudioProcessing>> Create(
+    absl::Nullable<scoped_refptr<AudioProcessing>> Build(
         const Environment& /*env*/) override {
-      return ap_;
+      return std::move(ap_);
     }
 
    private:
@@ -231,7 +232,7 @@
   };
 
   RTC_CHECK(audio_processing);
-  return std::make_unique<Factory>(std::move(audio_processing));
+  return std::make_unique<Builder>(std::move(audio_processing));
 }
 
 }  // namespace webrtc
diff --git a/api/audio/audio_processing.h b/api/audio/audio_processing.h
index 99498a4..fefef30 100644
--- a/api/audio/audio_processing.h
+++ b/api/audio/audio_processing.h
@@ -734,20 +734,21 @@
   static int GetFrameSize(int sample_rate_hz) { return sample_rate_hz / 100; }
 };
 
-class AudioProcessingFactory {
+class AudioProcessingBuilderInterface {
  public:
-  virtual ~AudioProcessingFactory() = default;
+  virtual ~AudioProcessingBuilderInterface() = default;
 
-  virtual absl::Nullable<scoped_refptr<AudioProcessing>> Create(
+  virtual absl::Nullable<scoped_refptr<AudioProcessing>> Build(
       const Environment& env) = 0;
 };
 
-// Returns factory that always returns the same `audio_processing` ignoring the
-// extra construction parameter `env`.
+// Returns builder that returns the `audio_processing` ignoring the extra
+// construction parameter `env`.
 // nullptr `audio_processing` is not supported as in some scenarios that imply
 // no audio processing, while in others - default builtin audio processing.
 // Callers should be explicit which of these two behaviors they want.
-absl::Nonnull<std::unique_ptr<AudioProcessingFactory>> CustomAudioProcessing(
+absl::Nonnull<std::unique_ptr<AudioProcessingBuilderInterface>>
+CustomAudioProcessing(
     absl::Nonnull<scoped_refptr<AudioProcessing>> audio_processing);
 
 // Experimental interface for a custom analysis submodule.
@@ -780,7 +781,7 @@
 };
 
 // TODO: bugs.webrtc.org/369904700 - Deprecate and remove in favor of the
-// BuiltinAudioProcessingFactory.
+// BuiltinAudioProcessingBuilder.
 class RTC_EXPORT AudioProcessingBuilder {
  public:
   AudioProcessingBuilder();
diff --git a/api/audio/audio_processing_unittest.cc b/api/audio/audio_processing_unittest.cc
index 92b4471..347d8b1 100644
--- a/api/audio/audio_processing_unittest.cc
+++ b/api/audio/audio_processing_unittest.cc
@@ -24,15 +24,15 @@
 using ::testing::_;
 using ::testing::NotNull;
 
-TEST(CustomAudioProcessingTest, ReturnsTheSameAudioProcessing) {
+TEST(CustomAudioProcessingTest, ReturnsPassedAudioProcessing) {
   scoped_refptr<AudioProcessing> ap =
       make_ref_counted<test::MockAudioProcessing>();
 
-  std::unique_ptr<AudioProcessingFactory> factory = CustomAudioProcessing(ap);
+  std::unique_ptr<AudioProcessingBuilderInterface> builder =
+      CustomAudioProcessing(ap);
 
-  ASSERT_THAT(factory, NotNull());
-  EXPECT_EQ(factory->Create(CreateEnvironment()), ap);
-  EXPECT_EQ(factory->Create(CreateEnvironment()), ap);
+  ASSERT_THAT(builder, NotNull());
+  EXPECT_EQ(builder->Build(CreateEnvironment()), ap);
 }
 
 #if GTEST_HAS_DEATH_TEST
diff --git a/api/audio/builtin_audio_processing_factory.cc b/api/audio/builtin_audio_processing_builder.cc
similarity index 78%
rename from api/audio/builtin_audio_processing_factory.cc
rename to api/audio/builtin_audio_processing_builder.cc
index 810d310..fdc03eb 100644
--- a/api/audio/builtin_audio_processing_factory.cc
+++ b/api/audio/builtin_audio_processing_builder.cc
@@ -7,7 +7,7 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 
 #include <utility>
 
@@ -22,14 +22,7 @@
 namespace webrtc {
 
 absl::Nullable<scoped_refptr<AudioProcessing>>
-BuiltinAudioProcessingFactory::Create(const Environment& /*env*/) {
-  if (called_create_) {
-    RTC_DLOG(LS_ERROR)
-        << "Calling BuiltinAudioProcessingFactory::Create more than once "
-           "is currently unsupported.";
-  }
-  called_create_ = true;
-
+BuiltinAudioProcessingBuilder::Build(const Environment& /*env*/) {
   // TODO: bugs.webrtc.org/369904700 - Pass `env` when AudioProcessingImpl gets
   // constructor that accepts it.
   return make_ref_counted<AudioProcessingImpl>(
diff --git a/api/audio/builtin_audio_processing_factory.h b/api/audio/builtin_audio_processing_builder.h
similarity index 67%
rename from api/audio/builtin_audio_processing_factory.h
rename to api/audio/builtin_audio_processing_builder.h
index 041c801..d7d606c 100644
--- a/api/audio/builtin_audio_processing_factory.h
+++ b/api/audio/builtin_audio_processing_builder.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef API_AUDIO_BUILTIN_AUDIO_PROCESSING_FACTORY_H_
-#define API_AUDIO_BUILTIN_AUDIO_PROCESSING_FACTORY_H_
+#ifndef API_AUDIO_BUILTIN_AUDIO_PROCESSING_BUILDER_H_
+#define API_AUDIO_BUILTIN_AUDIO_PROCESSING_BUILDER_H_
 
 #include <memory>
 #include <utility>
@@ -23,53 +23,54 @@
 
 namespace webrtc {
 
-class RTC_EXPORT BuiltinAudioProcessingFactory : public AudioProcessingFactory {
+class RTC_EXPORT BuiltinAudioProcessingBuilder
+    : public AudioProcessingBuilderInterface {
  public:
-  BuiltinAudioProcessingFactory() = default;
-  explicit BuiltinAudioProcessingFactory(const AudioProcessing::Config& config)
+  BuiltinAudioProcessingBuilder() = default;
+  explicit BuiltinAudioProcessingBuilder(const AudioProcessing::Config& config)
       : config_(config) {}
-  BuiltinAudioProcessingFactory(const BuiltinAudioProcessingFactory&) = delete;
-  BuiltinAudioProcessingFactory& operator=(
-      const BuiltinAudioProcessingFactory&) = delete;
-  ~BuiltinAudioProcessingFactory() override = default;
+  BuiltinAudioProcessingBuilder(const BuiltinAudioProcessingBuilder&) = delete;
+  BuiltinAudioProcessingBuilder& operator=(
+      const BuiltinAudioProcessingBuilder&) = delete;
+  ~BuiltinAudioProcessingBuilder() override = default;
 
   // Sets the APM configuration.
-  BuiltinAudioProcessingFactory& SetConfig(
+  BuiltinAudioProcessingBuilder& SetConfig(
       const AudioProcessing::Config& config) {
     config_ = config;
     return *this;
   }
 
   // Sets the echo controller factory to inject when APM is created.
-  BuiltinAudioProcessingFactory& SetEchoControlFactory(
+  BuiltinAudioProcessingBuilder& SetEchoControlFactory(
       std::unique_ptr<EchoControlFactory> echo_control_factory) {
     echo_control_factory_ = std::move(echo_control_factory);
     return *this;
   }
 
   // Sets the capture post-processing sub-module to inject when APM is created.
-  BuiltinAudioProcessingFactory& SetCapturePostProcessing(
+  BuiltinAudioProcessingBuilder& SetCapturePostProcessing(
       std::unique_ptr<CustomProcessing> capture_post_processing) {
     capture_post_processing_ = std::move(capture_post_processing);
     return *this;
   }
 
   // Sets the render pre-processing sub-module to inject when APM is created.
-  BuiltinAudioProcessingFactory& SetRenderPreProcessing(
+  BuiltinAudioProcessingBuilder& SetRenderPreProcessing(
       std::unique_ptr<CustomProcessing> render_pre_processing) {
     render_pre_processing_ = std::move(render_pre_processing);
     return *this;
   }
 
   // Sets the echo detector to inject when APM is created.
-  BuiltinAudioProcessingFactory& SetEchoDetector(
+  BuiltinAudioProcessingBuilder& SetEchoDetector(
       rtc::scoped_refptr<EchoDetector> echo_detector) {
     echo_detector_ = std::move(echo_detector);
     return *this;
   }
 
   // Sets the capture analyzer sub-module to inject when APM is created.
-  BuiltinAudioProcessingFactory& SetCaptureAnalyzer(
+  BuiltinAudioProcessingBuilder& SetCaptureAnalyzer(
       std::unique_ptr<CustomAudioAnalyzer> capture_analyzer) {
     capture_analyzer_ = std::move(capture_analyzer);
     return *this;
@@ -77,14 +78,11 @@
 
   // Creates an APM instance with the specified config or the default one if
   // unspecified. Injects the specified components transferring the ownership
-  // to the newly created APM instance. This implementation of the
-  // AudioProcessingFactory interface is not designed to be used more than once.
-  // Calling `Create` second time would return an unspecified object.
-  absl::Nullable<scoped_refptr<AudioProcessing>> Create(
+  // to the newly created APM instance.
+  absl::Nullable<scoped_refptr<AudioProcessing>> Build(
       const Environment& env) override;
 
  private:
-  bool called_create_ = false;
   AudioProcessing::Config config_;
   std::unique_ptr<EchoControlFactory> echo_control_factory_;
   std::unique_ptr<CustomProcessing> capture_post_processing_;
@@ -95,4 +93,4 @@
 
 }  // namespace webrtc
 
-#endif  // API_AUDIO_BUILTIN_AUDIO_PROCESSING_FACTORY_H_
+#endif  // API_AUDIO_BUILTIN_AUDIO_PROCESSING_BUILDER_H_
diff --git a/api/audio/builtin_audio_processing_factory_unittest.cc b/api/audio/builtin_audio_processing_builder_unittest.cc
similarity index 76%
rename from api/audio/builtin_audio_processing_factory_unittest.cc
rename to api/audio/builtin_audio_processing_builder_unittest.cc
index a611213..4a3b953 100644
--- a/api/audio/builtin_audio_processing_factory_unittest.cc
+++ b/api/audio/builtin_audio_processing_builder_unittest.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 
 #include "api/audio/audio_processing.h"
 #include "api/environment/environment.h"
@@ -21,25 +21,25 @@
 
 using ::testing::NotNull;
 
-TEST(BuiltinAudioProcessingFactoryTest, CreatesWithDefaults) {
-  EXPECT_THAT(BuiltinAudioProcessingFactory().Create(CreateEnvironment()),
+TEST(BuiltinAudioProcessingBuilderTest, CreatesWithDefaults) {
+  EXPECT_THAT(BuiltinAudioProcessingBuilder().Build(CreateEnvironment()),
               NotNull());
 }
 
-TEST(BuiltinAudioProcessingFactoryTest, CreatesWithConfig) {
+TEST(BuiltinAudioProcessingBuilderTest, CreatesWithConfig) {
   const Environment env = CreateEnvironment();
   AudioProcessing::Config config;
   // Change a field to make config different to default one.
   config.gain_controller1.enabled = !config.gain_controller1.enabled;
 
   scoped_refptr<AudioProcessing> ap1 =
-      BuiltinAudioProcessingFactory(config).Create(env);
+      BuiltinAudioProcessingBuilder(config).Build(env);
   ASSERT_THAT(ap1, NotNull());
   EXPECT_EQ(ap1->GetConfig().gain_controller1.enabled,
             config.gain_controller1.enabled);
 
   scoped_refptr<AudioProcessing> ap2 =
-      BuiltinAudioProcessingFactory().SetConfig(config).Create(env);
+      BuiltinAudioProcessingBuilder().SetConfig(config).Build(env);
   ASSERT_THAT(ap2, NotNull());
   EXPECT_EQ(ap2->GetConfig().gain_controller1.enabled,
             config.gain_controller1.enabled);
diff --git a/api/create_peerconnection_factory.cc b/api/create_peerconnection_factory.cc
index c77e588..67cf913 100644
--- a/api/create_peerconnection_factory.cc
+++ b/api/create_peerconnection_factory.cc
@@ -16,7 +16,7 @@
 #include "api/audio/audio_device.h"
 #include "api/audio/audio_mixer.h"
 #include "api/audio/audio_processing.h"
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 #include "api/audio_codecs/audio_decoder_factory.h"
 #include "api/audio_codecs/audio_encoder_factory.h"
 #include "api/enable_media.h"
@@ -59,12 +59,12 @@
   dependencies.audio_decoder_factory = std::move(audio_decoder_factory);
   dependencies.audio_frame_processor = std::move(audio_frame_processor);
   if (audio_processing != nullptr) {
-    dependencies.audio_processing_factory =
+    dependencies.audio_processing_builder =
         CustomAudioProcessing(std::move(audio_processing));
   } else {
 #ifndef WEBRTC_EXCLUDE_AUDIO_PROCESSING_MODULE
-    dependencies.audio_processing_factory =
-        std::make_unique<BuiltinAudioProcessingFactory>();
+    dependencies.audio_processing_builder =
+        std::make_unique<BuiltinAudioProcessingBuilder>();
 #endif
   }
   dependencies.audio_mixer = std::move(audio_mixer);
diff --git a/api/enable_media.cc b/api/enable_media.cc
index fc8ae38..922cf58 100644
--- a/api/enable_media.cc
+++ b/api/enable_media.cc
@@ -47,8 +47,8 @@
       const Environment& env,
       PeerConnectionFactoryDependencies& deps) override {
     absl::Nullable<scoped_refptr<AudioProcessing>> audio_processing =
-        deps.audio_processing_factory != nullptr
-            ? deps.audio_processing_factory->Create(env)
+        deps.audio_processing_builder != nullptr
+            ? std::move(deps.audio_processing_builder)->Build(env)
             : std::move(deps.audio_processing);
 
     auto audio_engine = std::make_unique<WebRtcVoiceEngine>(
diff --git a/api/enable_media_with_defaults.cc b/api/enable_media_with_defaults.cc
index af8ab67..a2e85c6 100644
--- a/api/enable_media_with_defaults.cc
+++ b/api/enable_media_with_defaults.cc
@@ -35,8 +35,8 @@
     deps.audio_decoder_factory = CreateBuiltinAudioDecoderFactory();
   }
   if (deps.audio_processing == nullptr &&
-      deps.audio_processing_factory == nullptr) {
-    // TODO: bugs.webrtc.org/369904700 - set `deps.audio_processing_factory`
+      deps.audio_processing_builder == nullptr) {
+    // TODO: bugs.webrtc.org/369904700 - set `deps.audio_processing_builder`
     // instead of `deps.audio_processing` when there is an implementation that
     // can replace `AudioProcessingBuilder`.
     deps.audio_processing = AudioProcessingBuilder().Create();
diff --git a/api/peer_connection_interface.h b/api/peer_connection_interface.h
index d280b30..debe2c2 100644
--- a/api/peer_connection_interface.h
+++ b/api/peer_connection_interface.h
@@ -1471,9 +1471,9 @@
   rtc::scoped_refptr<AudioDecoderFactory> audio_decoder_factory;
   rtc::scoped_refptr<AudioMixer> audio_mixer;
   // TODO: bugs.webrtc.org/369904700 - Deprecate `audio_processing` in favor
-  // of `audio_processing_factory`.
+  // of `audio_processing_builder`.
   rtc::scoped_refptr<AudioProcessing> audio_processing;
-  std::unique_ptr<AudioProcessingFactory> audio_processing_factory;
+  std::unique_ptr<AudioProcessingBuilderInterface> audio_processing_builder;
   std::unique_ptr<AudioFrameProcessor> audio_frame_processor;
   std::unique_ptr<VideoEncoderFactory> video_encoder_factory;
   std::unique_ptr<VideoDecoderFactory> video_decoder_factory;
diff --git a/api/voip/test/voip_engine_factory_unittest.cc b/api/voip/test/voip_engine_factory_unittest.cc
index 84fb180..dc8484b 100644
--- a/api/voip/test/voip_engine_factory_unittest.cc
+++ b/api/voip/test/voip_engine_factory_unittest.cc
@@ -33,8 +33,8 @@
   config.encoder_factory = rtc::make_ref_counted<MockAudioEncoderFactory>();
   config.decoder_factory = rtc::make_ref_counted<MockAudioDecoderFactory>();
   config.task_queue_factory = CreateDefaultTaskQueueFactory();
-  config.audio_processing_factory =
-      std::make_unique<NiceMock<test::MockAudioProcessingFactory>>();
+  config.audio_processing_builder =
+      std::make_unique<NiceMock<test::MockAudioProcessingBuilder>>();
   config.audio_device_module = test::MockAudioDeviceModule::CreateNice();
 
   auto voip_engine = CreateVoipEngine(std::move(config));
diff --git a/api/voip/voip_engine_factory.cc b/api/voip/voip_engine_factory.cc
index 14795be..14a08e3 100644
--- a/api/voip/voip_engine_factory.cc
+++ b/api/voip/voip_engine_factory.cc
@@ -35,12 +35,12 @@
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
   RTC_CHECK(config.audio_processing == nullptr ||
-            config.audio_processing_factory == nullptr);
+            config.audio_processing_builder == nullptr);
   scoped_refptr<AudioProcessing> audio_processing =
       std::move(config.audio_processing);
 #pragma clang diagnostic pop
-  if (config.audio_processing_factory != nullptr) {
-    audio_processing = config.audio_processing_factory->Create(env);
+  if (config.audio_processing_builder != nullptr) {
+    audio_processing = std::move(config.audio_processing_builder)->Build(env);
   }
 
   if (audio_processing == nullptr) {
diff --git a/api/voip/voip_engine_factory.h b/api/voip/voip_engine_factory.h
index ba51b3a..378652a 100644
--- a/api/voip/voip_engine_factory.h
+++ b/api/voip/voip_engine_factory.h
@@ -61,16 +61,16 @@
   // play through its output device (e.g. speaker).
   scoped_refptr<AudioDeviceModule> audio_device_module;
 
-  // Optional (e.g. api/audio/builtin_audio_processing_factory).
+  // Optional (e.g. api/audio/builtin_audio_processing_builder).
   // AudioProcessing provides audio procesing functionalities (e.g. acoustic
   // echo cancellation, noise suppression, gain control, etc) on audio input
   // samples for VoipEngine. When optionally not set, VoipEngine will not have
   // such functionalities to perform on audio input samples received from
   // AudioDeviceModule.
-  std::unique_ptr<AudioProcessingFactory> audio_processing_factory;
+  std::unique_ptr<AudioProcessingBuilderInterface> audio_processing_builder;
 
   // TODO: bugs.webrtc.org/369904700 - Remove when users are migrated to set
-  // `audio_processing_factory` instead.
+  // `audio_processing_builder` instead.
   [[deprecated]] scoped_refptr<AudioProcessing> audio_processing;
 };
 
diff --git a/examples/BUILD.gn b/examples/BUILD.gn
index c6bb616..b793c8b 100644
--- a/examples/BUILD.gn
+++ b/examples/BUILD.gn
@@ -490,7 +490,7 @@
         "../api:scoped_refptr",
         "../api:sequence_checker",
         "../api/audio:audio_processing",
-        "../api/audio:builtin_audio_processing_factory",
+        "../api/audio:builtin_audio_processing_builder",
         "../api/audio_codecs:builtin_audio_decoder_factory",
         "../api/audio_codecs:builtin_audio_encoder_factory",
         "../api/rtc_event_log:rtc_event_log_factory",
diff --git a/examples/androidvoip/BUILD.gn b/examples/androidvoip/BUILD.gn
index d470693..05bccd7 100644
--- a/examples/androidvoip/BUILD.gn
+++ b/examples/androidvoip/BUILD.gn
@@ -56,7 +56,7 @@
 
     deps = [
       ":generated_jni",
-      "../../api/audio:builtin_audio_processing_factory",
+      "../../api/audio:builtin_audio_processing_builder",
       "../../rtc_base:async_packet_socket",
       "../../rtc_base:async_udp_socket",
       "../../rtc_base:logging",
diff --git a/examples/androidvoip/jni/android_voip_client.cc b/examples/androidvoip/jni/android_voip_client.cc
index b412df5..81ea27d 100644
--- a/examples/androidvoip/jni/android_voip_client.cc
+++ b/examples/androidvoip/jni/android_voip_client.cc
@@ -20,7 +20,7 @@
 #include <vector>
 
 #include "absl/memory/memory.h"
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
 #include "api/task_queue/default_task_queue_factory.h"
@@ -131,8 +131,8 @@
   config.task_queue_factory = webrtc::CreateDefaultTaskQueueFactory();
   config.audio_device_module =
       webrtc::CreateJavaAudioDeviceModule(env, application_context.obj());
-  config.audio_processing_factory =
-      std::make_unique<webrtc::BuiltinAudioProcessingFactory>();
+  config.audio_processing_builder =
+      std::make_unique<webrtc::BuiltinAudioProcessingBuilder>();
 
   voip_thread_->Start();
 
diff --git a/examples/objcnativeapi/objc/objc_call_client.mm b/examples/objcnativeapi/objc/objc_call_client.mm
index c9c365f..2f37286 100644
--- a/examples/objcnativeapi/objc/objc_call_client.mm
+++ b/examples/objcnativeapi/objc/objc_call_client.mm
@@ -19,7 +19,7 @@
 #import "sdk/objc/helpers/RTCCameraPreviewView.h"
 
 #include "api/audio/audio_processing.h"
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
 #include "api/enable_media.h"
@@ -125,7 +125,7 @@
       [[RTC_OBJC_TYPE(RTCDefaultVideoEncoderFactory) alloc] init]);
   dependencies.video_decoder_factory = webrtc::ObjCToNativeVideoDecoderFactory(
       [[RTC_OBJC_TYPE(RTCDefaultVideoDecoderFactory) alloc] init]);
-  dependencies.audio_processing_factory = std::make_unique<webrtc::BuiltinAudioProcessingFactory>();
+  dependencies.audio_processing_builder = std::make_unique<webrtc::BuiltinAudioProcessingBuilder>();
   webrtc::EnableMedia(dependencies);
   dependencies.event_log_factory = std::make_unique<webrtc::RtcEventLogFactory>();
   pcf_ = webrtc::CreateModularPeerConnectionFactory(std::move(dependencies));
diff --git a/modules/audio_processing/BUILD.gn b/modules/audio_processing/BUILD.gn
index 5a21059..988183f 100644
--- a/modules/audio_processing/BUILD.gn
+++ b/modules/audio_processing/BUILD.gn
@@ -347,7 +347,7 @@
         "../../api/audio:aec3_factory",
         "../../api/audio:audio_frame_api",
         "../../api/audio:audio_processing",
-        "../../api/audio:builtin_audio_processing_factory",
+        "../../api/audio:builtin_audio_processing_builder",
         "../../api/audio:echo_detector_creator",
         "../../api/environment:environment_factory",
         "../../common_audio",
@@ -459,7 +459,7 @@
       ":audio_processing",
       ":audioproc_test_utils",
       "../../api:array_view",
-      "../../api/audio:builtin_audio_processing_factory",
+      "../../api/audio:builtin_audio_processing_builder",
       "../../api/environment:environment_factory",
       "../../api/numerics",
       "../../api/test/metrics:global_metrics_logger_and_exporter",
diff --git a/modules/audio_processing/aec_dump/BUILD.gn b/modules/audio_processing/aec_dump/BUILD.gn
index 1dae1e6..5fb2942 100644
--- a/modules/audio_processing/aec_dump/BUILD.gn
+++ b/modules/audio_processing/aec_dump/BUILD.gn
@@ -48,7 +48,7 @@
       "..:audioproc_test_utils",
       "../",
       "../../../api/audio:audio_processing",
-      "../../../api/audio:builtin_audio_processing_factory",
+      "../../../api/audio:builtin_audio_processing_builder",
       "../../../api/environment:environment_factory",
       "//testing/gtest",
     ]
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 6e49969..5c23c96 100644
--- a/modules/audio_processing/aec_dump/aec_dump_integration_test.cc
+++ b/modules/audio_processing/aec_dump/aec_dump_integration_test.cc
@@ -13,7 +13,7 @@
 #include <utility>
 
 #include "api/audio/audio_processing.h"
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 #include "api/environment/environment_factory.h"
 #include "modules/audio_processing/aec_dump/mock_aec_dump.h"
 #include "modules/audio_processing/audio_processing_impl.h"
@@ -26,7 +26,7 @@
 namespace {
 webrtc::scoped_refptr<webrtc::AudioProcessing> CreateAudioProcessing() {
   webrtc::scoped_refptr<webrtc::AudioProcessing> apm =
-      webrtc::BuiltinAudioProcessingFactory().Create(
+      webrtc::BuiltinAudioProcessingBuilder().Build(
           webrtc::CreateEnvironment());
   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 af3ebe3..5756237 100644
--- a/modules/audio_processing/audio_processing_impl_locking_unittest.cc
+++ b/modules/audio_processing/audio_processing_impl_locking_unittest.cc
@@ -13,7 +13,7 @@
 #include <vector>
 
 #include "api/array_view.h"
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 #include "api/environment/environment_factory.h"
 #include "modules/audio_processing/audio_processing_impl.h"
 #include "modules/audio_processing/test/test_utils.h"
@@ -489,9 +489,9 @@
 
 AudioProcessingImplLockTest::AudioProcessingImplLockTest()
     : test_config_(GetParam()),
-      apm_(BuiltinAudioProcessingFactory()
+      apm_(BuiltinAudioProcessingBuilder()
                .SetConfig(GetApmTestConfig(test_config_.aec_type))
-               .Create(CreateEnvironment())),
+               .Build(CreateEnvironment())),
       render_thread_state_(kMaxFrameSize,
                            &rand_gen_,
                            &render_call_event_,
diff --git a/modules/audio_processing/audio_processing_impl_unittest.cc b/modules/audio_processing/audio_processing_impl_unittest.cc
index f405f38..1c3c03c 100644
--- a/modules/audio_processing/audio_processing_impl_unittest.cc
+++ b/modules/audio_processing/audio_processing_impl_unittest.cc
@@ -17,7 +17,7 @@
 #include <tuple>
 
 #include "api/audio/audio_processing.h"
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 #include "api/environment/environment_factory.h"
 #include "api/make_ref_counted.h"
 #include "api/scoped_refptr.h"
@@ -200,7 +200,7 @@
 
 TEST(AudioProcessingImplTest, UpdateCapturePreGainRuntimeSetting) {
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+      BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
   webrtc::AudioProcessing::Config apm_config;
   apm_config.pre_amplifier.enabled = true;
   apm_config.pre_amplifier.fixed_gain_factor = 1.f;
@@ -233,7 +233,7 @@
 TEST(AudioProcessingImplTest,
      LevelAdjustmentUpdateCapturePreGainRuntimeSetting) {
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+      BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
   webrtc::AudioProcessing::Config apm_config;
   apm_config.capture_level_adjustment.enabled = true;
   apm_config.capture_level_adjustment.pre_gain_factor = 1.f;
@@ -266,7 +266,7 @@
 TEST(AudioProcessingImplTest,
      LevelAdjustmentUpdateCapturePostGainRuntimeSetting) {
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+      BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
   webrtc::AudioProcessing::Config apm_config;
   apm_config.capture_level_adjustment.enabled = true;
   apm_config.capture_level_adjustment.post_gain_factor = 1.f;
@@ -304,9 +304,9 @@
       echo_control_factory.get();
 
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetEchoControlFactory(std::move(echo_control_factory))
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
 
   constexpr int16_t kAudioLevel = 10000;
   constexpr int kSampleRateHz = 48000;
@@ -386,9 +386,9 @@
   const auto* echo_control_factory_ptr = echo_control_factory.get();
 
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetEchoControlFactory(std::move(echo_control_factory))
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
   // Disable AGC.
   webrtc::AudioProcessing::Config apm_config;
   apm_config.gain_controller1.enabled = false;
@@ -429,9 +429,9 @@
   const auto* echo_control_factory_ptr = echo_control_factory.get();
 
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetEchoControlFactory(std::move(echo_control_factory))
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
   // Disable AGC.
   webrtc::AudioProcessing::Config apm_config;
   apm_config.gain_controller1.enabled = false;
@@ -472,9 +472,9 @@
   const auto* echo_control_factory_ptr = echo_control_factory.get();
 
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetEchoControlFactory(std::move(echo_control_factory))
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
   webrtc::AudioProcessing::Config apm_config;
   // Enable AGC1.
   apm_config.gain_controller1.enabled = true;
@@ -527,9 +527,9 @@
   const auto* echo_control_factory_ptr = echo_control_factory.get();
 
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetEchoControlFactory(std::move(echo_control_factory))
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
   // Disable AGC.
   webrtc::AudioProcessing::Config apm_config;
   apm_config.gain_controller1.enabled = false;
@@ -584,10 +584,10 @@
       new TestRenderPreProcessor());
   // Create APM injecting the test echo detector and render pre-processor.
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetEchoDetector(test_echo_detector)
           .SetRenderPreProcessing(std::move(test_render_pre_processor))
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
   webrtc::AudioProcessing::Config apm_config;
   apm_config.pre_amplifier.enabled = true;
   apm->ApplyConfig(apm_config);
diff --git a/modules/audio_processing/audio_processing_performance_unittest.cc b/modules/audio_processing/audio_processing_performance_unittest.cc
index 33c5ab1..d69263b 100644
--- a/modules/audio_processing/audio_processing_performance_unittest.cc
+++ b/modules/audio_processing/audio_processing_performance_unittest.cc
@@ -16,7 +16,7 @@
 
 #include "absl/strings/string_view.h"
 #include "api/array_view.h"
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 #include "api/environment/environment_factory.h"
 #include "api/numerics/samples_stats_counter.h"
 #include "api/test/metrics/global_metrics_logger_and_exporter.h"
@@ -449,31 +449,31 @@
     int num_capture_channels = 1;
     switch (simulation_config_.simulation_settings) {
       case SettingsType::kDefaultApmMobile: {
-        apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+        apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
         ASSERT_TRUE(!!apm_);
         set_default_mobile_apm_runtime_settings(apm_.get());
         break;
       }
       case SettingsType::kDefaultApmDesktop: {
-        apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+        apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
         ASSERT_TRUE(!!apm_);
         set_default_desktop_apm_runtime_settings(apm_.get());
         break;
       }
       case SettingsType::kAllSubmodulesTurnedOff: {
-        apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+        apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
         ASSERT_TRUE(!!apm_);
         turn_off_default_apm_runtime_settings(apm_.get());
         break;
       }
       case SettingsType::kDefaultApmDesktopWithoutDelayAgnostic: {
-        apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+        apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
         ASSERT_TRUE(!!apm_);
         set_default_desktop_apm_runtime_settings(apm_.get());
         break;
       }
       case SettingsType::kDefaultApmDesktopWithoutExtendedFilter: {
-        apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+        apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
         ASSERT_TRUE(!!apm_);
         set_default_desktop_apm_runtime_settings(apm_.get());
         break;
diff --git a/modules/audio_processing/audio_processing_unittest.cc b/modules/audio_processing/audio_processing_unittest.cc
index 476e501..cfe2510 100644
--- a/modules/audio_processing/audio_processing_unittest.cc
+++ b/modules/audio_processing/audio_processing_unittest.cc
@@ -22,7 +22,7 @@
 
 #include "absl/flags/flag.h"
 #include "absl/strings/string_view.h"
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 #include "api/audio/echo_detector_creator.h"
 #include "api/environment/environment_factory.h"
 #include "api/make_ref_counted.h"
@@ -476,7 +476,7 @@
       far_file_(NULL),
       near_file_(NULL),
       out_file_(NULL) {
-  apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+  apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
   AudioProcessing::Config apm_config = apm_->GetConfig();
   apm_config.gain_controller1.analog_gain_controller.enabled = false;
   apm_config.pipeline.maximum_internal_processing_rate = 48000;
@@ -1334,7 +1334,7 @@
   auto src_channels = &src[0];
   auto dest_channels = &dest[0];
 
-  apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+  apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
   EXPECT_NOERR(apm_->ProcessStream(&src_channels, StreamConfig(sample_rate, 1),
                                    StreamConfig(sample_rate, 1),
                                    &dest_channels));
@@ -1755,9 +1755,9 @@
     if (test->num_input_channels() != test->num_output_channels())
       continue;
 
-    apm_ = BuiltinAudioProcessingFactory()
+    apm_ = BuiltinAudioProcessingBuilder()
                .SetEchoDetector(CreateEchoDetector())
-               .Create(CreateEnvironment());
+               .Build(CreateEnvironment());
     AudioProcessing::Config apm_config = apm_->GetConfig();
     apm_config.gain_controller1.analog_gain_controller.enabled = false;
     apm_->ApplyConfig(apm_config);
@@ -1994,9 +1994,9 @@
                             absl::string_view output_file_prefix) {
     AudioProcessing::Config apm_config;
     apm_config.gain_controller1.analog_gain_controller.enabled = false;
-    scoped_refptr<AudioProcessing> ap = BuiltinAudioProcessingFactory()
+    scoped_refptr<AudioProcessing> ap = BuiltinAudioProcessingBuilder()
                                             .SetConfig(apm_config)
-                                            .Create(CreateEnvironment());
+                                            .Build(CreateEnvironment());
 
     EnableAllAPComponents(ap.get());
 
@@ -2422,7 +2422,7 @@
   apm_config.pipeline.multi_channel_capture = true;
   apm_config.echo_canceller.enabled = true;
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory(apm_config).Create(CreateEnvironment());
+      BuiltinAudioProcessingBuilder(apm_config).Build(CreateEnvironment());
 
   StreamConfig render_input_stream_config;
   StreamConfig render_output_stream_config;
@@ -2532,9 +2532,9 @@
   auto mock_post_processor =
       std::unique_ptr<CustomProcessing>(mock_post_processor_ptr);
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetCapturePostProcessing(std::move(mock_post_processor))
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
 
   Int16FrameData audio;
   audio.num_channels = 1;
@@ -2554,9 +2554,9 @@
   auto mock_pre_processor =
       std::unique_ptr<CustomProcessing>(mock_pre_processor_ptr);
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetRenderPreProcessing(std::move(mock_pre_processor))
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
 
   Int16FrameData audio;
   audio.num_channels = 1;
@@ -2576,9 +2576,9 @@
   auto mock_capture_analyzer =
       std::unique_ptr<CustomAudioAnalyzer>(mock_capture_analyzer_ptr);
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetCaptureAnalyzer(std::move(mock_capture_analyzer))
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
 
   Int16FrameData audio;
   audio.num_channels = 1;
@@ -2597,9 +2597,9 @@
   auto mock_pre_processor =
       std::unique_ptr<CustomProcessing>(mock_pre_processor_ptr);
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetRenderPreProcessing(std::move(mock_pre_processor))
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
   apm->SetRuntimeSetting(
       AudioProcessing::RuntimeSetting::CreateCustomRenderSetting(0));
 
@@ -2641,9 +2641,9 @@
       new MyEchoControlFactory());
 
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetEchoControlFactory(std::move(echo_control_factory))
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
 
   Int16FrameData audio;
   audio.num_channels = 1;
@@ -2670,9 +2670,9 @@
               Initialize(/*capture_sample_rate_hz=*/16000, _,
                          /*render_sample_rate_hz=*/16000, _))
       .Times(1);
-  scoped_refptr<AudioProcessing> apm = BuiltinAudioProcessingFactory()
+  scoped_refptr<AudioProcessing> apm = BuiltinAudioProcessingBuilder()
                                            .SetEchoDetector(mock_echo_detector)
-                                           .Create(CreateEnvironment());
+                                           .Build(CreateEnvironment());
 
   // The echo detector is included in processing when enabled.
   EXPECT_CALL(*mock_echo_detector, AnalyzeRenderAudio(_))
@@ -2727,9 +2727,9 @@
 rtc::scoped_refptr<AudioProcessing> CreateApm(bool mobile_aec) {
   // Enable residual echo detection, for stats.
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetEchoDetector(CreateEchoDetector())
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
   if (!apm) {
     return apm;
   }
@@ -2873,7 +2873,7 @@
   }
 
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+      BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
   apm->Initialize(processing_config);
 
   // No metric should be reported.
@@ -2888,7 +2888,7 @@
 
 TEST(ApmStatistics, GetStatisticsReportsNoEchoDetectorStatsWhenDisabled) {
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+      BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
   Int16FrameData frame;
   frame.num_channels = 1;
   SetFrameSampleRate(&frame, AudioProcessing::NativeRate::kSampleRate32kHz);
@@ -2907,9 +2907,9 @@
 TEST(ApmStatistics, GetStatisticsReportsEchoDetectorStatsWhenEnabled) {
   // Create APM with an echo detector injected.
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetEchoDetector(CreateEchoDetector())
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
   Int16FrameData frame;
   frame.num_channels = 1;
   SetFrameSampleRate(&frame, AudioProcessing::NativeRate::kSampleRate32kHz);
@@ -3284,7 +3284,7 @@
 
   // Call APM.
   scoped_refptr<AudioProcessing> ap =
-      BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+      BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
   int error;
   if (stream_direction_ == kForward) {
     error = ap->ProcessStream(input_block.data(), test_params_.input_config,
@@ -3363,7 +3363,7 @@
 
   // Call APM.
   scoped_refptr<AudioProcessing> ap =
-      BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+      BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
   int error;
   if (stream_direction_ == kForward) {
     error =
@@ -3439,7 +3439,7 @@
 
     // Call APM.
     scoped_refptr<AudioProcessing> ap =
-        BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+        BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
     int error = ap->AnalyzeReverseStream(input_block.channels(), input_config);
 
     // Check output.
diff --git a/modules/audio_processing/include/mock_audio_processing.h b/modules/audio_processing/include/mock_audio_processing.h
index eba59c0..ccdd1f6 100644
--- a/modules/audio_processing/include/mock_audio_processing.h
+++ b/modules/audio_processing/include/mock_audio_processing.h
@@ -176,10 +176,10 @@
   MOCK_METHOD(AudioProcessing::Config, GetConfig, (), (const, override));
 };
 
-class MockAudioProcessingFactory : public AudioProcessingFactory {
+class MockAudioProcessingBuilder : public AudioProcessingBuilderInterface {
  public:
   MOCK_METHOD(scoped_refptr<AudioProcessing>,
-              Create,
+              Build,
               (const Environment&),
               (override));
 };
diff --git a/modules/audio_processing/test/debug_dump_replayer.cc b/modules/audio_processing/test/debug_dump_replayer.cc
index 15cbc74..bd3631d 100644
--- a/modules/audio_processing/test/debug_dump_replayer.cc
+++ b/modules/audio_processing/test/debug_dump_replayer.cc
@@ -13,7 +13,7 @@
 #include <string>
 
 #include "absl/strings/string_view.h"
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 #include "api/environment/environment_factory.h"
 #include "modules/audio_processing/test/protobuf_utils.h"
 #include "modules/audio_processing/test/runtime_setting_util.h"
@@ -190,7 +190,7 @@
   // We only create APM once, since changes on these fields should not
   // happen in current implementation.
   if (apm_ == nullptr) {
-    apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+    apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
   }
 }
 
diff --git a/modules/audio_processing/test/debug_dump_test.cc b/modules/audio_processing/test/debug_dump_test.cc
index 77e1320..7a6dc5f 100644
--- a/modules/audio_processing/test/debug_dump_test.cc
+++ b/modules/audio_processing/test/debug_dump_test.cc
@@ -15,7 +15,7 @@
 #include <vector>
 
 #include "absl/strings/string_view.h"
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 #include "api/audio/echo_canceller3_factory.h"
 #include "api/environment/environment_factory.h"
 #include "modules/audio_coding/neteq/tools/resample_input_audio_file.h"
@@ -141,7 +141,7 @@
       enable_pre_amplifier_(enable_pre_amplifier),
       worker_queue_("debug_dump_generator_worker_queue"),
       dump_file_name_(dump_file_name) {
-  apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
+  apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
 }
 
 DebugDumpGenerator::DebugDumpGenerator(
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index d143511..add8099 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -2578,7 +2578,7 @@
       "../api/audio:audio_device",
       "../api/audio:audio_mixer_api",
       "../api/audio:audio_processing",
-      "../api/audio:builtin_audio_processing_factory",
+      "../api/audio:builtin_audio_processing_builder",
       "../api/crypto:frame_decryptor_interface",
       "../api/crypto:frame_encryptor_interface",
       "../api/crypto:options",
diff --git a/pc/peer_connection_factory_unittest.cc b/pc/peer_connection_factory_unittest.cc
index 518ebea..de7467c 100644
--- a/pc/peer_connection_factory_unittest.cc
+++ b/pc/peer_connection_factory_unittest.cc
@@ -75,7 +75,7 @@
 using ::testing::Return;
 using ::testing::UnorderedElementsAre;
 using ::webrtc::test::MockAudioProcessing;
-using ::webrtc::test::MockAudioProcessingFactory;
+using ::webrtc::test::MockAudioProcessingBuilder;
 
 static const char kStunIceServer[] = "stun:stun.l.google.com:19302";
 static const char kTurnIceServer[] = "turn:test.com:1234";
@@ -726,17 +726,17 @@
 
 TEST(PeerConnectionFactoryDependenciesTest,
      CreatesAudioProcessingWithProvidedFactory) {
-  auto ap_factory = std::make_unique<MockAudioProcessingFactory>();
+  auto ap_factory = std::make_unique<MockAudioProcessingBuilder>();
   auto audio_processing = make_ref_counted<NiceMock<MockAudioProcessing>>();
   // Validate that provided audio_processing is used by expecting that a request
   // to start AEC Dump with unnatural size limit is propagated to the
   // `audio_processing`.
   EXPECT_CALL(*audio_processing, CreateAndAttachAecDump(A<FILE*>(), 24'242, _));
-  EXPECT_CALL(*ap_factory, Create).WillOnce(Return(audio_processing));
+  EXPECT_CALL(*ap_factory, Build).WillOnce(Return(audio_processing));
 
   PeerConnectionFactoryDependencies pcf_dependencies;
   pcf_dependencies.adm = FakeAudioCaptureModule::Create();
-  pcf_dependencies.audio_processing_factory = std::move(ap_factory);
+  pcf_dependencies.audio_processing_builder = std::move(ap_factory);
   EnableMediaWithDefaults(pcf_dependencies);
 
   scoped_refptr<PeerConnectionFactoryInterface> pcf =
diff --git a/pc/test/integration_test_helpers.cc b/pc/test/integration_test_helpers.cc
index 525a370..9033e65 100644
--- a/pc/test/integration_test_helpers.cc
+++ b/pc/test/integration_test_helpers.cc
@@ -10,7 +10,7 @@
 
 #include "pc/test/integration_test_helpers.h"
 
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 
 namespace webrtc {
 
@@ -230,8 +230,8 @@
     // Standard creation method for APM may return a null pointer when
     // AudioProcessing is disabled with a build flag. Bypass that flag by
     // explicitly injecting the factory.
-    pc_factory_dependencies.audio_processing_factory =
-        std::make_unique<BuiltinAudioProcessingFactory>();
+    pc_factory_dependencies.audio_processing_builder =
+        std::make_unique<BuiltinAudioProcessingBuilder>();
     EnableMediaWithDefaults(pc_factory_dependencies);
   }
 
diff --git a/test/fuzzers/BUILD.gn b/test/fuzzers/BUILD.gn
index a3ed319..e8957f1 100644
--- a/test/fuzzers/BUILD.gn
+++ b/test/fuzzers/BUILD.gn
@@ -512,7 +512,7 @@
     "../../api:scoped_refptr",
     "../../api/audio:aec3_factory",
     "../../api/audio:audio_processing",
-    "../../api/audio:builtin_audio_processing_factory",
+    "../../api/audio:builtin_audio_processing_builder",
     "../../api/audio:echo_detector_creator",
     "../../api/environment",
     "../../api/environment:environment_factory",
@@ -539,7 +539,7 @@
     "../../api:scoped_refptr",
     "../../api/audio:audio_frame_api",
     "../../api/audio:audio_processing",
-    "../../api/audio:builtin_audio_processing_factory",
+    "../../api/audio:builtin_audio_processing_builder",
     "../../api/environment:environment_factory",
     "../../modules/audio_processing",
     "../../modules/audio_processing:audio_frame_proxies",
diff --git a/test/fuzzers/audio_processing_configs_fuzzer.cc b/test/fuzzers/audio_processing_configs_fuzzer.cc
index 7886903..17b1b88 100644
--- a/test/fuzzers/audio_processing_configs_fuzzer.cc
+++ b/test/fuzzers/audio_processing_configs_fuzzer.cc
@@ -14,7 +14,7 @@
 #include "absl/base/nullability.h"
 #include "absl/memory/memory.h"
 #include "api/audio/audio_processing.h"
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 #include "api/audio/echo_canceller3_factory.h"
 #include "api/audio/echo_detector_creator.h"
 #include "api/environment/environment.h"
@@ -113,11 +113,11 @@
   apm_config.transient_suppression.enabled = use_ts;
 
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetEchoControlFactory(std::move(echo_control_factory))
           .SetEchoDetector(use_red ? CreateEchoDetector() : nullptr)
           .SetConfig(apm_config)
-          .Create(GetEnvironment());
+          .Build(GetEnvironment());
 
 #ifdef WEBRTC_LINUX
   apm->AttachAecDump(AecDumpFactory::Create("/dev/null", -1, worker_queue));
diff --git a/test/fuzzers/audio_processing_sample_rate_fuzzer.cc b/test/fuzzers/audio_processing_sample_rate_fuzzer.cc
index 99f0a77..ac2e928 100644
--- a/test/fuzzers/audio_processing_sample_rate_fuzzer.cc
+++ b/test/fuzzers/audio_processing_sample_rate_fuzzer.cc
@@ -14,7 +14,7 @@
 #include <limits>
 
 #include "api/audio/audio_processing.h"
-#include "api/audio/builtin_audio_processing_factory.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 #include "api/environment/environment_factory.h"
 #include "rtc_base/checks.h"
 #include "test/fuzzers/fuzz_data_helper.h"
@@ -91,12 +91,12 @@
           ? std::make_unique<NoopCustomProcessing>()
           : nullptr;
   scoped_refptr<AudioProcessing> apm =
-      BuiltinAudioProcessingFactory()
+      BuiltinAudioProcessingBuilder()
           .SetConfig({.pipeline = {.multi_channel_render = true,
                                    .multi_channel_capture = true}})
           .SetCapturePostProcessing(std::move(capture_processor))
           .SetRenderPreProcessing(std::move(render_processor))
-          .Create(CreateEnvironment());
+          .Build(CreateEnvironment());
   RTC_DCHECK(apm);
 
   std::array<int16_t, kMaxSamplesPerChannel * kMaxNumChannels> fixed_frame;
diff --git a/test/pc/e2e/test_peer_factory.cc b/test/pc/e2e/test_peer_factory.cc
index baafb82..4c359a4 100644
--- a/test/pc/e2e/test_peer_factory.cc
+++ b/test/pc/e2e/test_peer_factory.cc
@@ -228,7 +228,7 @@
   // Media dependencies
   pcf_deps.adm = std::move(audio_device_module);
   if (pcf_dependencies->audio_processing != nullptr) {
-    pcf_deps.audio_processing_factory =
+    pcf_deps.audio_processing_builder =
         CustomAudioProcessing(pcf_dependencies->audio_processing);
   }
   pcf_deps.audio_mixer = pcf_dependencies->audio_mixer;