diff --git a/webrtc/voice_engine/channel.cc b/webrtc/voice_engine/channel.cc index 0702d85bdd..49a7442ae1 100644 --- a/webrtc/voice_engine/channel.cc +++ b/webrtc/voice_engine/channel.cc @@ -1263,61 +1263,13 @@ Channel::Init() #endif } - - if (rx_audioproc_->set_sample_rate_hz(8000)) - { - _engineStatisticsPtr->SetLastError( - VE_APM_ERROR, kTraceWarning, - "Channel::Init() failed to set the sample rate to 8K for" - " far-end AP module"); + if (rx_audioproc_->noise_suppression()->set_level(kDefaultNsMode) != 0) { + LOG_FERR1(LS_ERROR, noise_suppression()->set_level, kDefaultNsMode); + return -1; } - - if (rx_audioproc_->set_num_channels(1, 1) != 0) - { - _engineStatisticsPtr->SetLastError( - VE_SOUNDCARD_ERROR, kTraceWarning, - "Init() failed to set channels for the primary audio stream"); - } - - if (rx_audioproc_->high_pass_filter()->Enable( - WEBRTC_VOICE_ENGINE_RX_HP_DEFAULT_STATE) != 0) - { - _engineStatisticsPtr->SetLastError( - VE_APM_ERROR, kTraceWarning, - "Channel::Init() failed to set the high-pass filter for" - " far-end AP module"); - } - - if (rx_audioproc_->noise_suppression()->set_level( - (NoiseSuppression::Level)WEBRTC_VOICE_ENGINE_RX_NS_DEFAULT_MODE) != 0) - { - _engineStatisticsPtr->SetLastError( - VE_APM_ERROR, kTraceWarning, - "Init() failed to set noise reduction level for far-end" - " AP module"); - } - if (rx_audioproc_->noise_suppression()->Enable( - WEBRTC_VOICE_ENGINE_RX_NS_DEFAULT_STATE) != 0) - { - _engineStatisticsPtr->SetLastError( - VE_APM_ERROR, kTraceWarning, - "Init() failed to set noise reduction state for far-end" - " AP module"); - } - - if (rx_audioproc_->gain_control()->set_mode( - (GainControl::Mode)WEBRTC_VOICE_ENGINE_RX_AGC_DEFAULT_MODE) != 0) - { - _engineStatisticsPtr->SetLastError( - VE_APM_ERROR, kTraceWarning, - "Init() failed to set AGC mode for far-end AP module"); - } - if (rx_audioproc_->gain_control()->Enable( - WEBRTC_VOICE_ENGINE_RX_AGC_DEFAULT_STATE) != 0) - { - _engineStatisticsPtr->SetLastError( - VE_APM_ERROR, kTraceWarning, - "Init() failed to set AGC state for far-end AP module"); + if (rx_audioproc_->gain_control()->set_mode(kDefaultRxAgcMode) != 0) { + LOG_FERR1(LS_ERROR, gain_control()->set_mode, kDefaultRxAgcMode); + return -1; } return 0; @@ -3272,7 +3224,7 @@ Channel::VoiceActivityIndicator(int &activity) activity = _sendFrameType; WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId,_channelId), - "Channel::VoiceActivityIndicator(indicator=%d)", activity); + "Channel::VoiceActivityIndicator(indicator=%d)", activity); return 0; } @@ -3285,11 +3237,10 @@ Channel::SetRxAgcStatus(bool enable, AgcModes mode) "Channel::SetRxAgcStatus(enable=%d, mode=%d)", (int)enable, (int)mode); - GainControl::Mode agcMode(GainControl::kFixedDigital); + GainControl::Mode agcMode = kDefaultRxAgcMode; switch (mode) { case kAgcDefault: - agcMode = GainControl::kAdaptiveDigital; break; case kAgcUnchanged: agcMode = rx_audioproc_->gain_control()->mode(); @@ -3429,14 +3380,11 @@ Channel::SetRxNsStatus(bool enable, NsModes mode) "Channel::SetRxNsStatus(enable=%d, mode=%d)", (int)enable, (int)mode); - NoiseSuppression::Level nsLevel( - (NoiseSuppression::Level)WEBRTC_VOICE_ENGINE_RX_NS_DEFAULT_MODE); + NoiseSuppression::Level nsLevel = kDefaultNsMode; switch (mode) { case kNsDefault: - nsLevel = (NoiseSuppression::Level) - WEBRTC_VOICE_ENGINE_RX_NS_DEFAULT_MODE; break; case kNsUnchanged: nsLevel = rx_audioproc_->noise_suppression()->level(); @@ -3463,14 +3411,14 @@ Channel::SetRxNsStatus(bool enable, NsModes mode) { _engineStatisticsPtr->SetLastError( VE_APM_ERROR, kTraceError, - "SetRxAgcStatus() failed to set Ns level"); + "SetRxNsStatus() failed to set NS level"); return -1; } if (rx_audioproc_->noise_suppression()->Enable(enable) != 0) { _engineStatisticsPtr->SetLastError( VE_APM_ERROR, kTraceError, - "SetRxAgcStatus() failed to set Agc state"); + "SetRxNsStatus() failed to set NS state"); return -1; } @@ -5232,14 +5180,18 @@ Channel::RegisterReceiveCodecsToRTPModule() int Channel::ApmProcessRx(AudioFrame& frame) { // Register the (possibly new) frame parameters. if (rx_audioproc_->set_sample_rate_hz(frame.sample_rate_hz_) != 0) { - LOG_FERR1(LS_WARNING, set_sample_rate_hz, frame.sample_rate_hz_); + assert(false); + LOG_FERR1(LS_ERROR, set_sample_rate_hz, frame.sample_rate_hz_); } if (rx_audioproc_->set_num_channels(frame.num_channels_, frame.num_channels_) != 0) { - LOG_FERR1(LS_WARNING, set_num_channels, frame.num_channels_); + assert(false); + LOG_FERR2(LS_ERROR, set_num_channels, frame.num_channels_, + frame.num_channels_); } if (rx_audioproc_->ProcessStream(&frame) != 0) { - LOG_FERR0(LS_WARNING, ProcessStream); + assert(false); + LOG_FERR0(LS_ERROR, ProcessStream); } return 0; } diff --git a/webrtc/voice_engine/transmit_mixer.cc b/webrtc/voice_engine/transmit_mixer.cc index 5e67e200e0..743d8e20a4 100644 --- a/webrtc/voice_engine/transmit_mixer.cc +++ b/webrtc/voice_engine/transmit_mixer.cc @@ -1319,21 +1319,26 @@ void TransmitMixer::ProcessAudio(int delay_ms, int clock_drift, int current_mic_level) { if (audioproc_->set_num_channels(_audioFrame.num_channels_, _audioFrame.num_channels_) != 0) { + assert(false); LOG_FERR2(LS_ERROR, set_num_channels, _audioFrame.num_channels_, _audioFrame.num_channels_); } if (audioproc_->set_sample_rate_hz(_audioFrame.sample_rate_hz_) != 0) { + assert(false); LOG_FERR1(LS_ERROR, set_sample_rate_hz, _audioFrame.sample_rate_hz_); } if (audioproc_->set_stream_delay_ms(delay_ms) != 0) { - // Report as a warning; we can occasionally run into very large delays. - LOG_FERR1(LS_WARNING, set_stream_delay_ms, delay_ms); + // A redundant warning is reported in AudioDevice, which we've throttled + // to avoid flooding the logs. Relegate this one to LS_VERBOSE to avoid + // repeating the problem here. + LOG_FERR1(LS_VERBOSE, set_stream_delay_ms, delay_ms); } GainControl* agc = audioproc_->gain_control(); if (agc->set_stream_analog_level(current_mic_level) != 0) { + assert(false); LOG_FERR1(LS_ERROR, set_stream_analog_level, current_mic_level); } @@ -1344,6 +1349,7 @@ void TransmitMixer::ProcessAudio(int delay_ms, int clock_drift, int err = audioproc_->ProcessStream(&_audioFrame); if (err != 0) { + assert(false); LOG(LS_ERROR) << "ProcessStream() error: " << err; } diff --git a/webrtc/voice_engine/voe_base_impl.cc b/webrtc/voice_engine/voe_base_impl.cc index 3b7a193cce..ab78f77440 100644 --- a/webrtc/voice_engine/voe_base_impl.cc +++ b/webrtc/voice_engine/voe_base_impl.cc @@ -468,22 +468,8 @@ int VoEBaseImpl::Init(AudioDeviceModule* external_adm, LOG_FERR1(LS_ERROR, set_device_sample_rate_hz, 48000); return -1; } - // Assume 16 kHz mono until the audio frames are received from the capture - // device, at which point this can be updated. - if (audioproc->set_sample_rate_hz(16000)) { - LOG_FERR1(LS_ERROR, set_sample_rate_hz, 16000); - return -1; - } - if (audioproc->set_num_channels(1, 1) != 0) { - LOG_FERR2(LS_ERROR, set_num_channels, 1, 1); - return -1; - } - if (audioproc->set_num_reverse_channels(1) != 0) { - LOG_FERR1(LS_ERROR, set_num_reverse_channels, 1); - return -1; - } - // Configure AudioProcessing components. All are disabled by default. + // Configure AudioProcessing components. if (audioproc->high_pass_filter()->Enable(true) != 0) { LOG_FERR1(LS_ERROR, high_pass_filter()->Enable, true); return -1; diff --git a/webrtc/voice_engine/voice_engine_defines.h b/webrtc/voice_engine/voice_engine_defines.h index 42851d444b..8e5b24fb60 100644 --- a/webrtc/voice_engine/voice_engine_defines.h +++ b/webrtc/voice_engine/voice_engine_defines.h @@ -71,6 +71,7 @@ const bool kDefaultAgcState = #else true; #endif +const GainControl::Mode kDefaultRxAgcMode = GainControl::kAdaptiveDigital; // Codec // Min init target rate for iSAC-wb @@ -122,20 +123,6 @@ enum { kVoiceEngineMaxRtpExtensionId = 14 }; } // namespace webrtc -// TODO(ajm): we shouldn't be using the precompiler for this. -// Use enums or bools as appropriate. -#define WEBRTC_VOICE_ENGINE_RX_AGC_DEFAULT_STATE false - // AudioProcessing RX AGC off -#define WEBRTC_VOICE_ENGINE_RX_NS_DEFAULT_STATE false - // AudioProcessing RX NS off -#define WEBRTC_VOICE_ENGINE_RX_HP_DEFAULT_STATE false - // AudioProcessing RX High Pass Filter off - -#define WEBRTC_VOICE_ENGINE_RX_AGC_DEFAULT_MODE GainControl::kAdaptiveDigital - // AudioProcessing AGC mode -#define WEBRTC_VOICE_ENGINE_RX_NS_DEFAULT_MODE NoiseSuppression::kModerate - // AudioProcessing RX NS mode - // ---------------------------------------------------------------------------- // Build information macros // ----------------------------------------------------------------------------