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

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

Issue 2747123007: Test submission of complete AEC-dump refactoring. (Closed)
Patch Set: Changed interface and build structure after reviewer comments. Created 3 years, 8 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
« no previous file with comments | « webrtc/media/engine/webrtcvoiceengine.h ('k') | webrtc/modules/audio_processing/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 21 matching lines...) Expand all
32 #include "webrtc/media/base/audiosource.h" 32 #include "webrtc/media/base/audiosource.h"
33 #include "webrtc/media/base/mediaconstants.h" 33 #include "webrtc/media/base/mediaconstants.h"
34 #include "webrtc/media/base/streamparams.h" 34 #include "webrtc/media/base/streamparams.h"
35 #include "webrtc/media/engine/adm_helpers.h" 35 #include "webrtc/media/engine/adm_helpers.h"
36 #include "webrtc/media/engine/apm_helpers.h" 36 #include "webrtc/media/engine/apm_helpers.h"
37 #include "webrtc/media/engine/payload_type_mapper.h" 37 #include "webrtc/media/engine/payload_type_mapper.h"
38 #include "webrtc/media/engine/webrtcmediaengine.h" 38 #include "webrtc/media/engine/webrtcmediaengine.h"
39 #include "webrtc/media/engine/webrtcvoe.h" 39 #include "webrtc/media/engine/webrtcvoe.h"
40 #include "webrtc/modules/audio_coding/acm2/rent_a_codec.h" 40 #include "webrtc/modules/audio_coding/acm2/rent_a_codec.h"
41 #include "webrtc/modules/audio_mixer/audio_mixer_impl.h" 41 #include "webrtc/modules/audio_mixer/audio_mixer_impl.h"
42 #include "webrtc/modules/audio_processing/aec_dump/aec_dump_factory.h"
42 #include "webrtc/modules/audio_processing/include/audio_processing.h" 43 #include "webrtc/modules/audio_processing/include/audio_processing.h"
43 #include "webrtc/system_wrappers/include/field_trial.h" 44 #include "webrtc/system_wrappers/include/field_trial.h"
44 #include "webrtc/system_wrappers/include/metrics.h" 45 #include "webrtc/system_wrappers/include/metrics.h"
45 #include "webrtc/system_wrappers/include/trace.h" 46 #include "webrtc/system_wrappers/include/trace.h"
46 #include "webrtc/voice_engine/transmit_mixer.h" 47 #include "webrtc/voice_engine/transmit_mixer.h"
47 48
48 namespace cricket { 49 namespace cricket {
49 namespace { 50 namespace {
50 51
51 constexpr size_t kMaxUnsignaledRecvStreams = 1; 52 constexpr size_t kMaxUnsignaledRecvStreams = 1;
(...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 : WebRtcVoiceEngine(adm, decoder_factory, audio_mixer, new VoEWrapper()) { 559 : WebRtcVoiceEngine(adm, decoder_factory, audio_mixer, new VoEWrapper()) {
559 audio_state_ = 560 audio_state_ =
560 webrtc::AudioState::Create(MakeAudioStateConfig(voe(), audio_mixer)); 561 webrtc::AudioState::Create(MakeAudioStateConfig(voe(), audio_mixer));
561 } 562 }
562 563
563 WebRtcVoiceEngine::WebRtcVoiceEngine( 564 WebRtcVoiceEngine::WebRtcVoiceEngine(
564 webrtc::AudioDeviceModule* adm, 565 webrtc::AudioDeviceModule* adm,
565 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory, 566 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory,
566 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer, 567 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer,
567 VoEWrapper* voe_wrapper) 568 VoEWrapper* voe_wrapper)
568 : adm_(adm), decoder_factory_(decoder_factory), voe_wrapper_(voe_wrapper) { 569 : worker_queue_("file_writer_task_queue_"),
570 adm_(adm),
571 decoder_factory_(decoder_factory),
572 voe_wrapper_(voe_wrapper) {
569 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 573 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
570 LOG(LS_INFO) << "WebRtcVoiceEngine::WebRtcVoiceEngine"; 574 LOG(LS_INFO) << "WebRtcVoiceEngine::WebRtcVoiceEngine";
571 RTC_DCHECK(voe_wrapper); 575 RTC_DCHECK(voe_wrapper);
572 RTC_DCHECK(decoder_factory); 576 RTC_DCHECK(decoder_factory);
573 577
574 signal_thread_checker_.DetachFromThread(); 578 signal_thread_checker_.DetachFromThread();
575 579
576 // Load our audio codec list. 580 // Load our audio codec list.
577 LOG(LS_INFO) << "Supported send codecs in order of preference:"; 581 LOG(LS_INFO) << "Supported send codecs in order of preference:";
578 send_codecs_ = WebRtcVoiceCodecs::SupportedSendCodecs(); 582 send_codecs_ = WebRtcVoiceCodecs::SupportedSendCodecs();
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
992 int64_t max_size_bytes) { 996 int64_t max_size_bytes) {
993 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 997 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
994 FILE* aec_dump_file_stream = rtc::FdopenPlatformFileForWriting(file); 998 FILE* aec_dump_file_stream = rtc::FdopenPlatformFileForWriting(file);
995 if (!aec_dump_file_stream) { 999 if (!aec_dump_file_stream) {
996 LOG(LS_ERROR) << "Could not open AEC dump file stream."; 1000 LOG(LS_ERROR) << "Could not open AEC dump file stream.";
997 if (!rtc::ClosePlatformFile(file)) 1001 if (!rtc::ClosePlatformFile(file))
998 LOG(LS_WARNING) << "Could not close file."; 1002 LOG(LS_WARNING) << "Could not close file.";
999 return false; 1003 return false;
1000 } 1004 }
1001 StopAecDump(); 1005 StopAecDump();
1002 if (apm()->StartDebugRecording(aec_dump_file_stream, max_size_bytes) != 1006 apm()->StartDebugRecording(webrtc::AecDumpFactory::Create(
1003 webrtc::AudioProcessing::kNoError) { 1007 aec_dump_file_stream, max_size_bytes, &worker_queue_));
1004 LOG_RTCERR0(StartDebugRecording);
1005 fclose(aec_dump_file_stream);
1006 return false;
1007 }
1008 is_dumping_aec_ = true; 1008 is_dumping_aec_ = true;
1009 return true; 1009 return true;
1010 } 1010 }
1011 1011
1012 void WebRtcVoiceEngine::StartAecDump(const std::string& filename) { 1012 void WebRtcVoiceEngine::StartAecDump(const std::string& filename) {
1013 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 1013 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
1014 if (!is_dumping_aec_) { 1014 if (!is_dumping_aec_) {
1015 // Start dumping AEC when we are not dumping. 1015 // Start dumping AEC when we are not dumping.
1016 if (apm()->StartDebugRecording(filename.c_str(), -1) != 1016 apm()->StartDebugRecording(
1017 webrtc::AudioProcessing::kNoError) { 1017 webrtc::AecDumpFactory::Create(filename.c_str(), -1, &worker_queue_));
1018 LOG_RTCERR1(StartDebugRecording, filename.c_str()); 1018 is_dumping_aec_ = true;
1019 } else {
1020 is_dumping_aec_ = true;
1021 }
1022 } 1019 }
1023 } 1020 }
1024 1021
1025 void WebRtcVoiceEngine::StopAecDump() { 1022 void WebRtcVoiceEngine::StopAecDump() {
1026 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 1023 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
1027 if (is_dumping_aec_) { 1024 if (is_dumping_aec_) {
1028 // Stop dumping AEC when we are dumping. 1025 // Stop dumping AEC when we are dumping.
1029 if (apm()->StopDebugRecording() != webrtc::AudioProcessing::kNoError) { 1026 apm()->StopDebugRecording();
1030 LOG_RTCERR0(StopDebugRecording);
1031 }
1032 is_dumping_aec_ = false; 1027 is_dumping_aec_ = false;
1033 } 1028 }
1034 } 1029 }
1035 1030
1036 int WebRtcVoiceEngine::CreateVoEChannel() { 1031 int WebRtcVoiceEngine::CreateVoEChannel() {
1037 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 1032 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
1038 return voe_wrapper_->base()->CreateChannel(channel_config_); 1033 return voe_wrapper_->base()->CreateChannel(channel_config_);
1039 } 1034 }
1040 1035
1041 webrtc::AudioDeviceModule* WebRtcVoiceEngine::adm() { 1036 webrtc::AudioDeviceModule* WebRtcVoiceEngine::adm() {
(...skipping 1584 matching lines...) Expand 10 before | Expand all | Expand 10 after
2626 ssrc); 2621 ssrc);
2627 if (it != unsignaled_recv_ssrcs_.end()) { 2622 if (it != unsignaled_recv_ssrcs_.end()) {
2628 unsignaled_recv_ssrcs_.erase(it); 2623 unsignaled_recv_ssrcs_.erase(it);
2629 return true; 2624 return true;
2630 } 2625 }
2631 return false; 2626 return false;
2632 } 2627 }
2633 } // namespace cricket 2628 } // namespace cricket
2634 2629
2635 #endif // HAVE_WEBRTC_VOICE 2630 #endif // HAVE_WEBRTC_VOICE
OLDNEW
« no previous file with comments | « webrtc/media/engine/webrtcvoiceengine.h ('k') | webrtc/modules/audio_processing/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698