| Index: media/audio/cras/audio_manager_cras.cc
|
| diff --git a/media/audio/cras/audio_manager_cras.cc b/media/audio/cras/audio_manager_cras.cc
|
| index abc78dd4b78257c2602e31d2027472b94f5549c7..0d06fbe94be689362e2a4e033226be74b52a8861 100644
|
| --- a/media/audio/cras/audio_manager_cras.cc
|
| +++ b/media/audio/cras/audio_manager_cras.cc
|
| @@ -37,9 +37,11 @@ static const int kMaxOutputStreams = 50;
|
| // Default sample rate for input and output streams.
|
| static const int kDefaultSampleRate = 48000;
|
|
|
| -// Define bounds for the output buffer size.
|
| +// Minimum bound for the output buffer size.
|
| static const int kMinimumOutputBufferSize = 512;
|
| -static const int kMaximumOutputBufferSize = 8192;
|
| +
|
| +// Maximum bound for the input and output buffer size.
|
| +static const int kMaximumBufferSize = 8192;
|
|
|
| // Default input buffer size.
|
| static const int kDefaultInputBufferSize = 1024;
|
| @@ -75,17 +77,33 @@ void AudioManagerCras::GetAudioOutputDeviceNames(
|
| AddDefaultDevice(device_names);
|
| }
|
|
|
| -AudioParameters AudioManagerCras::GetInputStreamParameters(
|
| - const std::string& device_id) {
|
| +AudioParameters AudioManagerCras::GetPreferredInputStreamParameters(
|
| + const std::string& input_device_id,
|
| + const AudioParameters& input_params) {
|
| + ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO;
|
| + int sample_rate = kDefaultSampleRate;
|
| + int buffer_size = kDefaultInputBufferSize;
|
| + int bits_per_sample = 16;
|
| + int input_channels = 0;
|
| + if (input_params.IsValid()) {
|
| + sample_rate = input_params.sample_rate();
|
| + bits_per_sample = input_params.bits_per_sample();
|
| + channel_layout = input_params.channel_layout();
|
| + input_channels = input_params.input_channels();
|
| + buffer_size =
|
| + std::min(kMaximumBufferSize, input_params.frames_per_buffer());
|
| + }
|
| +
|
| int user_buffer_size = GetUserBufferSize();
|
| - int buffer_size = user_buffer_size ?
|
| - user_buffer_size : kDefaultInputBufferSize;
|
| + if (user_buffer_size)
|
| + buffer_size = user_buffer_size;
|
| +
|
|
|
| // TODO(hshi): Fine-tune audio parameters based on |device_id|. The optimal
|
| // parameters for the loopback stream may differ from the default.
|
| return AudioParameters(
|
| - AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO,
|
| - kDefaultSampleRate, 16, buffer_size);
|
| + AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout,
|
| + sample_rate, bits_per_sample, buffer_size);
|
| }
|
|
|
| AudioOutputStream* AudioManagerCras::MakeLinearOutputStream(
|
|
|