From fb847cad6638db447dee4106e9f06ed30dc827cb Mon Sep 17 00:00:00 2001 From: zgzong Date: Tue, 18 Jul 2023 16:48:40 +0100 Subject: [PATCH] Update dash chunk source to handle in-progressive recording dash stream. Using calculated segments timeline duration to compare with period duration to update whether period has reach it the end of stream. --- .../media3/exoplayer/dash/DefaultDashChunkSource.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource.java b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource.java index aece24f704..a9d9d29965 100644 --- a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource.java +++ b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource.java @@ -420,6 +420,10 @@ public class DefaultDashChunkSource implements DashChunkSource { long firstAvailableSegmentNum = representationHolder.getFirstAvailableSegmentNum(nowUnixTimeUs); long lastAvailableSegmentNum = representationHolder.getLastAvailableSegmentNum(nowUnixTimeUs); + if(manifest.dynamic) { + long lastAvailableSegmentEndTimeUs = representationHolder.getSegmentEndTimeUs(lastAvailableSegmentNum); + periodEnded &= (lastAvailableSegmentEndTimeUs >= periodDurationUs); + } long segmentNum = getSegmentNum( representationHolder,