long windowEndUs; timeline.getWindow(/* windowIndex= */ 0, window); long windowPositionInPeriodUs = window.getPositionInFirstPeriodUs(); if (clippingTimeline == null || mediaPeriods.isEmpty() || allowDynamicClippingUpdates) { windowStartUs = startUs;
@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).getDefaultPositionUs()).isEqualTo(0); assertThat(clippedTimelines[0].getWindow(0, window).isDynamic).isTrue(); assertThat(clippedTimelines[0].getWindow(0, window).getPositionInFirstPeriodUs()) .isEqualTo(TEST_PERIOD_DURATION_US + TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[0].getPeriod(0, period).getDurationUs()) .isEqualTo(TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[1].getWindow(0, window).isDynamic).isFalse(); assertThat(clippedTimelines[1].getWindow(0, window).getPositionInFirstPeriodUs()) .isEqualTo(2 * TEST_PERIOD_DURATION_US); assertThat(clippedTimelines[1].getPeriod(0, period).getDurationUs())
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(TEST_PERIOD_DURATION_US + TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[0].getPeriod(0, period).getDurationUs()) assertThat(clippedTimelines[1].getWindow(0, window).getDefaultPositionUs()).isEqualTo(0); assertThat(clippedTimelines[1].getWindow(0, window).isDynamic).isFalse(); assertThat(clippedTimelines[1].getWindow(0, window).getPositionInFirstPeriodUs()) .isEqualTo(3 * TEST_PERIOD_DURATION_US); assertThat(clippedTimelines[1].getPeriod(0, period).getDurationUs())
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(TEST_PERIOD_DURATION_US + TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[0].getPeriod(0, period).getDurationUs()) assertThat(clippedTimelines[1].getWindow(0, window).getDefaultPositionUs()).isEqualTo(0); assertThat(clippedTimelines[1].getWindow(0, window).isDynamic).isTrue(); assertThat(clippedTimelines[1].getWindow(0, window).getPositionInFirstPeriodUs()) .isEqualTo(3 * TEST_PERIOD_DURATION_US + TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[1].getPeriod(0, period).getDurationUs())
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(TEST_PERIOD_DURATION_US + TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[0].getPeriod(0, period).getDurationUs()) assertThat(clippedTimelines[1].getWindow(0, window).getDefaultPositionUs()).isEqualTo(0); assertThat(clippedTimelines[1].getWindow(0, window).isDynamic).isTrue(); assertThat(clippedTimelines[1].getWindow(0, window).getPositionInFirstPeriodUs()) .isEqualTo(2 * TEST_PERIOD_DURATION_US + TEST_CLIP_AMOUNT_US); assertThat(clippedTimelines[1].getPeriod(0, period).getDurationUs())
long periodPositionUs = window.getPositionInFirstPeriodUs() + windowPositionUs; long periodDurationUs = getPeriod(periodIndex, period, /* setIds= */ true).getDurationUs(); while (periodDurationUs != C.TIME_UNSET && periodPositionUs >= periodDurationUs