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

Side by Side Diff: webrtc/voice_engine/output_mixer.cc

Issue 2645033002: Remove VoEExternalMedia interface. (Closed)
Patch Set: bad merge Created 3 years, 10 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) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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
11 #include "webrtc/voice_engine/output_mixer.h" 11 #include "webrtc/voice_engine/output_mixer.h"
12 12
13 #include "webrtc/audio/utility/audio_frame_operations.h" 13 #include "webrtc/audio/utility/audio_frame_operations.h"
14 #include "webrtc/base/format_macros.h" 14 #include "webrtc/base/format_macros.h"
15 #include "webrtc/modules/audio_processing/include/audio_processing.h" 15 #include "webrtc/modules/audio_processing/include/audio_processing.h"
16 #include "webrtc/system_wrappers/include/file_wrapper.h" 16 #include "webrtc/system_wrappers/include/file_wrapper.h"
17 #include "webrtc/system_wrappers/include/trace.h" 17 #include "webrtc/system_wrappers/include/trace.h"
18 #include "webrtc/voice_engine/include/voe_external_media.h"
19 #include "webrtc/voice_engine/statistics.h" 18 #include "webrtc/voice_engine/statistics.h"
20 #include "webrtc/voice_engine/utility.h" 19 #include "webrtc/voice_engine/utility.h"
21 20
22 namespace webrtc { 21 namespace webrtc {
23 namespace voe { 22 namespace voe {
24 23
25 void 24 void
26 OutputMixer::NewMixedAudio(int32_t id, 25 OutputMixer::NewMixedAudio(int32_t id,
27 const AudioFrame& generalAudioFrame, 26 const AudioFrame& generalAudioFrame,
28 const AudioFrame** uniqueAudioFrames, 27 const AudioFrame** uniqueAudioFrames,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 "mixer"); 86 "mixer");
88 return -1; 87 return -1;
89 } 88 }
90 return 0; 89 return 0;
91 } 90 }
92 91
93 OutputMixer::OutputMixer(uint32_t instanceId) : 92 OutputMixer::OutputMixer(uint32_t instanceId) :
94 _mixerModule(*AudioConferenceMixer::Create(instanceId)), 93 _mixerModule(*AudioConferenceMixer::Create(instanceId)),
95 _audioLevel(), 94 _audioLevel(),
96 _instanceId(instanceId), 95 _instanceId(instanceId),
97 _externalMediaCallbackPtr(NULL),
98 _externalMedia(false),
99 _panLeft(1.0f), 96 _panLeft(1.0f),
100 _panRight(1.0f), 97 _panRight(1.0f),
101 _mixingFrequencyHz(8000), 98 _mixingFrequencyHz(8000),
102 _outputFileRecording(false) 99 _outputFileRecording(false)
103 { 100 {
104 WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_instanceId,-1), 101 WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_instanceId,-1),
105 "OutputMixer::OutputMixer() - ctor"); 102 "OutputMixer::OutputMixer() - ctor");
106 103
107 if (_mixerModule.RegisterMixedStreamCallback(this) == -1) 104 if (_mixerModule.RegisterMixedStreamCallback(this) == -1)
108 { 105 {
(...skipping 10 matching lines...) Expand all
119 { 116 {
120 delete mixer; 117 delete mixer;
121 mixer = NULL; 118 mixer = NULL;
122 } 119 }
123 } 120 }
124 121
125 OutputMixer::~OutputMixer() 122 OutputMixer::~OutputMixer()
126 { 123 {
127 WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_instanceId,-1), 124 WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_instanceId,-1),
128 "OutputMixer::~OutputMixer() - dtor"); 125 "OutputMixer::~OutputMixer() - dtor");
129 if (_externalMedia)
130 {
131 DeRegisterExternalMediaProcessing();
132 }
133 { 126 {
134 rtc::CritScope cs(&_fileCritSect); 127 rtc::CritScope cs(&_fileCritSect);
135 if (output_file_recorder_) { 128 if (output_file_recorder_) {
136 output_file_recorder_->RegisterModuleFileCallback(NULL); 129 output_file_recorder_->RegisterModuleFileCallback(NULL);
137 output_file_recorder_->StopRecording(); 130 output_file_recorder_->StopRecording();
138 } 131 }
139 } 132 }
140 _mixerModule.UnRegisterMixedStreamCallback(); 133 _mixerModule.UnRegisterMixedStreamCallback();
141 delete &_mixerModule; 134 delete &_mixerModule;
142 } 135 }
(...skipping 10 matching lines...) Expand all
153 int32_t 146 int32_t
154 OutputMixer::SetAudioProcessingModule(AudioProcessing* audioProcessingModule) 147 OutputMixer::SetAudioProcessingModule(AudioProcessing* audioProcessingModule)
155 { 148 {
156 WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId,-1), 149 WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId,-1),
157 "OutputMixer::SetAudioProcessingModule(" 150 "OutputMixer::SetAudioProcessingModule("
158 "audioProcessingModule=0x%x)", audioProcessingModule); 151 "audioProcessingModule=0x%x)", audioProcessingModule);
159 _audioProcessingModulePtr = audioProcessingModule; 152 _audioProcessingModulePtr = audioProcessingModule;
160 return 0; 153 return 0;
161 } 154 }
162 155
163 int OutputMixer::RegisterExternalMediaProcessing(
164 VoEMediaProcess& proccess_object)
165 {
166 WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId,-1),
167 "OutputMixer::RegisterExternalMediaProcessing()");
168
169 rtc::CritScope cs(&_callbackCritSect);
170 _externalMediaCallbackPtr = &proccess_object;
171 _externalMedia = true;
172
173 return 0;
174 }
175
176 int OutputMixer::DeRegisterExternalMediaProcessing()
177 {
178 WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId,-1),
179 "OutputMixer::DeRegisterExternalMediaProcessing()");
180
181 rtc::CritScope cs(&_callbackCritSect);
182 _externalMedia = false;
183 _externalMediaCallbackPtr = NULL;
184
185 return 0;
186 }
187
188 int32_t 156 int32_t
189 OutputMixer::SetMixabilityStatus(MixerParticipant& participant, 157 OutputMixer::SetMixabilityStatus(MixerParticipant& participant,
190 bool mixable) 158 bool mixable)
191 { 159 {
192 return _mixerModule.SetMixabilityStatus(&participant, mixable); 160 return _mixerModule.SetMixabilityStatus(&participant, mixable);
193 } 161 }
194 162
195 int32_t 163 int32_t
196 OutputMixer::SetAnonymousMixabilityStatus(MixerParticipant& participant, 164 OutputMixer::SetAnonymousMixabilityStatus(MixerParticipant& participant,
197 bool mixable) 165 bool mixable)
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 440
473 // --- Far-end Voice Quality Enhancement (AudioProcessing Module) 441 // --- Far-end Voice Quality Enhancement (AudioProcessing Module)
474 if (feed_data_to_apm) { 442 if (feed_data_to_apm) {
475 if (_audioProcessingModulePtr->ProcessReverseStream(&_audioFrame) != 0) { 443 if (_audioProcessingModulePtr->ProcessReverseStream(&_audioFrame) != 0) {
476 WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, -1), 444 WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, -1),
477 "AudioProcessingModule::ProcessReverseStream() => error"); 445 "AudioProcessingModule::ProcessReverseStream() => error");
478 RTC_NOTREACHED(); 446 RTC_NOTREACHED();
479 } 447 }
480 } 448 }
481 449
482 // --- External media processing
483 {
484 rtc::CritScope cs(&_callbackCritSect);
485 if (_externalMedia)
486 {
487 const bool is_stereo = (_audioFrame.num_channels_ == 2);
488 if (_externalMediaCallbackPtr)
489 {
490 _externalMediaCallbackPtr->Process(
491 -1,
492 kPlaybackAllChannelsMixed,
493 (int16_t*)_audioFrame.data_,
494 _audioFrame.samples_per_channel_,
495 _audioFrame.sample_rate_hz_,
496 is_stereo);
497 }
498 }
499 }
500
501 // --- Measure audio level (0-9) for the combined signal 450 // --- Measure audio level (0-9) for the combined signal
502 _audioLevel.ComputeLevel(_audioFrame); 451 _audioLevel.ComputeLevel(_audioFrame);
503 452
504 return 0; 453 return 0;
505 } 454 }
506 } // namespace voe 455 } // namespace voe
507 } // namespace webrtc 456 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/voice_engine/output_mixer.h ('k') | webrtc/voice_engine/test/auto_test/fakes/fake_media_process.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698