summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorxians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-20 11:17:19 +0000
committerxians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-20 11:17:19 +0000
commitac2d29d141977848b58499ea6c3de347e2cad121 (patch)
tree6821880b64cf118d67e59b8980893ccaf109a610 /media
parentd925f7cb58fd5dc6ca18dc40d9ec65e773472e6f (diff)
downloadchromium_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.cc7
-rw-r--r--media/audio/android/opensles_output.cc7
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();