Bug 1261900: [MSE] P2. Prevent assertion if first media segment contains no usable frames. r=gerald
Encountered while using YouTube MSE/webm compliance test.
MozReview-Commit-ID: 75Ga4TCGqMF
--- a/dom/media/mediasource/TrackBuffersManager.cpp
+++ b/dom/media/mediasource/TrackBuffersManager.cpp
@@ -1685,19 +1685,21 @@ TrackBuffersManager::InsertFrames(TrackB
data.InsertElementsAt(trackBuffer.mNextInsertionIndex.ref(), aSamples);
trackBuffer.mNextInsertionIndex.ref() += aSamples.Length();
// Update our buffered range with new sample interval.
trackBuffer.mBufferedRanges += aIntervals;
// We allow a fuzz factor in our interval of half a frame length,
// as fuzz is +/- value, giving an effective leeway of a full frame
// length.
- TimeIntervals range(aIntervals);
- range.SetFuzz(trackBuffer.mLongestFrameDuration.ref() / 2);
- trackBuffer.mSanitizedBufferedRanges += range;
+ if (aIntervals.Length()) {
+ TimeIntervals range(aIntervals);
+ range.SetFuzz(trackBuffer.mLongestFrameDuration.ref() / 2);
+ trackBuffer.mSanitizedBufferedRanges += range;
+ }
}
void
TrackBuffersManager::RemoveFrames(const TimeIntervals& aIntervals,
TrackData& aTrackData,
uint32_t aStartIndex)
{
TrackBuffer& data = aTrackData.mBuffers.LastElement();