Files
v10/packages/spf
Christian PillsburyandClaude Opus 4.8 e5d98649ff refactor(spf): use Track.duration as the single completeness source of truth
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>
2026-06-25 09:59:23 -07:00
..
2026-05-19 12:48:40 -07:00

@videojs/spf

package-badge

⚠️ Beta Experimental adoption in real projects.

Overview

@videojs/spf is a lightweight, bundle-size-optimized streaming engine for Video.js 10. It provides HLS playback with adaptive bitrate switching, WebVTT captions, and MSE support.

Community

If you need help with anything related to Video.js 10, or if you'd like to casually chat with other members:

License

Apache-2.0