Index: webrtc/voice_engine/voe_base_impl.cc |
diff --git a/webrtc/voice_engine/voe_base_impl.cc b/webrtc/voice_engine/voe_base_impl.cc |
index 1ddf53ca7b642bfb1ae07a5cb42c1eabcf118fe7..6d69cafd86dc65c6d2cfba695474000cf7dce9a7 100644 |
--- a/webrtc/voice_engine/voe_base_impl.cc |
+++ b/webrtc/voice_engine/voe_base_impl.cc |
@@ -225,8 +225,9 @@ int VoEBaseImpl::DeRegisterVoiceEngineObserver() { |
int VoEBaseImpl::Init( |
AudioDeviceModule* external_adm, |
- AudioProcessing* audioproc, |
+ AudioProcessing* external_apm, |
const rtc::scoped_refptr<AudioDecoderFactory>& decoder_factory) { |
+ RTC_DCHECK(external_apm); |
rtc::CritScope cs(shared_->crit_sec()); |
WebRtcSpl_Init(); |
if (shared_->statistics().Initialized()) { |
@@ -337,33 +338,27 @@ int VoEBaseImpl::Init( |
"Init() failed to set mono/stereo recording mode"); |
} |
- if (!audioproc) { |
- audioproc = AudioProcessing::Create(); |
- if (!audioproc) { |
- LOG(LS_ERROR) << "Failed to create AudioProcessing."; |
- shared_->SetLastError(VE_NO_MEMORY); |
- return -1; |
- } |
- } |
- shared_->set_audio_processing(audioproc); |
+ shared_->set_audio_processing(external_apm); |
// Set the error state for any failures in this block. |
shared_->SetLastError(VE_APM_ERROR); |
// Configure AudioProcessing components. |
- if (audioproc->high_pass_filter()->Enable(true) != 0) { |
+ // TODO(peah): Move this initialization to webrtcvoiceengine.cc. |
+ if (external_apm->high_pass_filter()->Enable(true) != 0) { |
LOG_F(LS_ERROR) << "Failed to enable high pass filter."; |
return -1; |
} |
- if (audioproc->echo_cancellation()->enable_drift_compensation(false) != 0) { |
+ if (external_apm->echo_cancellation()->enable_drift_compensation(false) != |
+ 0) { |
LOG_F(LS_ERROR) << "Failed to disable drift compensation."; |
return -1; |
} |
- if (audioproc->noise_suppression()->set_level(kDefaultNsMode) != 0) { |
+ if (external_apm->noise_suppression()->set_level(kDefaultNsMode) != 0) { |
LOG_F(LS_ERROR) << "Failed to set noise suppression level: " |
<< kDefaultNsMode; |
return -1; |
} |
- GainControl* agc = audioproc->gain_control(); |
+ GainControl* agc = external_apm->gain_control(); |
if (agc->set_analog_level_limits(kMinVolumeLevel, kMaxVolumeLevel) != 0) { |
LOG_F(LS_ERROR) << "Failed to set analog level limits with minimum: " |
<< kMinVolumeLevel << " and maximum: " << kMaxVolumeLevel; |
@@ -687,9 +682,7 @@ int32_t VoEBaseImpl::TerminateInternal() { |
shared_->set_audio_device(nullptr); |
} |
- if (shared_->audio_processing()) { |
- shared_->set_audio_processing(nullptr); |
- } |
+ shared_->set_audio_processing(nullptr); |
return shared_->statistics().SetUnInitialized(); |
} |