Index: media/base/android/java/src/org/chromium/media/MediaCodecBridge.java |
diff --git a/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java b/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java |
index b0233df4b21deca27e468b9bd8885573872823ca..b30a90e3bdcee69a4ff112b0f98784d00c02e621 100644 |
--- a/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java |
+++ b/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java |
@@ -496,8 +496,7 @@ class MediaCodecBridge { |
if (playAudio) { |
int sampleRate = format.getInteger(MediaFormat.KEY_SAMPLE_RATE); |
int channelCount = format.getInteger(MediaFormat.KEY_CHANNEL_COUNT); |
- int channelConfig = (channelCount == 1) ? AudioFormat.CHANNEL_OUT_MONO : |
- AudioFormat.CHANNEL_OUT_STEREO; |
+ int channelConfig = getAudioFormat(channelCount); |
// Using 16bit PCM for output. Keep this value in sync with |
// kBytesPerAudioOutputSample in media_codec_bridge.cc. |
int minBufferSize = AudioTrack.getMinBufferSize(sampleRate, channelConfig, |
@@ -540,4 +539,21 @@ class MediaCodecBridge { |
mFlushed = false; |
} |
} |
+ |
+ private int getAudioFormat(int channelCount) { |
+ switch (channelCount) { |
+ case 1: |
+ return AudioFormat.CHANNEL_OUT_MONO; |
+ case 2: |
+ return AudioFormat.CHANNEL_OUT_STEREO; |
+ case 4: |
+ return AudioFormat.CHANNEL_OUT_QUAD; |
+ case 6: |
+ return AudioFormat.CHANNEL_OUT_5POINT1; |
+ case 8: |
+ return AudioFormat.CHANNEL_OUT_7POINT1; |
+ default: |
+ return AudioFormat.CHANNEL_OUT_DEFAULT; |
+ } |
+ } |
} |