| 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 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 } | 134 } |
| 135 | 135 |
| 136 AudioParameters AudioManagerPulse::GetPreferredOutputStreamParameters( | 136 AudioParameters AudioManagerPulse::GetPreferredOutputStreamParameters( |
| 137 const AudioParameters& input_params) { | 137 const AudioParameters& input_params) { |
| 138 static const int kDefaultOutputBufferSize = 512; | 138 static const int kDefaultOutputBufferSize = 512; |
| 139 | 139 |
| 140 ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO; | 140 ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO; |
| 141 int buffer_size = kDefaultOutputBufferSize; | 141 int buffer_size = kDefaultOutputBufferSize; |
| 142 int bits_per_sample = 16; | 142 int bits_per_sample = 16; |
| 143 int input_channels = 0; | 143 int input_channels = 0; |
| 144 int sample_rate; |
| 144 if (input_params.IsValid()) { | 145 if (input_params.IsValid()) { |
| 145 bits_per_sample = input_params.bits_per_sample(); | 146 bits_per_sample = input_params.bits_per_sample(); |
| 146 channel_layout = input_params.channel_layout(); | 147 channel_layout = input_params.channel_layout(); |
| 147 input_channels = input_params.input_channels(); | 148 input_channels = input_params.input_channels(); |
| 148 buffer_size = std::min(buffer_size, input_params.frames_per_buffer()); | 149 buffer_size = std::min(buffer_size, input_params.frames_per_buffer()); |
| 150 sample_rate = input_params.sample_rate(); |
| 151 } else { |
| 152 sample_rate = GetNativeSampleRate(); |
| 149 } | 153 } |
| 150 | 154 |
| 151 int user_buffer_size = GetUserBufferSize(); | 155 int user_buffer_size = GetUserBufferSize(); |
| 152 if (user_buffer_size) | 156 if (user_buffer_size) |
| 153 buffer_size = user_buffer_size; | 157 buffer_size = user_buffer_size; |
| 154 | 158 |
| 155 return AudioParameters( | 159 return AudioParameters( |
| 156 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, input_channels, | 160 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, input_channels, |
| 157 GetNativeSampleRate(), bits_per_sample, buffer_size); | 161 sample_rate, bits_per_sample, buffer_size); |
| 158 } | 162 } |
| 159 | 163 |
| 160 AudioOutputStream* AudioManagerPulse::MakeOutputStream( | 164 AudioOutputStream* AudioManagerPulse::MakeOutputStream( |
| 161 const AudioParameters& params) { | 165 const AudioParameters& params) { |
| 162 if (params.input_channels()) { | 166 if (params.input_channels()) { |
| 163 return new PulseAudioUnifiedStream(params, this); | 167 return new PulseAudioUnifiedStream(params, this); |
| 164 } | 168 } |
| 165 | 169 |
| 166 return new PulseAudioOutputStream(params, this); | 170 return new PulseAudioOutputStream(params, this); |
| 167 } | 171 } |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 286 void AudioManagerPulse::SampleRateInfoCallback(pa_context* context, | 290 void AudioManagerPulse::SampleRateInfoCallback(pa_context* context, |
| 287 const pa_server_info* info, | 291 const pa_server_info* info, |
| 288 void* user_data) { | 292 void* user_data) { |
| 289 AudioManagerPulse* manager = reinterpret_cast<AudioManagerPulse*>(user_data); | 293 AudioManagerPulse* manager = reinterpret_cast<AudioManagerPulse*>(user_data); |
| 290 | 294 |
| 291 manager->native_input_sample_rate_ = info->sample_spec.rate; | 295 manager->native_input_sample_rate_ = info->sample_spec.rate; |
| 292 pa_threaded_mainloop_signal(manager->input_mainloop_, 0); | 296 pa_threaded_mainloop_signal(manager->input_mainloop_, 0); |
| 293 } | 297 } |
| 294 | 298 |
| 295 } // namespace media | 299 } // namespace media |
| OLD | NEW |