summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/matroska
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2014-11-28 13:18:08 -0800
committerSteve Kondik <steve@cyngn.com>2015-10-23 12:38:46 -0500
commit31b46eb4fec33d2c91c0629290a7a5f1b1d652b8 (patch)
treea709fa75a2198fc91b4e5a1d70324e76be0c35d2 /media/libstagefright/matroska
parent9641a8e47588357baa0de8b967e809e5cdf1901f (diff)
downloadframeworks_av-31b46eb4fec33d2c91c0629290a7a5f1b1d652b8.zip
frameworks_av-31b46eb4fec33d2c91c0629290a7a5f1b1d652b8.tar.gz
frameworks_av-31b46eb4fec33d2c91c0629290a7a5f1b1d652b8.tar.bz2
stagefright: Pass AAC profile from MatroskaExtractor
* Needed by framework to determine audio apth Change-Id: I8d928852fb4a24e3d575d70fbf366bae1a178b31
Diffstat (limited to 'media/libstagefright/matroska')
-rw-r--r--media/libstagefright/matroska/MatroskaExtractor.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/media/libstagefright/matroska/MatroskaExtractor.cpp b/media/libstagefright/matroska/MatroskaExtractor.cpp
index 2143e35..a66ca6d 100644
--- a/media/libstagefright/matroska/MatroskaExtractor.cpp
+++ b/media/libstagefright/matroska/MatroskaExtractor.cpp
@@ -31,6 +31,7 @@
#include <media/stagefright/MetaData.h>
#include <media/stagefright/Utils.h>
#include <utils/String8.h>
+#include <media/stagefright/foundation/ABitReader.h>
#include <inttypes.h>
@@ -854,6 +855,17 @@ static void addESDSFromCodecPrivate(
const sp<MetaData> &meta,
bool isAudio, const void *priv, size_t privSize) {
+ if(isAudio) {
+ ABitReader br((const uint8_t *)priv, privSize);
+ uint32_t objectType = br.getBits(5);
+
+ if (objectType == 31) { // AAC-ELD => additional 6 bits
+ objectType = 32 + br.getBits(6);
+ }
+
+ meta->setInt32(kKeyAACAOT, objectType);
+ }
+
int privSizeBytesRequired = bytesForSize(privSize);
int esdsSize2 = 14 + privSizeBytesRequired + privSize;
int esdsSize2BytesRequired = bytesForSize(esdsSize2);