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 <mbonadei@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#39328}
This commit is contained in:
Dor Hen 2023-02-16 15:37:47 +02:00 committed by WebRTC LUCI CQ
parent 3970fa85b3
commit 99e002fdc4
4 changed files with 18 additions and 1 deletions

View File

@ -57,6 +57,8 @@ struct PeerConnectionFactoryComponents {
// PeerConnectionFactory.
std::unique_ptr<VideoEncoderFactory> video_encoder_factory;
std::unique_ptr<VideoDecoderFactory> video_decoder_factory;
rtc::scoped_refptr<webrtc::AudioEncoderFactory> audio_encoder_factory;
rtc::scoped_refptr<webrtc::AudioDecoderFactory> audio_decoder_factory;
std::unique_ptr<FieldTrialsView> trials;

View File

@ -76,7 +76,16 @@ PeerConfigurer* PeerConfigurer::SetVideoDecoderFactory(
std::move(video_decoder_factory);
return this;
}
PeerConfigurer* PeerConfigurer::SetAudioEncoderFactory(
rtc::scoped_refptr<webrtc::AudioEncoderFactory> audio_encoder_factory) {
components_->pcf_dependencies->audio_encoder_factory = audio_encoder_factory;
return this;
}
PeerConfigurer* PeerConfigurer::SetAudioDecoderFactory(
rtc::scoped_refptr<webrtc::AudioDecoderFactory> audio_decoder_factory) {
components_->pcf_dependencies->audio_decoder_factory = audio_decoder_factory;
return this;
}
PeerConfigurer* PeerConfigurer::SetAsyncResolverFactory(
std::unique_ptr<webrtc::AsyncResolverFactory> async_resolver_factory) {
components_->pc_dependencies->async_resolver_factory =

View File

@ -70,6 +70,10 @@ class PeerConfigurer {
std::unique_ptr<VideoEncoderFactory> video_encoder_factory);
PeerConfigurer* SetVideoDecoderFactory(
std::unique_ptr<VideoDecoderFactory> video_decoder_factory);
PeerConfigurer* SetAudioEncoderFactory(
rtc::scoped_refptr<webrtc::AudioEncoderFactory> audio_encoder_factory);
PeerConfigurer* SetAudioDecoderFactory(
rtc::scoped_refptr<webrtc::AudioDecoderFactory> audio_decoder_factory);
// Set a custom NetEqFactory to be used in the call.
PeerConfigurer* SetNetEqFactory(std::unique_ptr<NetEqFactory> neteq_factory);
PeerConfigurer* SetAudioProcessing(

View File

@ -169,6 +169,8 @@ std::unique_ptr<cricket::MediaEngineInterface> 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();