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}
This commit is contained in:
Danil Chapovalov 2024-10-24 16:16:47 +02:00 committed by WebRTC LUCI CQ
parent 4a482a2160
commit dc03d8731f
36 changed files with 160 additions and 167 deletions

View File

@ -99,7 +99,7 @@ if (!build_with_chromium) {
"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",
]

View File

@ -85,12 +85,12 @@ rtc_source_set("audio_processing") {
]
}
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 @@ if (rtc_include_tests) {
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",

View File

@ -214,16 +214,17 @@ std::string AudioProcessing::Config::ToString() const {
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 @@ absl::Nonnull<std::unique_ptr<AudioProcessingFactory>> CustomAudioProcessing(
};
RTC_CHECK(audio_processing);
return std::make_unique<Factory>(std::move(audio_processing));
return std::make_unique<Builder>(std::move(audio_processing));
}
} // namespace webrtc

View File

@ -734,20 +734,21 @@ class RTC_EXPORT AudioProcessing : public RefCountInterface {
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 @@ class CustomProcessing {
};
// TODO: bugs.webrtc.org/369904700 - Deprecate and remove in favor of the
// BuiltinAudioProcessingFactory.
// BuiltinAudioProcessingBuilder.
class RTC_EXPORT AudioProcessingBuilder {
public:
AudioProcessingBuilder();

View File

@ -24,15 +24,15 @@ namespace webrtc {
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

View File

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

View File

@ -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 @@ class RTC_EXPORT BuiltinAudioProcessingFactory : public AudioProcessingFactory {
// 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 @@ class RTC_EXPORT BuiltinAudioProcessingFactory : public AudioProcessingFactory {
} // namespace webrtc
#endif // API_AUDIO_BUILTIN_AUDIO_PROCESSING_FACTORY_H_
#endif // API_AUDIO_BUILTIN_AUDIO_PROCESSING_BUILDER_H_

View File

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

View File

@ -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 @@ rtc::scoped_refptr<PeerConnectionFactoryInterface> CreatePeerConnectionFactory(
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);

View File

@ -47,8 +47,8 @@ class MediaFactoryImpl : public MediaFactory {
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>(

View File

@ -35,8 +35,8 @@ void EnableMediaWithDefaults(PeerConnectionFactoryDependencies& deps) {
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();

View File

@ -1471,9 +1471,9 @@ struct RTC_EXPORT PeerConnectionFactoryDependencies final {
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;

View File

@ -33,8 +33,8 @@ TEST(VoipEngineFactoryTest, CreateEngineWithMockModules) {
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));

View File

@ -35,12 +35,12 @@ std::unique_ptr<VoipEngine> CreateVoipEngine(VoipEngineConfig config) {
#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) {

View File

@ -61,16 +61,16 @@ struct VoipEngineConfig {
// 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;
};

View File

@ -490,7 +490,7 @@ if (is_ios || (is_mac && target_cpu != "x86")) {
"../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",

View File

@ -56,7 +56,7 @@ if (is_android) {
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",

View File

@ -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 @@ void AndroidVoipClient::Init(
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();

View File

@ -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 @@ void ObjCCallClient::CreatePeerConnectionFactory() {
[[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));

View File

@ -347,7 +347,7 @@ if (rtc_include_tests) {
"../../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 @@ if (rtc_include_tests) {
":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",

View File

@ -48,7 +48,7 @@ if (rtc_include_tests) {
"..: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",
]

View File

@ -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 @@ using ::testing::StrictMock;
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;

View File

@ -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 @@ AudioProcessing::Config GetApmTestConfig(AecType aec_type) {
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_,

View File

@ -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, AudioParameterChangeTriggersInit) {
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, UpdateCapturePreGainRuntimeSetting) {
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,
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 @@ TEST(AudioProcessingImplTest, EchoControllerObservesSetCaptureUsageChange) {
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 @@ TEST(AudioProcessingImplTest,
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 @@ TEST(AudioProcessingImplTest,
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 @@ TEST(AudioProcessingImplTest,
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 @@ TEST(AudioProcessingImplTest, EchoControllerObservesPlayoutVolumeChange) {
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 @@ TEST(AudioProcessingImplTest, RenderPreProcessorBeforeEchoDetector) {
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);

View File

@ -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 @@ class CallSimulator : public ::testing::TestWithParam<SimulationConfig> {
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;

View File

@ -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 @@ ApmTest::ApmTest()
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 @@ TEST_F(ApmTest, NoProcessingWhenAllComponentsDisabledFloat) {
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 @@ TEST_F(ApmTest, Process) {
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 @@ class AudioProcessingTest
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 @@ void RunApmRateAndChannelTest(
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 @@ TEST(ApmConfiguration, EnablePostProcessing) {
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 @@ TEST(ApmConfiguration, EnablePreProcessing) {
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 @@ TEST(ApmConfiguration, EnableCaptureAnalyzer) {
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 @@ TEST(ApmConfiguration, PreProcessingReceivesRuntimeSettings) {
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 @@ TEST(ApmConfiguration, EchoControlInjection) {
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 @@ TEST(ApmConfiguration, EchoDetectorInjection) {
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 @@ TEST(ApmConfiguration, EchoDetectorInjection) {
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 @@ TEST(ApmStatistics, DoNotReportVoiceDetectedStat) {
}
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, DoNotReportVoiceDetectedStat) {
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, GetStatisticsReportsNoEchoDetectorStatsWhenDisabled) {
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 @@ TEST_P(ApmFormatHandlingTest, IntApi) {
// 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 @@ TEST_P(ApmFormatHandlingTest, FloatApi) {
// Call APM.
scoped_refptr<AudioProcessing> ap =
BuiltinAudioProcessingFactory().Create(CreateEnvironment());
BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
int error;
if (stream_direction_ == kForward) {
error =
@ -3439,7 +3439,7 @@ TEST(ApmAnalyzeReverseStreamFormatTest, AnalyzeReverseStream) {
// Call APM.
scoped_refptr<AudioProcessing> ap =
BuiltinAudioProcessingFactory().Create(CreateEnvironment());
BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
int error = ap->AnalyzeReverseStream(input_block.channels(), input_config);
// Check output.

View File

@ -176,10 +176,10 @@ class MockAudioProcessing : public AudioProcessing {
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));
};

View File

@ -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 @@ void DebugDumpReplayer::MaybeRecreateApm(const audioproc::Config& msg) {
// 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());
}
}

View File

@ -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 @@ DebugDumpGenerator::DebugDumpGenerator(absl::string_view input_file_name,
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(

View File

@ -2578,7 +2578,7 @@ if (rtc_include_tests && !build_with_chromium) {
"../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",

View File

@ -75,7 +75,7 @@ using ::testing::NiceMock;
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, UsesPacketSocketFactory) {
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 =

View File

@ -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 @@ bool PeerConnectionIntegrationWrapper::Init(
// 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);
}

View File

@ -512,7 +512,7 @@ webrtc_fuzzer_test("audio_processing_fuzzer") {
"../../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 @@ webrtc_fuzzer_test("audio_processing_sample_rate_fuzzer") {
"../../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",

View File

@ -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 @@ rtc::scoped_refptr<AudioProcessing> CreateApm(
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));

View File

@ -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 @@ void FuzzOneInput(const uint8_t* data, size_t size) {
? 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;

View File

@ -228,7 +228,7 @@ PeerConnectionFactoryDependencies CreatePCFDependencies(
// 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;