summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/Utils.cpp
diff options
context:
space:
mode:
authorVignesh Venkatasubramanian <vigneshv@google.com>2014-01-29 09:00:46 -0800
committerVignesh Venkatasubramanian <vigneshv@google.com>2014-03-03 13:30:38 -0800
commitbf927f8ec7979f2b64331c2b2f12a6a5dba05bca (patch)
tree74cd06e798e79839ab872ede1f57ab35a3b6afdf /media/libstagefright/Utils.cpp
parent3a005b3b19b750afe24577ae322aff4602ca2740 (diff)
downloadframeworks_av-bf927f8ec7979f2b64331c2b2f12a6a5dba05bca.zip
frameworks_av-bf927f8ec7979f2b64331c2b2f12a6a5dba05bca.tar.gz
frameworks_av-bf927f8ec7979f2b64331c2b2f12a6a5dba05bca.tar.bz2
Opus Matroska support in OpenMax
Adding Openmax component for libopus software decoder. This can decode opus audio files embedded in matroska containers. Change-Id: I7e0691cfc6d719c4e927b9efbd05a3143be49abc Note: This CL is part of adding Opus support to Android.
Diffstat (limited to 'media/libstagefright/Utils.cpp')
-rw-r--r--media/libstagefright/Utils.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/media/libstagefright/Utils.cpp b/media/libstagefright/Utils.cpp
index 216a329..b5a730e 100644
--- a/media/libstagefright/Utils.cpp
+++ b/media/libstagefright/Utils.cpp
@@ -251,6 +251,13 @@ status_t convertMetaDataToMessage(
buffer->meta()->setInt32("csd", true);
buffer->meta()->setInt64("timeUs", 0);
msg->setBuffer("csd-1", buffer);
+ } else if (meta->findData(kKeyOpusHeader, &type, &data, &size)) {
+ sp<ABuffer> buffer = new ABuffer(size);
+ memcpy(buffer->data(), data, size);
+
+ buffer->meta()->setInt32("csd", true);
+ buffer->meta()->setInt64("timeUs", 0);
+ msg->setBuffer("csd-0", buffer);
}
*format = msg;
@@ -523,6 +530,7 @@ static const struct mime_conv_t mimeLookup[] = {
{ MEDIA_MIMETYPE_AUDIO_AMR_WB, AUDIO_FORMAT_AMR_WB },
{ MEDIA_MIMETYPE_AUDIO_AAC, AUDIO_FORMAT_AAC },
{ MEDIA_MIMETYPE_AUDIO_VORBIS, AUDIO_FORMAT_VORBIS },
+ { MEDIA_MIMETYPE_AUDIO_OPUS, AUDIO_FORMAT_OPUS},
{ 0, AUDIO_FORMAT_INVALID }
};