public long getFirstSegmentNum() { return segmentIndex.getFirstSegmentNum() + segmentNumShift; }
public int getSegmentCount() { return segmentIndex.getSegmentCount(periodDurationUs); }
public long getSegmentNum(long positionUs) { return segmentIndex.getSegmentNum(positionUs, periodDurationUs) + segmentNumShift; }
return new PeriodSeekInfo(true, 0, durationUs); isIndexExplicit |= index.isExplicit(); int segmentCount = index.getSegmentCount(durationUs); if (segmentCount == 0) { seenEmptyIndex = true; availableEndTimeUs = 0; } else if (!seenEmptyIndex) { long firstSegmentNum = index.getFirstSegmentNum(); long adaptationSetAvailableStartTimeUs = index.getTimeUs(firstSegmentNum); availableStartTimeUs = Math.max(availableStartTimeUs, adaptationSetAvailableStartTimeUs); if (segmentCount != DashSegmentIndex.INDEX_UNBOUNDED) { long lastSegmentNum = firstSegmentNum + segmentCount - 1; long adaptationSetAvailableEndTimeUs = index.getTimeUs(lastSegmentNum) + index.getDurationUs(lastSegmentNum, durationUs); availableEndTimeUs = Math.min(availableEndTimeUs, adaptationSetAvailableEndTimeUs);
int segmentCount = index.getSegmentCount(periodDurationUs); if (segmentCount == DashSegmentIndex.INDEX_UNBOUNDED) { throw new DownloadException("Unbounded segment index"); addSegment(periodStartUs, baseUrl, indexUri, out); long firstSegmentNum = index.getFirstSegmentNum(); long lastSegmentNum = firstSegmentNum + segmentCount - 1; for (long j = firstSegmentNum; j <= lastSegmentNum; j++) { addSegment(periodStartUs + index.getTimeUs(j), baseUrl, index.getSegmentUrl(j), out);
if (snapIndex == null || snapIndex.getSegmentCount(periodDurationUs) == 0) { long segmentNum = snapIndex.getSegmentNum(defaultStartPositionInPeriodUs, periodDurationUs); return windowDefaultStartPositionUs + snapIndex.getTimeUs(segmentNum) - defaultStartPositionInPeriodUs;
public long getSegmentStartTimeUs(long segmentNum) { return segmentIndex.getTimeUs(segmentNum - segmentNumShift); }
public RangedUri getSegmentUrl(long segmentNum) { return segmentIndex.getSegmentUrl(segmentNum - segmentNumShift); }
public long getSegmentEndTimeUs(long segmentNum) { return getSegmentStartTimeUs(segmentNum) + segmentIndex.getDurationUs(segmentNum - segmentNumShift, periodDurationUs); }
if (!oldIndex.isExplicit()) { int oldIndexSegmentCount = oldIndex.getSegmentCount(newPeriodDurationUs); if (oldIndexSegmentCount == 0) { long oldIndexLastSegmentNum = oldIndex.getFirstSegmentNum() + oldIndexSegmentCount - 1; long oldIndexEndTimeUs = oldIndex.getTimeUs(oldIndexLastSegmentNum) + oldIndex.getDurationUs(oldIndexLastSegmentNum, newPeriodDurationUs); long newIndexFirstSegmentNum = newIndex.getFirstSegmentNum(); long newIndexStartTimeUs = newIndex.getTimeUs(newIndexFirstSegmentNum); long newSegmentNumShift = segmentNumShift; if (oldIndexEndTimeUs == newIndexStartTimeUs) { oldIndex.getSegmentNum(newIndexStartTimeUs, newPeriodDurationUs) - newIndexFirstSegmentNum;