Files
v10/packages/spf
Christian PillsburyandClaude Opus 4.8 24fa36e695 refactor(spf): split seek-to-live-edge into window derivation + seekable writer
Decompose the seek-to-live-edge behavior (which coupled three concerns) into:
- liveWindowFor (media/live-window.ts) — a pure derivation of the live window
  {start,end,targetDuration}, or null for VOD/ended/unresolved. The single
  source of truth, centralizing all inertness so consumers don't re-derive.
- syncLiveSeekableRange (behaviors/dom) — declares setLiveSeekableRange on each
  window slide, including while paused (the seekable range must stay current
  regardless of play state).
- seekToLiveEdge — now just the one-time HOLD-BACK seek + the window-exit guard,
  consuming liveWindowFor; sheds the seekable/duration writes (keeps the
  mediaSource open-gate so the seek lands in the declared range).

Composed syncLiveSeekableRange before seekToLiveEdge to preserve the
declare-before-seek ordering (a seek outside seekable is clamped). Behavior-
preserving; tests redistributed (7 liveWindowFor + 14 seekToLiveEdge + 5
syncLiveSeekableRange). Deferred follow-ups: clearLiveSeekableRange on
termination; duration-ownership cleanup vs updateMediaSourceDuration; B's
seeked-latch source-reset; window-derives-from-accumulated-segments-while-paused.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 10:00:20 -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