| 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 {
|
|
|