Avoid rebuffering at the end of SSAI post-rolls
When the start position of a MediaPeriodInfo is equal or higher than the duration, we set the start position to `duration - 1` to end on the last frame. With server side inserted ad streams, this has the effect that we actually need to seek back to the last content frame after a post-roll. This is desirable when actually ending on that frame but produces a BUFFERING event when transitioning from an SSAI stream with a post-roll to the next media item in the playlist. This change sets the start position to the duration when we are clipping the last content period of an SSAI stream that is played in a playlist. PiperOrigin-RevId: 433445680
This commit is contained in:
parent
f5796b2d48
commit
5bf123165f
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user