From 65a2670e84f44f6cdd80d625a7248fc65319ab8c Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Tue, 21 Jun 2011 11:38:01 -0700 Subject: Don't assert on malformed .mp4 content that contains fewer samples than described in the time-to-sample box. Change-Id: Ic6f973212c15012a25f6e849759fd4f14d97e30f related-to-bug: 4779053 --- media/libstagefright/SampleTable.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/media/libstagefright/SampleTable.cpp b/media/libstagefright/SampleTable.cpp index eb135ab..a8a094e 100644 --- a/media/libstagefright/SampleTable.cpp +++ b/media/libstagefright/SampleTable.cpp @@ -416,12 +416,16 @@ void SampleTable::buildSampleEntriesTable() { uint32_t delta = mTimeToSample[2 * i + 1]; for (uint32_t j = 0; j < n; ++j) { - CHECK(sampleIndex < mNumSampleSizes); + if (sampleIndex < mNumSampleSizes) { + // Technically this should always be the case if the file + // is well-formed, but you know... there's (gasp) malformed + // content out there. - mSampleTimeEntries[sampleIndex].mSampleIndex = sampleIndex; + mSampleTimeEntries[sampleIndex].mSampleIndex = sampleIndex; - mSampleTimeEntries[sampleIndex].mCompositionTime = - sampleTime + getCompositionTimeOffset(sampleIndex); + mSampleTimeEntries[sampleIndex].mCompositionTime = + sampleTime + getCompositionTimeOffset(sampleIndex); + } ++sampleIndex; sampleTime += delta; -- cgit v1.1