Index: pc/createpeerconnectionfactory.cc |
diff --git a/pc/createpeerconnectionfactory.cc b/pc/createpeerconnectionfactory.cc |
index a62a7ae6f0508da3c9e30d43ae0cd9c0ffee6aaf..ed0ff2a383a8aa2d8dd6a9f56cecfe7f4277fa99 100644 |
--- a/pc/createpeerconnectionfactory.cc |
+++ b/pc/createpeerconnectionfactory.cc |
@@ -11,9 +11,12 @@ |
#include "api/audio_codecs/builtin_audio_decoder_factory.h" |
#include "api/audio_codecs/builtin_audio_encoder_factory.h" |
#include "api/peerconnectioninterface.h" |
+#include "api/video_codecs/video_decoder_factory.h" |
+#include "api/video_codecs/video_encoder_factory.h" |
#include "call/callfactoryinterface.h" |
#include "logging/rtc_event_log/rtc_event_log_factory_interface.h" |
#include "media/engine/webrtcmediaengine.h" |
+#include "modules/audio_device/include/audio_device.h" |
#include "modules/audio_processing/include/audio_processing.h" |
#include "rtc_base/bind.h" |
#include "rtc_base/scoped_ref_ptr.h" |
@@ -74,6 +77,40 @@ rtc::scoped_refptr<PeerConnectionFactoryInterface> CreatePeerConnectionFactory( |
std::move(call_factory), std::move(event_log_factory)); |
} |
+rtc::scoped_refptr<PeerConnectionFactoryInterface> CreatePeerConnectionFactory( |
+ rtc::Thread* network_thread, |
+ rtc::Thread* worker_thread, |
+ rtc::Thread* signaling_thread, |
+ rtc::scoped_refptr<AudioDeviceModule> default_adm, |
+ rtc::scoped_refptr<AudioEncoderFactory> audio_encoder_factory, |
+ rtc::scoped_refptr<AudioDecoderFactory> audio_decoder_factory, |
+ std::unique_ptr<VideoEncoderFactory> video_encoder_factory, |
+ std::unique_ptr<VideoDecoderFactory> video_decoder_factory, |
+ rtc::scoped_refptr<AudioMixer> audio_mixer, |
+ rtc::scoped_refptr<AudioProcessing> audio_processing) { |
+ if (!audio_processing) |
+ audio_processing = AudioProcessing::Create(); |
+ |
+ std::unique_ptr<cricket::MediaEngineInterface> media_engine = |
+ cricket::WebRtcMediaEngineFactory::Create( |
+ default_adm, audio_encoder_factory, audio_decoder_factory, |
+ std::move(video_encoder_factory), std::move(video_decoder_factory), |
+ audio_mixer, audio_processing); |
+ |
+ std::unique_ptr<CallFactoryInterface> call_factory = CreateCallFactory(); |
+ |
+ std::unique_ptr<RtcEventLogFactoryInterface> event_log_factory = |
+ CreateRtcEventLogFactory(); |
+ |
+ return CreateModularPeerConnectionFactory( |
+ network_thread, worker_thread, signaling_thread, default_adm, |
+ audio_encoder_factory, audio_decoder_factory, |
+ nullptr /* external_video_encoder_factory */, |
+ nullptr /* external_video_decoder_factory */, audio_mixer, |
+ std::move(media_engine), std::move(call_factory), |
+ std::move(event_log_factory)); |
+} |
+ |
rtc::scoped_refptr<PeerConnectionFactoryInterface> |
CreatePeerConnectionFactoryWithAudioMixer( |
rtc::Thread* network_thread, |