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