@clipkit/playback 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Frame-quantized step: the time of the frame `frames` away from the
3
+ * frame containing `time`, clamped to [0, duration]. `frames` may be
4
+ * negative. The current frame index is round(time × fps) — at exact
5
+ * frame boundaries (the common editor case) this is exact; mid-frame
6
+ * times snap to the nearest boundary before stepping, so repeated
7
+ * single steps land on consecutive frames instead of drifting.
8
+ */
9
+ export declare function stepFrameTime(time: number, fps: number, frames: number, duration: number): number;
10
+ //# sourceMappingURL=frame-math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-math.d.ts","sourceRoot":"","sources":["../src/frame-math.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,MAAM,CAIR"}
@@ -0,0 +1,16 @@
1
+ // Pure frame math — kept dependency-free so editors (and probes) can
2
+ // share the exact quantization the engine uses.
3
+ /**
4
+ * Frame-quantized step: the time of the frame `frames` away from the
5
+ * frame containing `time`, clamped to [0, duration]. `frames` may be
6
+ * negative. The current frame index is round(time × fps) — at exact
7
+ * frame boundaries (the common editor case) this is exact; mid-frame
8
+ * times snap to the nearest boundary before stepping, so repeated
9
+ * single steps land on consecutive frames instead of drifting.
10
+ */
11
+ export function stepFrameTime(time, fps, frames, duration) {
12
+ const safeFps = fps > 0 ? fps : 30;
13
+ const index = Math.round(time * safeFps) + Math.round(frames);
14
+ return Math.max(0, Math.min(duration, index / safeFps));
15
+ }
16
+ //# sourceMappingURL=frame-math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-math.js","sourceRoot":"","sources":["../src/frame-math.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,gDAAgD;AAEhD;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,GAAW,EACX,MAAc,EACd,QAAgB;IAEhB,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { PlaybackEngine } from './engine.js';
2
+ export type { Backend, BufferStatus, EngineStats, PlaybackEngineOptions, Unsubscribe, } from './types.js';
3
+ export { stepFrameTime } from './frame-math.js';
4
+ export { computeWaveformPeaks, extractWaveformPeaks } from './waveform.js';
5
+ export type { WaveformPeaks } from './waveform.js';
6
+ export type { AudioLevels, StereoPeak } from './audio.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC3E,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ // Public entry point. Anything imported as `@clipkit/playback` lives here.
2
+ //
3
+ // `TransportClock` is intentionally NOT exported. It's an internal
4
+ // collaborator the engine owns; the consumer never constructs one
5
+ // directly. See SPRINT.md for the rationale.
6
+ export { PlaybackEngine } from './engine.js';
7
+ // Editor-facing additions (EDITORS-PLAN A3).
8
+ export { stepFrameTime } from './frame-math.js';
9
+ export { computeWaveformPeaks, extractWaveformPeaks } from './waveform.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,mEAAmE;AACnE,kEAAkE;AAClE,6CAA6C;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAS7C,6CAA6C;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,108 @@
1
+ import type { Source } from '@clipkit/protocol';
2
+ /** Renderer backend selection. Matches the runtime's options. */
3
+ export type Backend = 'auto' | 'webgpu' | 'webgl2';
4
+ export interface PlaybackEngineOptions {
5
+ /** Canvas the engine draws presented frames into. */
6
+ displayCanvas: HTMLCanvasElement;
7
+ /** The composition to play. Can be swapped later via `setSource`. */
8
+ source: Source;
9
+ /** Renderer backend preference. Default `'auto'`. */
10
+ backend?: Backend;
11
+ /**
12
+ * How much time, in seconds, to render ahead of the playhead. Caps the
13
+ * VideoFrame ring buffer's memory footprint. Default `0.5`.
14
+ *
15
+ * Smaller = less memory, faster invalidation on edits, more starvation
16
+ * risk on heavy scenes. Larger = smoother playback on heavy scenes,
17
+ * costlier edit invalidation.
18
+ */
19
+ bufferTargetSeconds?: number;
20
+ /**
21
+ * Minimum interval between `onTime` callbacks, in milliseconds.
22
+ * Default `100` (≈10 Hz). The engine always tracks time precisely;
23
+ * this only throttles the user-facing event so consumers don't pay
24
+ * for 60 fps re-renders just to update a scrubber.
25
+ */
26
+ timeUpdateIntervalMs?: number;
27
+ /**
28
+ * Optional pre-existing `AudioContext` to use as the clock's precision
29
+ * source. If omitted, the engine creates and owns one. Pass an existing
30
+ * context when integrating into an app that already has an audio graph.
31
+ */
32
+ audioContext?: AudioContext;
33
+ }
34
+ /**
35
+ * Diagnostic snapshot of the frame buffer's state. Surfaced through
36
+ * `onBufferStatus` for UI affordances like a buffering spinner.
37
+ */
38
+ export interface BufferStatus {
39
+ /** Seconds of frames currently ready ahead of the playhead. */
40
+ ahead: number;
41
+ /**
42
+ * `true` when the playhead has overrun the produced frames and
43
+ * the renderer is catching up. UIs should show a "buffering" state.
44
+ */
45
+ starved: boolean;
46
+ }
47
+ /**
48
+ * Unsubscribe function returned by every `engine.on*` subscription.
49
+ * Calling it removes the listener; idempotent.
50
+ */
51
+ export type Unsubscribe = () => void;
52
+ /**
53
+ * Snapshot of presenter / worker / buffer health used by the
54
+ * in-app diagnostic HUD. Cheap to compute — derived from sliding
55
+ * windows the engine already keeps for instrumentation. Intended
56
+ * to be polled at ~4Hz.
57
+ */
58
+ export interface EngineStats {
59
+ /** Presenter ticks (drawImage calls) in the last 1s. */
60
+ fps: number;
61
+ /** Target rate from source.frame_rate. */
62
+ targetFps: number;
63
+ /** Seconds of frames buffered ahead of the playhead. */
64
+ bufferAheadSec: number;
65
+ /** Average ms between consecutive presenter ticks over the last 1s. */
66
+ frameGapMs: number;
67
+ /** Worst gap in the same window. High max with low avg = jitter. */
68
+ frameGapMaxMs: number;
69
+ /** Avg ms from `produce` post to `frame` receive, sliding window. */
70
+ workerLatencyMs: number;
71
+ /**
72
+ * Avg ms the worker spent inside `runtime.frame(time)` — the actual
73
+ * scene-render time per frame. This is the runtime/GPU cost.
74
+ */
75
+ renderMs: number;
76
+ /** Avg ms decoding/uploading video frames per produce (prepareVideoFrames). */
77
+ prepareMs: number;
78
+ /** Avg motion-blur samples used per live frame (0 = unblurred path). */
79
+ blurSamples: number;
80
+ /**
81
+ * Avg ms the worker spent constructing a VideoFrame from its
82
+ * OffscreenCanvas (GPU readback). This is the transfer cost.
83
+ */
84
+ videoFrameMs: number;
85
+ /**
86
+ * Avg full handleProduce duration on the worker. (renderMs +
87
+ * videoFrameMs ≈ workerTotalMs if our breakdown is complete.)
88
+ */
89
+ workerTotalMs: number;
90
+ /**
91
+ * Avg ms from worker `postMessage(frame)` to main `onmessage`
92
+ * firing. High values = main thread is busy and can't drain the
93
+ * worker's outgoing message queue.
94
+ */
95
+ queueLagMs: number;
96
+ /**
97
+ * Avg ms spent in `displayCtx.drawImage(frame, ...)` on the
98
+ * presenter's rAF tick. Main-thread per-paint cost; if this is
99
+ * tens of ms, the 2D canvas's VideoFrame → display upload is
100
+ * the per-frame bottleneck.
101
+ */
102
+ drawImageMs: number;
103
+ /** Total times peekAt returned null while clock was playing. */
104
+ starvationCount: number;
105
+ /** Currently-pending produce requests in the worker queue. */
106
+ inflight: number;
107
+ }
108
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAMhD,iEAAiE;AACjE,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,qDAAqD;IACrD,aAAa,EAAE,iBAAiB,CAAC;IAEjC,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IAEf,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;CAClB"}
package/dist/types.js ADDED
@@ -0,0 +1,6 @@
1
+ // Public types for @clipkit/playback. Anything imported through
2
+ // `@clipkit/playback` from outside the package goes through this file.
3
+ //
4
+ // ClockState lives in `clock.ts` — internal to the package.
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,uEAAuE;AACvE,EAAE;AACF,4DAA4D"}
@@ -0,0 +1,25 @@
1
+ export interface WaveformPeaks {
2
+ /** Interleaved [min, max] per bucket: [min0, max0, min1, max1, …]. */
3
+ peaks: Float32Array;
4
+ /** Buckets per second of audio. */
5
+ peaksPerSecond: number;
6
+ /** Decoded duration in seconds. */
7
+ duration: number;
8
+ }
9
+ /**
10
+ * Min/max peak pairs over the mixdown of `channels` (peak across
11
+ * channels — the loudest excursion either side carries). Pure.
12
+ */
13
+ export declare function computeWaveformPeaks(channels: ReadonlyArray<Float32Array>, sampleRate: number, peaksPerSecond?: number): WaveformPeaks;
14
+ /**
15
+ * Fetch + decode an audio (or video-with-audio) URL and compute its
16
+ * waveform peaks. Cached per (url, peaksPerSecond) — clip tiles and
17
+ * the timeline share one decode. Requires a browser AudioContext
18
+ * (pass one to share; a throwaway OfflineAudioContext is used
19
+ * otherwise).
20
+ */
21
+ export declare function extractWaveformPeaks(url: string, options?: {
22
+ peaksPerSecond?: number;
23
+ audioContext?: AudioContext;
24
+ }): Promise<WaveformPeaks>;
25
+ //# sourceMappingURL=waveform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waveform.d.ts","sourceRoot":"","sources":["../src/waveform.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,KAAK,EAAE,YAAY,CAAC;IACpB,mCAAmC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EACrC,UAAU,EAAE,MAAM,EAClB,cAAc,SAAK,GAClB,aAAa,CA0Bf;AAID;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,YAAY,CAAA;CAAO,GACrE,OAAO,CAAC,aAAa,CAAC,CAyBxB"}
@@ -0,0 +1,76 @@
1
+ // Waveform peak extraction — the editor's clip waveforms and asset
2
+ // tiles need real min/max peaks, not the dashboard's procedural mock.
3
+ //
4
+ // Split in two so the math is probe-able in Node:
5
+ // computeWaveformPeaks — pure: Float32Array channels → peak pairs
6
+ // extractWaveformPeaks — browser: fetch + decodeAudioData + compute,
7
+ // cached per (url, peaksPerSecond)
8
+ /**
9
+ * Min/max peak pairs over the mixdown of `channels` (peak across
10
+ * channels — the loudest excursion either side carries). Pure.
11
+ */
12
+ export function computeWaveformPeaks(channels, sampleRate, peaksPerSecond = 50) {
13
+ const frames = channels.length > 0 ? channels[0].length : 0;
14
+ const pps = Math.max(1, peaksPerSecond);
15
+ const samplesPerBucket = Math.max(1, sampleRate / pps);
16
+ const bucketCount = Math.max(1, Math.ceil(frames / samplesPerBucket));
17
+ const peaks = new Float32Array(bucketCount * 2);
18
+ for (let b = 0; b < bucketCount; b++) {
19
+ const start = Math.floor(b * samplesPerBucket);
20
+ const end = Math.min(frames, Math.floor((b + 1) * samplesPerBucket));
21
+ let min = 0;
22
+ let max = 0;
23
+ for (const ch of channels) {
24
+ for (let i = start; i < end; i++) {
25
+ const v = ch[i];
26
+ if (v < min)
27
+ min = v;
28
+ if (v > max)
29
+ max = v;
30
+ }
31
+ }
32
+ peaks[b * 2] = min;
33
+ peaks[b * 2 + 1] = max;
34
+ }
35
+ return {
36
+ peaks,
37
+ peaksPerSecond: pps,
38
+ duration: sampleRate > 0 ? frames / sampleRate : 0,
39
+ };
40
+ }
41
+ const peakCache = new Map();
42
+ /**
43
+ * Fetch + decode an audio (or video-with-audio) URL and compute its
44
+ * waveform peaks. Cached per (url, peaksPerSecond) — clip tiles and
45
+ * the timeline share one decode. Requires a browser AudioContext
46
+ * (pass one to share; a throwaway OfflineAudioContext is used
47
+ * otherwise).
48
+ */
49
+ export function extractWaveformPeaks(url, options = {}) {
50
+ const pps = options.peaksPerSecond ?? 50;
51
+ const key = `${url}::${pps}`;
52
+ const cached = peakCache.get(key);
53
+ if (cached)
54
+ return cached;
55
+ const job = (async () => {
56
+ const res = await fetch(url);
57
+ if (!res.ok)
58
+ throw new Error(`waveform fetch failed (${res.status}) for ${url}`);
59
+ const bytes = await res.arrayBuffer();
60
+ // decodeAudioData needs a context; OfflineAudioContext avoids
61
+ // spinning up an audio output thread for a pure decode.
62
+ const ctx = options.audioContext ?? new OfflineAudioContext(1, 1, 44100);
63
+ const buffer = await ctx.decodeAudioData(bytes);
64
+ const channels = [];
65
+ for (let c = 0; c < buffer.numberOfChannels; c++) {
66
+ channels.push(buffer.getChannelData(c));
67
+ }
68
+ return computeWaveformPeaks(channels, buffer.sampleRate, pps);
69
+ })();
70
+ // Drop failed jobs from the cache so a transient fetch error doesn't
71
+ // poison the URL forever.
72
+ peakCache.set(key, job);
73
+ job.catch(() => peakCache.delete(key));
74
+ return job;
75
+ }
76
+ //# sourceMappingURL=waveform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waveform.js","sourceRoot":"","sources":["../src/waveform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ import type { Source } from '@clipkit/protocol';
2
+ import type { Backend } from './types.js';
3
+ export interface InitMessage {
4
+ type: 'init';
5
+ source: Source;
6
+ backend: Backend;
7
+ }
8
+ export interface SetSourceMessage {
9
+ type: 'setSource';
10
+ source: Source;
11
+ sequenceId: number;
12
+ }
13
+ /**
14
+ * Apply a partial patch to one or more elements in the worker's
15
+ * already-loaded source. Significantly cheaper than re-sending the
16
+ * full source on every drag tick — no asset preload, no audio
17
+ * scheduling, no big postMessage payload. Used by the editor's live
18
+ * drag/resize/rotate dispatches.
19
+ *
20
+ * Patches are applied via Object.assign to the existing elements.
21
+ * Elements not present in the patch list are left untouched. Patches
22
+ * are intended for visual/spatial fields only — time, track, duration,
23
+ * asset URL changes should still go through `setSource`.
24
+ */
25
+ export interface PatchElementsMessage {
26
+ type: 'patchElements';
27
+ patches: ReadonlyArray<{
28
+ id: string;
29
+ patch: Record<string, unknown>;
30
+ }>;
31
+ sequenceId: number;
32
+ }
33
+ export interface ProduceMessage {
34
+ type: 'produce';
35
+ /** Composition time, in seconds. */
36
+ time: number;
37
+ /** Bumped by main on every seek / setSource. Echoed back in the frame. */
38
+ sequenceId: number;
39
+ /**
40
+ * 'realtime' (default) renders a single sample — the playback path.
41
+ * 'final' additionally applies source-level motion blur (§2.1
42
+ * supersampling); the engine requests it once the playhead has
43
+ * settled while paused, so scrubbing shows export-accurate frames.
44
+ */
45
+ quality?: 'realtime' | 'final';
46
+ }
47
+ /**
48
+ * One decoded video frame for a `video` element's source URL, pushed
49
+ * from the main thread. Workers can't create HTMLVideoElement, so the
50
+ * engine owns the decoding `<video>` elements and pumps ImageBitmaps
51
+ * here (transferred, zero-copy). The worker hands each bitmap to
52
+ * `runtime.pushExternalVideoFrame()`, which uploads it into the texture
53
+ * the video renderer samples.
54
+ *
55
+ * Preview-grade sync: frames are pumped live against the transport
56
+ * clock, not seeked per composition frame — a buffered look-ahead frame
57
+ * renders with the most recently pumped bitmap. Export uses the
58
+ * deterministic per-frame seek path instead.
59
+ */
60
+ export interface VideoFrameMessage {
61
+ type: 'videoFrame';
62
+ url: string;
63
+ bitmap: ImageBitmap;
64
+ }
65
+ /**
66
+ * Render ONE export-quality still at `time` and return it as an
67
+ * ImageBitmap (editor thumbnails, filmstrips, scrub-hover previews).
68
+ * Serialized behind produce work; `width` downscales preserving the
69
+ * aspect ratio so thumbnail transfers stay cheap.
70
+ */
71
+ export interface StillMessage {
72
+ type: 'still';
73
+ time: number;
74
+ requestId: number;
75
+ width?: number;
76
+ }
77
+ export interface DisposeMessage {
78
+ type: 'dispose';
79
+ }
80
+ export type MainToWorkerMessage = InitMessage | SetSourceMessage | PatchElementsMessage | ProduceMessage | StillMessage | VideoFrameMessage | DisposeMessage;
81
+ export type ActiveBackend = 'webgpu' | 'webgl2';
82
+ export interface ReadyMessage {
83
+ type: 'ready';
84
+ activeApi: ActiveBackend;
85
+ width: number;
86
+ height: number;
87
+ /**
88
+ * Worker's `performance.timeOrigin` — Unix-ish ms since epoch.
89
+ * Main subtracts this from its own `performance.timeOrigin` to
90
+ * compute the offset needed to convert worker `performance.now()`
91
+ * values into main's clock. Workers don't share a time origin
92
+ * with their parent — each gets its own at creation time.
93
+ */
94
+ timeOrigin: number;
95
+ }
96
+ export interface FrameMessage {
97
+ type: 'frame';
98
+ time: number;
99
+ sequenceId: number;
100
+ /** Transferred — neutered on the worker side after postMessage. */
101
+ frame: VideoFrame;
102
+ /**
103
+ * Optional worker-side timing breakdown (ms). Used by the in-app
104
+ * diagnostic HUD to attribute the render budget to runtime.frame
105
+ * vs the VideoFrame readback vs everything else. Worker-only; the
106
+ * engine aggregates these in sliding windows.
107
+ */
108
+ timings?: {
109
+ /** ms spent in runtime.frame(time). */
110
+ frameMs: number;
111
+ /** ms spent decoding/uploading video frames (prepareVideoFrames). */
112
+ prepareMs: number;
113
+ /** Motion-blur samples used for this frame (0 = unblurred path). */
114
+ blurSamples: number;
115
+ /** ms spent constructing the VideoFrame from the OffscreenCanvas. */
116
+ videoFrameMs: number;
117
+ /**
118
+ * Full handleProduce duration including the postMessage call.
119
+ * If this is much larger than (frameMs + videoFrameMs), the
120
+ * postMessage / structured-clone-transfer step is the cost.
121
+ */
122
+ workerTotalMs: number;
123
+ /**
124
+ * performance.now() inside the worker right before postMessage.
125
+ * The main thread compares against its receive time to compute
126
+ * cross-thread queue lag — DOMHighResTimeStamp shares its time
127
+ * origin with the parent, so the subtraction is valid.
128
+ */
129
+ sentAt: number;
130
+ };
131
+ }
132
+ export interface ErrorMessage {
133
+ type: 'error';
134
+ message: string;
135
+ }
136
+ export interface StillResultMessage {
137
+ type: 'stillResult';
138
+ requestId: number;
139
+ time: number;
140
+ /** Transferred — neutered on the worker side after postMessage. */
141
+ bitmap: ImageBitmap;
142
+ }
143
+ export interface StillErrorMessage {
144
+ type: 'stillError';
145
+ requestId: number;
146
+ message: string;
147
+ }
148
+ /**
149
+ * Video URLs the worker could NOT set up for self-decoding (non-MP4
150
+ * container, unsupported codec, or no WebCodecs). Sent after every
151
+ * init / setSource preload. The engine builds its main-thread frame
152
+ * pump for exactly these URLs; an empty list tears the pump down.
153
+ */
154
+ export interface VideoFallbackMessage {
155
+ type: 'videoFallback';
156
+ urls: string[];
157
+ }
158
+ export type WorkerToMainMessage = ReadyMessage | FrameMessage | StillResultMessage | StillErrorMessage | ErrorMessage | VideoFallbackMessage;
159
+ //# sourceMappingURL=worker-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-protocol.d.ts","sourceRoot":"","sources":["../src/worker-protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ // Shared message types between the engine (main thread) and the
2
+ // frame-producer worker. Both ends import this file so the protocol
3
+ // is a single source of truth.
4
+ //
5
+ // Protocol shape:
6
+ //
7
+ // Main → Worker
8
+ // init — boot the runtime, load the first source
9
+ // setSource — swap to a new source mid-flight (caller bumps sequenceId)
10
+ // produce — render one frame at composition time `time`
11
+ // dispose — release resources, terminate
12
+ //
13
+ // Worker → Main
14
+ // ready — runtime is initialized; reports active backend + dims
15
+ // frame — one rendered VideoFrame, tagged with its sequenceId
16
+ // error — anything that went wrong post-init
17
+ //
18
+ // Stale-frame handling: the main thread bumps `sequenceId` on every
19
+ // seek / setSource. Worker doesn't track cancellation — it always
20
+ // finishes the frame it's working on and posts it back. Main discards
21
+ // frames whose `sequenceId` doesn't match the current one. Simpler than
22
+ // in-worker queue cancellation; the cost is one or two wasted renders.
23
+ export {};
24
+ //# sourceMappingURL=worker-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-protocol.js","sourceRoot":"","sources":["../src/worker-protocol.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,oEAAoE;AACpE,+BAA+B;AAC/B,EAAE;AACF,kBAAkB;AAClB,EAAE;AACF,kBAAkB;AAClB,4DAA4D;AAC5D,8EAA8E;AAC9E,gEAAgE;AAChE,iDAAiD;AACjD,EAAE;AACF,kBAAkB;AAClB,0EAA0E;AAC1E,wEAAwE;AACxE,uDAAuD;AACvD,EAAE;AACF,oEAAoE;AACpE,kEAAkE;AAClE,sEAAsE;AACtE,wEAAwE;AACxE,uEAAuE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":""}