Index: webrtc/media/engine/webrtcmediaengine.cc |
diff --git a/webrtc/media/engine/webrtcmediaengine.cc b/webrtc/media/engine/webrtcmediaengine.cc |
index 1d0e42616897de2ced761a2db8bbf33d8d3999c1..c4038df6669d6c09acaaf7779b48d638b4c3a57b 100644 |
--- a/webrtc/media/engine/webrtcmediaengine.cc |
+++ b/webrtc/media/engine/webrtcmediaengine.cc |
@@ -38,23 +38,29 @@ class WebRtcMediaEngine2 |
audio_decoder_factory, |
WebRtcVideoEncoderFactory* video_encoder_factory, |
WebRtcVideoDecoderFactory* video_decoder_factory, |
- rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer) |
+ rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer, |
+ rtc::TaskQueue* low_priority_worker_queue) |
#ifdef HAVE_WEBRTC_VIDEO |
: CompositeMediaEngine<WebRtcVoiceEngine, WebRtcVideoEngine2>( |
adm, |
audio_encoder_factory, |
audio_decoder_factory, |
- audio_mixer){ |
+ audio_mixer, |
+ low_priority_worker_queue) { |
#else |
: CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine>( |
adm, |
audio_encoder_factory, |
audio_decoder_factory, |
- audio_mixer) { |
+ audio_mixer, |
+ low_priority_worker_queue) { |
#endif |
video_.SetExternalDecoderFactory(video_decoder_factory); |
video_.SetExternalEncoderFactory(video_encoder_factory); |
} |
+ |
+ private: |
+ std::unique_ptr<rtc::TaskQueue> low_priority_task_queue_; |
}; |
} // namespace cricket |
@@ -67,10 +73,11 @@ cricket::MediaEngineInterface* CreateWebRtcMediaEngine( |
audio_decoder_factory, |
cricket::WebRtcVideoEncoderFactory* video_encoder_factory, |
cricket::WebRtcVideoDecoderFactory* video_decoder_factory, |
- rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer) { |
+ rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer, |
+ rtc::TaskQueue* low_priority_worker_queue) { |
return new cricket::WebRtcMediaEngine2( |
adm, audio_encoder_factory, audio_decoder_factory, video_encoder_factory, |
- video_decoder_factory, audio_mixer); |
+ video_decoder_factory, audio_mixer, low_priority_worker_queue); |
} |
void DestroyWebRtcMediaEngine(cricket::MediaEngineInterface* media_engine) { |
@@ -89,7 +96,7 @@ MediaEngineInterface* WebRtcMediaEngineFactory::Create( |
return CreateWebRtcMediaEngine( |
adm, webrtc::CreateBuiltinAudioEncoderFactory(), |
webrtc::CreateBuiltinAudioDecoderFactory(), video_encoder_factory, |
- video_decoder_factory, nullptr); |
+ video_decoder_factory, nullptr, nullptr); |
} |
MediaEngineInterface* WebRtcMediaEngineFactory::Create( |
@@ -100,7 +107,7 @@ MediaEngineInterface* WebRtcMediaEngineFactory::Create( |
WebRtcVideoDecoderFactory* video_decoder_factory) { |
return CreateWebRtcMediaEngine( |
adm, webrtc::CreateBuiltinAudioEncoderFactory(), audio_decoder_factory, |
- video_encoder_factory, video_decoder_factory, nullptr); |
+ video_encoder_factory, video_decoder_factory, nullptr, nullptr); |
} |
// Used by PeerConnectionFactory to create a media engine passed into |
@@ -114,7 +121,7 @@ MediaEngineInterface* WebRtcMediaEngineFactory::Create( |
rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer) { |
return CreateWebRtcMediaEngine( |
adm, webrtc::CreateBuiltinAudioEncoderFactory(), audio_decoder_factory, |
- video_encoder_factory, video_decoder_factory, audio_mixer); |
+ video_encoder_factory, video_decoder_factory, audio_mixer, nullptr); |
} |
MediaEngineInterface* WebRtcMediaEngineFactory::Create( |
@@ -127,7 +134,7 @@ MediaEngineInterface* WebRtcMediaEngineFactory::Create( |
WebRtcVideoDecoderFactory* video_decoder_factory) { |
return CreateWebRtcMediaEngine(adm, audio_encoder_factory, |
audio_decoder_factory, video_encoder_factory, |
- video_decoder_factory, nullptr); |
+ video_decoder_factory, nullptr, nullptr); |
} |
MediaEngineInterface* WebRtcMediaEngineFactory::Create( |
@@ -141,7 +148,22 @@ MediaEngineInterface* WebRtcMediaEngineFactory::Create( |
rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer) { |
return CreateWebRtcMediaEngine(adm, audio_encoder_factory, |
audio_decoder_factory, video_encoder_factory, |
- video_decoder_factory, audio_mixer); |
+ video_decoder_factory, audio_mixer, nullptr); |
+} |
+ |
+MediaEngineInterface* WebRtcMediaEngineFactory::Create( |
+ webrtc::AudioDeviceModule* adm, |
+ const rtc::scoped_refptr<webrtc::AudioEncoderFactory>& |
+ audio_encoder_factory, |
+ const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& |
+ audio_decoder_factory, |
+ WebRtcVideoEncoderFactory* video_encoder_factory, |
+ WebRtcVideoDecoderFactory* video_decoder_factory, |
+ rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer, |
+ rtc::TaskQueue* low_priority_worker_queue) { |
+ return CreateWebRtcMediaEngine( |
+ adm, audio_encoder_factory, audio_decoder_factory, video_encoder_factory, |
+ video_decoder_factory, audio_mixer, low_priority_worker_queue); |
} |
namespace { |