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())); |
+ 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()) { |
tommi (sloooow) - chröme
2013/12/06 12:11:34
Just checking - is there no chance that we can hav
ajm
2013/12/10 06:37:16
Right, that would be a programming error. For test
|
+ // The platform AEC can only be enabled through the AudioRecord path. |
+ DVLOG(1) << "Creating AudioRecordInputStream"; |
+ return new AudioRecordInputStream(this, params); |
+ } else { |
tommi (sloooow) - chröme
2013/12/06 12:11:34
nit: no need for 'else'
ajm
2013/12/10 06:37:16
Done.
|
+ DVLOG(1) << "Creating OpenSLESInputStream"; |
+ return new OpenSLESInputStream(this, params); |
+ } |
} |
int AudioManagerAndroid::GetOptimalOutputFrameSize(int sample_rate, |