| 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 ee7cc9cab0f315690e302e9bf96e07f3b7d0a485..53f36abb920f5ed195a7b7b219852f7784c6af16 100644
|
| --- a/media/audio/cras/audio_manager_cras.cc
|
| +++ b/media/audio/cras/audio_manager_cras.cc
|
| @@ -30,6 +30,10 @@ 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.
|
| +static const int kMinimumOutputBufferSize = 512;
|
| +static const int kMaximumOutputBufferSize = 8192;
|
| +
|
| bool AudioManagerCras::HasAudioOutputDevices() {
|
| return true;
|
| }
|
| @@ -103,11 +107,9 @@ AudioParameters AudioManagerCras::GetPreferredOutputStreamParameters(
|
| const AudioParameters& input_params) {
|
| // TODO(tommi): Support |output_device_id|.
|
| DLOG_IF(ERROR, !output_device_id.empty()) << "Not implemented!";
|
| - static const int kDefaultOutputBufferSize = 512;
|
| -
|
| ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO;
|
| int sample_rate = kDefaultSampleRate;
|
| - int buffer_size = kDefaultOutputBufferSize;
|
| + int buffer_size = kMinimumOutputBufferSize;
|
| int bits_per_sample = 16;
|
| int input_channels = 0;
|
| if (input_params.IsValid()) {
|
| @@ -115,7 +117,9 @@ AudioParameters AudioManagerCras::GetPreferredOutputStreamParameters(
|
| bits_per_sample = input_params.bits_per_sample();
|
| channel_layout = input_params.channel_layout();
|
| input_channels = input_params.input_channels();
|
| - buffer_size = input_params.frames_per_buffer();
|
| + buffer_size =
|
| + std::min(kMaximumOutputBufferSize,
|
| + std::max(buffer_size, input_params.frames_per_buffer()));
|
| }
|
|
|
| int user_buffer_size = GetUserBufferSize();
|
|
|