Commit 9ec94a4b by Cai Yuanqing

Check the new index contains the old index based on stat time instead of segNum

parent c2d9960a
...@@ -686,6 +686,8 @@ public class DefaultDashChunkSource implements DashChunkSource { ...@@ -686,6 +686,8 @@ public class DefaultDashChunkSource implements DashChunkSource {
newPeriodDurationUs, newRepresentation, extractorWrapper, segmentNumShift, newIndex); newPeriodDurationUs, newRepresentation, extractorWrapper, segmentNumShift, newIndex);
} }
long oldIndexFirstSegmentNum = oldIndex.getFirstSegmentNum();
long oldIndexStartTimeUs = oldIndex.getTimeUs(oldIndexFirstSegmentNum);
long oldIndexLastSegmentNum = oldIndex.getFirstSegmentNum() + oldIndexSegmentCount - 1; long oldIndexLastSegmentNum = oldIndex.getFirstSegmentNum() + oldIndexSegmentCount - 1;
long oldIndexEndTimeUs = long oldIndexEndTimeUs =
oldIndex.getTimeUs(oldIndexLastSegmentNum) oldIndex.getTimeUs(oldIndexLastSegmentNum)
...@@ -700,8 +702,10 @@ public class DefaultDashChunkSource implements DashChunkSource { ...@@ -700,8 +702,10 @@ public class DefaultDashChunkSource implements DashChunkSource {
// There's a gap between the old index and the new one which means we've slipped behind the // There's a gap between the old index and the new one which means we've slipped behind the
// live window and can't proceed. // live window and can't proceed.
throw new BehindLiveWindowException(); throw new BehindLiveWindowException();
} else if (oldIndex.getFirstSegmentNum() >= newIndexFirstSegmentNum) { } else if (oldIndexStartTimeUs >= newIndexStartTimeUs) {
// The new index contains the old one, continue process the next segment // The new index overlaps with (but does not have a start position contained within) the old
// index. This can only happen if extra segments have been added to the start of the index.
// Continue process the next segment as is.
} else { } else {
// The new index overlaps with the old one. // The new index overlaps with the old one.
newSegmentNumShift += newSegmentNumShift +=
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment