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

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

Issue 15979015: Reland 15721002: Hook up the device selection to the WebAudio live audio (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed the comments. Created 7 years, 6 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 | Annotate | Revision Log
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 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 105
106 // TODO(xians): add support for querying native channel layout for pulse. 106 // TODO(xians): add support for querying native channel layout for pulse.
107 return AudioParameters( 107 return AudioParameters(
108 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, 108 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO,
109 GetNativeSampleRate(), 16, kDefaultInputBufferSize); 109 GetNativeSampleRate(), 16, kDefaultInputBufferSize);
110 } 110 }
111 111
112 AudioOutputStream* AudioManagerPulse::MakeLinearOutputStream( 112 AudioOutputStream* AudioManagerPulse::MakeLinearOutputStream(
113 const AudioParameters& params) { 113 const AudioParameters& params) {
114 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); 114 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
115 return MakeOutputStream(params); 115 return MakeOutputStream(params, std::string());
116 } 116 }
117 117
118 AudioOutputStream* AudioManagerPulse::MakeLowLatencyOutputStream( 118 AudioOutputStream* AudioManagerPulse::MakeLowLatencyOutputStream(
119 const AudioParameters& params) { 119 const AudioParameters& params, const std::string& input_device_id) {
120 DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); 120 DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
121 return MakeOutputStream(params); 121 return MakeOutputStream(params, input_device_id);
122 } 122 }
123 123
124 AudioInputStream* AudioManagerPulse::MakeLinearInputStream( 124 AudioInputStream* AudioManagerPulse::MakeLinearInputStream(
125 const AudioParameters& params, const std::string& device_id) { 125 const AudioParameters& params, const std::string& device_id) {
126 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); 126 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
127 return MakeInputStream(params, device_id); 127 return MakeInputStream(params, device_id);
128 } 128 }
129 129
130 AudioInputStream* AudioManagerPulse::MakeLowLatencyInputStream( 130 AudioInputStream* AudioManagerPulse::MakeLowLatencyInputStream(
131 const AudioParameters& params, const std::string& device_id) { 131 const AudioParameters& params, const std::string& device_id) {
(...skipping 23 matching lines...) Expand all
155 int user_buffer_size = GetUserBufferSize(); 155 int user_buffer_size = GetUserBufferSize();
156 if (user_buffer_size) 156 if (user_buffer_size)
157 buffer_size = user_buffer_size; 157 buffer_size = user_buffer_size;
158 158
159 return AudioParameters( 159 return AudioParameters(
160 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, input_channels, 160 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, input_channels,
161 sample_rate, bits_per_sample, buffer_size); 161 sample_rate, bits_per_sample, buffer_size);
162 } 162 }
163 163
164 AudioOutputStream* AudioManagerPulse::MakeOutputStream( 164 AudioOutputStream* AudioManagerPulse::MakeOutputStream(
165 const AudioParameters& params) { 165 const AudioParameters& params, const std::string& input_device_id) {
166 if (params.input_channels()) { 166 if (params.input_channels()) {
167 return new PulseAudioUnifiedStream(params, this); 167 return new PulseAudioUnifiedStream(params, input_device_id, this);
168 } 168 }
169 169
170 return new PulseAudioOutputStream(params, this); 170 return new PulseAudioOutputStream(params, this);
171 } 171 }
172 172
173 AudioInputStream* AudioManagerPulse::MakeInputStream( 173 AudioInputStream* AudioManagerPulse::MakeInputStream(
174 const AudioParameters& params, const std::string& device_id) { 174 const AudioParameters& params, const std::string& device_id) {
175 return new PulseAudioInputStream(this, device_id, params, 175 return new PulseAudioInputStream(this, device_id, params,
176 input_mainloop_, input_context_); 176 input_mainloop_, input_context_);
177 } 177 }
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 void AudioManagerPulse::SampleRateInfoCallback(pa_context* context, 290 void AudioManagerPulse::SampleRateInfoCallback(pa_context* context,
291 const pa_server_info* info, 291 const pa_server_info* info,
292 void* user_data) { 292 void* user_data) {
293 AudioManagerPulse* manager = reinterpret_cast<AudioManagerPulse*>(user_data); 293 AudioManagerPulse* manager = reinterpret_cast<AudioManagerPulse*>(user_data);
294 294
295 manager->native_input_sample_rate_ = info->sample_spec.rate; 295 manager->native_input_sample_rate_ = info->sample_spec.rate;
296 pa_threaded_mainloop_signal(manager->input_mainloop_, 0); 296 pa_threaded_mainloop_signal(manager->input_mainloop_, 0);
297 } 297 }
298 298
299 } // namespace media 299 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698