diff options
author | xians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-20 11:17:19 +0000 |
---|---|---|
committer | xians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-20 11:17:19 +0000 |
commit | ac2d29d141977848b58499ea6c3de347e2cad121 (patch) | |
tree | 6821880b64cf118d67e59b8980893ccaf109a610 /media | |
parent | d925f7cb58fd5dc6ca18dc40d9ec65e773472e6f (diff) | |
download | chromium_src-ac2d29d141977848b58499ea6c3de347e2cad121.zip chromium_src-ac2d29d141977848b58499ea6c3de347e2cad121.tar.gz chromium_src-ac2d29d141977848b58499ea6c3de347e2cad121.tar.bz2 |
On mono mode, SL_SPEAKER_FRONT_CENTER is the channel mask;
On Stereo mode, SL_SPEAKER_FRONT_LEFT | SL_SPEAKER_FRONT_RIGHT should be used.
For channel more than 2, we don't support it yet.
BUG=143352
Review URL: https://chromiumcodereview.appspot.com/10855218
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152313 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/audio/android/opensles_input.cc | 7 | ||||
-rw-r--r-- | media/audio/android/opensles_output.cc | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/media/audio/android/opensles_input.cc b/media/audio/android/opensles_input.cc index 3d0079e..0df5bc1 100644 --- a/media/audio/android/opensles_input.cc +++ b/media/audio/android/opensles_input.cc @@ -24,8 +24,13 @@ OpenSLESInputStream::OpenSLESInputStream(AudioManagerAndroid* audio_manager, format_.samplesPerSec = static_cast<SLuint32>(params.sample_rate() * 1000); format_.bitsPerSample = params.bits_per_sample(); format_.containerSize = params.bits_per_sample(); - format_.channelMask = SL_SPEAKER_FRONT_CENTER; format_.endianness = SL_BYTEORDER_LITTLEENDIAN; + if (format_.numChannels == 1) + format_.channelMask = SL_SPEAKER_FRONT_CENTER; + else if (format_.numChannels == 2) + format_.channelMask = SL_SPEAKER_FRONT_LEFT | SL_SPEAKER_FRONT_RIGHT; + else + NOTREACHED() << "Unsupported number of channels: " << format_.numChannels; buffer_size_bytes_ = params.GetBytesPerBuffer(); diff --git a/media/audio/android/opensles_output.cc b/media/audio/android/opensles_output.cc index 7a4b68b..3b5ee64 100644 --- a/media/audio/android/opensles_output.cc +++ b/media/audio/android/opensles_output.cc @@ -26,8 +26,13 @@ OpenSLESOutputStream::OpenSLESOutputStream(AudioManagerAndroid* manager, format_.samplesPerSec = static_cast<SLuint32>(params.sample_rate() * 1000); format_.bitsPerSample = params.bits_per_sample(); format_.containerSize = params.bits_per_sample(); - format_.channelMask = SL_SPEAKER_FRONT_CENTER; format_.endianness = SL_BYTEORDER_LITTLEENDIAN; + if (format_.numChannels == 1) + format_.channelMask = SL_SPEAKER_FRONT_CENTER; + else if (format_.numChannels == 2) + format_.channelMask = SL_SPEAKER_FRONT_LEFT | SL_SPEAKER_FRONT_RIGHT; + else + NOTREACHED() << "Unsupported number of channels: " << format_.numChannels; buffer_size_bytes_ = params.GetBytesPerBuffer(); |