summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2014-07-31 12:09:37 -0700
committerLajos Molnar <lajos@google.com>2014-07-31 12:10:50 -0700
commit4ff2a0dbb178c4ea652f30aa4f1d3deb9fdbc832 (patch)
tree142c1837228b3706e492f1c145fc136ee8aa058c /media
parenta298101317e5472f6b6a12e6ddeafdc4064bd5b2 (diff)
downloadframeworks_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.cpp7
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;