| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/android/audio_manager_android.h" | 5 #include "media/audio/android/audio_manager_android.h" |
| 6 | 6 |
| 7 #include "base/android/build_info.h" | 7 #include "base/android/build_info.h" |
| 8 #include "base/android/jni_array.h" | 8 #include "base/android/jni_array.h" |
| 9 #include "base/android/jni_string.h" | 9 #include "base/android/jni_string.h" |
| 10 #include "base/android/scoped_java_ref.h" | 10 #include "base/android/scoped_java_ref.h" |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 ChannelLayoutToChannelCount(channel_layout)); | 133 ChannelLayoutToChannelCount(channel_layout)); |
| 134 buffer_size = buffer_size <= 0 ? kDefaultInputBufferSize : buffer_size; | 134 buffer_size = buffer_size <= 0 ? kDefaultInputBufferSize : buffer_size; |
| 135 int effects = AudioParameters::NO_EFFECTS; | 135 int effects = AudioParameters::NO_EFFECTS; |
| 136 effects |= Java_AudioManagerAndroid_shouldUseAcousticEchoCanceler(env) ? | 136 effects |= Java_AudioManagerAndroid_shouldUseAcousticEchoCanceler(env) ? |
| 137 AudioParameters::ECHO_CANCELLER : AudioParameters::NO_EFFECTS; | 137 AudioParameters::ECHO_CANCELLER : AudioParameters::NO_EFFECTS; |
| 138 | 138 |
| 139 int user_buffer_size = GetUserBufferSize(); | 139 int user_buffer_size = GetUserBufferSize(); |
| 140 if (user_buffer_size) | 140 if (user_buffer_size) |
| 141 buffer_size = user_buffer_size; | 141 buffer_size = user_buffer_size; |
| 142 | 142 |
| 143 AudioParameters params( | 143 AudioParameters params(AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, |
| 144 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, | 144 GetNativeOutputSampleRate(), 16, buffer_size); |
| 145 GetNativeOutputSampleRate(), 16, buffer_size, effects); | 145 params.set_effects(effects); |
| 146 return params; | 146 return params; |
| 147 } | 147 } |
| 148 | 148 |
| 149 AudioOutputStream* AudioManagerAndroid::MakeAudioOutputStream( | 149 AudioOutputStream* AudioManagerAndroid::MakeAudioOutputStream( |
| 150 const AudioParameters& params, | 150 const AudioParameters& params, |
| 151 const std::string& device_id) { | 151 const std::string& device_id) { |
| 152 DCHECK(GetTaskRunner()->BelongsToCurrentThread()); | 152 DCHECK(GetTaskRunner()->BelongsToCurrentThread()); |
| 153 AudioOutputStream* stream = | 153 AudioOutputStream* stream = |
| 154 AudioManagerBase::MakeAudioOutputStream(params, std::string()); | 154 AudioManagerBase::MakeAudioOutputStream(params, std::string()); |
| 155 streams_.insert(static_cast<OpenSLESOutputStream*>(stream)); | 155 streams_.insert(static_cast<OpenSLESOutputStream*>(stream)); |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 bits_per_sample = input_params.bits_per_sample(); | 299 bits_per_sample = input_params.bits_per_sample(); |
| 300 channel_layout = input_params.channel_layout(); | 300 channel_layout = input_params.channel_layout(); |
| 301 buffer_size = GetOptimalOutputFrameSize( | 301 buffer_size = GetOptimalOutputFrameSize( |
| 302 sample_rate, ChannelLayoutToChannelCount(channel_layout)); | 302 sample_rate, ChannelLayoutToChannelCount(channel_layout)); |
| 303 } | 303 } |
| 304 | 304 |
| 305 int user_buffer_size = GetUserBufferSize(); | 305 int user_buffer_size = GetUserBufferSize(); |
| 306 if (user_buffer_size) | 306 if (user_buffer_size) |
| 307 buffer_size = user_buffer_size; | 307 buffer_size = user_buffer_size; |
| 308 | 308 |
| 309 return AudioParameters( | 309 return AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, |
| 310 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, | 310 sample_rate, bits_per_sample, buffer_size); |
| 311 sample_rate, bits_per_sample, buffer_size, AudioParameters::NO_EFFECTS); | |
| 312 } | 311 } |
| 313 | 312 |
| 314 bool AudioManagerAndroid::HasNoAudioInputStreams() { | 313 bool AudioManagerAndroid::HasNoAudioInputStreams() { |
| 315 return input_stream_count() == 0; | 314 return input_stream_count() == 0; |
| 316 } | 315 } |
| 317 | 316 |
| 318 void AudioManagerAndroid::InitializeOnAudioThread() { | 317 void AudioManagerAndroid::InitializeOnAudioThread() { |
| 319 DCHECK(GetTaskRunner()->BelongsToCurrentThread()); | 318 DCHECK(GetTaskRunner()->BelongsToCurrentThread()); |
| 320 | 319 |
| 321 // Create the Android audio manager on the audio thread. | 320 // Create the Android audio manager on the audio thread. |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 405 output_volume_override_ = volume; | 404 output_volume_override_ = volume; |
| 406 | 405 |
| 407 DCHECK(GetTaskRunner()->BelongsToCurrentThread()); | 406 DCHECK(GetTaskRunner()->BelongsToCurrentThread()); |
| 408 for (OutputStreams::iterator it = streams_.begin(); | 407 for (OutputStreams::iterator it = streams_.begin(); |
| 409 it != streams_.end(); ++it) { | 408 it != streams_.end(); ++it) { |
| 410 (*it)->SetVolume(volume); | 409 (*it)->SetVolume(volume); |
| 411 } | 410 } |
| 412 } | 411 } |
| 413 | 412 |
| 414 } // namespace media | 413 } // namespace media |
| OLD | NEW |