mirror of
https://github.com/zoriya/v10.git
synced 2026-08-16 02:45:09 +00:00
The live-vs-complete decision was being re-derived in three places from `metadata.endList`, which diverges from how the parser itself computes completeness (`endList || PLAYLIST-TYPE:VOD`) — and the parser already bakes that result into `Track.duration` (finite EXTINF sum when complete, Infinity while it can still grow). So read that instead of re-deriving: - resolveDuration default reverts to `getResolvedSelectedTrackDuration` (returns `Track.duration`, already Infinity for live by construction). Drops the redundant `resolveSelectedTrackDuration`, which also keyed off `endList` alone and thus wrongly returned Infinity for a complete PLAYLIST-TYPE:VOD playlist lacking #EXT-X-ENDLIST. - end-of-stream and seek-to-live-edge guards switch from `metadata.endList` to `Number.isFinite(track.duration)`. Net: `Presentation.duration === Track.duration` by construction, and all three behaviors share the parser's one completeness predicate. Removes code. Full spf suite green (1070 passed). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>