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/cras/audio_manager_cras.h" | 5 #include "media/audio/cras/audio_manager_cras.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/environment.h" | 10 #include "base/environment.h" |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 | 90 |
91 int user_buffer_size = GetUserBufferSize(); | 91 int user_buffer_size = GetUserBufferSize(); |
92 int buffer_size = user_buffer_size ? | 92 int buffer_size = user_buffer_size ? |
93 user_buffer_size : kDefaultInputBufferSize; | 93 user_buffer_size : kDefaultInputBufferSize; |
94 AudioParameters::PlatformEffectsMask effects = | 94 AudioParameters::PlatformEffectsMask effects = |
95 has_keyboard_mic_ ? AudioParameters::KEYBOARD_MIC | 95 has_keyboard_mic_ ? AudioParameters::KEYBOARD_MIC |
96 : AudioParameters::NO_EFFECTS; | 96 : AudioParameters::NO_EFFECTS; |
97 | 97 |
98 // TODO(hshi): Fine-tune audio parameters based on |device_id|. The optimal | 98 // TODO(hshi): Fine-tune audio parameters based on |device_id|. The optimal |
99 // parameters for the loopback stream may differ from the default. | 99 // parameters for the loopback stream may differ from the default. |
100 return AudioParameters( | 100 AudioParameters params(AudioParameters::AUDIO_PCM_LOW_LATENCY, |
101 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, | 101 CHANNEL_LAYOUT_STEREO, kDefaultSampleRate, 16, |
102 kDefaultSampleRate, 16, buffer_size, effects); | 102 buffer_size); |
| 103 params.set_effects(effects); |
| 104 return params; |
103 } | 105 } |
104 | 106 |
105 void AudioManagerCras::SetHasKeyboardMic() { | 107 void AudioManagerCras::SetHasKeyboardMic() { |
106 DCHECK(GetTaskRunner()->BelongsToCurrentThread()); | 108 DCHECK(GetTaskRunner()->BelongsToCurrentThread()); |
107 has_keyboard_mic_ = true; | 109 has_keyboard_mic_ = true; |
108 } | 110 } |
109 | 111 |
110 AudioOutputStream* AudioManagerCras::MakeLinearOutputStream( | 112 AudioOutputStream* AudioManagerCras::MakeLinearOutputStream( |
111 const AudioParameters& params) { | 113 const AudioParameters& params) { |
112 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); | 114 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 channel_layout = input_params.channel_layout(); | 151 channel_layout = input_params.channel_layout(); |
150 buffer_size = | 152 buffer_size = |
151 std::min(kMaximumOutputBufferSize, | 153 std::min(kMaximumOutputBufferSize, |
152 std::max(buffer_size, input_params.frames_per_buffer())); | 154 std::max(buffer_size, input_params.frames_per_buffer())); |
153 } | 155 } |
154 | 156 |
155 int user_buffer_size = GetUserBufferSize(); | 157 int user_buffer_size = GetUserBufferSize(); |
156 if (user_buffer_size) | 158 if (user_buffer_size) |
157 buffer_size = user_buffer_size; | 159 buffer_size = user_buffer_size; |
158 | 160 |
159 return AudioParameters( | 161 return AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, |
160 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, | 162 sample_rate, bits_per_sample, buffer_size); |
161 sample_rate, bits_per_sample, buffer_size, AudioParameters::NO_EFFECTS); | |
162 } | 163 } |
163 | 164 |
164 AudioOutputStream* AudioManagerCras::MakeOutputStream( | 165 AudioOutputStream* AudioManagerCras::MakeOutputStream( |
165 const AudioParameters& params) { | 166 const AudioParameters& params) { |
166 return new CrasUnifiedStream(params, this); | 167 return new CrasUnifiedStream(params, this); |
167 } | 168 } |
168 | 169 |
169 AudioInputStream* AudioManagerCras::MakeInputStream( | 170 AudioInputStream* AudioManagerCras::MakeInputStream( |
170 const AudioParameters& params, const std::string& device_id) { | 171 const AudioParameters& params, const std::string& device_id) { |
171 return new CrasInputStream(params, this, device_id); | 172 return new CrasInputStream(params, this, device_id); |
172 } | 173 } |
173 | 174 |
174 snd_pcm_format_t AudioManagerCras::BitsToFormat(int bits_per_sample) { | 175 snd_pcm_format_t AudioManagerCras::BitsToFormat(int bits_per_sample) { |
175 switch (bits_per_sample) { | 176 switch (bits_per_sample) { |
176 case 8: | 177 case 8: |
177 return SND_PCM_FORMAT_U8; | 178 return SND_PCM_FORMAT_U8; |
178 case 16: | 179 case 16: |
179 return SND_PCM_FORMAT_S16; | 180 return SND_PCM_FORMAT_S16; |
180 case 24: | 181 case 24: |
181 return SND_PCM_FORMAT_S24; | 182 return SND_PCM_FORMAT_S24; |
182 case 32: | 183 case 32: |
183 return SND_PCM_FORMAT_S32; | 184 return SND_PCM_FORMAT_S32; |
184 default: | 185 default: |
185 return SND_PCM_FORMAT_UNKNOWN; | 186 return SND_PCM_FORMAT_UNKNOWN; |
186 } | 187 } |
187 } | 188 } |
188 | 189 |
189 } // namespace media | 190 } // namespace media |
OLD | NEW |