diff options
author | Lajos Molnar <lajos@google.com> | 2014-07-31 12:09:37 -0700 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2014-07-31 12:10:50 -0700 |
commit | 4ff2a0dbb178c4ea652f30aa4f1d3deb9fdbc832 (patch) | |
tree | 142c1837228b3706e492f1c145fc136ee8aa058c /media | |
parent | a298101317e5472f6b6a12e6ddeafdc4064bd5b2 (diff) | |
download | frameworks_av-4ff2a0dbb178c4ea652f30aa4f1d3deb9fdbc832.zip frameworks_av-4ff2a0dbb178c4ea652f30aa4f1d3deb9fdbc832.tar.gz frameworks_av-4ff2a0dbb178c4ea652f30aa4f1d3deb9fdbc832.tar.bz2 |
stagefright: propagate error in MPEG4Extractor::readMetaData
Bug: 16641557
Change-Id: I252825bd767a4581b9fca560f2cabfb37c18e137
Diffstat (limited to 'media')
-rw-r--r-- | media/libstagefright/MPEG4Extractor.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp index 19da6ee..0064293 100644 --- a/media/libstagefright/MPEG4Extractor.cpp +++ b/media/libstagefright/MPEG4Extractor.cpp @@ -489,7 +489,9 @@ status_t MPEG4Extractor::readMetaData() { off64_t orig_offset = offset; err = parseChunk(&offset, 0); - if (offset <= orig_offset) { + if (err != OK && err != UNKNOWN_ERROR) { + break; + } else if (offset <= orig_offset) { // only continue parsing if the offset was advanced, // otherwise we might end up in an infinite loop ALOGE("did not advance: 0x%lld->0x%lld", orig_offset, offset); @@ -497,9 +499,8 @@ status_t MPEG4Extractor::readMetaData() { break; } else if (err == OK) { continue; - } else if (err != UNKNOWN_ERROR) { - break; } + uint32_t hdr[2]; if (mDataSource->readAt(offset, hdr, 8) < 8) { break; |