Index: webrtc/media/engine/webrtcmediaengine.cc |
diff --git a/webrtc/media/engine/webrtcmediaengine.cc b/webrtc/media/engine/webrtcmediaengine.cc |
index 45652d0128f9dcb50e2f412315f91379c9de85eb..df3adf26c4a902f5c7ec5f0c7ddd8b8f773a0d7a 100644 |
--- a/webrtc/media/engine/webrtcmediaengine.cc |
+++ b/webrtc/media/engine/webrtcmediaengine.cc |
@@ -28,16 +28,22 @@ class WebRtcMediaEngine2 |
: public CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine> { |
#endif |
public: |
- WebRtcMediaEngine2(webrtc::AudioDeviceModule* adm, |
- WebRtcVideoEncoderFactory* encoder_factory, |
- WebRtcVideoDecoderFactory* decoder_factory) |
+ WebRtcMediaEngine2( |
+ webrtc::AudioDeviceModule* adm, |
+ std::shared_ptr<webrtc::AudioDecoderFactory> audio_decoder_factory, |
+ WebRtcVideoEncoderFactory* video_encoder_factory, |
+ WebRtcVideoDecoderFactory* video_decoder_factory) |
#ifdef HAVE_WEBRTC_VIDEO |
- : CompositeMediaEngine<WebRtcVoiceEngine, WebRtcVideoEngine2>(adm) { |
+ : CompositeMediaEngine<WebRtcVoiceEngine, |
+ WebRtcVideoEngine2>( |
+ adm, std::move(audio_decoder_factory)) { |
#else |
- : CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine>(adm) { |
+ : CompositeMediaEngine<WebRtcVoiceEngine, |
+ NullWebRtcVideoEngine>( |
+ adm, std::move(audio_decoder_factory)) { |
#endif |
- video_.SetExternalDecoderFactory(decoder_factory); |
- video_.SetExternalEncoderFactory(encoder_factory); |
+ video_.SetExternalDecoderFactory(video_decoder_factory); |
+ video_.SetExternalEncoderFactory(video_encoder_factory); |
} |
}; |
@@ -45,10 +51,13 @@ class WebRtcMediaEngine2 |
cricket::MediaEngineInterface* CreateWebRtcMediaEngine( |
webrtc::AudioDeviceModule* adm, |
- cricket::WebRtcVideoEncoderFactory* encoder_factory, |
- cricket::WebRtcVideoDecoderFactory* decoder_factory) { |
- return new cricket::WebRtcMediaEngine2(adm, encoder_factory, |
- decoder_factory); |
+ std::shared_ptr<webrtc::AudioDecoderFactory> audio_decoder_factory, |
+ cricket::WebRtcVideoEncoderFactory* video_encoder_factory, |
+ cricket::WebRtcVideoDecoderFactory* video_decoder_factory) { |
+ return new cricket::WebRtcMediaEngine2(adm, |
+ audio_decoder_factory, |
+ video_encoder_factory, |
+ video_decoder_factory); |
} |
void DestroyWebRtcMediaEngine(cricket::MediaEngineInterface* media_engine) { |
@@ -61,9 +70,13 @@ namespace cricket { |
// ChannelManager. |
MediaEngineInterface* WebRtcMediaEngineFactory::Create( |
webrtc::AudioDeviceModule* adm, |
+ std::shared_ptr<webrtc::AudioDecoderFactory> audio_decoder_factory, |
WebRtcVideoEncoderFactory* encoder_factory, |
WebRtcVideoDecoderFactory* decoder_factory) { |
- return CreateWebRtcMediaEngine(adm, encoder_factory, decoder_factory); |
+ return CreateWebRtcMediaEngine(adm, |
+ std::move(audio_decoder_factory), |
+ encoder_factory, |
+ decoder_factory); |
} |
namespace { |