| 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 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 AudioParameters::ECHO_CANCELLER : AudioParameters::NO_EFFECTS; | 115 AudioParameters::ECHO_CANCELLER : AudioParameters::NO_EFFECTS; |
| 116 AudioParameters params( | 116 AudioParameters params( |
| 117 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, 0, | 117 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, 0, |
| 118 GetNativeOutputSampleRate(), 16, | 118 GetNativeOutputSampleRate(), 16, |
| 119 buffer_size <= 0 ? kDefaultInputBufferSize : buffer_size, effects); | 119 buffer_size <= 0 ? kDefaultInputBufferSize : buffer_size, effects); |
| 120 return params; | 120 return params; |
| 121 } | 121 } |
| 122 | 122 |
| 123 AudioOutputStream* AudioManagerAndroid::MakeAudioOutputStream( | 123 AudioOutputStream* AudioManagerAndroid::MakeAudioOutputStream( |
| 124 const AudioParameters& params, | 124 const AudioParameters& params, |
| 125 const std::string& device_id, | 125 const std::string& device_id) { |
| 126 const std::string& input_device_id) { | |
| 127 bool had_no_streams = HadNoAudioStreams(); | 126 bool had_no_streams = HadNoAudioStreams(); |
| 128 AudioOutputStream* stream = | 127 AudioOutputStream* stream = |
| 129 AudioManagerBase::MakeAudioOutputStream(params, std::string(), | 128 AudioManagerBase::MakeAudioOutputStream(params, std::string()); |
| 130 std::string()); | |
| 131 | 129 |
| 132 // The audio manager for Android creates streams intended for real-time | 130 // The audio manager for Android creates streams intended for real-time |
| 133 // VoIP sessions and therefore sets the audio mode to MODE_IN_COMMUNICATION. | 131 // VoIP sessions and therefore sets the audio mode to MODE_IN_COMMUNICATION. |
| 134 // If a Bluetooth headset is used, the audio stream will use the SCO | 132 // If a Bluetooth headset is used, the audio stream will use the SCO |
| 135 // channel and therefore have a limited bandwidth (8-16kHz). | 133 // channel and therefore have a limited bandwidth (8-16kHz). |
| 136 if (stream && had_no_streams) | 134 if (stream && had_no_streams) |
| 137 SetCommunicationAudioModeOn(true); | 135 SetCommunicationAudioModeOn(true); |
| 138 | 136 |
| 139 { | 137 { |
| 140 base::AutoLock lock(streams_lock_); | 138 base::AutoLock lock(streams_lock_); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 } | 178 } |
| 181 | 179 |
| 182 AudioOutputStream* AudioManagerAndroid::MakeLinearOutputStream( | 180 AudioOutputStream* AudioManagerAndroid::MakeLinearOutputStream( |
| 183 const AudioParameters& params) { | 181 const AudioParameters& params) { |
| 184 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); | 182 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); |
| 185 return new OpenSLESOutputStream(this, params); | 183 return new OpenSLESOutputStream(this, params); |
| 186 } | 184 } |
| 187 | 185 |
| 188 AudioOutputStream* AudioManagerAndroid::MakeLowLatencyOutputStream( | 186 AudioOutputStream* AudioManagerAndroid::MakeLowLatencyOutputStream( |
| 189 const AudioParameters& params, | 187 const AudioParameters& params, |
| 190 const std::string& device_id, | 188 const std::string& device_id) { |
| 191 const std::string& input_device_id) { | |
| 192 DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!"; | 189 DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!"; |
| 193 DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); | 190 DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); |
| 194 return new OpenSLESOutputStream(this, params); | 191 return new OpenSLESOutputStream(this, params); |
| 195 } | 192 } |
| 196 | 193 |
| 197 AudioInputStream* AudioManagerAndroid::MakeLinearInputStream( | 194 AudioInputStream* AudioManagerAndroid::MakeLinearInputStream( |
| 198 const AudioParameters& params, const std::string& device_id) { | 195 const AudioParameters& params, const std::string& device_id) { |
| 199 // TODO(henrika): add support for device selection if/when any client | 196 // TODO(henrika): add support for device selection if/when any client |
| 200 // needs it. | 197 // needs it. |
| 201 DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!"; | 198 DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!"; |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 j_audio_manager_.obj()); | 340 j_audio_manager_.obj()); |
| 344 } | 341 } |
| 345 | 342 |
| 346 int AudioManagerAndroid::GetAudioLowLatencyOutputFrameSize() { | 343 int AudioManagerAndroid::GetAudioLowLatencyOutputFrameSize() { |
| 347 return Java_AudioManagerAndroid_getAudioLowLatencyOutputFrameSize( | 344 return Java_AudioManagerAndroid_getAudioLowLatencyOutputFrameSize( |
| 348 base::android::AttachCurrentThread(), | 345 base::android::AttachCurrentThread(), |
| 349 j_audio_manager_.obj()); | 346 j_audio_manager_.obj()); |
| 350 } | 347 } |
| 351 | 348 |
| 352 } // namespace media | 349 } // namespace media |
| OLD | NEW |