OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/audio/alsa/audio_manager_alsa.h" | 5 #include "media/audio/alsa/audio_manager_alsa.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/environment.h" | 8 #include "base/environment.h" |
9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 DCHECK(device_names->empty()); | 100 DCHECK(device_names->empty()); |
101 GetAlsaAudioDevices(kStreamCapture, device_names); | 101 GetAlsaAudioDevices(kStreamCapture, device_names); |
102 } | 102 } |
103 | 103 |
104 void AudioManagerAlsa::GetAudioOutputDeviceNames( | 104 void AudioManagerAlsa::GetAudioOutputDeviceNames( |
105 AudioDeviceNames* device_names) { | 105 AudioDeviceNames* device_names) { |
106 DCHECK(device_names->empty()); | 106 DCHECK(device_names->empty()); |
107 GetAlsaAudioDevices(kStreamPlayback, device_names); | 107 GetAlsaAudioDevices(kStreamPlayback, device_names); |
108 } | 108 } |
109 | 109 |
110 AudioParameters AudioManagerAlsa::GetInputStreamParameters( | 110 AudioParameters AudioManagerAlsa::GetPreferredInputStreamParameters( |
111 const std::string& device_id) { | 111 const std::string& input_device_id, |
| 112 const AudioParameters& input_params) { |
112 static const int kDefaultInputBufferSize = 1024; | 113 static const int kDefaultInputBufferSize = 1024; |
| 114 ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO; |
| 115 int sample_rate = kDefaultSampleRate; |
| 116 int buffer_size = kDefaultInputBufferSize; |
| 117 int bits_per_sample = 16; |
| 118 if (input_params.IsValid()) { |
| 119 sample_rate = input_params.sample_rate(); |
| 120 bits_per_sample = input_params.bits_per_sample(); |
| 121 channel_layout = input_params.channel_layout(); |
| 122 buffer_size = input_params.frames_per_buffer(); |
| 123 } |
113 | 124 |
114 return AudioParameters( | 125 return AudioParameters( |
115 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, | 126 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, |
116 kDefaultSampleRate, 16, kDefaultInputBufferSize); | 127 sample_rate, bits_per_sample, buffer_size); |
117 } | 128 } |
118 | 129 |
119 void AudioManagerAlsa::GetAlsaAudioDevices( | 130 void AudioManagerAlsa::GetAlsaAudioDevices( |
120 StreamType type, | 131 StreamType type, |
121 media::AudioDeviceNames* device_names) { | 132 media::AudioDeviceNames* device_names) { |
122 // Constants specified by the ALSA API for device hints. | 133 // Constants specified by the ALSA API for device hints. |
123 static const char kPcmInterfaceName[] = "pcm"; | 134 static const char kPcmInterfaceName[] = "pcm"; |
124 int card = -1; | 135 int card = -1; |
125 | 136 |
126 // Loop through the sound cards to get ALSA device hints. | 137 // Loop through the sound cards to get ALSA device hints. |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 AlsaPcmInputStream::kAutoSelectDevice : device_id; | 362 AlsaPcmInputStream::kAutoSelectDevice : device_id; |
352 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAlsaInputDevice)) { | 363 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAlsaInputDevice)) { |
353 device_name = CommandLine::ForCurrentProcess()->GetSwitchValueASCII( | 364 device_name = CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
354 switches::kAlsaInputDevice); | 365 switches::kAlsaInputDevice); |
355 } | 366 } |
356 | 367 |
357 return new AlsaPcmInputStream(this, device_name, params, wrapper_.get()); | 368 return new AlsaPcmInputStream(this, device_name, params, wrapper_.get()); |
358 } | 369 } |
359 | 370 |
360 } // namespace media | 371 } // namespace media |
OLD | NEW |