mirror of
https://github.com/zoriya/v10.git
synced 2026-08-16 02:45:09 +00:00
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>