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 93296d7b41fc86741a5a50726c226ef59ebaa50c..fa489a56ba99060719dab1655fbb11f9b1efdc17 100644 |
| --- a/media/audio/android/audio_manager_android.cc |
| +++ b/media/audio/android/audio_manager_android.cc |
| @@ -8,8 +8,9 @@ |
| #include "media/audio/android/opensles_input.h" |
| #include "media/audio/android/opensles_output.h" |
| #include "media/audio/audio_manager.h" |
| -#include "media/audio/audio_util.h" |
| +#include "media/audio/audio_parameters.h" |
| #include "media/audio/fake_audio_input_stream.h" |
| +#include "media/base/channel_layout.h" |
| namespace media { |
| @@ -43,16 +44,38 @@ void AudioManagerAndroid::GetAudioInputDeviceNames( |
| media::AudioDeviceName(kDefaultDeviceName, kDefaultDeviceId)); |
| } |
| +AudioParameters AudioManagerAndroid::GetDefaultOutputStreamParameters() { |
| + // TODO(xians): figure out the right output sample rate and sample rate to |
| + // achieve the best audio performance for Android devices. |
| + static const int kDefaultSampleRate = 16000; |
| + static const int kDefaultBufferSize = 1024 |
| + return AudioParameters( |
| + AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, |
| + kDefaultSampleRate, 16, kDefaultBufferSize); |
| +} |
| + |
| +AudioParameters AudioManagerAndroid::GetDefaultInputStreamParameters( |
| + const std::string& device_id) { |
| + // TODO(xians): figure out the right input sample rate and buffer size to |
| + // achieve the best audio performance for Android devices. |
| + // TODO(xians): query the native channel layout for the specific device. |
| + static const int kDefaultSampleRate = 16000; |
| + static const int kDefaultBufferSize = 1024 |
|
Raymond Toy (Google)
2013/02/28 00:30:45
Didn't this used to be 2048? Is 1024 the desired
no longer working on chromium
2013/03/01 16:44:33
Yes, it used to be 2048, but I think 2048 to 16K i
|
| + return AudioParameters( |
| + AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, |
| + kDefaultSampleRate, 16, kDefaultBufferSize); |
| +} |
| + |
| AudioParameters |
| AudioManagerAndroid::GetPreferredLowLatencyOutputStreamParameters( |
| const AudioParameters& input_params) { |
| - // TODO(leozwang): Android defines the minimal buffer size requirment |
| + // TODO(leozwang): Android defines the minimal buffer size requirement |
| // we should follow it. From Android 4.1, a new audio low latency api |
| // set was introduced and is under development, we want to take advantage |
| // of it. |
| - int buffer_size = GetAudioHardwareBufferSize(); |
| - if (input_params.frames_per_buffer() < buffer_size) |
| - buffer_size = input_params.frames_per_buffer(); |
| + AudioParameters default_params = GetDefaultOutputStreamParameters(); |
| + int buffer_size = std::min(input_params.frames_per_buffer(), |
| + default_params.frames_per_buffer()) |
| return AudioParameters( |
| AudioParameters::AUDIO_PCM_LOW_LATENCY, input_params.channel_layout(), |