Index: webrtc/media/base/mediaengine.h |
diff --git a/webrtc/media/base/mediaengine.h b/webrtc/media/base/mediaengine.h |
index 2b9e790a6c09d4b27139d31b66d78a63bdd2cf36..872cd0e3b55212d268b0fbfb7720e0f601585d56 100644 |
--- a/webrtc/media/base/mediaengine.h |
+++ b/webrtc/media/base/mediaengine.h |
@@ -23,6 +23,7 @@ |
#include "webrtc/api/rtpparameters.h" |
#include "webrtc/base/fileutils.h" |
#include "webrtc/base/sigslotrepeater.h" |
+#include "webrtc/base/task_queue.h" |
#include "webrtc/call/audio_state.h" |
#include "webrtc/media/base/codec.h" |
#include "webrtc/media/base/mediachannel.h" |
@@ -32,6 +33,10 @@ |
#define DISABLE_MEDIA_ENGINE_FACTORY |
#endif |
+namespace rtc { |
+class TaskQueue; |
+} |
+ |
namespace webrtc { |
class AudioDeviceModule; |
class AudioMixer; |
@@ -117,9 +122,20 @@ class CompositeMediaEngine : public MediaEngineInterface { |
audio_encoder_factory, |
const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& |
audio_decoder_factory, |
- rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer) |
- : voice_(adm, audio_encoder_factory, audio_decoder_factory, audio_mixer) { |
- } |
+ rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer, |
+ rtc::TaskQueue* low_priority_worker_queue) |
+ : owned_low_priority_worker_queue_( |
+ low_priority_worker_queue |
+ ? nullptr |
+ : new rtc::TaskQueue("low_prio_worker_queue", |
+ rtc::TaskQueue::Priority::LOW)), |
+ voice_(adm, |
+ audio_encoder_factory, |
+ audio_decoder_factory, |
+ audio_mixer, |
+ low_priority_worker_queue |
+ ? owned_low_priority_worker_queue_.get() |
+ : low_priority_worker_queue) {} |
virtual ~CompositeMediaEngine() {} |
virtual bool Init() { |
video_.Init(); |
@@ -165,6 +181,9 @@ class CompositeMediaEngine : public MediaEngineInterface { |
voice_.StopAecDump(); |
} |
+ private: |
+ std::unique_ptr<rtc::TaskQueue> owned_low_priority_worker_queue_; |
+ |
protected: |
VOICE voice_; |
VIDEO video_; |