Bug 1414444 - add moof only when it is valid. r?jya
MozReview-Commit-ID: EvtWmfOnMId
--- a/media/libstagefright/binding/MoofParser.cpp
+++ b/media/libstagefright/binding/MoofParser.cpp
@@ -70,19 +70,21 @@ MoofParser::RebuildFragmentedIndex(BoxCo
}
if (!mMoofs.IsEmpty()) {
// Stitch time ranges together in the case of a (hopefully small) time
// range gap between moofs.
mMoofs.LastElement().FixRounding(moof);
}
- mMoofs.AppendElement(moof);
- mMediaRanges.AppendElement(moof.mRange);
- foundValidMoof = true;
+ if (moof.IsValid()) {
+ mMoofs.AppendElement(moof);
+ mMediaRanges.AppendElement(moof.mRange);
+ foundValidMoof = true;
+ }
} else if (box.IsType("mdat") && !Moofs().IsEmpty()) {
// Check if we have all our data from last moof.
Moof& moof = Moofs().LastElement();
media::Interval<int64_t> datarange(moof.mMdatRange.mStart, moof.mMdatRange.mEnd, 0);
media::Interval<int64_t> mdat(box.Range().mStart, box.Range().mEnd, 0);
if (datarange.Intersects(mdat)) {
mMediaRanges.LastElement() =
mMediaRanges.LastElement().Span(box.Range());