Index: webrtc/modules/audio_device/android/audio_manager.cc |
diff --git a/webrtc/modules/audio_device/android/audio_manager.cc b/webrtc/modules/audio_device/android/audio_manager.cc |
index 283b324ef9c73e399ed5ee67b4cabc3b2b036cd8..260e793d600e645d9c18d66e03d3439e3e15a311 100644 |
--- a/webrtc/modules/audio_device/android/audio_manager.cc |
+++ b/webrtc/modules/audio_device/android/audio_manager.cc |
@@ -68,13 +68,15 @@ AudioManager::AudioManager() |
audio_layer_(AudioDeviceModule::kPlatformDefaultAudio), |
initialized_(false), |
hardware_aec_(false), |
+ hardware_agc_(false), |
+ hardware_ns_(false), |
low_latency_playout_(false), |
delay_estimate_in_milliseconds_(0) { |
ALOGD("ctor%s", GetThreadInfo().c_str()); |
RTC_CHECK(j_environment_); |
JNINativeMethod native_methods[] = { |
{"nativeCacheAudioParameters", |
- "(IIZZIIJ)V", |
+ "(IIZZZZIIJ)V", |
reinterpret_cast<void*>(&webrtc::AudioManager::CacheAudioParameters)}}; |
j_native_registration_ = j_environment_->RegisterNatives( |
"org/webrtc/voiceengine/WebRtcAudioManager", |
@@ -144,6 +146,16 @@ bool AudioManager::IsAcousticEchoCancelerSupported() const { |
return hardware_aec_; |
} |
+bool AudioManager::IsAutomaticGainControlSupported() const { |
+ RTC_DCHECK(thread_checker_.CalledOnValidThread()); |
+ return hardware_agc_; |
+} |
+ |
+bool AudioManager::IsNoiseSuppressorSupported() const { |
+ RTC_DCHECK(thread_checker_.CalledOnValidThread()); |
+ return hardware_ns_; |
+} |
+ |
bool AudioManager::IsLowLatencyPlayoutSupported() const { |
RTC_DCHECK(thread_checker_.CalledOnValidThread()); |
ALOGD("IsLowLatencyPlayoutSupported()"); |
@@ -162,6 +174,8 @@ void JNICALL AudioManager::CacheAudioParameters(JNIEnv* env, |
jint sample_rate, |
jint channels, |
jboolean hardware_aec, |
+ jboolean hardware_agc, |
+ jboolean hardware_ns, |
jboolean low_latency_output, |
jint output_buffer_size, |
jint input_buffer_size, |
@@ -169,19 +183,23 @@ void JNICALL AudioManager::CacheAudioParameters(JNIEnv* env, |
webrtc::AudioManager* this_object = |
reinterpret_cast<webrtc::AudioManager*>(native_audio_manager); |
this_object->OnCacheAudioParameters( |
- env, sample_rate, channels, hardware_aec, low_latency_output, |
- output_buffer_size, input_buffer_size); |
+ env, sample_rate, channels, hardware_aec, hardware_agc, hardware_ns, |
+ low_latency_output, output_buffer_size, input_buffer_size); |
} |
void AudioManager::OnCacheAudioParameters(JNIEnv* env, |
jint sample_rate, |
jint channels, |
jboolean hardware_aec, |
+ jboolean hardware_agc, |
+ jboolean hardware_ns, |
jboolean low_latency_output, |
jint output_buffer_size, |
jint input_buffer_size) { |
ALOGD("OnCacheAudioParameters%s", GetThreadInfo().c_str()); |
ALOGD("hardware_aec: %d", hardware_aec); |
+ ALOGD("hardware_agc: %d", hardware_agc); |
+ ALOGD("hardware_ns: %d", hardware_ns); |
ALOGD("low_latency_output: %d", low_latency_output); |
ALOGD("sample_rate: %d", sample_rate); |
ALOGD("channels: %d", channels); |
@@ -189,6 +207,8 @@ void AudioManager::OnCacheAudioParameters(JNIEnv* env, |
ALOGD("input_buffer_size: %d", input_buffer_size); |
RTC_DCHECK(thread_checker_.CalledOnValidThread()); |
hardware_aec_ = hardware_aec; |
+ hardware_agc_ = hardware_agc; |
+ hardware_ns_ = hardware_ns; |
low_latency_playout_ = low_latency_output; |
// TODO(henrika): add support for stereo output. |
playout_parameters_.reset(sample_rate, channels, |