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:
parent
4a482a2160
commit
dc03d8731f
@ -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",
|
||||
]
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>(
|
||||
@ -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_
|
||||
@ -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);
|
||||
@ -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);
|
||||
|
||||
@ -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>(
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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();
|
||||
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
]
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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_,
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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));
|
||||
};
|
||||
|
||||
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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 =
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user