Merge "Return a runtime error instead of assertion if seeking beyond EOS in mpeg4 files."

This commit is contained in:
Andreas Huber
2011-10-06 09:17:14 -07:00
committed by Android (Google) Code Review

View File

@@ -1972,6 +1972,12 @@ status_t MPEG4Source::read(
sampleIndex, &syncSampleIndex, findFlags); sampleIndex, &syncSampleIndex, findFlags);
} }
uint32_t sampleTime;
if (err == OK) {
err = mSampleTable->getMetaDataForSample(
sampleIndex, NULL, NULL, &sampleTime);
}
if (err != OK) { if (err != OK) {
if (err == ERROR_OUT_OF_RANGE) { if (err == ERROR_OUT_OF_RANGE) {
// An attempt to seek past the end of the stream would // An attempt to seek past the end of the stream would
@@ -1984,10 +1990,6 @@ status_t MPEG4Source::read(
return err; return err;
} }
uint32_t sampleTime;
CHECK_EQ((status_t)OK, mSampleTable->getMetaDataForSample(
sampleIndex, NULL, NULL, &sampleTime));
if (mode == ReadOptions::SEEK_CLOSEST) { if (mode == ReadOptions::SEEK_CLOSEST) {
targetSampleTimeUs = (sampleTime * 1000000ll) / mTimescale; targetSampleTimeUs = (sampleTime * 1000000ll) / mTimescale;
} }