| 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/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 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 | 125 |
| 126 // TODO(xians): add support for querying native channel layout for pulse. | 126 // TODO(xians): add support for querying native channel layout for pulse. |
| 127 return AudioParameters( | 127 return AudioParameters( |
| 128 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, | 128 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, |
| 129 GetNativeSampleRate(), 16, kDefaultInputBufferSize); | 129 GetNativeSampleRate(), 16, kDefaultInputBufferSize); |
| 130 } | 130 } |
| 131 | 131 |
| 132 AudioOutputStream* AudioManagerPulse::MakeLinearOutputStream( | 132 AudioOutputStream* AudioManagerPulse::MakeLinearOutputStream( |
| 133 const AudioParameters& params) { | 133 const AudioParameters& params) { |
| 134 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); | 134 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); |
| 135 return MakeOutputStream(params); | 135 return MakeOutputStream(params, AudioManagerBase::kDefaultDeviceId); |
| 136 } | 136 } |
| 137 | 137 |
| 138 AudioOutputStream* AudioManagerPulse::MakeLowLatencyOutputStream( | 138 AudioOutputStream* AudioManagerPulse::MakeLowLatencyOutputStream( |
| 139 const AudioParameters& params, | 139 const AudioParameters& params, |
| 140 const std::string& device_id) { | 140 const std::string& device_id) { |
| 141 DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!"; | |
| 142 DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); | 141 DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); |
| 143 return MakeOutputStream(params); | 142 return MakeOutputStream( |
| 143 params, |
| 144 device_id.empty() ? AudioManagerBase::kDefaultDeviceId : device_id); |
| 144 } | 145 } |
| 145 | 146 |
| 146 AudioInputStream* AudioManagerPulse::MakeLinearInputStream( | 147 AudioInputStream* AudioManagerPulse::MakeLinearInputStream( |
| 147 const AudioParameters& params, const std::string& device_id) { | 148 const AudioParameters& params, const std::string& device_id) { |
| 148 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); | 149 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); |
| 149 return MakeInputStream(params, device_id); | 150 return MakeInputStream(params, device_id); |
| 150 } | 151 } |
| 151 | 152 |
| 152 AudioInputStream* AudioManagerPulse::MakeLowLatencyInputStream( | 153 AudioInputStream* AudioManagerPulse::MakeLowLatencyInputStream( |
| 153 const AudioParameters& params, const std::string& device_id) { | 154 const AudioParameters& params, const std::string& device_id) { |
| (...skipping 26 matching lines...) Expand all Loading... |
| 180 int user_buffer_size = GetUserBufferSize(); | 181 int user_buffer_size = GetUserBufferSize(); |
| 181 if (user_buffer_size) | 182 if (user_buffer_size) |
| 182 buffer_size = user_buffer_size; | 183 buffer_size = user_buffer_size; |
| 183 | 184 |
| 184 return AudioParameters( | 185 return AudioParameters( |
| 185 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, input_channels, | 186 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, input_channels, |
| 186 sample_rate, bits_per_sample, buffer_size, AudioParameters::NO_EFFECTS); | 187 sample_rate, bits_per_sample, buffer_size, AudioParameters::NO_EFFECTS); |
| 187 } | 188 } |
| 188 | 189 |
| 189 AudioOutputStream* AudioManagerPulse::MakeOutputStream( | 190 AudioOutputStream* AudioManagerPulse::MakeOutputStream( |
| 190 const AudioParameters& params) { | 191 const AudioParameters& params, |
| 191 return new PulseAudioOutputStream(params, this); | 192 const std::string& device_id) { |
| 193 DCHECK(!device_id.empty()); |
| 194 return new PulseAudioOutputStream(params, device_id, this); |
| 192 } | 195 } |
| 193 | 196 |
| 194 AudioInputStream* AudioManagerPulse::MakeInputStream( | 197 AudioInputStream* AudioManagerPulse::MakeInputStream( |
| 195 const AudioParameters& params, const std::string& device_id) { | 198 const AudioParameters& params, const std::string& device_id) { |
| 196 return new PulseAudioInputStream(this, device_id, params, | 199 return new PulseAudioInputStream(this, device_id, params, |
| 197 input_mainloop_, input_context_); | 200 input_mainloop_, input_context_); |
| 198 } | 201 } |
| 199 | 202 |
| 200 int AudioManagerPulse::GetNativeSampleRate() { | 203 int AudioManagerPulse::GetNativeSampleRate() { |
| 201 DCHECK(input_mainloop_); | 204 DCHECK(input_mainloop_); |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 void AudioManagerPulse::SampleRateInfoCallback(pa_context* context, | 326 void AudioManagerPulse::SampleRateInfoCallback(pa_context* context, |
| 324 const pa_server_info* info, | 327 const pa_server_info* info, |
| 325 void* user_data) { | 328 void* user_data) { |
| 326 AudioManagerPulse* manager = reinterpret_cast<AudioManagerPulse*>(user_data); | 329 AudioManagerPulse* manager = reinterpret_cast<AudioManagerPulse*>(user_data); |
| 327 | 330 |
| 328 manager->native_input_sample_rate_ = info->sample_spec.rate; | 331 manager->native_input_sample_rate_ = info->sample_spec.rate; |
| 329 pa_threaded_mainloop_signal(manager->input_mainloop_, 0); | 332 pa_threaded_mainloop_signal(manager->input_mainloop_, 0); |
| 330 } | 333 } |
| 331 | 334 |
| 332 } // namespace media | 335 } // namespace media |
| OLD | NEW |