mirror of
https://github.com/zoriya/v10.git
synced 2026-08-16 02:45:09 +00:00
Replace the inline completeness check (and the `state[reloadEpochKey].get()` ping read) in the loader's effect with an injected `shouldLoadTrack(track, params)` gate, mirroring track-switching's rule pattern. The core (`setupTrackResolution`) now knows nothing about reload epochs or completeness: its effect just runs `if (!track || !shouldLoadTrack(track, params)) return;`. - Default gate `loadIfUnresolved` (`!isResolvedTrack`) is the live-agnostic one-shot resolve. Each `resolve*` variant injects `shouldLoadLiveTrack`, which reloads incomplete windows and subscribes the effect to the scheduler's per-type reload-epoch ping (read for subscription only; value unused). - `ResolveTrackState`, the variants' `stateKeys`, and `TrackResolutionConfig` drop the epoch slots + `reloadEpochKey`. The live gate reads its slot defensively off an optional `ReloadEpochStateView` (the `bandwidthState?` pattern), with the per-type key closured in at the variant — so only the gate names the ping, never the core. The scheduler still materializes the slots. - `setupTrackResolution` takes `params` whole (destructured in the body, not the signature) and threads it through to the gate, so a future gate can reach `context` without changing the seam. 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: