Chromium Code Reviews| 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 b588768bbd08c1fcfbb75df70248a9da752a28a4..75840052f3c3bbc4fef2ada009dd8adf2b0c9cc7 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" |
| @@ -111,10 +112,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())); |
|
henrika (OOO until Aug 14)
2013/12/06 22:51:57
Any chance you would consider following the exampl
ajm
2013/12/10 06:37:16
Absolutely :)
|
| + return params; |
| } |
| AudioOutputStream* AudioManagerAndroid::MakeAudioOutputStream( |
| @@ -189,7 +193,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, |