From 99e002fdc40325077dda1551bd0b2b884c32f288 Mon Sep 17 00:00:00 2001 From: Dor Hen Date: Thu, 16 Feb 2023 15:37:47 +0200 Subject: [PATCH] Add APIs audio encoder/decoder factories in PeerConfigurer In Meta we have our own audio encoder/decoder factories and we would like to exercise those in the peer connection e2e test framework. Also, looks cleaner to have the APIs for both video and audio :) Bug: webrtc:14910 Change-Id: Ibd1e0f39fc809882ef17b3de3154fdf4b567013b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/293782 Reviewed-by: Mirko Bonadei Reviewed-by: Artem Titov Commit-Queue: Mirko Bonadei Reviewed-by: Jeremy Leconte Reviewed-by: Jeremy Leconte Cr-Commit-Position: refs/heads/main@{#39328} --- api/test/pclf/media_quality_test_params.h | 2 ++ api/test/pclf/peer_configurer.cc | 11 ++++++++++- api/test/pclf/peer_configurer.h | 4 ++++ test/pc/e2e/test_peer_factory.cc | 2 ++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/api/test/pclf/media_quality_test_params.h b/api/test/pclf/media_quality_test_params.h index 3377d31f68..2485cfca00 100644 --- a/api/test/pclf/media_quality_test_params.h +++ b/api/test/pclf/media_quality_test_params.h @@ -57,6 +57,8 @@ struct PeerConnectionFactoryComponents { // PeerConnectionFactory. std::unique_ptr video_encoder_factory; std::unique_ptr video_decoder_factory; + rtc::scoped_refptr audio_encoder_factory; + rtc::scoped_refptr audio_decoder_factory; std::unique_ptr trials; diff --git a/api/test/pclf/peer_configurer.cc b/api/test/pclf/peer_configurer.cc index 2203a4c4f0..de7600efc1 100644 --- a/api/test/pclf/peer_configurer.cc +++ b/api/test/pclf/peer_configurer.cc @@ -76,7 +76,16 @@ PeerConfigurer* PeerConfigurer::SetVideoDecoderFactory( std::move(video_decoder_factory); return this; } - +PeerConfigurer* PeerConfigurer::SetAudioEncoderFactory( + rtc::scoped_refptr audio_encoder_factory) { + components_->pcf_dependencies->audio_encoder_factory = audio_encoder_factory; + return this; +} +PeerConfigurer* PeerConfigurer::SetAudioDecoderFactory( + rtc::scoped_refptr audio_decoder_factory) { + components_->pcf_dependencies->audio_decoder_factory = audio_decoder_factory; + return this; +} PeerConfigurer* PeerConfigurer::SetAsyncResolverFactory( std::unique_ptr async_resolver_factory) { components_->pc_dependencies->async_resolver_factory = diff --git a/api/test/pclf/peer_configurer.h b/api/test/pclf/peer_configurer.h index 996dc5cd89..10f37a1eec 100644 --- a/api/test/pclf/peer_configurer.h +++ b/api/test/pclf/peer_configurer.h @@ -70,6 +70,10 @@ class PeerConfigurer { std::unique_ptr video_encoder_factory); PeerConfigurer* SetVideoDecoderFactory( std::unique_ptr video_decoder_factory); + PeerConfigurer* SetAudioEncoderFactory( + rtc::scoped_refptr audio_encoder_factory); + PeerConfigurer* SetAudioDecoderFactory( + rtc::scoped_refptr audio_decoder_factory); // Set a custom NetEqFactory to be used in the call. PeerConfigurer* SetNetEqFactory(std::unique_ptr neteq_factory); PeerConfigurer* SetAudioProcessing( diff --git a/test/pc/e2e/test_peer_factory.cc b/test/pc/e2e/test_peer_factory.cc index 7fc12f2c11..9142ed5fb1 100644 --- a/test/pc/e2e/test_peer_factory.cc +++ b/test/pc/e2e/test_peer_factory.cc @@ -169,6 +169,8 @@ std::unique_ptr CreateMediaEngine( std::move(pcf_dependencies->video_encoder_factory); media_deps.video_decoder_factory = std::move(pcf_dependencies->video_decoder_factory); + media_deps.audio_encoder_factory = pcf_dependencies->audio_encoder_factory; + media_deps.audio_decoder_factory = pcf_dependencies->audio_decoder_factory; webrtc::SetMediaEngineDefaults(&media_deps); RTC_DCHECK(pcf_dependencies->trials); media_deps.trials = pcf_dependencies->trials.get();