In tests replace AudioProcessingBuilder with BuiltinAudioProcessingBuilder

To move towards deprecating AudioProcessingBuilder

Bug: webrtc:369904700
Change-Id: I7998b331eca26c2185c94c39c1310ef7b6faa717
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/367221
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43347}
This commit is contained in:
Danil Chapovalov 2024-11-01 11:43:08 +01:00 committed by WebRTC LUCI CQ
parent 141dfb036d
commit 037ab2627d
11 changed files with 60 additions and 44 deletions

View File

@ -661,6 +661,7 @@ if (rtc_include_tests) {
"../api:simulated_network_api",
"../api/audio:audio_device",
"../api/audio:audio_processing",
"../api/audio:builtin_audio_processing_builder",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../api/environment",
"../api/numerics",

View File

@ -24,7 +24,7 @@
#include "absl/strings/string_view.h"
#include "api/array_view.h"
#include "api/audio/audio_device.h"
#include "api/audio/audio_processing.h"
#include "api/audio/builtin_audio_processing_builder.h"
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
#include "api/environment/environment.h"
#include "api/field_trials_view.h"
@ -246,7 +246,7 @@ void CallPerfTest::TestAudioVideoSync(FecMode fec,
AudioState::Config send_audio_state_config;
send_audio_state_config.audio_mixer = AudioMixerImpl::Create();
send_audio_state_config.audio_processing =
AudioProcessingBuilder().Create();
BuiltinAudioProcessingBuilder().Build(env());
send_audio_state_config.audio_device_module = fake_audio_device;
CallConfig sender_config = SendCallConfig();

View File

@ -349,6 +349,7 @@ if (rtc_include_tests) {
"../../api/audio:audio_processing",
"../../api/audio:builtin_audio_processing_builder",
"../../api/audio:echo_detector_creator",
"../../api/environment",
"../../api/environment:environment_factory",
"../../common_audio",
"../../common_audio:common_audio_c",

View File

@ -18,6 +18,7 @@
#include "api/audio/audio_processing.h"
#include "api/audio/builtin_audio_processing_builder.h"
#include "api/environment/environment.h"
#include "api/environment/environment_factory.h"
#include "api/make_ref_counted.h"
#include "api/scoped_refptr.h"
@ -644,7 +645,7 @@ TEST_P(StartupInputVolumeParameterizedTest,
webrtc::AudioProcessing::Config config;
config.gain_controller1.enabled = false;
config.gain_controller2.enabled = false;
auto apm = AudioProcessingBuilder().SetConfig(config).Create();
auto apm = BuiltinAudioProcessingBuilder(config).Build(CreateEnvironment());
int startup_volume = GetParam();
int recommended_volume = ProcessInputVolume(
@ -663,7 +664,7 @@ TEST(AudioProcessingImplTest,
webrtc::AudioProcessing::Config config;
config.gain_controller1.enabled = false;
config.gain_controller2.enabled = false;
auto apm = AudioProcessingBuilder().SetConfig(config).Create();
auto apm = BuiltinAudioProcessingBuilder(config).Build(CreateEnvironment());
Random rand_gen(42);
for (int i = 0; i < 32; ++i) {
@ -708,7 +709,8 @@ class ApmInputVolumeControllerParametrizedTest
TEST_P(ApmInputVolumeControllerParametrizedTest,
EnforceMinInputVolumeAtStartupWithZeroVolume) {
const StreamConfig stream_config(sample_rate_hz(), num_channels());
auto apm = AudioProcessingBuilder().SetConfig(GetConfig()).Create();
auto apm =
BuiltinAudioProcessingBuilder(GetConfig()).Build(CreateEnvironment());
apm->set_stream_analog_level(0);
apm->ProcessStream(channel_pointers(), stream_config, stream_config,
@ -719,7 +721,8 @@ TEST_P(ApmInputVolumeControllerParametrizedTest,
TEST_P(ApmInputVolumeControllerParametrizedTest,
EnforceMinInputVolumeAtStartupWithNonZeroVolume) {
const StreamConfig stream_config(sample_rate_hz(), num_channels());
auto apm = AudioProcessingBuilder().SetConfig(GetConfig()).Create();
auto apm =
BuiltinAudioProcessingBuilder(GetConfig()).Build(CreateEnvironment());
constexpr int kStartupVolume = 3;
apm->set_stream_analog_level(kStartupVolume);
@ -737,7 +740,8 @@ TEST_P(ApmInputVolumeControllerParametrizedTest,
GTEST_SKIP() << "Does not apply to AGC1";
}
const StreamConfig stream_config(sample_rate_hz(), num_channels());
auto apm = AudioProcessingBuilder().SetConfig(GetConfig()).Create();
auto apm =
BuiltinAudioProcessingBuilder(GetConfig()).Build(CreateEnvironment());
apm->set_stream_analog_level(20);
apm->ProcessStream(channel_pointers(), stream_config, stream_config,
@ -752,7 +756,8 @@ TEST_P(ApmInputVolumeControllerParametrizedTest,
TEST_P(ApmInputVolumeControllerParametrizedTest,
DoNotEnforceMinInputVolumeAtStartupWithHighVolume) {
const StreamConfig stream_config(sample_rate_hz(), num_channels());
auto apm = AudioProcessingBuilder().SetConfig(GetConfig()).Create();
auto apm =
BuiltinAudioProcessingBuilder(GetConfig()).Build(CreateEnvironment());
constexpr int kStartupVolume = 200;
apm->set_stream_analog_level(kStartupVolume);
@ -764,7 +769,8 @@ TEST_P(ApmInputVolumeControllerParametrizedTest,
TEST_P(ApmInputVolumeControllerParametrizedTest,
DoNotEnforceMinInputVolumeAfterManualVolumeAdjustmentToZero) {
const StreamConfig stream_config(sample_rate_hz(), num_channels());
auto apm = AudioProcessingBuilder().SetConfig(GetConfig()).Create();
auto apm =
BuiltinAudioProcessingBuilder(GetConfig()).Build(CreateEnvironment());
apm->set_stream_analog_level(100);
apm->ProcessStream(channel_pointers(), stream_config, stream_config,
@ -802,10 +808,10 @@ INSTANTIATE_TEST_SUITE_P(
// active, the recommended volume must always be the applied volume.
TEST(AudioProcessingImplTest,
RecommendAppliedInputVolumeWithNoAgcWithNoEmulation) {
auto apm = AudioProcessingBuilder()
.SetConfig({.capture_level_adjustment = {.enabled = false},
.gain_controller1 = {.enabled = false}})
.Create();
auto apm = BuiltinAudioProcessingBuilder(
{.capture_level_adjustment = {.enabled = false},
.gain_controller1 = {.enabled = false}})
.Build(CreateEnvironment());
constexpr int kOneFrame = 1;
EXPECT_EQ(ProcessInputVolume(*apm, kOneFrame, /*initial_volume=*/123), 123);
@ -819,14 +825,13 @@ TEST(AudioProcessingImplTest,
// TODO(bugs.webrtc.org/14581): Enable when APM fixed to let this test pass.
TEST(AudioProcessingImplTest,
DISABLED_RecommendAppliedInputVolumeWithNoAgcWithEmulation) {
auto apm =
AudioProcessingBuilder()
.SetConfig({.capture_level_adjustment = {.enabled = true,
.analog_mic_gain_emulation{
.enabled = true,
.initial_level = 255}},
.gain_controller1 = {.enabled = false}})
.Create();
auto apm = BuiltinAudioProcessingBuilder(
{.capture_level_adjustment = {.enabled = true,
.analog_mic_gain_emulation{
.enabled = true,
.initial_level = 255}},
.gain_controller1 = {.enabled = false}})
.Build(CreateEnvironment());
constexpr int kOneFrame = 1;
EXPECT_EQ(ProcessInputVolume(*apm, kOneFrame, /*initial_volume=*/123), 123);
@ -841,16 +846,15 @@ TEST(AudioProcessingImplTest,
// TODO(bugs.webrtc.org/14581): Enable when APM fixed to let this test pass.
TEST(AudioProcessingImplTest,
DISABLED_RecommendAppliedInputVolumeWithAgcWithEmulation) {
auto apm =
AudioProcessingBuilder()
.SetConfig({.capture_level_adjustment = {.enabled = true,
.analog_mic_gain_emulation{
.enabled = true}},
.gain_controller1 = {.enabled = true,
.analog_gain_controller{
.enabled = true,
}}})
.Create();
auto apm = BuiltinAudioProcessingBuilder(
{.capture_level_adjustment = {.enabled = true,
.analog_mic_gain_emulation{
.enabled = true}},
.gain_controller1 = {.enabled = true,
.analog_gain_controller{
.enabled = true,
}}})
.Build(CreateEnvironment());
constexpr int kOneFrame = 1;
EXPECT_EQ(ProcessInputVolume(*apm, kOneFrame, /*initial_volume=*/123), 123);
@ -862,7 +866,8 @@ class Agc2ParametrizedTest
: public ::testing::TestWithParam<AudioProcessing::Config> {};
TEST_P(Agc2ParametrizedTest, ProcessSucceedsWhenOneAgcEnabled) {
auto apm = AudioProcessingBuilder().SetConfig(GetParam()).Create();
auto apm =
BuiltinAudioProcessingBuilder(GetParam()).Build(CreateEnvironment());
constexpr int kSampleRateHz = 48000;
constexpr int kNumChannels = 1;
std::array<float, kSampleRateHz / 100> buffer;
@ -884,16 +889,17 @@ TEST_P(Agc2ParametrizedTest, ProcessSucceedsWhenOneAgcEnabled) {
TEST_P(Agc2ParametrizedTest,
BitExactWithAndWithoutTransientSuppressionEnabledInConfig) {
const Environment env = CreateEnvironment();
// Enable transient suppression in the config (expect no effect).
auto config = GetParam();
config.transient_suppression.enabled = true;
auto apm = AudioProcessingBuilder().SetConfig(config).Create();
auto apm = BuiltinAudioProcessingBuilder(config).Build(env);
ASSERT_EQ(apm->Initialize(), AudioProcessing::kNoError);
// Disable transient suppression in the config.
auto config_reference = GetParam();
config_reference.transient_suppression.enabled = false;
auto apm_reference =
AudioProcessingBuilder().SetConfig(config_reference).Create();
BuiltinAudioProcessingBuilder(config_reference).Build(env);
ASSERT_EQ(apm_reference->Initialize(), AudioProcessing::kNoError);
constexpr int kSampleRateHz = 16000;

View File

@ -1248,6 +1248,7 @@ if (!build_with_chromium) {
"../api:simulated_network_api",
"../api:transport_api",
"../api/audio:audio_device",
"../api/audio:builtin_audio_processing_builder",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../api/environment",

View File

@ -14,6 +14,7 @@
#include <memory>
#include "api/audio/audio_device.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/environment/environment.h"
@ -111,13 +112,14 @@ void CallTest::RunBaseTest(BaseTest* test) {
num_flexfec_streams_ = test->GetNumFlexfecStreams();
RTC_DCHECK(num_video_streams_ > 0 || num_audio_streams_ > 0);
CallConfig send_config = SendCallConfig();
CallConfig recv_config = RecvCallConfig();
test->ModifySenderBitrateConfig(&send_config.bitrate_config);
if (num_audio_streams_ > 0) {
CreateFakeAudioDevices(test->CreateCapturer(), test->CreateRenderer());
test->OnFakeAudioDevicesCreated(fake_send_audio_device_.get(),
fake_recv_audio_device_.get());
apm_send_ = AudioProcessingBuilder().Create();
apm_recv_ = AudioProcessingBuilder().Create();
apm_send_ = BuiltinAudioProcessingBuilder().Build(send_config.env);
apm_recv_ = BuiltinAudioProcessingBuilder().Build(recv_config.env);
EXPECT_EQ(0, fake_send_audio_device_->Init());
EXPECT_EQ(0, fake_recv_audio_device_->Init());
AudioState::Config audio_state_config;
@ -130,7 +132,6 @@ void CallTest::RunBaseTest(BaseTest* test) {
}
CreateSenderCall(std::move(send_config));
if (test->ShouldCreateReceivers()) {
CallConfig recv_config = RecvCallConfig();
test->ModifyReceiverBitrateConfig(&recv_config.bitrate_config);
if (num_audio_streams_ > 0) {
AudioState::Config audio_state_config;

View File

@ -89,6 +89,7 @@ if (rtc_include_tests && !build_with_chromium) {
"../../api:time_controller",
"../../api:transport_api",
"../../api/audio:audio_device",
"../../api/audio:builtin_audio_processing_builder",
"../../api/audio_codecs:builtin_audio_decoder_factory",
"../../api/audio_codecs:builtin_audio_encoder_factory",
"../../api/environment",

View File

@ -13,6 +13,7 @@
#include <memory>
#include <utility>
#include "api/audio/builtin_audio_processing_builder.h"
#include "api/environment/environment.h"
#include "api/environment/environment_factory.h"
#include "api/media_types.h"
@ -42,14 +43,13 @@ const uint32_t kReceiverLocalAudioSsrc = 0x1234567;
constexpr int kEventLogOutputIntervalMs = 5000;
CallClientFakeAudio InitAudio(TimeController* time_controller) {
CallClientFakeAudio InitAudio(const Environment& env) {
CallClientFakeAudio setup;
auto capturer = TestAudioDeviceModule::CreatePulsedNoiseCapturer(256, 48000);
auto renderer = TestAudioDeviceModule::CreateDiscardRenderer(48000);
setup.fake_audio_device = TestAudioDeviceModule::Create(
time_controller->GetTaskQueueFactory(), std::move(capturer),
std::move(renderer), 1.f);
setup.apm = AudioProcessingBuilder().Create();
&env.task_queue_factory(), std::move(capturer), std::move(renderer), 1.f);
setup.apm = BuiltinAudioProcessingBuilder().Build(env);
setup.fake_audio_device->Init();
AudioState::Config audio_state_config;
audio_state_config.audio_mixer = AudioMixerImpl::Create();
@ -223,7 +223,7 @@ CallClient::CallClient(
env_factory.Set(CreateEventLog(env_, *log_writer_factory_));
env_ = env_factory.Create();
}
fake_audio_setup_ = InitAudio(time_controller_);
fake_audio_setup_ = InitAudio(env_);
call_ = CreateCall(env_, config, &network_controller_factory_,
fake_audio_setup_.audio_state);

View File

@ -520,6 +520,7 @@ if (rtc_include_tests) {
"../api:test_dependency_factory",
"../api:video_quality_test_fixture_api",
"../api/audio:audio_device",
"../api/audio:builtin_audio_processing_builder",
"../api/environment",
"../api/numerics",
"../api/rtc_event_log:rtc_event_log_factory",

View File

@ -23,6 +23,7 @@
#include <vector>
#include "api/audio/audio_device.h"
#include "api/audio/builtin_audio_processing_builder.h"
#include "api/fec_controller_override.h"
#include "api/rtc_event_log_output_file.h"
#include "api/task_queue/default_task_queue_factory.h"
@ -1371,7 +1372,8 @@ void VideoQualityTest::InitializeAudioDevice(CallConfig* send_call_config,
AudioState::Config audio_state_config;
audio_state_config.audio_mixer = AudioMixerImpl::Create();
audio_state_config.audio_processing = AudioProcessingBuilder().Create();
audio_state_config.audio_processing =
BuiltinAudioProcessingBuilder().Build(send_call_config->env);
audio_state_config.audio_device_module = audio_device;
send_call_config->audio_state = AudioState::Create(audio_state_config);
recv_call_config->audio_state = AudioState::Create(audio_state_config);

View File

@ -10,6 +10,7 @@
#include "api/audio/audio_device.h"
#include "api/audio/audio_processing.h"
#include "api/audio/builtin_audio_processing_builder.h"
#include "api/audio_codecs/audio_decoder_factory_template.h"
#include "api/audio_codecs/audio_encoder_factory_template.h"
#include "api/audio_codecs/opus/audio_decoder_opus.h"
@ -48,7 +49,8 @@ void CreateSomeMediaDeps(PeerConnectionFactoryDependencies& media_deps) {
std::make_unique<VideoDecoderFactoryTemplate<
LibvpxVp8DecoderTemplateAdapter, LibvpxVp9DecoderTemplateAdapter,
OpenH264DecoderTemplateAdapter, Dav1dDecoderTemplateAdapter>>();
media_deps.audio_processing = webrtc::AudioProcessingBuilder().Create();
media_deps.audio_processing_builder =
std::make_unique<BuiltinAudioProcessingBuilder>();
}
webrtc::PeerConnectionFactoryDependencies CreateSomePcfDeps() {