Files
v10/packages/spf
Christian PillsburyandClaude Opus 4.8 2733cba052 feat(spf): relocate non-zero-PTS sources to a 0-based timeline
Assets whose A/V encode starts at a non-zero native PTS (Mux instant clips,
Apple bipbop @10s) are relocated onto a 0-based presentation timeline via
`SourceBuffer.timestampOffset`, so buffer / model / `currentTime` / `seekable`
stay 0-based and the adapter is untouched.

- `establishStartMediaTime` reactor establishes each track's media-timeline
  origin once per source (the DOM-free half), running an injected
  `deriveStartMediaTime` seam over discovered container data.
- Default `deriveSharedMinStartMediaTime`: relocate every track by the `min`
  across selected A/V origins — preserves real A/V skew and keeps every DTS >= 0.
  Origins below NEAR_ZERO_ORIGIN_THRESHOLD (1s) are left native (ordinary
  ~0-PTS VOD isn't perturbed).
- `relocation-steps` message pipelines discover the origin (mdhd/tfdt head-peek)
  and stamp `timestampOffset`; text cues rebase by X-TIMESTAMP-MAP − origin.
- Wired into both the default and audio-only HLS engines.

See internal/design/spf/presentation-timeline-model.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 12:00:15 -07:00
..
2026-07-07 13:08:22 -05:00
2026-07-07 13:08:22 -05: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