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

Unified Diff: webrtc/voice_engine/channel.cc

Issue 2295113002: Removing the RX processing APIs from VoEAudioProcessing: (Closed)
Patch Set: rebase Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/voice_engine/channel.h ('k') | webrtc/voice_engine/include/voe_audio_processing.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/voice_engine/channel.cc
diff --git a/webrtc/voice_engine/channel.cc b/webrtc/voice_engine/channel.cc
index a1095e3216f6e63c44911ade0fa1fe99f82b004b..582bde5f26216f645340ef2102d87e485ff2fafb 100644
--- a/webrtc/voice_engine/channel.cc
+++ b/webrtc/voice_engine/channel.cc
@@ -387,15 +387,6 @@ int32_t Channel::InFrameType(FrameType frame_type) {
return 0;
}
-int32_t Channel::OnRxVadDetected(int vadDecision) {
- rtc::CritScope cs(&_callbackCritSect);
- if (_rxVadObserverPtr) {
- _rxVadObserverPtr->OnRxVad(_channelId, vadDecision);
- }
-
- return 0;
-}
-
bool Channel::SendRtp(const uint8_t* data,
size_t len,
const PacketOptions& options) {
@@ -585,10 +576,6 @@ MixerParticipant::AudioFrameInfo Channel::GetAudioFrameWithMuted(
audioFrame->Mute();
}
- if (_RxVadDetection) {
- UpdateRxVadDetection(*audioFrame);
- }
-
// Convert module ID to internal VoE channel ID
audioFrame->id_ = VoEChannelId(audioFrame->id_);
// Store speech type for dead-or-alive detection
@@ -596,14 +583,6 @@ MixerParticipant::AudioFrameInfo Channel::GetAudioFrameWithMuted(
ChannelState::State state = channel_state_.Get();
- if (state.rx_apm_is_enabled) {
- int err = rx_audioproc_->ProcessStream(audioFrame);
- if (err) {
- LOG(LS_ERROR) << "ProcessStream() error: " << err;
- assert(false);
- }
- }
-
{
// Pass the audio buffers to an optional sink callback, before applying
// scaling/panning, as that applies to the mix operation.
@@ -861,8 +840,6 @@ Channel::Channel(int32_t channelId,
_voiceEngineObserverPtr(NULL),
_callbackCritSectPtr(NULL),
_transportPtr(NULL),
- _rxVadObserverPtr(NULL),
- _oldVadDecision(-1),
_sendFrameType(0),
_externalMixing(false),
_mixFileWithMicrophone(false),
@@ -875,9 +852,6 @@ Channel::Channel(int32_t channelId,
_lastPayloadType(0),
_includeAudioLevelIndication(false),
_outputSpeechType(AudioFrame::kNormalSpeech),
- _RxVadDetection(false),
- _rxAgcIsEnabled(false),
- _rxNsIsEnabled(false),
restored_packet_in_use_(false),
rtcp_observer_(new VoERtcpObserver(this)),
network_predictor_(new NetworkPredictor(Clock::GetRealTimeClock())),
@@ -919,10 +893,6 @@ Channel::Channel(int32_t channelId,
statistics_proxy_.reset(new StatisticsProxy(_rtpRtcpModule->SSRC()));
rtp_receive_statistics_->RegisterRtcpStatisticsCallback(
statistics_proxy_.get());
-
- Config audioproc_config;
- audioproc_config.Set<ExperimentalAgc>(new ExperimentalAgc(false));
- rx_audioproc_.reset(AudioProcessing::Create(audioproc_config));
}
Channel::~Channel() {
@@ -1078,15 +1048,6 @@ int32_t Channel::Init() {
}
}
- if (rx_audioproc_->noise_suppression()->set_level(kDefaultNsMode) != 0) {
- LOG(LS_ERROR) << "noise_suppression()->set_level(kDefaultNsMode) failed.";
- return -1;
- }
- if (rx_audioproc_->gain_control()->set_mode(kDefaultRxAgcMode) != 0) {
- LOG(LS_ERROR) << "gain_control()->set_mode(kDefaultRxAgcMode) failed.";
- return -1;
- }
-
return 0;
}
@@ -2309,243 +2270,11 @@ int Channel::SetSendTelephoneEventPayloadType(int payload_type) {
return 0;
}
-int Channel::UpdateRxVadDetection(AudioFrame& audioFrame) {
- WEBRTC_TRACE(kTraceStream, kTraceVoice, VoEId(_instanceId, _channelId),
- "Channel::UpdateRxVadDetection()");
-
- int vadDecision = 1;
-
- vadDecision = (audioFrame.vad_activity_ == AudioFrame::kVadActive) ? 1 : 0;
-
- if ((vadDecision != _oldVadDecision) && _rxVadObserverPtr) {
- OnRxVadDetected(vadDecision);
- _oldVadDecision = vadDecision;
- }
-
- WEBRTC_TRACE(kTraceStream, kTraceVoice, VoEId(_instanceId, _channelId),
- "Channel::UpdateRxVadDetection() => vadDecision=%d",
- vadDecision);
- return 0;
-}
-
-int Channel::RegisterRxVadObserver(VoERxVadCallback& observer) {
- WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
- "Channel::RegisterRxVadObserver()");
- rtc::CritScope cs(&_callbackCritSect);
-
- if (_rxVadObserverPtr) {
- _engineStatisticsPtr->SetLastError(
- VE_INVALID_OPERATION, kTraceError,
- "RegisterRxVadObserver() observer already enabled");
- return -1;
- }
- _rxVadObserverPtr = &observer;
- _RxVadDetection = true;
- return 0;
-}
-
-int Channel::DeRegisterRxVadObserver() {
- WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
- "Channel::DeRegisterRxVadObserver()");
- rtc::CritScope cs(&_callbackCritSect);
-
- if (!_rxVadObserverPtr) {
- _engineStatisticsPtr->SetLastError(
- VE_INVALID_OPERATION, kTraceWarning,
- "DeRegisterRxVadObserver() observer already disabled");
- return 0;
- }
- _rxVadObserverPtr = NULL;
- _RxVadDetection = false;
- return 0;
-}
-
int Channel::VoiceActivityIndicator(int& activity) {
activity = _sendFrameType;
return 0;
}
-#ifdef WEBRTC_VOICE_ENGINE_AGC
-
-int Channel::SetRxAgcStatus(bool enable, AgcModes mode) {
- WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
- "Channel::SetRxAgcStatus(enable=%d, mode=%d)", (int)enable,
- (int)mode);
-
- GainControl::Mode agcMode = kDefaultRxAgcMode;
- switch (mode) {
- case kAgcDefault:
- break;
- case kAgcUnchanged:
- agcMode = rx_audioproc_->gain_control()->mode();
- break;
- case kAgcFixedDigital:
- agcMode = GainControl::kFixedDigital;
- break;
- case kAgcAdaptiveDigital:
- agcMode = GainControl::kAdaptiveDigital;
- break;
- default:
- _engineStatisticsPtr->SetLastError(VE_INVALID_ARGUMENT, kTraceError,
- "SetRxAgcStatus() invalid Agc mode");
- return -1;
- }
-
- if (rx_audioproc_->gain_control()->set_mode(agcMode) != 0) {
- _engineStatisticsPtr->SetLastError(
- VE_APM_ERROR, kTraceError, "SetRxAgcStatus() failed to set Agc mode");
- return -1;
- }
- if (rx_audioproc_->gain_control()->Enable(enable) != 0) {
- _engineStatisticsPtr->SetLastError(
- VE_APM_ERROR, kTraceError, "SetRxAgcStatus() failed to set Agc state");
- return -1;
- }
-
- _rxAgcIsEnabled = enable;
- channel_state_.SetRxApmIsEnabled(_rxAgcIsEnabled || _rxNsIsEnabled);
-
- return 0;
-}
-
-int Channel::GetRxAgcStatus(bool& enabled, AgcModes& mode) {
- bool enable = rx_audioproc_->gain_control()->is_enabled();
- GainControl::Mode agcMode = rx_audioproc_->gain_control()->mode();
-
- enabled = enable;
-
- switch (agcMode) {
- case GainControl::kFixedDigital:
- mode = kAgcFixedDigital;
- break;
- case GainControl::kAdaptiveDigital:
- mode = kAgcAdaptiveDigital;
- break;
- default:
- _engineStatisticsPtr->SetLastError(VE_APM_ERROR, kTraceError,
- "GetRxAgcStatus() invalid Agc mode");
- return -1;
- }
-
- return 0;
-}
-
-int Channel::SetRxAgcConfig(AgcConfig config) {
- WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
- "Channel::SetRxAgcConfig()");
-
- if (rx_audioproc_->gain_control()->set_target_level_dbfs(
- config.targetLeveldBOv) != 0) {
- _engineStatisticsPtr->SetLastError(
- VE_APM_ERROR, kTraceError,
- "SetRxAgcConfig() failed to set target peak |level|"
- "(or envelope) of the Agc");
- return -1;
- }
- if (rx_audioproc_->gain_control()->set_compression_gain_db(
- config.digitalCompressionGaindB) != 0) {
- _engineStatisticsPtr->SetLastError(
- VE_APM_ERROR, kTraceError,
- "SetRxAgcConfig() failed to set the range in |gain| the"
- " digital compression stage may apply");
- return -1;
- }
- if (rx_audioproc_->gain_control()->enable_limiter(config.limiterEnable) !=
- 0) {
- _engineStatisticsPtr->SetLastError(
- VE_APM_ERROR, kTraceError,
- "SetRxAgcConfig() failed to set hard limiter to the signal");
- return -1;
- }
-
- return 0;
-}
-
-int Channel::GetRxAgcConfig(AgcConfig& config) {
- config.targetLeveldBOv = rx_audioproc_->gain_control()->target_level_dbfs();
- config.digitalCompressionGaindB =
- rx_audioproc_->gain_control()->compression_gain_db();
- config.limiterEnable = rx_audioproc_->gain_control()->is_limiter_enabled();
-
- return 0;
-}
-
-#endif // #ifdef WEBRTC_VOICE_ENGINE_AGC
-
-#ifdef WEBRTC_VOICE_ENGINE_NR
-
-int Channel::SetRxNsStatus(bool enable, NsModes mode) {
- WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
- "Channel::SetRxNsStatus(enable=%d, mode=%d)", (int)enable,
- (int)mode);
-
- NoiseSuppression::Level nsLevel = kDefaultNsMode;
- switch (mode) {
- case kNsDefault:
- break;
- case kNsUnchanged:
- nsLevel = rx_audioproc_->noise_suppression()->level();
- break;
- case kNsConference:
- nsLevel = NoiseSuppression::kHigh;
- break;
- case kNsLowSuppression:
- nsLevel = NoiseSuppression::kLow;
- break;
- case kNsModerateSuppression:
- nsLevel = NoiseSuppression::kModerate;
- break;
- case kNsHighSuppression:
- nsLevel = NoiseSuppression::kHigh;
- break;
- case kNsVeryHighSuppression:
- nsLevel = NoiseSuppression::kVeryHigh;
- break;
- }
-
- if (rx_audioproc_->noise_suppression()->set_level(nsLevel) != 0) {
- _engineStatisticsPtr->SetLastError(
- VE_APM_ERROR, kTraceError, "SetRxNsStatus() failed to set NS level");
- return -1;
- }
- if (rx_audioproc_->noise_suppression()->Enable(enable) != 0) {
- _engineStatisticsPtr->SetLastError(
- VE_APM_ERROR, kTraceError, "SetRxNsStatus() failed to set NS state");
- return -1;
- }
-
- _rxNsIsEnabled = enable;
- channel_state_.SetRxApmIsEnabled(_rxAgcIsEnabled || _rxNsIsEnabled);
-
- return 0;
-}
-
-int Channel::GetRxNsStatus(bool& enabled, NsModes& mode) {
- bool enable = rx_audioproc_->noise_suppression()->is_enabled();
- NoiseSuppression::Level ncLevel = rx_audioproc_->noise_suppression()->level();
-
- enabled = enable;
-
- switch (ncLevel) {
- case NoiseSuppression::kLow:
- mode = kNsLowSuppression;
- break;
- case NoiseSuppression::kModerate:
- mode = kNsModerateSuppression;
- break;
- case NoiseSuppression::kHigh:
- mode = kNsHighSuppression;
- break;
- case NoiseSuppression::kVeryHigh:
- mode = kNsVeryHighSuppression;
- break;
- }
-
- return 0;
-}
-
-#endif // #ifdef WEBRTC_VOICE_ENGINE_NR
-
int Channel::SetLocalSSRC(unsigned int ssrc) {
WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
"Channel::SetLocalSSRC()");
« no previous file with comments | « webrtc/voice_engine/channel.h ('k') | webrtc/voice_engine/include/voe_audio_processing.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698