Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(164)

Side by Side Diff: media/audio/pulse/audio_manager_pulse.cc

Issue 1275783003: Add a virtual beamforming audio device on ChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: mcasas comments Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/pulse/audio_manager_pulse.h" 5 #include "media/audio/pulse/audio_manager_pulse.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 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 GetAudioDeviceNames(false, device_names); 128 GetAudioDeviceNames(false, device_names);
129 } 129 }
130 130
131 AudioParameters AudioManagerPulse::GetInputStreamParameters( 131 AudioParameters AudioManagerPulse::GetInputStreamParameters(
132 const std::string& device_id) { 132 const std::string& device_id) {
133 int user_buffer_size = GetUserBufferSize(); 133 int user_buffer_size = GetUserBufferSize();
134 int buffer_size = user_buffer_size ? 134 int buffer_size = user_buffer_size ?
135 user_buffer_size : kDefaultInputBufferSize; 135 user_buffer_size : kDefaultInputBufferSize;
136 136
137 // TODO(xians): add support for querying native channel layout for pulse. 137 // TODO(xians): add support for querying native channel layout for pulse.
138 return AudioParameters( 138 return AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY,
139 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, 139 CHANNEL_LAYOUT_STEREO, GetNativeSampleRate(), 16,
140 GetNativeSampleRate(), 16, buffer_size); 140 buffer_size);
141 } 141 }
142 142
143 AudioOutputStream* AudioManagerPulse::MakeLinearOutputStream( 143 AudioOutputStream* AudioManagerPulse::MakeLinearOutputStream(
144 const AudioParameters& params) { 144 const AudioParameters& params) {
145 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); 145 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
146 return MakeOutputStream(params, AudioManagerBase::kDefaultDeviceId); 146 return MakeOutputStream(params, AudioManagerBase::kDefaultDeviceId);
147 } 147 }
148 148
149 AudioOutputStream* AudioManagerPulse::MakeLowLatencyOutputStream( 149 AudioOutputStream* AudioManagerPulse::MakeLowLatencyOutputStream(
150 const AudioParameters& params, 150 const AudioParameters& params,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 channel_layout = input_params.channel_layout(); 182 channel_layout = input_params.channel_layout();
183 buffer_size = 183 buffer_size =
184 std::min(kMaximumOutputBufferSize, 184 std::min(kMaximumOutputBufferSize,
185 std::max(buffer_size, input_params.frames_per_buffer())); 185 std::max(buffer_size, input_params.frames_per_buffer()));
186 } 186 }
187 187
188 int user_buffer_size = GetUserBufferSize(); 188 int user_buffer_size = GetUserBufferSize();
189 if (user_buffer_size) 189 if (user_buffer_size)
190 buffer_size = user_buffer_size; 190 buffer_size = user_buffer_size;
191 191
192 return AudioParameters( 192 return AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout,
193 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, 193 sample_rate, bits_per_sample, buffer_size);
194 sample_rate, bits_per_sample, buffer_size, AudioParameters::NO_EFFECTS);
195 } 194 }
196 195
197 AudioOutputStream* AudioManagerPulse::MakeOutputStream( 196 AudioOutputStream* AudioManagerPulse::MakeOutputStream(
198 const AudioParameters& params, 197 const AudioParameters& params,
199 const std::string& device_id) { 198 const std::string& device_id) {
200 DCHECK(!device_id.empty()); 199 DCHECK(!device_id.empty());
201 return new PulseAudioOutputStream(params, device_id, this); 200 return new PulseAudioOutputStream(params, device_id, this);
202 } 201 }
203 202
204 AudioInputStream* AudioManagerPulse::MakeInputStream( 203 AudioInputStream* AudioManagerPulse::MakeInputStream(
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 void AudioManagerPulse::SampleRateInfoCallback(pa_context* context, 332 void AudioManagerPulse::SampleRateInfoCallback(pa_context* context,
334 const pa_server_info* info, 333 const pa_server_info* info,
335 void* user_data) { 334 void* user_data) {
336 AudioManagerPulse* manager = reinterpret_cast<AudioManagerPulse*>(user_data); 335 AudioManagerPulse* manager = reinterpret_cast<AudioManagerPulse*>(user_data);
337 336
338 manager->native_input_sample_rate_ = info->sample_spec.rate; 337 manager->native_input_sample_rate_ = info->sample_spec.rate;
339 pa_threaded_mainloop_signal(manager->input_mainloop_, 0); 338 pa_threaded_mainloop_signal(manager->input_mainloop_, 0);
340 } 339 }
341 340
342 } // namespace media 341 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698