summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorChong Zhang <chz@google.com>2015-04-15 12:23:10 -0700
committerChong Zhang <chz@google.com>2015-04-15 12:23:10 -0700
commitef185e94ce624146e3b1f3cbdb2404e833a0f81d (patch)
tree2462c0d860c4cfe6baf6e3c982797450194f9a05 /media
parent7233234a32d22d2ffb63ed4e92df339458047887 (diff)
downloadframeworks_av-ef185e94ce624146e3b1f3cbdb2404e833a0f81d.zip
frameworks_av-ef185e94ce624146e3b1f3cbdb2404e833a0f81d.tar.gz
frameworks_av-ef185e94ce624146e3b1f3cbdb2404e833a0f81d.tar.bz2
skip parsing of 'hdlr' atom when parsing QT meta
bug: 20244718 Change-Id: Ifb8a6d450a2f1ad2833301f492dc0ccfe1cd34d4
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/MPEG4Extractor.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp
index 297a186..28a9ed9 100644
--- a/media/libstagefright/MPEG4Extractor.cpp
+++ b/media/libstagefright/MPEG4Extractor.cpp
@@ -745,7 +745,8 @@ static bool underQTMetaPath(const Vector<uint32_t> &path, int32_t depth) {
&& path[1] == FOURCC('m', 'e', 't', 'a')
&& (depth == 2
|| (depth == 3
- && (path[2] == FOURCC('i', 'l', 's', 't')
+ && (path[2] == FOURCC('h', 'd', 'l', 'r')
+ || path[2] == FOURCC('i', 'l', 's', 't')
|| path[2] == FOURCC('k', 'e', 'y', 's'))));
}
@@ -1914,6 +1915,10 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
{
*offset += chunk_size;
+ if (underQTMetaPath(mPath, 3)) {
+ break;
+ }
+
uint32_t buffer;
if (mDataSource->readAt(
data_offset + 8, &buffer, 4) < 4) {