Update VoiceEngine tests to use BuiltingAudioProcessingBuilder instead of AudioProcessingBuilder

Bug: webrtc:369904700
Change-Id: I26115ef8d4a5f2997f8286eead07dc6cf28e9496
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/367203
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43339}
This commit is contained in:
Danil Chapovalov 2024-10-31 13:57:50 +01:00 committed by WebRTC LUCI CQ
parent aaaeb29ef5
commit 87155fcebf
2 changed files with 31 additions and 37 deletions

View File

@ -939,6 +939,7 @@ if (rtc_include_tests) {
"../api:simulcast_test_fixture_api", "../api:simulcast_test_fixture_api",
"../api:transport_api", "../api:transport_api",
"../api/audio:audio_processing", "../api/audio:audio_processing",
"../api/audio:builtin_audio_processing_builder",
"../api/audio_codecs:audio_codecs_api", "../api/audio_codecs:audio_codecs_api",
"../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",
@ -947,7 +948,6 @@ if (rtc_include_tests) {
"../api/environment:environment_factory", "../api/environment:environment_factory",
"../api/rtc_event_log", "../api/rtc_event_log",
"../api/task_queue", "../api/task_queue",
"../api/task_queue:default_task_queue_factory",
"../api/test/video:function_video_factory", "../api/test/video:function_video_factory",
"../api/transport:bitrate_settings", "../api/transport:bitrate_settings",
"../api/transport:field_trial_based_config", "../api/transport:field_trial_based_config",
@ -981,7 +981,6 @@ if (rtc_include_tests) {
"../common_video", "../common_video",
"../modules/audio_device:mock_audio_device", "../modules/audio_device:mock_audio_device",
"../modules/audio_mixer:audio_mixer_impl", "../modules/audio_mixer:audio_mixer_impl",
"../modules/audio_processing",
"../modules/audio_processing:mocks", "../modules/audio_processing:mocks",
"../modules/rtp_rtcp", "../modules/rtp_rtcp",
"../modules/rtp_rtcp:rtp_rtcp_format", "../modules/rtp_rtcp:rtp_rtcp_format",

View File

@ -23,6 +23,7 @@
#include "absl/strings/match.h" #include "absl/strings/match.h"
#include "api/audio/audio_processing.h" #include "api/audio/audio_processing.h"
#include "api/audio/builtin_audio_processing_builder.h"
#include "api/audio_codecs/audio_codec_pair_id.h" #include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/audio_format.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h" #include "api/audio_codecs/builtin_audio_decoder_factory.h"
@ -40,9 +41,7 @@
#include "api/rtp_headers.h" #include "api/rtp_headers.h"
#include "api/rtp_parameters.h" #include "api/rtp_parameters.h"
#include "api/scoped_refptr.h" #include "api/scoped_refptr.h"
#include "api/task_queue/default_task_queue_factory.h"
#include "api/transport/bitrate_settings.h" #include "api/transport/bitrate_settings.h"
#include "api/transport/field_trial_based_config.h"
#include "api/transport/rtp/rtp_source.h" #include "api/transport/rtp/rtp_source.h"
#include "call/audio_receive_stream.h" #include "call/audio_receive_stream.h"
#include "call/audio_send_stream.h" #include "call/audio_send_stream.h"
@ -89,11 +88,14 @@ using ::testing::ReturnPointee;
using ::testing::SaveArg; using ::testing::SaveArg;
using ::testing::StrictMock; using ::testing::StrictMock;
using ::testing::UnorderedElementsAreArray; using ::testing::UnorderedElementsAreArray;
using ::webrtc::AudioProcessing;
using ::webrtc::BitrateConstraints; using ::webrtc::BitrateConstraints;
using ::webrtc::BuiltinAudioProcessingBuilder;
using ::webrtc::Call; using ::webrtc::Call;
using ::webrtc::CallConfig; using ::webrtc::CallConfig;
using ::webrtc::CreateEnvironment; using ::webrtc::CreateEnvironment;
using ::webrtc::Environment; using ::webrtc::Environment;
using ::webrtc::scoped_refptr;
constexpr uint32_t kMaxUnsignaledRecvStreams = 4; constexpr uint32_t kMaxUnsignaledRecvStreams = 4;
@ -208,9 +210,8 @@ std::vector<cricket::Codec> ReceiveCodecsWithId(
// Tests that our stub library "works". // Tests that our stub library "works".
TEST(WebRtcVoiceEngineTestStubLibrary, StartupShutdown) { TEST(WebRtcVoiceEngineTestStubLibrary, StartupShutdown) {
Environment env = CreateEnvironment();
for (bool use_null_apm : {false, true}) { for (bool use_null_apm : {false, true}) {
std::unique_ptr<webrtc::TaskQueueFactory> task_queue_factory =
webrtc::CreateDefaultTaskQueueFactory();
rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm = rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
webrtc::test::MockAudioDeviceModule::CreateStrict(); webrtc::test::MockAudioDeviceModule::CreateStrict();
AdmSetupExpectations(adm.get()); AdmSetupExpectations(adm.get());
@ -226,12 +227,11 @@ TEST(WebRtcVoiceEngineTestStubLibrary, StartupShutdown) {
EXPECT_CALL(*apm, DetachAecDump()); EXPECT_CALL(*apm, DetachAecDump());
} }
{ {
webrtc::FieldTrialBasedConfig trials;
cricket::WebRtcVoiceEngine engine( cricket::WebRtcVoiceEngine engine(
task_queue_factory.get(), adm.get(), &env.task_queue_factory(), adm.get(),
webrtc::MockAudioEncoderFactory::CreateUnusedFactory(), webrtc::MockAudioEncoderFactory::CreateUnusedFactory(),
webrtc::MockAudioDecoderFactory::CreateUnusedFactory(), nullptr, apm, webrtc::MockAudioDecoderFactory::CreateUnusedFactory(), nullptr, apm,
nullptr, trials); nullptr, env.field_trials());
engine.Init(); engine.Init();
} }
} }
@ -3754,8 +3754,8 @@ TEST(WebRtcVoiceEngineTest, StartupShutdown) {
Environment env = CreateEnvironment(); Environment env = CreateEnvironment();
rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm = rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
webrtc::test::MockAudioDeviceModule::CreateNice(); webrtc::test::MockAudioDeviceModule::CreateNice();
rtc::scoped_refptr<webrtc::AudioProcessing> apm = scoped_refptr<AudioProcessing> apm =
use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create(); use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
cricket::WebRtcVoiceEngine engine( cricket::WebRtcVoiceEngine engine(
&env.task_queue_factory(), adm.get(), &env.task_queue_factory(), adm.get(),
webrtc::MockAudioEncoderFactory::CreateUnusedFactory(), webrtc::MockAudioEncoderFactory::CreateUnusedFactory(),
@ -3784,8 +3784,8 @@ TEST(WebRtcVoiceEngineTest, StartupShutdownWithExternalADM) {
auto adm = rtc::make_ref_counted< auto adm = rtc::make_ref_counted<
::testing::NiceMock<webrtc::test::MockAudioDeviceModule>>(); ::testing::NiceMock<webrtc::test::MockAudioDeviceModule>>();
{ {
rtc::scoped_refptr<webrtc::AudioProcessing> apm = scoped_refptr<AudioProcessing> apm =
use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create(); use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
cricket::WebRtcVoiceEngine engine( cricket::WebRtcVoiceEngine engine(
&env.task_queue_factory(), adm.get(), &env.task_queue_factory(), adm.get(),
webrtc::MockAudioEncoderFactory::CreateUnusedFactory(), webrtc::MockAudioEncoderFactory::CreateUnusedFactory(),
@ -3812,21 +3812,19 @@ TEST(WebRtcVoiceEngineTest, StartupShutdownWithExternalADM) {
// Verify the payload id of common audio codecs, including CN and G722. // Verify the payload id of common audio codecs, including CN and G722.
TEST(WebRtcVoiceEngineTest, HasCorrectPayloadTypeMapping) { TEST(WebRtcVoiceEngineTest, HasCorrectPayloadTypeMapping) {
Environment env = CreateEnvironment();
for (bool use_null_apm : {false, true}) { for (bool use_null_apm : {false, true}) {
std::unique_ptr<webrtc::TaskQueueFactory> task_queue_factory =
webrtc::CreateDefaultTaskQueueFactory();
// TODO(ossu): Why are the payload types of codecs with non-static payload // TODO(ossu): Why are the payload types of codecs with non-static payload
// type assignments checked here? It shouldn't really matter. // type assignments checked here? It shouldn't really matter.
rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm = rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
webrtc::test::MockAudioDeviceModule::CreateNice(); webrtc::test::MockAudioDeviceModule::CreateNice();
rtc::scoped_refptr<webrtc::AudioProcessing> apm = scoped_refptr<AudioProcessing> apm =
use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create(); use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
webrtc::FieldTrialBasedConfig field_trials;
cricket::WebRtcVoiceEngine engine( cricket::WebRtcVoiceEngine engine(
task_queue_factory.get(), adm.get(), &env.task_queue_factory(), adm.get(),
webrtc::MockAudioEncoderFactory::CreateUnusedFactory(), webrtc::MockAudioEncoderFactory::CreateUnusedFactory(),
webrtc::MockAudioDecoderFactory::CreateUnusedFactory(), nullptr, apm, webrtc::MockAudioDecoderFactory::CreateUnusedFactory(), nullptr, apm,
nullptr, field_trials); nullptr, env.field_trials());
engine.Init(); engine.Init();
for (const cricket::Codec& codec : engine.send_codecs()) { for (const cricket::Codec& codec : engine.send_codecs()) {
auto is_codec = [&codec](const char* name, int clockrate = 0) { auto is_codec = [&codec](const char* name, int clockrate = 0) {
@ -3868,8 +3866,8 @@ TEST(WebRtcVoiceEngineTest, Has32Channels) {
Environment env = CreateEnvironment(); Environment env = CreateEnvironment();
rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm = rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
webrtc::test::MockAudioDeviceModule::CreateNice(); webrtc::test::MockAudioDeviceModule::CreateNice();
rtc::scoped_refptr<webrtc::AudioProcessing> apm = scoped_refptr<AudioProcessing> apm =
use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create(); use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
cricket::WebRtcVoiceEngine engine( cricket::WebRtcVoiceEngine engine(
&env.task_queue_factory(), adm.get(), &env.task_queue_factory(), adm.get(),
webrtc::MockAudioEncoderFactory::CreateUnusedFactory(), webrtc::MockAudioEncoderFactory::CreateUnusedFactory(),
@ -3908,8 +3906,8 @@ TEST(WebRtcVoiceEngineTest, SetRecvCodecs) {
// I think it will become clear once audio decoder injection is completed. // I think it will become clear once audio decoder injection is completed.
rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm = rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
webrtc::test::MockAudioDeviceModule::CreateNice(); webrtc::test::MockAudioDeviceModule::CreateNice();
rtc::scoped_refptr<webrtc::AudioProcessing> apm = scoped_refptr<AudioProcessing> apm =
use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create(); use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
cricket::WebRtcVoiceEngine engine( cricket::WebRtcVoiceEngine engine(
&env.task_queue_factory(), adm.get(), &env.task_queue_factory(), adm.get(),
webrtc::MockAudioEncoderFactory::CreateUnusedFactory(), webrtc::MockAudioEncoderFactory::CreateUnusedFactory(),
@ -3975,6 +3973,7 @@ TEST(WebRtcVoiceEngineTest, SetRtpSendParametersMaxBitrate) {
} }
TEST(WebRtcVoiceEngineTest, CollectRecvCodecs) { TEST(WebRtcVoiceEngineTest, CollectRecvCodecs) {
Environment env = CreateEnvironment();
for (bool use_null_apm : {false, true}) { for (bool use_null_apm : {false, true}) {
std::vector<webrtc::AudioCodecSpec> specs; std::vector<webrtc::AudioCodecSpec> specs;
webrtc::AudioCodecSpec spec1{{"codec1", 48000, 2, {{"param1", "value1"}}}, webrtc::AudioCodecSpec spec1{{"codec1", 48000, 2, {{"param1", "value1"}}},
@ -3993,8 +3992,6 @@ TEST(WebRtcVoiceEngineTest, CollectRecvCodecs) {
specs.push_back( specs.push_back(
webrtc::AudioCodecSpec{{"codec5", 8000, 2}, {8000, 1, 64000}}); webrtc::AudioCodecSpec{{"codec5", 8000, 2}, {8000, 1, 64000}});
std::unique_ptr<webrtc::TaskQueueFactory> task_queue_factory =
webrtc::CreateDefaultTaskQueueFactory();
rtc::scoped_refptr<webrtc::MockAudioEncoderFactory> unused_encoder_factory = rtc::scoped_refptr<webrtc::MockAudioEncoderFactory> unused_encoder_factory =
webrtc::MockAudioEncoderFactory::CreateUnusedFactory(); webrtc::MockAudioEncoderFactory::CreateUnusedFactory();
rtc::scoped_refptr<webrtc::MockAudioDecoderFactory> mock_decoder_factory = rtc::scoped_refptr<webrtc::MockAudioDecoderFactory> mock_decoder_factory =
@ -4004,12 +4001,11 @@ TEST(WebRtcVoiceEngineTest, CollectRecvCodecs) {
rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm = rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
webrtc::test::MockAudioDeviceModule::CreateNice(); webrtc::test::MockAudioDeviceModule::CreateNice();
rtc::scoped_refptr<webrtc::AudioProcessing> apm = scoped_refptr<AudioProcessing> apm =
use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create(); use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
webrtc::FieldTrialBasedConfig field_trials;
cricket::WebRtcVoiceEngine engine( cricket::WebRtcVoiceEngine engine(
task_queue_factory.get(), adm.get(), unused_encoder_factory, &env.task_queue_factory(), adm.get(), unused_encoder_factory,
mock_decoder_factory, nullptr, apm, nullptr, field_trials); mock_decoder_factory, nullptr, apm, nullptr, env.field_trials());
engine.Init(); engine.Init();
auto codecs = engine.recv_codecs(); auto codecs = engine.recv_codecs();
EXPECT_EQ(11u, codecs.size()); EXPECT_EQ(11u, codecs.size());
@ -4063,6 +4059,7 @@ TEST(WebRtcVoiceEngineTest, CollectRecvCodecs) {
TEST(WebRtcVoiceEngineTest, CollectRecvCodecsWithLatePtAssignment) { TEST(WebRtcVoiceEngineTest, CollectRecvCodecsWithLatePtAssignment) {
webrtc::test::ScopedKeyValueConfig field_trials( webrtc::test::ScopedKeyValueConfig field_trials(
"WebRTC-PayloadTypesInTransport/Enabled/"); "WebRTC-PayloadTypesInTransport/Enabled/");
Environment env = CreateEnvironment(&field_trials);
for (bool use_null_apm : {false, true}) { for (bool use_null_apm : {false, true}) {
std::vector<webrtc::AudioCodecSpec> specs; std::vector<webrtc::AudioCodecSpec> specs;
@ -4082,8 +4079,6 @@ TEST(WebRtcVoiceEngineTest, CollectRecvCodecsWithLatePtAssignment) {
specs.push_back( specs.push_back(
webrtc::AudioCodecSpec{{"codec5", 8000, 2}, {8000, 1, 64000}}); webrtc::AudioCodecSpec{{"codec5", 8000, 2}, {8000, 1, 64000}});
std::unique_ptr<webrtc::TaskQueueFactory> task_queue_factory =
webrtc::CreateDefaultTaskQueueFactory();
rtc::scoped_refptr<webrtc::MockAudioEncoderFactory> unused_encoder_factory = rtc::scoped_refptr<webrtc::MockAudioEncoderFactory> unused_encoder_factory =
webrtc::MockAudioEncoderFactory::CreateUnusedFactory(); webrtc::MockAudioEncoderFactory::CreateUnusedFactory();
rtc::scoped_refptr<webrtc::MockAudioDecoderFactory> mock_decoder_factory = rtc::scoped_refptr<webrtc::MockAudioDecoderFactory> mock_decoder_factory =
@ -4093,11 +4088,11 @@ TEST(WebRtcVoiceEngineTest, CollectRecvCodecsWithLatePtAssignment) {
rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm = rtc::scoped_refptr<webrtc::test::MockAudioDeviceModule> adm =
webrtc::test::MockAudioDeviceModule::CreateNice(); webrtc::test::MockAudioDeviceModule::CreateNice();
rtc::scoped_refptr<webrtc::AudioProcessing> apm = scoped_refptr<AudioProcessing> apm =
use_null_apm ? nullptr : webrtc::AudioProcessingBuilder().Create(); use_null_apm ? nullptr : BuiltinAudioProcessingBuilder().Build(env);
cricket::WebRtcVoiceEngine engine( cricket::WebRtcVoiceEngine engine(
task_queue_factory.get(), adm.get(), unused_encoder_factory, &env.task_queue_factory(), adm.get(), unused_encoder_factory,
mock_decoder_factory, nullptr, apm, nullptr, field_trials); mock_decoder_factory, nullptr, apm, nullptr, env.field_trials());
engine.Init(); engine.Init();
auto codecs = engine.recv_codecs(); auto codecs = engine.recv_codecs();
EXPECT_EQ(11u, codecs.size()); EXPECT_EQ(11u, codecs.size());