Update VoiceEngine tests to use BuiltingAudioProcessingBuilder instead of AudioProcessingBuilder

Bug: webrtc:369904700
Change-Id: I26115ef8d4a5f2997f8286eead07dc6cf28e9496
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/367203
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43339}
diff --git a/media/BUILD.gn b/media/BUILD.gn
index 5126519..1b57100 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -939,6 +939,7 @@
         "../api:simulcast_test_fixture_api",
         "../api:transport_api",
         "../api/audio:audio_processing",
+        "../api/audio:builtin_audio_processing_builder",
         "../api/audio_codecs:audio_codecs_api",
         "../api/audio_codecs:builtin_audio_decoder_factory",
         "../api/audio_codecs:builtin_audio_encoder_factory",
@@ -947,7 +948,6 @@
         "../api/environment:environment_factory",
         "../api/rtc_event_log",
         "../api/task_queue",
-        "../api/task_queue:default_task_queue_factory",
         "../api/test/video:function_video_factory",
         "../api/transport:bitrate_settings",
         "../api/transport:field_trial_based_config",
@@ -981,7 +981,6 @@
         "../common_video",
         "../modules/audio_device:mock_audio_device",
         "../modules/audio_mixer:audio_mixer_impl",
-        "../modules/audio_processing",
         "../modules/audio_processing:mocks",
         "../modules/rtp_rtcp",
         "../modules/rtp_rtcp:rtp_rtcp_format",
diff --git a/media/engine/webrtc_voice_engine_unittest.cc b/media/engine/webrtc_voice_engine_unittest.cc
index c3576f6..7fdfaea 100644
--- a/media/engine/webrtc_voice_engine_unittest.cc
+++ b/media/engine/webrtc_voice_engine_unittest.cc
@@ -23,6 +23,7 @@
 
 #include "absl/strings/match.h"
 #include "api/audio/audio_processing.h"
+#include "api/audio/builtin_audio_processing_builder.h"
 #include "api/audio_codecs/audio_codec_pair_id.h"
 #include "api/audio_codecs/audio_format.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
@@ -40,9 +41,7 @@
 #include "api/rtp_headers.h"
 #include "api/rtp_parameters.h"
 #include "api/scoped_refptr.h"
-#include "api/task_queue/default_task_queue_factory.h"
 #include "api/transport/bitrate_settings.h"
-#include "api/transport/field_trial_based_config.h"
 #include "api/transport/rtp/rtp_source.h"
 #include "call/audio_receive_stream.h"
 #include "call/audio_send_stream.h"
@@ -89,11 +88,14 @@
 using ::testing::SaveArg;
 using ::testing::StrictMock;
 using ::testing::UnorderedElementsAreArray;
+using ::webrtc::AudioProcessing;
 using ::webrtc::BitrateConstraints;
+using ::webrtc::BuiltinAudioProcessingBuilder;
 using ::webrtc::Call;
 using ::webrtc::CallConfig;
 using ::webrtc::CreateEnvironment;
 using ::webrtc::Environment;
+using ::webrtc::scoped_refptr;
 
 constexpr uint32_t kMaxUnsignaledRecvStreams = 4;
 
@@ -208,9 +210,8 @@
 
 // Tests that our stub library "works".
 TEST(WebRtcVoiceEngineTestStubLibrary, StartupShutdown) {
+  Environment env = CreateEnvironment();
   for (bool use_null_apm : {false, true}) {
-    std::unique_ptr<webrtc::TaskQueueFactory> task_queue_factory =
-        webrtc::CreateDefaultTaskQueueFactory();
     rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
         webrtc::test::MockAudioDeviceModule::CreateStrict();
     AdmSetupExpectations(adm.get());
@@ -226,12 +227,11 @@
       EXPECT_CALL(*apm, DetachAecDump());
     }
     {
-      webrtc::FieldTrialBasedConfig trials;
       cricket::WebRtcVoiceEngine engine(
-          task_queue_factory.get(), adm.get(),
+          &env.task_queue_factory(), adm.get(),
           webrtc::MockAudioEncoderFactory::CreateUnusedFactory(),
           webrtc::MockAudioDecoderFactory::CreateUnusedFactory(), nullptr, apm,
-          nullptr, trials);
+          nullptr, env.field_trials());
       engine.Init();
     }
   }
@@ -3754,8 +3754,8 @@
     Environment env = CreateEnvironment();
     rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
         webrtc::test::MockAudioDeviceModule::CreateNice();
