From 90ba107fcf36ce6df111a594b2cc27163b36793d Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Thu, 6 Oct 2011 09:07:12 -0700 Subject: [PATCH] Return a runtime error instead of assertion if seeking beyond EOS in mpeg4 files. Change-Id: If6531b4a1ff45460cfcdcc04764c5c63a2f5a749 related-to-bug: 5418914 --- media/libstagefright/MPEG4Extractor.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp index 3b79f063c319d..1e24599985bbd 100644 --- a/media/libstagefright/MPEG4Extractor.cpp +++ b/media/libstagefright/MPEG4Extractor.cpp @@ -1972,6 +1972,12 @@ status_t MPEG4Source::read( sampleIndex, &syncSampleIndex, findFlags); } + uint32_t sampleTime; + if (err == OK) { + err = mSampleTable->getMetaDataForSample( + sampleIndex, NULL, NULL, &sampleTime); + } + if (err != OK) { if (err == ERROR_OUT_OF_RANGE) { // An attempt to seek past the end of the stream would @@ -1984,10 +1990,6 @@ status_t MPEG4Source::read( return err; } - uint32_t sampleTime; - CHECK_EQ((status_t)OK, mSampleTable->getMetaDataForSample( - sampleIndex, NULL, NULL, &sampleTime)); - if (mode == ReadOptions::SEEK_CLOSEST) { targetSampleTimeUs = (sampleTime * 1000000ll) / mTimescale; }