| 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,
|
|
|