Bug 1414444 - add moof only when it is valid. r?jya draft
authorAlfredo.Yang <ayang@mozilla.com>
Wed, 08 Nov 2017 10:34:28 +0800
changeset 694695 43ff74d5758a29989f3f62fb015f1dcb4535ac70
parent 694565 40df5dd35fdb7ce3652fe4448ac8961c075c928e
child 739401 ce3f0fb49930c71a6ec2621a9628c2decb4ec8df
push id88204
push userbmo:ayang@mozilla.com
push dateWed, 08 Nov 2017 03:40:54 +0000
reviewersjya
bugs1414444
milestone58.0a1
Bug 1414444 - add moof only when it is valid. r?jya MozReview-Commit-ID: EvtWmfOnMId
media/libstagefright/binding/MoofParser.cpp
--- 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());