diff options
author | Vignesh Venkatasubramanian <vigneshv@google.com> | 2015-02-05 19:26:51 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-02-05 19:26:52 +0000 |
commit | 9fdb3bd42af0876a9b76bae42d7aba2287b53af4 (patch) | |
tree | 08dbc190e44ba04dae15c4e8e560dab00833f582 /media/libstagefright/codecs | |
parent | e743a47f445f02a0612018fa5640301304844fbf (diff) | |
parent | 9b4b24a46f3f76ebb186df8bc01c58848af02108 (diff) | |
download | frameworks_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.cpp | 12 |
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, |