Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(271)

Side by Side Diff: webrtc/media/engine/webrtcvoiceengine.cc

Issue 2888303003: Work-in-progress upload to add worker task queue to PC factory.
Patch Set: Rebase. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 return rtc::Optional<int>(std::min(bps, spec.info.max_bitrate_bps)); 206 return rtc::Optional<int>(std::min(bps, spec.info.max_bitrate_bps));
207 } 207 }
208 } 208 }
209 209
210 } // namespace 210 } // namespace
211 211
212 WebRtcVoiceEngine::WebRtcVoiceEngine( 212 WebRtcVoiceEngine::WebRtcVoiceEngine(
213 webrtc::AudioDeviceModule* adm, 213 webrtc::AudioDeviceModule* adm,
214 const rtc::scoped_refptr<webrtc::AudioEncoderFactory>& encoder_factory, 214 const rtc::scoped_refptr<webrtc::AudioEncoderFactory>& encoder_factory,
215 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory, 215 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory,
216 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer) 216 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer,
217 rtc::TaskQueue* low_priority_worker_queue)
217 : WebRtcVoiceEngine(adm, 218 : WebRtcVoiceEngine(adm,
218 encoder_factory, 219 encoder_factory,
219 decoder_factory, 220 decoder_factory,
220 audio_mixer, 221 audio_mixer,
222 low_priority_worker_queue,
221 new VoEWrapper()) { 223 new VoEWrapper()) {
222 audio_state_ = 224 audio_state_ =
223 webrtc::AudioState::Create(MakeAudioStateConfig(voe(), audio_mixer)); 225 webrtc::AudioState::Create(MakeAudioStateConfig(voe(), audio_mixer));
224 } 226 }
225 227
226 WebRtcVoiceEngine::WebRtcVoiceEngine( 228 WebRtcVoiceEngine::WebRtcVoiceEngine(
227 webrtc::AudioDeviceModule* adm, 229 webrtc::AudioDeviceModule* adm,
228 const rtc::scoped_refptr<webrtc::AudioEncoderFactory>& encoder_factory, 230 const rtc::scoped_refptr<webrtc::AudioEncoderFactory>& encoder_factory,
229 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory, 231 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory,
230 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer, 232 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer,
233 rtc::TaskQueue* low_priority_worker_queue,
231 VoEWrapper* voe_wrapper) 234 VoEWrapper* voe_wrapper)
232 : low_priority_worker_queue_("low-prio-worker-queue", 235 : adm_(adm),
233 rtc::TaskQueue::Priority::LOW),
234 adm_(adm),
235 encoder_factory_(encoder_factory), 236 encoder_factory_(encoder_factory),
236 decoder_factory_(decoder_factory), 237 decoder_factory_(decoder_factory),
237 voe_wrapper_(voe_wrapper) { 238 voe_wrapper_(voe_wrapper),
239 low_priority_worker_queue_(low_priority_worker_queue) {
238 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 240 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
239 LOG(LS_INFO) << "WebRtcVoiceEngine::WebRtcVoiceEngine"; 241 LOG(LS_INFO) << "WebRtcVoiceEngine::WebRtcVoiceEngine";
240 RTC_DCHECK(voe_wrapper); 242 RTC_DCHECK(voe_wrapper);
241 RTC_DCHECK(decoder_factory); 243 RTC_DCHECK(decoder_factory);
244 RTC_DCHECK(low_priority_worker_queue);
242 245
243 signal_thread_checker_.DetachFromThread(); 246 signal_thread_checker_.DetachFromThread();
244 247
245 // Load our audio codec lists. 248 // Load our audio codec lists.
246 LOG(LS_INFO) << "Supported send codecs in order of preference:"; 249 LOG(LS_INFO) << "Supported send codecs in order of preference:";
247 send_codecs_ = CollectCodecs(encoder_factory_->GetSupportedEncoders()); 250 send_codecs_ = CollectCodecs(encoder_factory_->GetSupportedEncoders());
248 for (const AudioCodec& codec : send_codecs_) { 251 for (const AudioCodec& codec : send_codecs_) {
249 LOG(LS_INFO) << ToString(codec); 252 LOG(LS_INFO) << ToString(codec);
250 } 253 }
251 254
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 void WebRtcVoiceEngine::UnregisterChannel(WebRtcVoiceMediaChannel* channel) { 656 void WebRtcVoiceEngine::UnregisterChannel(WebRtcVoiceMediaChannel* channel) {
654 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 657 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
655 auto it = std::find(channels_.begin(), channels_.end(), channel); 658 auto it = std::find(channels_.begin(), channels_.end(), channel);
656 RTC_DCHECK(it != channels_.end()); 659 RTC_DCHECK(it != channels_.end());
657 channels_.erase(it); 660 channels_.erase(it);
658 } 661 }
659 662
660 bool WebRtcVoiceEngine::StartAecDump(rtc::PlatformFile file, 663 bool WebRtcVoiceEngine::StartAecDump(rtc::PlatformFile file,
661 int64_t max_size_bytes) { 664 int64_t max_size_bytes) {
662 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 665 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
666 RTC_DCHECK(low_priority_worker_queue_);
663 auto aec_dump = webrtc::AecDumpFactory::Create(file, max_size_bytes, 667 auto aec_dump = webrtc::AecDumpFactory::Create(file, max_size_bytes,
664 &low_priority_worker_queue_); 668 low_priority_worker_queue_);
665 if (aec_dump) { 669 if (aec_dump) {
666 apm()->AttachAecDump(std::move(aec_dump)); 670 apm()->AttachAecDump(std::move(aec_dump));
667 } 671 }
668 return !!aec_dump; 672 return !!aec_dump;
669 } 673 }
670 674
671 void WebRtcVoiceEngine::StartAecDump(const std::string& filename) { 675 void WebRtcVoiceEngine::StartAecDump(const std::string& filename) {
672 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 676 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
677 RTC_DCHECK(low_priority_worker_queue_);
673 678
674 auto aec_dump = 679 auto aec_dump =
675 webrtc::AecDumpFactory::Create(filename, -1, &low_priority_worker_queue_); 680 webrtc::AecDumpFactory::Create(filename, -1, low_priority_worker_queue_);
676 if (aec_dump) { 681 if (aec_dump) {
677 apm()->AttachAecDump(std::move(aec_dump)); 682 apm()->AttachAecDump(std::move(aec_dump));
678 } 683 }
679 } 684 }
680 685
681 void WebRtcVoiceEngine::StopAecDump() { 686 void WebRtcVoiceEngine::StopAecDump() {
682 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 687 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
683 apm()->DetachAecDump(); 688 apm()->DetachAecDump();
684 } 689 }
685 690
(...skipping 1625 matching lines...) Expand 10 before | Expand all | Expand 10 after
2311 ssrc); 2316 ssrc);
2312 if (it != unsignaled_recv_ssrcs_.end()) { 2317 if (it != unsignaled_recv_ssrcs_.end()) {
2313 unsignaled_recv_ssrcs_.erase(it); 2318 unsignaled_recv_ssrcs_.erase(it);
2314 return true; 2319 return true;
2315 } 2320 }
2316 return false; 2321 return false;
2317 } 2322 }
2318 } // namespace cricket 2323 } // namespace cricket
2319 2324
2320 #endif // HAVE_WEBRTC_VOICE 2325 #endif // HAVE_WEBRTC_VOICE
OLDNEW
« no previous file with comments | « webrtc/media/engine/webrtcvoiceengine.h ('k') | webrtc/media/engine/webrtcvoiceengine_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698