summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs
diff options
context:
space:
mode:
authorVignesh Venkatasubramanian <vigneshv@google.com>2015-02-05 19:26:51 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-02-05 19:26:52 +0000
commit9fdb3bd42af0876a9b76bae42d7aba2287b53af4 (patch)
tree08dbc190e44ba04dae15c4e8e560dab00833f582 /media/libstagefright/codecs
parente743a47f445f02a0612018fa5640301304844fbf (diff)
parent9b4b24a46f3f76ebb186df8bc01c58848af02108 (diff)
downloadframeworks_av-9fdb3bd42af0876a9b76bae42d7aba2287b53af4.zip
frameworks_av-9fdb3bd42af0876a9b76bae42d7aba2287b53af4.tar.gz
frameworks_av-9fdb3bd42af0876a9b76bae42d7aba2287b53af4.tar.bz2
Merge "opus: Support for > 2 channels"
Diffstat (limited to 'media/libstagefright/codecs')
-rw-r--r--media/libstagefright/codecs/opus/dec/SoftOpus.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/media/libstagefright/codecs/opus/dec/SoftOpus.cpp b/media/libstagefright/codecs/opus/dec/SoftOpus.cpp
index b8084ae..6322dc2 100644
--- a/media/libstagefright/codecs/opus/dec/SoftOpus.cpp
+++ b/media/libstagefright/codecs/opus/dec/SoftOpus.cpp
@@ -345,9 +345,15 @@ void SoftOpus::onQueueFilled(OMX_U32 portIndex) {
}
uint8_t channel_mapping[kMaxChannels] = {0};
- memcpy(&channel_mapping,
- kDefaultOpusChannelLayout,
- kMaxChannelsWithDefaultLayout);
+ if (mHeader->channels <= kMaxChannelsWithDefaultLayout) {
+ memcpy(&channel_mapping,
+ kDefaultOpusChannelLayout,
+ kMaxChannelsWithDefaultLayout);
+ } else {
+ memcpy(&channel_mapping,
+ mHeader->stream_map,
+ mHeader->channels);
+ }
int status = OPUS_INVALID_STATE;
mDecoder = opus_multistream_decoder_create(kRate,