Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Side by Side Diff: media/audio/android/audio_manager_android.cc

Issue 1525033003: Add an AudioTrack based audio output stream. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/audio/BUILD.gn ('k') | media/audio/android/audio_track_output_stream.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/context_utils.h" 8 #include "base/android/context_utils.h"
9 #include "base/android/jni_array.h" 9 #include "base/android/jni_array.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
11 #include "base/android/scoped_java_ref.h" 11 #include "base/android/scoped_java_ref.h"
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/message_loop/message_loop.h" 14 #include "base/message_loop/message_loop.h"
15 #include "base/strings/string_number_conversions.h" 15 #include "base/strings/string_number_conversions.h"
16 #include "jni/AudioManagerAndroid_jni.h" 16 #include "jni/AudioManagerAndroid_jni.h"
17 #include "media/audio/android/audio_record_input.h" 17 #include "media/audio/android/audio_record_input.h"
18 #include "media/audio/android/opensles_input.h" 18 #include "media/audio/android/opensles_input.h"
19 #include "media/audio/android/opensles_output.h" 19 #include "media/audio/android/opensles_output.h"
20 #include "media/audio/android/audio_track_output_stream.h"
20 #include "media/audio/audio_manager.h" 21 #include "media/audio/audio_manager.h"
21 #include "media/audio/audio_parameters.h" 22 #include "media/audio/audio_parameters.h"
22 #include "media/audio/fake_audio_input_stream.h" 23 #include "media/audio/fake_audio_input_stream.h"
23 #include "media/base/channel_layout.h" 24 #include "media/base/channel_layout.h"
24 25
25 using base::android::AppendJavaStringArrayToStringVector; 26 using base::android::AppendJavaStringArrayToStringVector;
26 using base::android::AttachCurrentThread; 27 using base::android::AttachCurrentThread;
27 using base::android::ConvertJavaStringToUTF8; 28 using base::android::ConvertJavaStringToUTF8;
28 using base::android::ConvertUTF8ToJavaString; 29 using base::android::ConvertUTF8ToJavaString;
29 using base::android::ScopedJavaLocalRef; 30 using base::android::ScopedJavaLocalRef;
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 } 205 }
205 206
206 AudioOutputStream* AudioManagerAndroid::MakeLowLatencyOutputStream( 207 AudioOutputStream* AudioManagerAndroid::MakeLowLatencyOutputStream(
207 const AudioParameters& params, 208 const AudioParameters& params,
208 const std::string& device_id) { 209 const std::string& device_id) {
209 DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!"; 210 DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!";
210 DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); 211 DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
211 212
212 // Set stream type which matches the current system-wide audio mode used by 213 // Set stream type which matches the current system-wide audio mode used by
213 // the Android audio manager. 214 // the Android audio manager.
214 const SLint32 stream_type = communication_mode_is_on_ ? 215 // const SLint32 stream_type = communication_mode_is_on_ ?
215 SL_ANDROID_STREAM_VOICE : SL_ANDROID_STREAM_MEDIA; 216 // SL_ANDROID_STREAM_VOICE : SL_ANDROID_STREAM_MEDIA;
216 return new OpenSLESOutputStream(this, params, stream_type); 217 // return new OpenSLESOutputStream(this, params, stream_type);
218 return new AudioTrackOutputStream(this, params);
217 } 219 }
218 220
219 AudioInputStream* AudioManagerAndroid::MakeLinearInputStream( 221 AudioInputStream* AudioManagerAndroid::MakeLinearInputStream(
220 const AudioParameters& params, const std::string& device_id) { 222 const AudioParameters& params, const std::string& device_id) {
221 // TODO(henrika): add support for device selection if/when any client 223 // TODO(henrika): add support for device selection if/when any client
222 // needs it. 224 // needs it.
223 DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!"; 225 DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!";
224 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); 226 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
225 return new OpenSLESInputStream(this, params); 227 return new OpenSLESInputStream(this, params);
226 } 228 }
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 output_volume_override_ = volume; 411 output_volume_override_ = volume;
410 412
411 DCHECK(GetTaskRunner()->BelongsToCurrentThread()); 413 DCHECK(GetTaskRunner()->BelongsToCurrentThread());
412 for (OutputStreams::iterator it = streams_.begin(); 414 for (OutputStreams::iterator it = streams_.begin();
413 it != streams_.end(); ++it) { 415 it != streams_.end(); ++it) {
414 (*it)->SetVolume(volume); 416 (*it)->SetVolume(volume);
415 } 417 }
416 } 418 }
417 419
418 } // namespace media 420 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/BUILD.gn ('k') | media/audio/android/audio_track_output_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698