Index: media/audio/openbsd/audio_manager_openbsd.cc |
diff --git a/media/audio/openbsd/audio_manager_openbsd.cc b/media/audio/openbsd/audio_manager_openbsd.cc |
index ec482d8b7cd771730469fa7b8d9731de061046b9..9b9f2edbaac47ffbd8b91803ca45f6bc57b2dd9e 100644 |
--- a/media/audio/openbsd/audio_manager_openbsd.cc |
+++ b/media/audio/openbsd/audio_manager_openbsd.cc |
@@ -55,17 +55,29 @@ bool AudioManagerOpenBSD::HasAudioInputDevices() { |
return HasAudioHardware(); |
} |
-AudioParameters AudioManagerOpenBSD::GetInputStreamParameters( |
- const std::string& device_id) { |
+AudioParameters AudioManagerOpenBSD::GetPreferredInputStreamParameters( |
+ const std::string& input_device_id, |
+ const AudioParameters& input_params) { |
static const int kDefaultInputBufferSize = 1024; |
+ ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO; |
+ int sample_rate = kDefaultSampleRate; |
+ int buffer_size = kDefaultInputBufferSize; |
+ int bits_per_sample = 16; |
+ if (input_params.IsValid()) { |
+ sample_rate = input_params.sample_rate(); |
+ bits_per_sample = input_params.bits_per_sample(); |
+ channel_layout = input_params.channel_layout(); |
+ buffer_size = std::min(buffer_size, 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; |
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); |
} |
AudioManagerOpenBSD::AudioManagerOpenBSD(AudioLogFactory* audio_log_factory) |