diff --git a/library/core/src/main/java/com/google/android/exoplayer2/MediaPeriodQueue.java b/library/core/src/main/java/com/google/android/exoplayer2/MediaPeriodQueue.java index 5871639f82..13cd603169 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/MediaPeriodQueue.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/MediaPeriodQueue.java @@ -923,7 +923,8 @@ import com.google.common.collect.ImmutableList; : endPositionUs; if (durationUs != C.TIME_UNSET && startPositionUs >= durationUs) { // Ensure start position doesn't exceed duration. - startPositionUs = max(0, durationUs - 1); + boolean endAtLastFrame = isLastInTimeline || !clipPeriodAtContentDuration; + startPositionUs = max(0, durationUs - (endAtLastFrame ? 1 : 0)); } return new MediaPeriodInfo( id,