mirror of
https://github.com/zoriya/v10.git
synced 2026-08-16 02:45:09 +00:00
Compose the live behaviors into the VoD engine so one composition handles both VoD and live, keying every live-vs-VoD decision off playlist completeness rather than streamType: - resolveSelectedTrackDuration: new completeness-based duration resolver, now the engine default. Returns the resolved track's finite duration when its playlist is complete (#EXT-X-ENDLIST), else Infinity (still growing → live). Keys off completeness because deriveStreamType marks any playlist lacking #EXT-X-PLAYLIST-TYPE:VOD as 'live', which would wrongly force Infinity on a plain VoD stream that only carries #EXT-X-ENDLIST. - seekToLiveEdge: guarded to no-op for complete playlists, so it's inert for VoD when composed unconditionally. - createSimpleHlsEngine: composes scheduleVideoTrackReload/Audio/Text, anchorLiveTracks, and guarded seekToLiveEdge — all inert for VoD (complete playlists never reload; the anchor is a no-op without PDT / shift 0). Adds the startSequence config knob. Also make updateMediaSourceDuration's live write defer to a non-updating SourceBuffer instant: Infinity needn't precede appends (it overrides any finite live-edge value an append pinned), but the MSE spec forbids setting duration while a buffer is updating, so a racing synchronous write threw. Verified live playback end-to-end through createSimpleHlsEngine (real-time, presentation.duration Infinity, seeked to edge) against a Mux LL-HLS stream; full VoD suite green (1071 passed). The separate live engine is retained for now. Known follow-up: mediaSource.duration can stay finite during initial buffer fill (continuous appends leave no idle instant) — to be fixed by writing Infinity synchronously at sourceopen, ahead of the buffer actors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@videojs/spf
⚠️ 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: