Index: media/audio/android/audio_manager_android.cc |
diff --git a/media/audio/android/audio_manager_android.cc b/media/audio/android/audio_manager_android.cc |
index 2e16a1f974ea09774b77a50dd1cd2b416b70aa8e..a4ac239568c1ed50abe77bf980be82ad4288c312 100644 |
--- a/media/audio/android/audio_manager_android.cc |
+++ b/media/audio/android/audio_manager_android.cc |
@@ -11,6 +11,7 @@ |
#include "base/logging.h" |
#include "base/strings/string_number_conversions.h" |
#include "jni/AudioManagerAndroid_jni.h" |
+#include "media/audio/android/audio_record_input.h" |
#include "media/audio/android/opensles_input.h" |
#include "media/audio/android/opensles_output.h" |
#include "media/audio/audio_manager.h" |
@@ -110,10 +111,13 @@ AudioParameters AudioManagerAndroid::GetInputStreamParameters( |
base::android::AttachCurrentThread(), GetNativeOutputSampleRate(), |
ChannelLayoutToChannelCount(channel_layout)); |
- return AudioParameters( |
+ AudioParameters params( |
AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, |
GetNativeOutputSampleRate(), 16, |
buffer_size <= 0 ? kDefaultInputBufferSize : buffer_size); |
+ params.set_use_platform_aec(Java_AudioManagerAndroid_isPlatformAECSupported( |
+ base::android::AttachCurrentThread())); |
+ return params; |
} |
AudioOutputStream* AudioManagerAndroid::MakeAudioOutputStream( |
@@ -180,7 +184,14 @@ AudioInputStream* AudioManagerAndroid::MakeLowLatencyInputStream( |
// device, i.e., this selection does also switch the output device. |
// All input and output streams will be affected by the device selection. |
SetAudioDevice(device_id); |
- return new OpenSLESInputStream(this, params); |
+ if (params.use_platform_aec()) { |
+ // The platform AEC can only be enabled through the AudioRecord path. |
+ DVLOG(1) << "Creating AudioRecordInputStream"; |
+ return new AudioRecordInputStream(this, params); |
+ } else { |
+ DVLOG(1) << "Creating OpenSLESInputStream"; |
+ return new OpenSLESInputStream(this, params); |
+ } |
} |
int AudioManagerAndroid::GetOptimalOutputFrameSize(int sample_rate, |