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_device",
|
||||||
"audio:audio_mixer_api",
|
"audio:audio_mixer_api",
|
||||||
"audio:audio_processing",
|
"audio:audio_processing",
|
||||||
"audio:builtin_audio_processing_factory",
|
"audio:builtin_audio_processing_builder",
|
||||||
"audio_codecs:audio_codecs_api",
|
"audio_codecs:audio_codecs_api",
|
||||||
"video_codecs:video_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 = [ "*" ]
|
visibility = [ "*" ]
|
||||||
configs += [ "../../modules/audio_processing:apm_debug_dump" ]
|
configs += [ "../../modules/audio_processing:apm_debug_dump" ]
|
||||||
sources = [
|
sources = [
|
||||||
"builtin_audio_processing_factory.cc",
|
"builtin_audio_processing_builder.cc",
|
||||||
"builtin_audio_processing_factory.h",
|
"builtin_audio_processing_builder.h",
|
||||||
]
|
]
|
||||||
deps = [
|
deps = [
|
||||||
":audio_processing",
|
":audio_processing",
|
||||||
@ -169,11 +169,11 @@ if (rtc_include_tests) {
|
|||||||
testonly = true
|
testonly = true
|
||||||
sources = [
|
sources = [
|
||||||
"audio_processing_unittest.cc",
|
"audio_processing_unittest.cc",
|
||||||
"builtin_audio_processing_factory_unittest.cc",
|
"builtin_audio_processing_builder_unittest.cc",
|
||||||
]
|
]
|
||||||
deps = [
|
deps = [
|
||||||
":audio_processing",
|
":audio_processing",
|
||||||
":builtin_audio_processing_factory",
|
":builtin_audio_processing_builder",
|
||||||
"..:make_ref_counted",
|
"..:make_ref_counted",
|
||||||
"..:scoped_refptr",
|
"..:scoped_refptr",
|
||||||
"../../modules/audio_processing:mocks",
|
"../../modules/audio_processing:mocks",
|
||||||
|
|||||||
@ -214,16 +214,17 @@ std::string AudioProcessing::Config::ToString() const {
|
|||||||
return builder.str();
|
return builder.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
absl::Nonnull<std::unique_ptr<AudioProcessingFactory>> CustomAudioProcessing(
|
absl::Nonnull<std::unique_ptr<AudioProcessingBuilderInterface>>
|
||||||
|
CustomAudioProcessing(
|
||||||
absl::Nonnull<scoped_refptr<AudioProcessing>> audio_processing) {
|
absl::Nonnull<scoped_refptr<AudioProcessing>> audio_processing) {
|
||||||
class Factory : public AudioProcessingFactory {
|
class Builder : public AudioProcessingBuilderInterface {
|
||||||
public:
|
public:
|
||||||
explicit Factory(absl::Nonnull<scoped_refptr<AudioProcessing>> ap)
|
explicit Builder(absl::Nonnull<scoped_refptr<AudioProcessing>> ap)
|
||||||
: ap_(std::move(ap)) {}
|
: ap_(std::move(ap)) {}
|
||||||
|
|
||||||
absl::Nullable<scoped_refptr<AudioProcessing>> Create(
|
absl::Nullable<scoped_refptr<AudioProcessing>> Build(
|
||||||
const Environment& /*env*/) override {
|
const Environment& /*env*/) override {
|
||||||
return ap_;
|
return std::move(ap_);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -231,7 +232,7 @@ absl::Nonnull<std::unique_ptr<AudioProcessingFactory>> CustomAudioProcessing(
|
|||||||
};
|
};
|
||||||
|
|
||||||
RTC_CHECK(audio_processing);
|
RTC_CHECK(audio_processing);
|
||||||
return std::make_unique<Factory>(std::move(audio_processing));
|
return std::make_unique<Builder>(std::move(audio_processing));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|||||||
@ -734,20 +734,21 @@ class RTC_EXPORT AudioProcessing : public RefCountInterface {
|
|||||||
static int GetFrameSize(int sample_rate_hz) { return sample_rate_hz / 100; }
|
static int GetFrameSize(int sample_rate_hz) { return sample_rate_hz / 100; }
|
||||||
};
|
};
|
||||||
|
|
||||||
class AudioProcessingFactory {
|
class AudioProcessingBuilderInterface {
|
||||||
public:
|
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;
|
const Environment& env) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Returns factory that always returns the same `audio_processing` ignoring the
|
// Returns builder that returns the `audio_processing` ignoring the extra
|
||||||
// extra construction parameter `env`.
|
// construction parameter `env`.
|
||||||
// nullptr `audio_processing` is not supported as in some scenarios that imply
|
// nullptr `audio_processing` is not supported as in some scenarios that imply
|
||||||
// no audio processing, while in others - default builtin audio processing.
|
// no audio processing, while in others - default builtin audio processing.
|
||||||
// Callers should be explicit which of these two behaviors they want.
|
// 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);
|
absl::Nonnull<scoped_refptr<AudioProcessing>> audio_processing);
|
||||||
|
|
||||||
// Experimental interface for a custom analysis submodule.
|
// 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
|
// TODO: bugs.webrtc.org/369904700 - Deprecate and remove in favor of the
|
||||||
// BuiltinAudioProcessingFactory.
|
// BuiltinAudioProcessingBuilder.
|
||||||
class RTC_EXPORT AudioProcessingBuilder {
|
class RTC_EXPORT AudioProcessingBuilder {
|
||||||
public:
|
public:
|
||||||
AudioProcessingBuilder();
|
AudioProcessingBuilder();
|
||||||
|
|||||||
@ -24,15 +24,15 @@ namespace webrtc {
|
|||||||
using ::testing::_;
|
using ::testing::_;
|
||||||
using ::testing::NotNull;
|
using ::testing::NotNull;
|
||||||
|
|
||||||
TEST(CustomAudioProcessingTest, ReturnsTheSameAudioProcessing) {
|
TEST(CustomAudioProcessingTest, ReturnsPassedAudioProcessing) {
|
||||||
scoped_refptr<AudioProcessing> ap =
|
scoped_refptr<AudioProcessing> ap =
|
||||||
make_ref_counted<test::MockAudioProcessing>();
|
make_ref_counted<test::MockAudioProcessing>();
|
||||||
|
|
||||||
std::unique_ptr<AudioProcessingFactory> factory = CustomAudioProcessing(ap);
|
std::unique_ptr<AudioProcessingBuilderInterface> builder =
|
||||||
|
CustomAudioProcessing(ap);
|
||||||
|
|
||||||
ASSERT_THAT(factory, NotNull());
|
ASSERT_THAT(builder, NotNull());
|
||||||
EXPECT_EQ(factory->Create(CreateEnvironment()), ap);
|
EXPECT_EQ(builder->Build(CreateEnvironment()), ap);
|
||||||
EXPECT_EQ(factory->Create(CreateEnvironment()), ap);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if GTEST_HAS_DEATH_TEST
|
#if GTEST_HAS_DEATH_TEST
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
* in the file PATENTS. All contributing project authors may
|
* in the file PATENTS. All contributing project authors may
|
||||||
* be found in the AUTHORS file in the root of the source tree.
|
* 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>
|
#include <utility>
|
||||||
|
|
||||||
@ -22,14 +22,7 @@
|
|||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
absl::Nullable<scoped_refptr<AudioProcessing>>
|
absl::Nullable<scoped_refptr<AudioProcessing>>
|
||||||
BuiltinAudioProcessingFactory::Create(const Environment& /*env*/) {
|
BuiltinAudioProcessingBuilder::Build(const Environment& /*env*/) {
|
||||||
if (called_create_) {
|
|
||||||
RTC_DLOG(LS_ERROR)
|
|
||||||
<< "Calling BuiltinAudioProcessingFactory::Create more than once "
|
|
||||||
"is currently unsupported.";
|
|
||||||
}
|
|
||||||
called_create_ = true;
|
|
||||||
|
|
||||||
// TODO: bugs.webrtc.org/369904700 - Pass `env` when AudioProcessingImpl gets
|
// TODO: bugs.webrtc.org/369904700 - Pass `env` when AudioProcessingImpl gets
|
||||||
// constructor that accepts it.
|
// constructor that accepts it.
|
||||||
return make_ref_counted<AudioProcessingImpl>(
|
return make_ref_counted<AudioProcessingImpl>(
|
||||||
@ -8,8 +8,8 @@
|
|||||||
* be found in the AUTHORS file in the root of the source tree.
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef API_AUDIO_BUILTIN_AUDIO_PROCESSING_FACTORY_H_
|
#ifndef API_AUDIO_BUILTIN_AUDIO_PROCESSING_BUILDER_H_
|
||||||
#define API_AUDIO_BUILTIN_AUDIO_PROCESSING_FACTORY_H_
|
#define API_AUDIO_BUILTIN_AUDIO_PROCESSING_BUILDER_H_
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
@ -23,53 +23,54 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
class RTC_EXPORT BuiltinAudioProcessingFactory : public AudioProcessingFactory {
|
class RTC_EXPORT BuiltinAudioProcessingBuilder
|
||||||
|
: public AudioProcessingBuilderInterface {
|
||||||
public:
|
public:
|
||||||
BuiltinAudioProcessingFactory() = default;
|
BuiltinAudioProcessingBuilder() = default;
|
||||||
explicit BuiltinAudioProcessingFactory(const AudioProcessing::Config& config)
|
explicit BuiltinAudioProcessingBuilder(const AudioProcessing::Config& config)
|
||||||
: config_(config) {}
|
: config_(config) {}
|
||||||
BuiltinAudioProcessingFactory(const BuiltinAudioProcessingFactory&) = delete;
|
BuiltinAudioProcessingBuilder(const BuiltinAudioProcessingBuilder&) = delete;
|
||||||
BuiltinAudioProcessingFactory& operator=(
|
BuiltinAudioProcessingBuilder& operator=(
|
||||||
const BuiltinAudioProcessingFactory&) = delete;
|
const BuiltinAudioProcessingBuilder&) = delete;
|
||||||
~BuiltinAudioProcessingFactory() override = default;
|
~BuiltinAudioProcessingBuilder() override = default;
|
||||||
|
|
||||||
// Sets the APM configuration.
|
// Sets the APM configuration.
|
||||||
BuiltinAudioProcessingFactory& SetConfig(
|
BuiltinAudioProcessingBuilder& SetConfig(
|
||||||
const AudioProcessing::Config& config) {
|
const AudioProcessing::Config& config) {
|
||||||
config_ = config;
|
config_ = config;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sets the echo controller factory to inject when APM is created.
|
// Sets the echo controller factory to inject when APM is created.
|
||||||
BuiltinAudioProcessingFactory& SetEchoControlFactory(
|
BuiltinAudioProcessingBuilder& SetEchoControlFactory(
|
||||||
std::unique_ptr<EchoControlFactory> echo_control_factory) {
|
std::unique_ptr<EchoControlFactory> echo_control_factory) {
|
||||||
echo_control_factory_ = std::move(echo_control_factory);
|
echo_control_factory_ = std::move(echo_control_factory);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sets the capture post-processing sub-module to inject when APM is created.
|
// Sets the capture post-processing sub-module to inject when APM is created.
|
||||||
BuiltinAudioProcessingFactory& SetCapturePostProcessing(
|
BuiltinAudioProcessingBuilder& SetCapturePostProcessing(
|
||||||
std::unique_ptr<CustomProcessing> capture_post_processing) {
|
std::unique_ptr<CustomProcessing> capture_post_processing) {
|
||||||
capture_post_processing_ = std::move(capture_post_processing);
|
capture_post_processing_ = std::move(capture_post_processing);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sets the render pre-processing sub-module to inject when APM is created.
|
// Sets the render pre-processing sub-module to inject when APM is created.
|
||||||
BuiltinAudioProcessingFactory& SetRenderPreProcessing(
|
BuiltinAudioProcessingBuilder& SetRenderPreProcessing(
|
||||||
std::unique_ptr<CustomProcessing> render_pre_processing) {
|
std::unique_ptr<CustomProcessing> render_pre_processing) {
|
||||||
render_pre_processing_ = std::move(render_pre_processing);
|
render_pre_processing_ = std::move(render_pre_processing);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sets the echo detector to inject when APM is created.
|
// Sets the echo detector to inject when APM is created.
|
||||||
BuiltinAudioProcessingFactory& SetEchoDetector(
|
BuiltinAudioProcessingBuilder& SetEchoDetector(
|
||||||
rtc::scoped_refptr<EchoDetector> echo_detector) {
|
rtc::scoped_refptr<EchoDetector> echo_detector) {
|
||||||
echo_detector_ = std::move(echo_detector);
|
echo_detector_ = std::move(echo_detector);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sets the capture analyzer sub-module to inject when APM is created.
|
// Sets the capture analyzer sub-module to inject when APM is created.
|
||||||
BuiltinAudioProcessingFactory& SetCaptureAnalyzer(
|
BuiltinAudioProcessingBuilder& SetCaptureAnalyzer(
|
||||||
std::unique_ptr<CustomAudioAnalyzer> capture_analyzer) {
|
std::unique_ptr<CustomAudioAnalyzer> capture_analyzer) {
|
||||||
capture_analyzer_ = std::move(capture_analyzer);
|
capture_analyzer_ = std::move(capture_analyzer);
|
||||||
return *this;
|
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
|
// Creates an APM instance with the specified config or the default one if
|
||||||
// unspecified. Injects the specified components transferring the ownership
|
// unspecified. Injects the specified components transferring the ownership
|
||||||
// to the newly created APM instance. This implementation of the
|
// to the newly created APM instance.
|
||||||
// AudioProcessingFactory interface is not designed to be used more than once.
|
absl::Nullable<scoped_refptr<AudioProcessing>> Build(
|
||||||
// Calling `Create` second time would return an unspecified object.
|
|
||||||
absl::Nullable<scoped_refptr<AudioProcessing>> Create(
|
|
||||||
const Environment& env) override;
|
const Environment& env) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool called_create_ = false;
|
|
||||||
AudioProcessing::Config config_;
|
AudioProcessing::Config config_;
|
||||||
std::unique_ptr<EchoControlFactory> echo_control_factory_;
|
std::unique_ptr<EchoControlFactory> echo_control_factory_;
|
||||||
std::unique_ptr<CustomProcessing> capture_post_processing_;
|
std::unique_ptr<CustomProcessing> capture_post_processing_;
|
||||||
@ -95,4 +93,4 @@ class RTC_EXPORT BuiltinAudioProcessingFactory : public AudioProcessingFactory {
|
|||||||
|
|
||||||
} // namespace webrtc
|
} // 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.
|
* 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/audio/audio_processing.h"
|
||||||
#include "api/environment/environment.h"
|
#include "api/environment/environment.h"
|
||||||
@ -21,25 +21,25 @@ namespace webrtc {
|
|||||||
|
|
||||||
using ::testing::NotNull;
|
using ::testing::NotNull;
|
||||||
|
|
||||||
TEST(BuiltinAudioProcessingFactoryTest, CreatesWithDefaults) {
|
TEST(BuiltinAudioProcessingBuilderTest, CreatesWithDefaults) {
|
||||||
EXPECT_THAT(BuiltinAudioProcessingFactory().Create(CreateEnvironment()),
|
EXPECT_THAT(BuiltinAudioProcessingBuilder().Build(CreateEnvironment()),
|
||||||
NotNull());
|
NotNull());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(BuiltinAudioProcessingFactoryTest, CreatesWithConfig) {
|
TEST(BuiltinAudioProcessingBuilderTest, CreatesWithConfig) {
|
||||||
const Environment env = CreateEnvironment();
|
const Environment env = CreateEnvironment();
|
||||||
AudioProcessing::Config config;
|
AudioProcessing::Config config;
|
||||||
// Change a field to make config different to default one.
|
// Change a field to make config different to default one.
|
||||||
config.gain_controller1.enabled = !config.gain_controller1.enabled;
|
config.gain_controller1.enabled = !config.gain_controller1.enabled;
|
||||||
|
|
||||||
scoped_refptr<AudioProcessing> ap1 =
|
scoped_refptr<AudioProcessing> ap1 =
|
||||||
BuiltinAudioProcessingFactory(config).Create(env);
|
BuiltinAudioProcessingBuilder(config).Build(env);
|
||||||
ASSERT_THAT(ap1, NotNull());
|
ASSERT_THAT(ap1, NotNull());
|
||||||
EXPECT_EQ(ap1->GetConfig().gain_controller1.enabled,
|
EXPECT_EQ(ap1->GetConfig().gain_controller1.enabled,
|
||||||
config.gain_controller1.enabled);
|
config.gain_controller1.enabled);
|
||||||
|
|
||||||
scoped_refptr<AudioProcessing> ap2 =
|
scoped_refptr<AudioProcessing> ap2 =
|
||||||
BuiltinAudioProcessingFactory().SetConfig(config).Create(env);
|
BuiltinAudioProcessingBuilder().SetConfig(config).Build(env);
|
||||||
ASSERT_THAT(ap2, NotNull());
|
ASSERT_THAT(ap2, NotNull());
|
||||||
EXPECT_EQ(ap2->GetConfig().gain_controller1.enabled,
|
EXPECT_EQ(ap2->GetConfig().gain_controller1.enabled,
|
||||||
config.gain_controller1.enabled);
|
config.gain_controller1.enabled);
|
||||||
@ -16,7 +16,7 @@
|
|||||||
#include "api/audio/audio_device.h"
|
#include "api/audio/audio_device.h"
|
||||||
#include "api/audio/audio_mixer.h"
|
#include "api/audio/audio_mixer.h"
|
||||||
#include "api/audio/audio_processing.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_decoder_factory.h"
|
||||||
#include "api/audio_codecs/audio_encoder_factory.h"
|
#include "api/audio_codecs/audio_encoder_factory.h"
|
||||||
#include "api/enable_media.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_decoder_factory = std::move(audio_decoder_factory);
|
||||||
dependencies.audio_frame_processor = std::move(audio_frame_processor);
|
dependencies.audio_frame_processor = std::move(audio_frame_processor);
|
||||||
if (audio_processing != nullptr) {
|
if (audio_processing != nullptr) {
|
||||||
dependencies.audio_processing_factory =
|
dependencies.audio_processing_builder =
|
||||||
CustomAudioProcessing(std::move(audio_processing));
|
CustomAudioProcessing(std::move(audio_processing));
|
||||||
} else {
|
} else {
|
||||||
#ifndef WEBRTC_EXCLUDE_AUDIO_PROCESSING_MODULE
|
#ifndef WEBRTC_EXCLUDE_AUDIO_PROCESSING_MODULE
|
||||||
dependencies.audio_processing_factory =
|
dependencies.audio_processing_builder =
|
||||||
std::make_unique<BuiltinAudioProcessingFactory>();
|
std::make_unique<BuiltinAudioProcessingBuilder>();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
dependencies.audio_mixer = std::move(audio_mixer);
|
dependencies.audio_mixer = std::move(audio_mixer);
|
||||||
|
|||||||
@ -47,8 +47,8 @@ class MediaFactoryImpl : public MediaFactory {
|
|||||||
const Environment& env,
|
const Environment& env,
|
||||||
PeerConnectionFactoryDependencies& deps) override {
|
PeerConnectionFactoryDependencies& deps) override {
|
||||||
absl::Nullable<scoped_refptr<AudioProcessing>> audio_processing =
|
absl::Nullable<scoped_refptr<AudioProcessing>> audio_processing =
|
||||||
deps.audio_processing_factory != nullptr
|
deps.audio_processing_builder != nullptr
|
||||||
? deps.audio_processing_factory->Create(env)
|
? std::move(deps.audio_processing_builder)->Build(env)
|
||||||
: std::move(deps.audio_processing);
|
: std::move(deps.audio_processing);
|
||||||
|
|
||||||
auto audio_engine = std::make_unique<WebRtcVoiceEngine>(
|
auto audio_engine = std::make_unique<WebRtcVoiceEngine>(
|
||||||
|
|||||||
@ -35,8 +35,8 @@ void EnableMediaWithDefaults(PeerConnectionFactoryDependencies& deps) {
|
|||||||
deps.audio_decoder_factory = CreateBuiltinAudioDecoderFactory();
|
deps.audio_decoder_factory = CreateBuiltinAudioDecoderFactory();
|
||||||
}
|
}
|
||||||
if (deps.audio_processing == nullptr &&
|
if (deps.audio_processing == nullptr &&
|
||||||
deps.audio_processing_factory == nullptr) {
|
deps.audio_processing_builder == nullptr) {
|
||||||
// TODO: bugs.webrtc.org/369904700 - set `deps.audio_processing_factory`
|
// TODO: bugs.webrtc.org/369904700 - set `deps.audio_processing_builder`
|
||||||
// instead of `deps.audio_processing` when there is an implementation that
|
// instead of `deps.audio_processing` when there is an implementation that
|
||||||
// can replace `AudioProcessingBuilder`.
|
// can replace `AudioProcessingBuilder`.
|
||||||
deps.audio_processing = AudioProcessingBuilder().Create();
|
deps.audio_processing = AudioProcessingBuilder().Create();
|
||||||
|
|||||||
@ -1471,9 +1471,9 @@ struct RTC_EXPORT PeerConnectionFactoryDependencies final {
|
|||||||
rtc::scoped_refptr<AudioDecoderFactory> audio_decoder_factory;
|
rtc::scoped_refptr<AudioDecoderFactory> audio_decoder_factory;
|
||||||
rtc::scoped_refptr<AudioMixer> audio_mixer;
|
rtc::scoped_refptr<AudioMixer> audio_mixer;
|
||||||
// TODO: bugs.webrtc.org/369904700 - Deprecate `audio_processing` in favor
|
// TODO: bugs.webrtc.org/369904700 - Deprecate `audio_processing` in favor
|
||||||
// of `audio_processing_factory`.
|
// of `audio_processing_builder`.
|
||||||
rtc::scoped_refptr<AudioProcessing> audio_processing;
|
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<AudioFrameProcessor> audio_frame_processor;
|
||||||
std::unique_ptr<VideoEncoderFactory> video_encoder_factory;
|
std::unique_ptr<VideoEncoderFactory> video_encoder_factory;
|
||||||
std::unique_ptr<VideoDecoderFactory> video_decoder_factory;
|
std::unique_ptr<VideoDecoderFactory> video_decoder_factory;
|
||||||
|
|||||||
@ -33,8 +33,8 @@ TEST(VoipEngineFactoryTest, CreateEngineWithMockModules) {
|
|||||||
config.encoder_factory = rtc::make_ref_counted<MockAudioEncoderFactory>();
|
config.encoder_factory = rtc::make_ref_counted<MockAudioEncoderFactory>();
|
||||||
config.decoder_factory = rtc::make_ref_counted<MockAudioDecoderFactory>();
|
config.decoder_factory = rtc::make_ref_counted<MockAudioDecoderFactory>();
|
||||||
config.task_queue_factory = CreateDefaultTaskQueueFactory();
|
config.task_queue_factory = CreateDefaultTaskQueueFactory();
|
||||||
config.audio_processing_factory =
|
config.audio_processing_builder =
|
||||||
std::make_unique<NiceMock<test::MockAudioProcessingFactory>>();
|
std::make_unique<NiceMock<test::MockAudioProcessingBuilder>>();
|
||||||
config.audio_device_module = test::MockAudioDeviceModule::CreateNice();
|
config.audio_device_module = test::MockAudioDeviceModule::CreateNice();
|
||||||
|
|
||||||
auto voip_engine = CreateVoipEngine(std::move(config));
|
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 push
|
||||||
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
||||||
RTC_CHECK(config.audio_processing == nullptr ||
|
RTC_CHECK(config.audio_processing == nullptr ||
|
||||||
config.audio_processing_factory == nullptr);
|
config.audio_processing_builder == nullptr);
|
||||||
scoped_refptr<AudioProcessing> audio_processing =
|
scoped_refptr<AudioProcessing> audio_processing =
|
||||||
std::move(config.audio_processing);
|
std::move(config.audio_processing);
|
||||||
#pragma clang diagnostic pop
|
#pragma clang diagnostic pop
|
||||||
if (config.audio_processing_factory != nullptr) {
|
if (config.audio_processing_builder != nullptr) {
|
||||||
audio_processing = config.audio_processing_factory->Create(env);
|
audio_processing = std::move(config.audio_processing_builder)->Build(env);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (audio_processing == nullptr) {
|
if (audio_processing == nullptr) {
|
||||||
|
|||||||
@ -61,16 +61,16 @@ struct VoipEngineConfig {
|
|||||||
// play through its output device (e.g. speaker).
|
// play through its output device (e.g. speaker).
|
||||||
scoped_refptr<AudioDeviceModule> audio_device_module;
|
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
|
// AudioProcessing provides audio procesing functionalities (e.g. acoustic
|
||||||
// echo cancellation, noise suppression, gain control, etc) on audio input
|
// echo cancellation, noise suppression, gain control, etc) on audio input
|
||||||
// samples for VoipEngine. When optionally not set, VoipEngine will not have
|
// samples for VoipEngine. When optionally not set, VoipEngine will not have
|
||||||
// such functionalities to perform on audio input samples received from
|
// such functionalities to perform on audio input samples received from
|
||||||
// AudioDeviceModule.
|
// 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
|
// 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;
|
[[deprecated]] scoped_refptr<AudioProcessing> audio_processing;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -490,7 +490,7 @@ if (is_ios || (is_mac && target_cpu != "x86")) {
|
|||||||
"../api:scoped_refptr",
|
"../api:scoped_refptr",
|
||||||
"../api:sequence_checker",
|
"../api:sequence_checker",
|
||||||
"../api/audio:audio_processing",
|
"../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_decoder_factory",
|
||||||
"../api/audio_codecs:builtin_audio_encoder_factory",
|
"../api/audio_codecs:builtin_audio_encoder_factory",
|
||||||
"../api/rtc_event_log:rtc_event_log_factory",
|
"../api/rtc_event_log:rtc_event_log_factory",
|
||||||
|
|||||||
@ -56,7 +56,7 @@ if (is_android) {
|
|||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
":generated_jni",
|
":generated_jni",
|
||||||
"../../api/audio:builtin_audio_processing_factory",
|
"../../api/audio:builtin_audio_processing_builder",
|
||||||
"../../rtc_base:async_packet_socket",
|
"../../rtc_base:async_packet_socket",
|
||||||
"../../rtc_base:async_udp_socket",
|
"../../rtc_base:async_udp_socket",
|
||||||
"../../rtc_base:logging",
|
"../../rtc_base:logging",
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "absl/memory/memory.h"
|
#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_decoder_factory.h"
|
||||||
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
|
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
|
||||||
#include "api/task_queue/default_task_queue_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.task_queue_factory = webrtc::CreateDefaultTaskQueueFactory();
|
||||||
config.audio_device_module =
|
config.audio_device_module =
|
||||||
webrtc::CreateJavaAudioDeviceModule(env, application_context.obj());
|
webrtc::CreateJavaAudioDeviceModule(env, application_context.obj());
|
||||||
config.audio_processing_factory =
|
config.audio_processing_builder =
|
||||||
std::make_unique<webrtc::BuiltinAudioProcessingFactory>();
|
std::make_unique<webrtc::BuiltinAudioProcessingBuilder>();
|
||||||
|
|
||||||
voip_thread_->Start();
|
voip_thread_->Start();
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
#import "sdk/objc/helpers/RTCCameraPreviewView.h"
|
#import "sdk/objc/helpers/RTCCameraPreviewView.h"
|
||||||
|
|
||||||
#include "api/audio/audio_processing.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_decoder_factory.h"
|
||||||
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
|
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
|
||||||
#include "api/enable_media.h"
|
#include "api/enable_media.h"
|
||||||
@ -125,7 +125,7 @@ void ObjCCallClient::CreatePeerConnectionFactory() {
|
|||||||
[[RTC_OBJC_TYPE(RTCDefaultVideoEncoderFactory) alloc] init]);
|
[[RTC_OBJC_TYPE(RTCDefaultVideoEncoderFactory) alloc] init]);
|
||||||
dependencies.video_decoder_factory = webrtc::ObjCToNativeVideoDecoderFactory(
|
dependencies.video_decoder_factory = webrtc::ObjCToNativeVideoDecoderFactory(
|
||||||
[[RTC_OBJC_TYPE(RTCDefaultVideoDecoderFactory) alloc] init]);
|
[[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);
|
webrtc::EnableMedia(dependencies);
|
||||||
dependencies.event_log_factory = std::make_unique<webrtc::RtcEventLogFactory>();
|
dependencies.event_log_factory = std::make_unique<webrtc::RtcEventLogFactory>();
|
||||||
pcf_ = webrtc::CreateModularPeerConnectionFactory(std::move(dependencies));
|
pcf_ = webrtc::CreateModularPeerConnectionFactory(std::move(dependencies));
|
||||||
|
|||||||
@ -347,7 +347,7 @@ if (rtc_include_tests) {
|
|||||||
"../../api/audio:aec3_factory",
|
"../../api/audio:aec3_factory",
|
||||||
"../../api/audio:audio_frame_api",
|
"../../api/audio:audio_frame_api",
|
||||||
"../../api/audio:audio_processing",
|
"../../api/audio:audio_processing",
|
||||||
"../../api/audio:builtin_audio_processing_factory",
|
"../../api/audio:builtin_audio_processing_builder",
|
||||||
"../../api/audio:echo_detector_creator",
|
"../../api/audio:echo_detector_creator",
|
||||||
"../../api/environment:environment_factory",
|
"../../api/environment:environment_factory",
|
||||||
"../../common_audio",
|
"../../common_audio",
|
||||||
@ -459,7 +459,7 @@ if (rtc_include_tests) {
|
|||||||
":audio_processing",
|
":audio_processing",
|
||||||
":audioproc_test_utils",
|
":audioproc_test_utils",
|
||||||
"../../api:array_view",
|
"../../api:array_view",
|
||||||
"../../api/audio:builtin_audio_processing_factory",
|
"../../api/audio:builtin_audio_processing_builder",
|
||||||
"../../api/environment:environment_factory",
|
"../../api/environment:environment_factory",
|
||||||
"../../api/numerics",
|
"../../api/numerics",
|
||||||
"../../api/test/metrics:global_metrics_logger_and_exporter",
|
"../../api/test/metrics:global_metrics_logger_and_exporter",
|
||||||
|
|||||||
@ -48,7 +48,7 @@ if (rtc_include_tests) {
|
|||||||
"..:audioproc_test_utils",
|
"..:audioproc_test_utils",
|
||||||
"../",
|
"../",
|
||||||
"../../../api/audio:audio_processing",
|
"../../../api/audio:audio_processing",
|
||||||
"../../../api/audio:builtin_audio_processing_factory",
|
"../../../api/audio:builtin_audio_processing_builder",
|
||||||
"../../../api/environment:environment_factory",
|
"../../../api/environment:environment_factory",
|
||||||
"//testing/gtest",
|
"//testing/gtest",
|
||||||
]
|
]
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include "api/audio/audio_processing.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/environment/environment_factory.h"
|
#include "api/environment/environment_factory.h"
|
||||||
#include "modules/audio_processing/aec_dump/mock_aec_dump.h"
|
#include "modules/audio_processing/aec_dump/mock_aec_dump.h"
|
||||||
#include "modules/audio_processing/audio_processing_impl.h"
|
#include "modules/audio_processing/audio_processing_impl.h"
|
||||||
@ -26,7 +26,7 @@ using ::testing::StrictMock;
|
|||||||
namespace {
|
namespace {
|
||||||
webrtc::scoped_refptr<webrtc::AudioProcessing> CreateAudioProcessing() {
|
webrtc::scoped_refptr<webrtc::AudioProcessing> CreateAudioProcessing() {
|
||||||
webrtc::scoped_refptr<webrtc::AudioProcessing> apm =
|
webrtc::scoped_refptr<webrtc::AudioProcessing> apm =
|
||||||
webrtc::BuiltinAudioProcessingFactory().Create(
|
webrtc::BuiltinAudioProcessingBuilder().Build(
|
||||||
webrtc::CreateEnvironment());
|
webrtc::CreateEnvironment());
|
||||||
RTC_DCHECK(apm);
|
RTC_DCHECK(apm);
|
||||||
return apm;
|
return apm;
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "api/array_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/environment/environment_factory.h"
|
||||||
#include "modules/audio_processing/audio_processing_impl.h"
|
#include "modules/audio_processing/audio_processing_impl.h"
|
||||||
#include "modules/audio_processing/test/test_utils.h"
|
#include "modules/audio_processing/test/test_utils.h"
|
||||||
@ -489,9 +489,9 @@ AudioProcessing::Config GetApmTestConfig(AecType aec_type) {
|
|||||||
|
|
||||||
AudioProcessingImplLockTest::AudioProcessingImplLockTest()
|
AudioProcessingImplLockTest::AudioProcessingImplLockTest()
|
||||||
: test_config_(GetParam()),
|
: test_config_(GetParam()),
|
||||||
apm_(BuiltinAudioProcessingFactory()
|
apm_(BuiltinAudioProcessingBuilder()
|
||||||
.SetConfig(GetApmTestConfig(test_config_.aec_type))
|
.SetConfig(GetApmTestConfig(test_config_.aec_type))
|
||||||
.Create(CreateEnvironment())),
|
.Build(CreateEnvironment())),
|
||||||
render_thread_state_(kMaxFrameSize,
|
render_thread_state_(kMaxFrameSize,
|
||||||
&rand_gen_,
|
&rand_gen_,
|
||||||
&render_call_event_,
|
&render_call_event_,
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
#include <tuple>
|
#include <tuple>
|
||||||
|
|
||||||
#include "api/audio/audio_processing.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/environment/environment_factory.h"
|
#include "api/environment/environment_factory.h"
|
||||||
#include "api/make_ref_counted.h"
|
#include "api/make_ref_counted.h"
|
||||||
#include "api/scoped_refptr.h"
|
#include "api/scoped_refptr.h"
|
||||||
@ -200,7 +200,7 @@ TEST(AudioProcessingImplTest, AudioParameterChangeTriggersInit) {
|
|||||||
|
|
||||||
TEST(AudioProcessingImplTest, UpdateCapturePreGainRuntimeSetting) {
|
TEST(AudioProcessingImplTest, UpdateCapturePreGainRuntimeSetting) {
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
webrtc::AudioProcessing::Config apm_config;
|
webrtc::AudioProcessing::Config apm_config;
|
||||||
apm_config.pre_amplifier.enabled = true;
|
apm_config.pre_amplifier.enabled = true;
|
||||||
apm_config.pre_amplifier.fixed_gain_factor = 1.f;
|
apm_config.pre_amplifier.fixed_gain_factor = 1.f;
|
||||||
@ -233,7 +233,7 @@ TEST(AudioProcessingImplTest, UpdateCapturePreGainRuntimeSetting) {
|
|||||||
TEST(AudioProcessingImplTest,
|
TEST(AudioProcessingImplTest,
|
||||||
LevelAdjustmentUpdateCapturePreGainRuntimeSetting) {
|
LevelAdjustmentUpdateCapturePreGainRuntimeSetting) {
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
webrtc::AudioProcessing::Config apm_config;
|
webrtc::AudioProcessing::Config apm_config;
|
||||||
apm_config.capture_level_adjustment.enabled = true;
|
apm_config.capture_level_adjustment.enabled = true;
|
||||||
apm_config.capture_level_adjustment.pre_gain_factor = 1.f;
|
apm_config.capture_level_adjustment.pre_gain_factor = 1.f;
|
||||||
@ -266,7 +266,7 @@ TEST(AudioProcessingImplTest,
|
|||||||
TEST(AudioProcessingImplTest,
|
TEST(AudioProcessingImplTest,
|
||||||
LevelAdjustmentUpdateCapturePostGainRuntimeSetting) {
|
LevelAdjustmentUpdateCapturePostGainRuntimeSetting) {
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
webrtc::AudioProcessing::Config apm_config;
|
webrtc::AudioProcessing::Config apm_config;
|
||||||
apm_config.capture_level_adjustment.enabled = true;
|
apm_config.capture_level_adjustment.enabled = true;
|
||||||
apm_config.capture_level_adjustment.post_gain_factor = 1.f;
|
apm_config.capture_level_adjustment.post_gain_factor = 1.f;
|
||||||
@ -304,9 +304,9 @@ TEST(AudioProcessingImplTest, EchoControllerObservesSetCaptureUsageChange) {
|
|||||||
echo_control_factory.get();
|
echo_control_factory.get();
|
||||||
|
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetEchoControlFactory(std::move(echo_control_factory))
|
.SetEchoControlFactory(std::move(echo_control_factory))
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
|
|
||||||
constexpr int16_t kAudioLevel = 10000;
|
constexpr int16_t kAudioLevel = 10000;
|
||||||
constexpr int kSampleRateHz = 48000;
|
constexpr int kSampleRateHz = 48000;
|
||||||
@ -386,9 +386,9 @@ TEST(AudioProcessingImplTest,
|
|||||||
const auto* echo_control_factory_ptr = echo_control_factory.get();
|
const auto* echo_control_factory_ptr = echo_control_factory.get();
|
||||||
|
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetEchoControlFactory(std::move(echo_control_factory))
|
.SetEchoControlFactory(std::move(echo_control_factory))
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
// Disable AGC.
|
// Disable AGC.
|
||||||
webrtc::AudioProcessing::Config apm_config;
|
webrtc::AudioProcessing::Config apm_config;
|
||||||
apm_config.gain_controller1.enabled = false;
|
apm_config.gain_controller1.enabled = false;
|
||||||
@ -429,9 +429,9 @@ TEST(AudioProcessingImplTest,
|
|||||||
const auto* echo_control_factory_ptr = echo_control_factory.get();
|
const auto* echo_control_factory_ptr = echo_control_factory.get();
|
||||||
|
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetEchoControlFactory(std::move(echo_control_factory))
|
.SetEchoControlFactory(std::move(echo_control_factory))
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
// Disable AGC.
|
// Disable AGC.
|
||||||
webrtc::AudioProcessing::Config apm_config;
|
webrtc::AudioProcessing::Config apm_config;
|
||||||
apm_config.gain_controller1.enabled = false;
|
apm_config.gain_controller1.enabled = false;
|
||||||
@ -472,9 +472,9 @@ TEST(AudioProcessingImplTest,
|
|||||||
const auto* echo_control_factory_ptr = echo_control_factory.get();
|
const auto* echo_control_factory_ptr = echo_control_factory.get();
|
||||||
|
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetEchoControlFactory(std::move(echo_control_factory))
|
.SetEchoControlFactory(std::move(echo_control_factory))
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
webrtc::AudioProcessing::Config apm_config;
|
webrtc::AudioProcessing::Config apm_config;
|
||||||
// Enable AGC1.
|
// Enable AGC1.
|
||||||
apm_config.gain_controller1.enabled = true;
|
apm_config.gain_controller1.enabled = true;
|
||||||
@ -527,9 +527,9 @@ TEST(AudioProcessingImplTest, EchoControllerObservesPlayoutVolumeChange) {
|
|||||||
const auto* echo_control_factory_ptr = echo_control_factory.get();
|
const auto* echo_control_factory_ptr = echo_control_factory.get();
|
||||||
|
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetEchoControlFactory(std::move(echo_control_factory))
|
.SetEchoControlFactory(std::move(echo_control_factory))
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
// Disable AGC.
|
// Disable AGC.
|
||||||
webrtc::AudioProcessing::Config apm_config;
|
webrtc::AudioProcessing::Config apm_config;
|
||||||
apm_config.gain_controller1.enabled = false;
|
apm_config.gain_controller1.enabled = false;
|
||||||
@ -584,10 +584,10 @@ TEST(AudioProcessingImplTest, RenderPreProcessorBeforeEchoDetector) {
|
|||||||
new TestRenderPreProcessor());
|
new TestRenderPreProcessor());
|
||||||
// Create APM injecting the test echo detector and render pre-processor.
|
// Create APM injecting the test echo detector and render pre-processor.
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetEchoDetector(test_echo_detector)
|
.SetEchoDetector(test_echo_detector)
|
||||||
.SetRenderPreProcessing(std::move(test_render_pre_processor))
|
.SetRenderPreProcessing(std::move(test_render_pre_processor))
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
webrtc::AudioProcessing::Config apm_config;
|
webrtc::AudioProcessing::Config apm_config;
|
||||||
apm_config.pre_amplifier.enabled = true;
|
apm_config.pre_amplifier.enabled = true;
|
||||||
apm->ApplyConfig(apm_config);
|
apm->ApplyConfig(apm_config);
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
#include "absl/strings/string_view.h"
|
#include "absl/strings/string_view.h"
|
||||||
#include "api/array_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/environment/environment_factory.h"
|
||||||
#include "api/numerics/samples_stats_counter.h"
|
#include "api/numerics/samples_stats_counter.h"
|
||||||
#include "api/test/metrics/global_metrics_logger_and_exporter.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;
|
int num_capture_channels = 1;
|
||||||
switch (simulation_config_.simulation_settings) {
|
switch (simulation_config_.simulation_settings) {
|
||||||
case SettingsType::kDefaultApmMobile: {
|
case SettingsType::kDefaultApmMobile: {
|
||||||
apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
ASSERT_TRUE(!!apm_);
|
ASSERT_TRUE(!!apm_);
|
||||||
set_default_mobile_apm_runtime_settings(apm_.get());
|
set_default_mobile_apm_runtime_settings(apm_.get());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SettingsType::kDefaultApmDesktop: {
|
case SettingsType::kDefaultApmDesktop: {
|
||||||
apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
ASSERT_TRUE(!!apm_);
|
ASSERT_TRUE(!!apm_);
|
||||||
set_default_desktop_apm_runtime_settings(apm_.get());
|
set_default_desktop_apm_runtime_settings(apm_.get());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SettingsType::kAllSubmodulesTurnedOff: {
|
case SettingsType::kAllSubmodulesTurnedOff: {
|
||||||
apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
ASSERT_TRUE(!!apm_);
|
ASSERT_TRUE(!!apm_);
|
||||||
turn_off_default_apm_runtime_settings(apm_.get());
|
turn_off_default_apm_runtime_settings(apm_.get());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SettingsType::kDefaultApmDesktopWithoutDelayAgnostic: {
|
case SettingsType::kDefaultApmDesktopWithoutDelayAgnostic: {
|
||||||
apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
ASSERT_TRUE(!!apm_);
|
ASSERT_TRUE(!!apm_);
|
||||||
set_default_desktop_apm_runtime_settings(apm_.get());
|
set_default_desktop_apm_runtime_settings(apm_.get());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SettingsType::kDefaultApmDesktopWithoutExtendedFilter: {
|
case SettingsType::kDefaultApmDesktopWithoutExtendedFilter: {
|
||||||
apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
ASSERT_TRUE(!!apm_);
|
ASSERT_TRUE(!!apm_);
|
||||||
set_default_desktop_apm_runtime_settings(apm_.get());
|
set_default_desktop_apm_runtime_settings(apm_.get());
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#include "absl/flags/flag.h"
|
#include "absl/flags/flag.h"
|
||||||
#include "absl/strings/string_view.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/audio/echo_detector_creator.h"
|
||||||
#include "api/environment/environment_factory.h"
|
#include "api/environment/environment_factory.h"
|
||||||
#include "api/make_ref_counted.h"
|
#include "api/make_ref_counted.h"
|
||||||
@ -476,7 +476,7 @@ ApmTest::ApmTest()
|
|||||||
far_file_(NULL),
|
far_file_(NULL),
|
||||||
near_file_(NULL),
|
near_file_(NULL),
|
||||||
out_file_(NULL) {
|
out_file_(NULL) {
|
||||||
apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
AudioProcessing::Config apm_config = apm_->GetConfig();
|
AudioProcessing::Config apm_config = apm_->GetConfig();
|
||||||
apm_config.gain_controller1.analog_gain_controller.enabled = false;
|
apm_config.gain_controller1.analog_gain_controller.enabled = false;
|
||||||
apm_config.pipeline.maximum_internal_processing_rate = 48000;
|
apm_config.pipeline.maximum_internal_processing_rate = 48000;
|
||||||
@ -1334,7 +1334,7 @@ TEST_F(ApmTest, NoProcessingWhenAllComponentsDisabledFloat) {
|
|||||||
auto src_channels = &src[0];
|
auto src_channels = &src[0];
|
||||||
auto dest_channels = &dest[0];
|
auto dest_channels = &dest[0];
|
||||||
|
|
||||||
apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
EXPECT_NOERR(apm_->ProcessStream(&src_channels, StreamConfig(sample_rate, 1),
|
EXPECT_NOERR(apm_->ProcessStream(&src_channels, StreamConfig(sample_rate, 1),
|
||||||
StreamConfig(sample_rate, 1),
|
StreamConfig(sample_rate, 1),
|
||||||
&dest_channels));
|
&dest_channels));
|
||||||
@ -1755,9 +1755,9 @@ TEST_F(ApmTest, Process) {
|
|||||||
if (test->num_input_channels() != test->num_output_channels())
|
if (test->num_input_channels() != test->num_output_channels())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
apm_ = BuiltinAudioProcessingFactory()
|
apm_ = BuiltinAudioProcessingBuilder()
|
||||||
.SetEchoDetector(CreateEchoDetector())
|
.SetEchoDetector(CreateEchoDetector())
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
AudioProcessing::Config apm_config = apm_->GetConfig();
|
AudioProcessing::Config apm_config = apm_->GetConfig();
|
||||||
apm_config.gain_controller1.analog_gain_controller.enabled = false;
|
apm_config.gain_controller1.analog_gain_controller.enabled = false;
|
||||||
apm_->ApplyConfig(apm_config);
|
apm_->ApplyConfig(apm_config);
|
||||||
@ -1994,9 +1994,9 @@ class AudioProcessingTest
|
|||||||
absl::string_view output_file_prefix) {
|
absl::string_view output_file_prefix) {
|
||||||
AudioProcessing::Config apm_config;
|
AudioProcessing::Config apm_config;
|
||||||
apm_config.gain_controller1.analog_gain_controller.enabled = false;
|
apm_config.gain_controller1.analog_gain_controller.enabled = false;
|
||||||
scoped_refptr<AudioProcessing> ap = BuiltinAudioProcessingFactory()
|
scoped_refptr<AudioProcessing> ap = BuiltinAudioProcessingBuilder()
|
||||||
.SetConfig(apm_config)
|
.SetConfig(apm_config)
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
|
|
||||||
EnableAllAPComponents(ap.get());
|
EnableAllAPComponents(ap.get());
|
||||||
|
|
||||||
@ -2422,7 +2422,7 @@ void RunApmRateAndChannelTest(
|
|||||||
apm_config.pipeline.multi_channel_capture = true;
|
apm_config.pipeline.multi_channel_capture = true;
|
||||||
apm_config.echo_canceller.enabled = true;
|
apm_config.echo_canceller.enabled = true;
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory(apm_config).Create(CreateEnvironment());
|
BuiltinAudioProcessingBuilder(apm_config).Build(CreateEnvironment());
|
||||||
|
|
||||||
StreamConfig render_input_stream_config;
|
StreamConfig render_input_stream_config;
|
||||||
StreamConfig render_output_stream_config;
|
StreamConfig render_output_stream_config;
|
||||||
@ -2532,9 +2532,9 @@ TEST(ApmConfiguration, EnablePostProcessing) {
|
|||||||
auto mock_post_processor =
|
auto mock_post_processor =
|
||||||
std::unique_ptr<CustomProcessing>(mock_post_processor_ptr);
|
std::unique_ptr<CustomProcessing>(mock_post_processor_ptr);
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetCapturePostProcessing(std::move(mock_post_processor))
|
.SetCapturePostProcessing(std::move(mock_post_processor))
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
|
|
||||||
Int16FrameData audio;
|
Int16FrameData audio;
|
||||||
audio.num_channels = 1;
|
audio.num_channels = 1;
|
||||||
@ -2554,9 +2554,9 @@ TEST(ApmConfiguration, EnablePreProcessing) {
|
|||||||
auto mock_pre_processor =
|
auto mock_pre_processor =
|
||||||
std::unique_ptr<CustomProcessing>(mock_pre_processor_ptr);
|
std::unique_ptr<CustomProcessing>(mock_pre_processor_ptr);
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetRenderPreProcessing(std::move(mock_pre_processor))
|
.SetRenderPreProcessing(std::move(mock_pre_processor))
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
|
|
||||||
Int16FrameData audio;
|
Int16FrameData audio;
|
||||||
audio.num_channels = 1;
|
audio.num_channels = 1;
|
||||||
@ -2576,9 +2576,9 @@ TEST(ApmConfiguration, EnableCaptureAnalyzer) {
|
|||||||
auto mock_capture_analyzer =
|
auto mock_capture_analyzer =
|
||||||
std::unique_ptr<CustomAudioAnalyzer>(mock_capture_analyzer_ptr);
|
std::unique_ptr<CustomAudioAnalyzer>(mock_capture_analyzer_ptr);
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetCaptureAnalyzer(std::move(mock_capture_analyzer))
|
.SetCaptureAnalyzer(std::move(mock_capture_analyzer))
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
|
|
||||||
Int16FrameData audio;
|
Int16FrameData audio;
|
||||||
audio.num_channels = 1;
|
audio.num_channels = 1;
|
||||||
@ -2597,9 +2597,9 @@ TEST(ApmConfiguration, PreProcessingReceivesRuntimeSettings) {
|
|||||||
auto mock_pre_processor =
|
auto mock_pre_processor =
|
||||||
std::unique_ptr<CustomProcessing>(mock_pre_processor_ptr);
|
std::unique_ptr<CustomProcessing>(mock_pre_processor_ptr);
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetRenderPreProcessing(std::move(mock_pre_processor))
|
.SetRenderPreProcessing(std::move(mock_pre_processor))
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
apm->SetRuntimeSetting(
|
apm->SetRuntimeSetting(
|
||||||
AudioProcessing::RuntimeSetting::CreateCustomRenderSetting(0));
|
AudioProcessing::RuntimeSetting::CreateCustomRenderSetting(0));
|
||||||
|
|
||||||
@ -2641,9 +2641,9 @@ TEST(ApmConfiguration, EchoControlInjection) {
|
|||||||
new MyEchoControlFactory());
|
new MyEchoControlFactory());
|
||||||
|
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetEchoControlFactory(std::move(echo_control_factory))
|
.SetEchoControlFactory(std::move(echo_control_factory))
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
|
|
||||||
Int16FrameData audio;
|
Int16FrameData audio;
|
||||||
audio.num_channels = 1;
|
audio.num_channels = 1;
|
||||||
@ -2670,9 +2670,9 @@ TEST(ApmConfiguration, EchoDetectorInjection) {
|
|||||||
Initialize(/*capture_sample_rate_hz=*/16000, _,
|
Initialize(/*capture_sample_rate_hz=*/16000, _,
|
||||||
/*render_sample_rate_hz=*/16000, _))
|
/*render_sample_rate_hz=*/16000, _))
|
||||||
.Times(1);
|
.Times(1);
|
||||||
scoped_refptr<AudioProcessing> apm = BuiltinAudioProcessingFactory()
|
scoped_refptr<AudioProcessing> apm = BuiltinAudioProcessingBuilder()
|
||||||
.SetEchoDetector(mock_echo_detector)
|
.SetEchoDetector(mock_echo_detector)
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
|
|
||||||
// The echo detector is included in processing when enabled.
|
// The echo detector is included in processing when enabled.
|
||||||
EXPECT_CALL(*mock_echo_detector, AnalyzeRenderAudio(_))
|
EXPECT_CALL(*mock_echo_detector, AnalyzeRenderAudio(_))
|
||||||
@ -2727,9 +2727,9 @@ TEST(ApmConfiguration, EchoDetectorInjection) {
|
|||||||
rtc::scoped_refptr<AudioProcessing> CreateApm(bool mobile_aec) {
|
rtc::scoped_refptr<AudioProcessing> CreateApm(bool mobile_aec) {
|
||||||
// Enable residual echo detection, for stats.
|
// Enable residual echo detection, for stats.
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetEchoDetector(CreateEchoDetector())
|
.SetEchoDetector(CreateEchoDetector())
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
if (!apm) {
|
if (!apm) {
|
||||||
return apm;
|
return apm;
|
||||||
}
|
}
|
||||||
@ -2873,7 +2873,7 @@ TEST(ApmStatistics, DoNotReportVoiceDetectedStat) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
apm->Initialize(processing_config);
|
apm->Initialize(processing_config);
|
||||||
|
|
||||||
// No metric should be reported.
|
// No metric should be reported.
|
||||||
@ -2888,7 +2888,7 @@ TEST(ApmStatistics, DoNotReportVoiceDetectedStat) {
|
|||||||
|
|
||||||
TEST(ApmStatistics, GetStatisticsReportsNoEchoDetectorStatsWhenDisabled) {
|
TEST(ApmStatistics, GetStatisticsReportsNoEchoDetectorStatsWhenDisabled) {
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
Int16FrameData frame;
|
Int16FrameData frame;
|
||||||
frame.num_channels = 1;
|
frame.num_channels = 1;
|
||||||
SetFrameSampleRate(&frame, AudioProcessing::NativeRate::kSampleRate32kHz);
|
SetFrameSampleRate(&frame, AudioProcessing::NativeRate::kSampleRate32kHz);
|
||||||
@ -2907,9 +2907,9 @@ TEST(ApmStatistics, GetStatisticsReportsNoEchoDetectorStatsWhenDisabled) {
|
|||||||
TEST(ApmStatistics, GetStatisticsReportsEchoDetectorStatsWhenEnabled) {
|
TEST(ApmStatistics, GetStatisticsReportsEchoDetectorStatsWhenEnabled) {
|
||||||
// Create APM with an echo detector injected.
|
// Create APM with an echo detector injected.
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetEchoDetector(CreateEchoDetector())
|
.SetEchoDetector(CreateEchoDetector())
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
Int16FrameData frame;
|
Int16FrameData frame;
|
||||||
frame.num_channels = 1;
|
frame.num_channels = 1;
|
||||||
SetFrameSampleRate(&frame, AudioProcessing::NativeRate::kSampleRate32kHz);
|
SetFrameSampleRate(&frame, AudioProcessing::NativeRate::kSampleRate32kHz);
|
||||||
@ -3284,7 +3284,7 @@ TEST_P(ApmFormatHandlingTest, IntApi) {
|
|||||||
|
|
||||||
// Call APM.
|
// Call APM.
|
||||||
scoped_refptr<AudioProcessing> ap =
|
scoped_refptr<AudioProcessing> ap =
|
||||||
BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
int error;
|
int error;
|
||||||
if (stream_direction_ == kForward) {
|
if (stream_direction_ == kForward) {
|
||||||
error = ap->ProcessStream(input_block.data(), test_params_.input_config,
|
error = ap->ProcessStream(input_block.data(), test_params_.input_config,
|
||||||
@ -3363,7 +3363,7 @@ TEST_P(ApmFormatHandlingTest, FloatApi) {
|
|||||||
|
|
||||||
// Call APM.
|
// Call APM.
|
||||||
scoped_refptr<AudioProcessing> ap =
|
scoped_refptr<AudioProcessing> ap =
|
||||||
BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
int error;
|
int error;
|
||||||
if (stream_direction_ == kForward) {
|
if (stream_direction_ == kForward) {
|
||||||
error =
|
error =
|
||||||
@ -3439,7 +3439,7 @@ TEST(ApmAnalyzeReverseStreamFormatTest, AnalyzeReverseStream) {
|
|||||||
|
|
||||||
// Call APM.
|
// Call APM.
|
||||||
scoped_refptr<AudioProcessing> ap =
|
scoped_refptr<AudioProcessing> ap =
|
||||||
BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
int error = ap->AnalyzeReverseStream(input_block.channels(), input_config);
|
int error = ap->AnalyzeReverseStream(input_block.channels(), input_config);
|
||||||
|
|
||||||
// Check output.
|
// Check output.
|
||||||
|
|||||||
@ -176,10 +176,10 @@ class MockAudioProcessing : public AudioProcessing {
|
|||||||
MOCK_METHOD(AudioProcessing::Config, GetConfig, (), (const, override));
|
MOCK_METHOD(AudioProcessing::Config, GetConfig, (), (const, override));
|
||||||
};
|
};
|
||||||
|
|
||||||
class MockAudioProcessingFactory : public AudioProcessingFactory {
|
class MockAudioProcessingBuilder : public AudioProcessingBuilderInterface {
|
||||||
public:
|
public:
|
||||||
MOCK_METHOD(scoped_refptr<AudioProcessing>,
|
MOCK_METHOD(scoped_refptr<AudioProcessing>,
|
||||||
Create,
|
Build,
|
||||||
(const Environment&),
|
(const Environment&),
|
||||||
(override));
|
(override));
|
||||||
};
|
};
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "absl/strings/string_view.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/environment/environment_factory.h"
|
#include "api/environment/environment_factory.h"
|
||||||
#include "modules/audio_processing/test/protobuf_utils.h"
|
#include "modules/audio_processing/test/protobuf_utils.h"
|
||||||
#include "modules/audio_processing/test/runtime_setting_util.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
|
// We only create APM once, since changes on these fields should not
|
||||||
// happen in current implementation.
|
// happen in current implementation.
|
||||||
if (apm_ == nullptr) {
|
if (apm_ == nullptr) {
|
||||||
apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "absl/strings/string_view.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_canceller3_factory.h"
|
#include "api/audio/echo_canceller3_factory.h"
|
||||||
#include "api/environment/environment_factory.h"
|
#include "api/environment/environment_factory.h"
|
||||||
#include "modules/audio_coding/neteq/tools/resample_input_audio_file.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),
|
enable_pre_amplifier_(enable_pre_amplifier),
|
||||||
worker_queue_("debug_dump_generator_worker_queue"),
|
worker_queue_("debug_dump_generator_worker_queue"),
|
||||||
dump_file_name_(dump_file_name) {
|
dump_file_name_(dump_file_name) {
|
||||||
apm_ = BuiltinAudioProcessingFactory().Create(CreateEnvironment());
|
apm_ = BuiltinAudioProcessingBuilder().Build(CreateEnvironment());
|
||||||
}
|
}
|
||||||
|
|
||||||
DebugDumpGenerator::DebugDumpGenerator(
|
DebugDumpGenerator::DebugDumpGenerator(
|
||||||
|
|||||||
@ -2578,7 +2578,7 @@ if (rtc_include_tests && !build_with_chromium) {
|
|||||||
"../api/audio:audio_device",
|
"../api/audio:audio_device",
|
||||||
"../api/audio:audio_mixer_api",
|
"../api/audio:audio_mixer_api",
|
||||||
"../api/audio:audio_processing",
|
"../api/audio:audio_processing",
|
||||||
"../api/audio:builtin_audio_processing_factory",
|
"../api/audio:builtin_audio_processing_builder",
|
||||||
"../api/crypto:frame_decryptor_interface",
|
"../api/crypto:frame_decryptor_interface",
|
||||||
"../api/crypto:frame_encryptor_interface",
|
"../api/crypto:frame_encryptor_interface",
|
||||||
"../api/crypto:options",
|
"../api/crypto:options",
|
||||||
|
|||||||
@ -75,7 +75,7 @@ using ::testing::NiceMock;
|
|||||||
using ::testing::Return;
|
using ::testing::Return;
|
||||||
using ::testing::UnorderedElementsAre;
|
using ::testing::UnorderedElementsAre;
|
||||||
using ::webrtc::test::MockAudioProcessing;
|
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 kStunIceServer[] = "stun:stun.l.google.com:19302";
|
||||||
static const char kTurnIceServer[] = "turn:test.com:1234";
|
static const char kTurnIceServer[] = "turn:test.com:1234";
|
||||||
@ -726,17 +726,17 @@ TEST(PeerConnectionFactoryDependenciesTest, UsesPacketSocketFactory) {
|
|||||||
|
|
||||||
TEST(PeerConnectionFactoryDependenciesTest,
|
TEST(PeerConnectionFactoryDependenciesTest,
|
||||||
CreatesAudioProcessingWithProvidedFactory) {
|
CreatesAudioProcessingWithProvidedFactory) {
|
||||||
auto ap_factory = std::make_unique<MockAudioProcessingFactory>();
|
auto ap_factory = std::make_unique<MockAudioProcessingBuilder>();
|
||||||
auto audio_processing = make_ref_counted<NiceMock<MockAudioProcessing>>();
|
auto audio_processing = make_ref_counted<NiceMock<MockAudioProcessing>>();
|
||||||
// Validate that provided audio_processing is used by expecting that a request
|
// Validate that provided audio_processing is used by expecting that a request
|
||||||
// to start AEC Dump with unnatural size limit is propagated to the
|
// to start AEC Dump with unnatural size limit is propagated to the
|
||||||
// `audio_processing`.
|
// `audio_processing`.
|
||||||
EXPECT_CALL(*audio_processing, CreateAndAttachAecDump(A<FILE*>(), 24'242, _));
|
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;
|
PeerConnectionFactoryDependencies pcf_dependencies;
|
||||||
pcf_dependencies.adm = FakeAudioCaptureModule::Create();
|
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);
|
EnableMediaWithDefaults(pcf_dependencies);
|
||||||
|
|
||||||
scoped_refptr<PeerConnectionFactoryInterface> pcf =
|
scoped_refptr<PeerConnectionFactoryInterface> pcf =
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
#include "pc/test/integration_test_helpers.h"
|
#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 {
|
namespace webrtc {
|
||||||
|
|
||||||
@ -230,8 +230,8 @@ bool PeerConnectionIntegrationWrapper::Init(
|
|||||||
// Standard creation method for APM may return a null pointer when
|
// Standard creation method for APM may return a null pointer when
|
||||||
// AudioProcessing is disabled with a build flag. Bypass that flag by
|
// AudioProcessing is disabled with a build flag. Bypass that flag by
|
||||||
// explicitly injecting the factory.
|
// explicitly injecting the factory.
|
||||||
pc_factory_dependencies.audio_processing_factory =
|
pc_factory_dependencies.audio_processing_builder =
|
||||||
std::make_unique<BuiltinAudioProcessingFactory>();
|
std::make_unique<BuiltinAudioProcessingBuilder>();
|
||||||
EnableMediaWithDefaults(pc_factory_dependencies);
|
EnableMediaWithDefaults(pc_factory_dependencies);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -512,7 +512,7 @@ webrtc_fuzzer_test("audio_processing_fuzzer") {
|
|||||||
"../../api:scoped_refptr",
|
"../../api:scoped_refptr",
|
||||||
"../../api/audio:aec3_factory",
|
"../../api/audio:aec3_factory",
|
||||||
"../../api/audio:audio_processing",
|
"../../api/audio:audio_processing",
|
||||||
"../../api/audio:builtin_audio_processing_factory",
|
"../../api/audio:builtin_audio_processing_builder",
|
||||||
"../../api/audio:echo_detector_creator",
|
"../../api/audio:echo_detector_creator",
|
||||||
"../../api/environment",
|
"../../api/environment",
|
||||||
"../../api/environment:environment_factory",
|
"../../api/environment:environment_factory",
|
||||||
@ -539,7 +539,7 @@ webrtc_fuzzer_test("audio_processing_sample_rate_fuzzer") {
|
|||||||
"../../api:scoped_refptr",
|
"../../api:scoped_refptr",
|
||||||
"../../api/audio:audio_frame_api",
|
"../../api/audio:audio_frame_api",
|
||||||
"../../api/audio:audio_processing",
|
"../../api/audio:audio_processing",
|
||||||
"../../api/audio:builtin_audio_processing_factory",
|
"../../api/audio:builtin_audio_processing_builder",
|
||||||
"../../api/environment:environment_factory",
|
"../../api/environment:environment_factory",
|
||||||
"../../modules/audio_processing",
|
"../../modules/audio_processing",
|
||||||
"../../modules/audio_processing:audio_frame_proxies",
|
"../../modules/audio_processing:audio_frame_proxies",
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
#include "absl/base/nullability.h"
|
#include "absl/base/nullability.h"
|
||||||
#include "absl/memory/memory.h"
|
#include "absl/memory/memory.h"
|
||||||
#include "api/audio/audio_processing.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_canceller3_factory.h"
|
||||||
#include "api/audio/echo_detector_creator.h"
|
#include "api/audio/echo_detector_creator.h"
|
||||||
#include "api/environment/environment.h"
|
#include "api/environment/environment.h"
|
||||||
@ -113,11 +113,11 @@ rtc::scoped_refptr<AudioProcessing> CreateApm(
|
|||||||
apm_config.transient_suppression.enabled = use_ts;
|
apm_config.transient_suppression.enabled = use_ts;
|
||||||
|
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetEchoControlFactory(std::move(echo_control_factory))
|
.SetEchoControlFactory(std::move(echo_control_factory))
|
||||||
.SetEchoDetector(use_red ? CreateEchoDetector() : nullptr)
|
.SetEchoDetector(use_red ? CreateEchoDetector() : nullptr)
|
||||||
.SetConfig(apm_config)
|
.SetConfig(apm_config)
|
||||||
.Create(GetEnvironment());
|
.Build(GetEnvironment());
|
||||||
|
|
||||||
#ifdef WEBRTC_LINUX
|
#ifdef WEBRTC_LINUX
|
||||||
apm->AttachAecDump(AecDumpFactory::Create("/dev/null", -1, worker_queue));
|
apm->AttachAecDump(AecDumpFactory::Create("/dev/null", -1, worker_queue));
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
#include <limits>
|
#include <limits>
|
||||||
|
|
||||||
#include "api/audio/audio_processing.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/environment/environment_factory.h"
|
#include "api/environment/environment_factory.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "test/fuzzers/fuzz_data_helper.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>()
|
? std::make_unique<NoopCustomProcessing>()
|
||||||
: nullptr;
|
: nullptr;
|
||||||
scoped_refptr<AudioProcessing> apm =
|
scoped_refptr<AudioProcessing> apm =
|
||||||
BuiltinAudioProcessingFactory()
|
BuiltinAudioProcessingBuilder()
|
||||||
.SetConfig({.pipeline = {.multi_channel_render = true,
|
.SetConfig({.pipeline = {.multi_channel_render = true,
|
||||||
.multi_channel_capture = true}})
|
.multi_channel_capture = true}})
|
||||||
.SetCapturePostProcessing(std::move(capture_processor))
|
.SetCapturePostProcessing(std::move(capture_processor))
|
||||||
.SetRenderPreProcessing(std::move(render_processor))
|
.SetRenderPreProcessing(std::move(render_processor))
|
||||||
.Create(CreateEnvironment());
|
.Build(CreateEnvironment());
|
||||||
RTC_DCHECK(apm);
|
RTC_DCHECK(apm);
|
||||||
|
|
||||||
std::array<int16_t, kMaxSamplesPerChannel * kMaxNumChannels> fixed_frame;
|
std::array<int16_t, kMaxSamplesPerChannel * kMaxNumChannels> fixed_frame;
|
||||||
|
|||||||
@ -228,7 +228,7 @@ PeerConnectionFactoryDependencies CreatePCFDependencies(
|
|||||||
// Media dependencies
|
// Media dependencies
|
||||||
pcf_deps.adm = std::move(audio_device_module);
|
pcf_deps.adm = std::move(audio_device_module);
|
||||||
if (pcf_dependencies->audio_processing != nullptr) {
|
if (pcf_dependencies->audio_processing != nullptr) {
|
||||||
pcf_deps.audio_processing_factory =
|
pcf_deps.audio_processing_builder =
|
||||||
CustomAudioProcessing(pcf_dependencies->audio_processing);
|
CustomAudioProcessing(pcf_dependencies->audio_processing);
|
||||||
}
|
}
|
||||||
pcf_deps.audio_mixer = pcf_dependencies->audio_mixer;
|
pcf_deps.audio_mixer = pcf_dependencies->audio_mixer;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user