diff options
author | Glenn Kasten <gkasten@google.com> | 2011-01-23 11:23:05 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-01-23 11:23:05 -0800 |
commit | 062b7b45b27c6bfffc494af21382d7fa7a8d2d82 (patch) | |
tree | 69d10b4ea0fee5ad4e7096e4abc754dee342d1e1 | |
parent | 28d27b961d0ee209865046237edc03537d0f25f1 (diff) | |
parent | 33b3539fd2bb9a8c3d94583214a8972f5298a03f (diff) | |
download | android_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.cpp | 3 | ||||
-rw-r--r-- | opensles/libopensles/android_AudioRecorder.cpp | 3 | ||||
-rw-r--r-- | opensles/libopensles/android_sles_conversions.h | 10 |
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 : |