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 |