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