diff options
author | Chong Zhang <chz@google.com> | 2015-04-15 19:57:19 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-04-15 19:57:20 +0000 |
commit | 38bdc85356aa7ba8c3c3cff46efd71fc6ef5beb1 (patch) | |
tree | 7df60234565b725f37fc7d729d1e87066d4a5a41 | |
parent | d6b01f26a826d10912be4b34bbd2438e97c871e4 (diff) | |
parent | ef185e94ce624146e3b1f3cbdb2404e833a0f81d (diff) | |
download | frameworks_av-38bdc85356aa7ba8c3c3cff46efd71fc6ef5beb1.zip frameworks_av-38bdc85356aa7ba8c3c3cff46efd71fc6ef5beb1.tar.gz frameworks_av-38bdc85356aa7ba8c3c3cff46efd71fc6ef5beb1.tar.bz2 |
Merge "skip parsing of 'hdlr' atom when parsing QT meta"
-rw-r--r-- | media/libstagefright/MPEG4Extractor.cpp | 7 |
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) { |