summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2011-01-23 11:23:05 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-01-23 11:23:05 -0800
commit062b7b45b27c6bfffc494af21382d7fa7a8d2d82 (patch)
tree69d10b4ea0fee5ad4e7096e4abc754dee342d1e1
parent28d27b961d0ee209865046237edc03537d0f25f1 (diff)
parent33b3539fd2bb9a8c3d94583214a8972f5298a03f (diff)
downloadandroid_system_media-062b7b45b27c6bfffc494af21382d7fa7a8d2d82.tar.gz
android_system_media-062b7b45b27c6bfffc494af21382d7fa7a8d2d82.tar.bz2
android_system_media-062b7b45b27c6bfffc494af21382d7fa7a8d2d82.zip
Merge "Bug 3326605: AudioRecorder uses wrong channel mask" into gingerbread
-rw-r--r--opensles/libopensles/android_AudioPlayer.cpp3
-rw-r--r--opensles/libopensles/android_AudioRecorder.cpp3
-rw-r--r--opensles/libopensles/android_sles_conversions.h10
3 files changed, 13 insertions, 3 deletions
diff --git a/opensles/libopensles/android_AudioPlayer.cpp b/opensles/libopensles/android_AudioPlayer.cpp
index c52adaa5..79d23137 100644
--- a/opensles/libopensles/android_AudioPlayer.cpp
+++ b/opensles/libopensles/android_AudioPlayer.cpp
@@ -1026,7 +1026,8 @@ SLresult android_audioPlayer_realize(CAudioPlayer *pAudioPlayer, SLboolean async
pAudioPlayer->mStreamType, // streamType
sampleRate, // sampleRate
sles_to_android_sampleFormat(df_pcm->bitsPerSample), // format
- sles_to_android_channelMask(df_pcm->numChannels, df_pcm->channelMask),//channel mask
+ sles_to_android_channelMaskOut(df_pcm->numChannels, df_pcm->channelMask),
+ //channel mask
0, // frameCount (here min)
0, // flags
audioTrack_callBack_pullFromBuffQueue, // callback
diff --git a/opensles/libopensles/android_AudioRecorder.cpp b/opensles/libopensles/android_AudioRecorder.cpp
index a5c6ceb6..06897ab7 100644
--- a/opensles/libopensles/android_AudioRecorder.cpp
+++ b/opensles/libopensles/android_AudioRecorder.cpp
@@ -388,7 +388,8 @@ SLresult android_audioRecorder_realize(CAudioRecorder* ar, SLboolean async) {
ar->mAudioRecord->set(ar->mRecordSource, // source
sles_to_android_sampleRate(ar->mSampleRateMilliHz), // sample rate in Hertz
android::AudioSystem::PCM_16_BIT, //FIXME use format from buffer queue sink
- sles_to_android_channelMask(ar->mNumChannels, 0 /*no channel mask*/), // channel config
+ sles_to_android_channelMaskIn(ar->mNumChannels, 0 /*no channel mask*/),
+ // channel config
0, //frameCount min
0, // flags
audioRecorder_callback,// callback_t
diff --git a/opensles/libopensles/android_sles_conversions.h b/opensles/libopensles/android_sles_conversions.h
index 9bdf6ea5..a224c960 100644
--- a/opensles/libopensles/android_sles_conversions.h
+++ b/opensles/libopensles/android_sles_conversions.h
@@ -60,7 +60,15 @@ static inline int sles_to_android_sampleFormat(SLuint32 pcmFormat) {
}
-static inline int sles_to_android_channelMask(SLuint32 nbChannels, SLuint32 channelMask) {
+static inline int sles_to_android_channelMaskIn(SLuint32 nbChannels, SLuint32 channelMask) {
+ // FIXME handle channel mask mapping between SL ES and Android
+ return (nbChannels == 1 ?
+ android::AudioSystem::CHANNEL_IN_MONO :
+ android::AudioSystem::CHANNEL_IN_STEREO);
+}
+
+
+static inline int sles_to_android_channelMaskOut(SLuint32 nbChannels, SLuint32 channelMask) {
// FIXME handle channel mask mapping between SL ES and Android
return (nbChannels == 1 ?
android::AudioSystem::CHANNEL_OUT_MONO :