-    rtc::scoped_refptr<webrtc::AudioProcessing> apm =
-        use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create();
+    scoped_refptr<AudioProcessing> apm =
+        use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
     cricket::WebRtcVoiceEngine engine(
         &env.task_queue_factory(), adm.get(),
         webrtc::MockAudioEncoderFactory::CreateUnusedFactory(),
@@ -3784,8 +3784,8 @@
     auto adm = rtc::make_ref_counted<
         ::testing::NiceMock<webrtc::test::MockAudioDeviceModule>>();
     {
-      rtc::scoped_refptr<webrtc::AudioProcessing> apm =
-          use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create();
+      scoped_refptr<AudioProcessing> apm =
+          use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
       cricket::WebRtcVoiceEngine engine(
           &env.task_queue_factory(), adm.get(),
           webrtc::MockAudioEncoderFactory::CreateUnusedFactory(),
@@ -3812,21 +3812,19 @@
 
 // Verify the payload id of common audio codecs, including CN and G722.
 TEST(WebRtcVoiceEngineTest, HasCorrectPayloadTypeMapping) {
+  Environment env = CreateEnvironment();
   for (bool use_null_apm : {false, true}) {
-    std::unique_ptr<webrtc::TaskQueueFactory> task_queue_factory =
-        webrtc::CreateDefaultTaskQueueFactory();
     // TODO(ossu): Why are the payload types of codecs with non-static payload
     // type assignments checked here? It shouldn't really matter.
     rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
         webrtc::test::MockAudioDeviceModule::CreateNice();
-    rtc::scoped_refptr<webrtc::AudioProcessing> apm =
-        use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create();
-    webrtc::FieldTrialBasedConfig field_trials;
+    scoped_refptr<AudioProcessing> apm =
+        use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
     cricket::WebRtcVoiceEngine engine(
-        task_queue_factory.get(), adm.get(),
+        &env.task_queue_factory(), adm.get(),
         webrtc::MockAudioEncoderFactory::CreateUnusedFactory(),
         webrtc::MockAudioDecoderFactory::CreateUnusedFactory(), nullptr, apm,
-        nullptr, field_trials);
+        nullptr, env.field_trials());
     engine.Init();
     for (const cricket::Codec& codec : engine.send_codecs()) {
       auto is_codec = [&codec](const char* name, int clockrate = 0) {
@@ -3868,8 +3866,8 @@
     Environment env = CreateEnvironment();
     rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
         webrtc::test::MockAudioDeviceModule::CreateNice();
-    rtc::scoped_refptr<webrtc::AudioProcessing> apm =
-        use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create();
+    scoped_refptr<AudioProcessing> apm =
+        use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
     cricket::WebRtcVoiceEngine engine(
         &env.task_queue_factory(), adm.get(),
         webrtc::MockAudioEncoderFactory::CreateUnusedFactory(),
@@ -3908,8 +3906,8 @@
     // I think it will become clear once audio decoder injection is completed.
     rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
         webrtc::test::MockAudioDeviceModule::CreateNice();
-    rtc::scoped_refptr<webrtc::AudioProcessing> apm =
-        use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create();
+    scoped_refptr<AudioProcessing> apm =
+        use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
     cricket::WebRtcVoiceEngine engine(
         &env.task_queue_factory(), adm.get(),
         webrtc::MockAudioEncoderFactory::CreateUnusedFactory(),
@@ -3975,6 +3973,7 @@
 }
 
 TEST(WebRtcVoiceEngineTest, CollectRecvCodecs) {
+  Environment env = CreateEnvironment();
   for (bool use_null_apm : {false, true}) {
     std::vector<webrtc::AudioCodecSpec> specs;
     webrtc::AudioCodecSpec spec1{{"codec1", 48000, 2, {{"param1", "value1"}}},
@@ -3993,8 +3992,6 @@
     specs.push_back(
         webrtc::AudioCodecSpec{{"codec5", 8000, 2}, {8000, 1, 64000}});
 
-    std::unique_ptr<webrtc::TaskQueueFactory> task_queue_factory =
-        webrtc::CreateDefaultTaskQueueFactory();
     rtc::scoped_refptr<webrtc::MockAudioEncoderFactory> unused_encoder_factory =
         webrtc::MockAudioEncoderFactory::CreateUnusedFactory();
     rtc::scoped_refptr<webrtc::MockAudioDecoderFactory> mock_decoder_factory =
@@ -4004,12 +4001,11 @@
     rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
         webrtc::test::MockAudioDeviceModule::CreateNice();
 
-    rtc::scoped_refptr<webrtc::AudioProcessing> apm =
-        use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create();
-    webrtc::FieldTrialBasedConfig field_trials;
+    scoped_refptr<AudioProcessing> apm =
+        use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
     cricket::WebRtcVoiceEngine engine(
-        task_queue_factory.get(), adm.get(), unused_encoder_factory,
-        mock_decoder_factory, nullptr, apm, nullptr, field_trials);
+        &env.task_queue_factory(), adm.get(), unused_encoder_factory,
+        mock_decoder_factory, nullptr, apm, nullptr, env.field_trials());
     engine.Init();
     auto codecs = engine.recv_codecs();
     EXPECT_EQ(11u, codecs.size());
@@ -4063,6 +4059,7 @@
 TEST(WebRtcVoiceEngineTest, CollectRecvCodecsWithLatePtAssignment) {
   webrtc::test::ScopedKeyValueConfig field_trials(
       "WebRTC-PayloadTypesInTransport/Enabled/");
+  Environment env = CreateEnvironment(&field_trials);
 
   for (bool use_null_apm : {false, true}) {
     std::vector<webrtc::AudioCodecSpec> specs;
@@ -4082,8 +4079,6 @@
     specs.push_back(
         webrtc::AudioCodecSpec{{"codec5", 8000, 2}, {8000, 1, 64000}});
 
-    std::unique_ptr<webrtc::TaskQueueFactory> task_queue_factory =
-        webrtc::CreateDefaultTaskQueueFactory();
     rtc::scoped_refptr<webrtc::MockAudioEncoderFactory> unused_encoder_factory =
         webrtc::MockAudioEncoderFactory::CreateUnusedFactory();
     rtc::scoped_refptr<webrtc::MockAudioDecoderFactory> mock_decoder_factory =
@@ -4093,11 +4088,11 @@
     rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
         webrtc::test::MockAudioDeviceModule::CreateNice();
 
-    rtc::scoped_refptr<webrtc::AudioProcessing> apm =
-        use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create();
+    scoped_refptr<AudioProcessing> apm =
+        use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
     cricket::WebRtcVoiceEngine engine(
-        task_queue_factory.get(), adm.get(), unused_encoder_factory,
-        mock_decoder_factory, nullptr, apm, nullptr, field_trials);
+        &env.task_queue_factory(), adm.get(), unused_encoder_factory,
+        mock_decoder_factory, nullptr, apm, nullptr, env.field_trials());
     engine.Init();
     auto codecs = engine.recv_codecs();
     EXPECT_EQ(11u, codecs.size());