import type { TimelineClock } from '../../core/timeline'; import type { DtypeRef } from './dtype-helpers'; interface VideoPlayerProps { src: string; clock?: TimelineClock | null; /** Optional dtype id or spec. Informational — passed by `` during dispatch. */ dtype?: DtypeRef; className?: string; } /** * VideoPlayer * * ## Data format contract * * Chunks: MPEG-TS (`.ts`) HLS video segments — not JSONL. * * The playlist must conform to standard HLS (`#EXTM3U`, `#EXT-X-VERSION`, * `#EXTINF`, optional `#EXT-X-ENDLIST` for VOD). * * Constraints: * - Segment codecs must be supported by the browser's MediaSource Extensions * (H.264 + AAC is the safest baseline) * - Playlist URL is fetched by hls.js, not by the library's Playlist engine * * How the view renders: * Uses hls.js for demux / remux / ABR / MSE buffering — a complete HLS * implementation. The library's own playlist/decoder machinery is bypassed * for video because our decoders cannot handle video media. * * Clock sync: * - Duration: `