windowEndUs = endUs; if (relativeToDefaultPosition) { long windowDefaultPositionUs = window.getDefaultPositionUs(); windowStartUs += windowDefaultPositionUs; windowEndUs += windowDefaultPositionUs;
long windowStartPositionUs = window.getDefaultPositionUs(); if (deferredMediaPeriod != null) { long periodPreparePositionUs = deferredMediaPeriod.getPreparePositionUs();
@Test public void testClippingFromDefaultPosition() throws IOException { Timeline timeline = new SinglePeriodTimeline( /* periodDurationUs= */ 3 * TEST_PERIOD_DURATION_US, /* windowDurationUs= */ TEST_PERIOD_DURATION_US, /* windowPositionInPeriodUs= */ TEST_PERIOD_DURATION_US, /* windowDefaultStartPositionUs= */ TEST_CLIP_AMOUNT_US, /* isSeekable= */ true, /* isDynamic= */ true, /* tag= */ null); Timeline clippedTimeline = getClippedTimeline(timeline, /* durationUs= */ TEST_CLIP_AMOUNT_US); assertThat(clippedTimeline.getWindow(0, window).getDurationUs()).isEqualTo(TEST_CLIP_AMOUNT_US); assertThat(clippedTimeline.getWindow(0, window).getDefaultPositionUs()).isEqualTo(0); assertThat(clippedTimeline.getWindow(0, window).getPositionInFirstPeriodUs()) .isEqualTo(TEST_PERIOD_DURATION_US + TEST_CLIP_AMOUNT_US); assertThat(clippedTimeline.getPeriod(0, period).getDurationUs()) .isEqualTo(TEST_PERIOD_DURATION_US + 2 * TEST_CLIP_AMOUNT_US); }
assertThat(clippedTimelines[0].getWindow(0, window).getDurationUs()) .isEqualTo(TEST_PERIOD_DURATION_US - TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[0].getWindow(0, window).getDefaultPositionUs()).isEqualTo(0); assertThat(clippedTimelines[0].getWindow(0, window).isDynamic).isTrue(); assertThat(clippedTimelines[0].getWindow(0, window).getPositionInFirstPeriodUs()) assertThat(clippedTimelines[1].getWindow(0, window).getDurationUs()) .isEqualTo(TEST_PERIOD_DURATION_US - TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[1].getWindow(0, window).getDefaultPositionUs()).isEqualTo(0); assertThat(clippedTimelines[1].getWindow(0, window).isDynamic).isTrue(); assertThat(clippedTimelines[1].getWindow(0, window).getPositionInFirstPeriodUs())
assertThat(clippedTimelines[0].getWindow(0, window).getDurationUs()) .isEqualTo(TEST_PERIOD_DURATION_US - TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[0].getWindow(0, window).getDefaultPositionUs()).isEqualTo(0); assertThat(clippedTimelines[0].getWindow(0, window).isDynamic).isTrue(); assertThat(clippedTimelines[0].getWindow(0, window).getPositionInFirstPeriodUs()) assertThat(clippedTimelines[1].getWindow(0, window).getDurationUs()) .isEqualTo(TEST_PERIOD_DURATION_US - TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[1].getWindow(0, window).getDefaultPositionUs()).isEqualTo(0); assertThat(clippedTimelines[1].getWindow(0, window).isDynamic).isTrue(); assertThat(clippedTimelines[1].getWindow(0, window).getPositionInFirstPeriodUs())
assertThat(clippedTimelines[0].getWindow(0, window).getDurationUs()) .isEqualTo(TEST_PERIOD_DURATION_US - TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[0].getWindow(0, window).getDefaultPositionUs()).isEqualTo(0); assertThat(clippedTimelines[0].getWindow(0, window).isDynamic).isTrue(); assertThat(clippedTimelines[0].getWindow(0, window).getPositionInFirstPeriodUs()) .isEqualTo(2 * TEST_PERIOD_DURATION_US); assertThat(clippedTimelines[1].getWindow(0, window).getDurationUs()).isEqualTo(0); assertThat(clippedTimelines[1].getWindow(0, window).getDefaultPositionUs()).isEqualTo(0); assertThat(clippedTimelines[1].getWindow(0, window).isDynamic).isFalse(); assertThat(clippedTimelines[1].getWindow(0, window).getPositionInFirstPeriodUs())
assertThat(clippedTimelines[0].getWindow(0, window).getDurationUs()) .isEqualTo(TEST_PERIOD_DURATION_US - TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[0].getWindow(0, window).getDefaultPositionUs()).isEqualTo(0); assertThat(clippedTimelines[0].getWindow(0, window).isDynamic).isTrue(); assertThat(clippedTimelines[0].getWindow(0, window).getPositionInFirstPeriodUs()) assertThat(clippedTimelines[1].getWindow(0, window).getDurationUs()) .isEqualTo(TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[1].getWindow(0, window).getDefaultPositionUs()) .isEqualTo(TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[1].getWindow(0, window).isDynamic).isFalse();
getWindow(windowIndex, window, false, defaultPositionProjectionUs); if (windowPositionUs == C.TIME_UNSET) { windowPositionUs = window.getDefaultPositionUs(); if (windowPositionUs == C.TIME_UNSET) { return null;
} else { long windowPositionUs = positionMs == C.TIME_UNSET ? timeline.getWindow(windowIndex, window).getDefaultPositionUs() : C.msToUs(positionMs); Pair<Object, Long> periodUidAndPosition = timeline.getPeriodPosition(window, period, windowIndex, windowPositionUs);