supervision 0.1.7 → 0.2.0-next.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.
- package/dist/detections/chunked-detection-frame-source.d.ts.map +1 -1
- package/dist/index.d.ts +11 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8856 -4559
- package/dist/index.js.map +1 -1
- package/dist/mask-preparation.worker.js +310 -164
- package/dist/mask-preparation.worker.js.map +1 -1
- package/dist/media/display-pixel-ratio.d.ts +15 -0
- package/dist/media/display-pixel-ratio.d.ts.map +1 -0
- package/dist/media/engine-import-failure.d.ts +16 -0
- package/dist/media/engine-import-failure.d.ts.map +1 -0
- package/dist/media/media-condition-probe.d.ts +51 -0
- package/dist/media/media-condition-probe.d.ts.map +1 -0
- package/dist/media/media-conditions.d.ts +28 -0
- package/dist/media/media-conditions.d.ts.map +1 -0
- package/dist/media/media-errors.d.ts +6 -0
- package/dist/media/media-errors.d.ts.map +1 -1
- package/dist/media/media-normalization.d.ts.map +1 -1
- package/dist/media/media-probe.d.ts.map +1 -1
- package/dist/media/media-source.d.ts +17 -0
- package/dist/media/media-source.d.ts.map +1 -1
- package/dist/media/mediabunny-media-source.d.ts.map +1 -1
- package/dist/media/video-engine-media-source.d.ts +44 -0
- package/dist/media/video-engine-media-source.d.ts.map +1 -0
- package/dist/render-preparation/mask-frame-artifact.d.ts +46 -12
- package/dist/render-preparation/mask-frame-artifact.d.ts.map +1 -1
- package/dist/render-preparation/mask-frame-compositor.d.ts +5 -5
- package/dist/render-preparation/mask-frame-compositor.d.ts.map +1 -1
- package/dist/render-preparation/mask-frame-preparer.d.ts.map +1 -1
- package/dist/render-preparation/mask-preparation-worker-count.d.ts +4 -4
- package/dist/render-preparation/mask-preparation-worker-protocol.d.ts +12 -3
- package/dist/render-preparation/mask-preparation-worker-protocol.d.ts.map +1 -1
- package/dist/render-preparation/prepared-render-window.d.ts +23 -0
- package/dist/render-preparation/prepared-render-window.d.ts.map +1 -1
- package/dist/render-preparation/prepared-window-timeline.d.ts +2 -6
- package/dist/render-preparation/prepared-window-timeline.d.ts.map +1 -1
- package/dist/renderers/mask-palette.d.ts +14 -0
- package/dist/renderers/mask-palette.d.ts.map +1 -0
- package/dist/renderers/mask-vertex.d.ts +14 -0
- package/dist/renderers/mask-vertex.d.ts.map +1 -0
- package/dist/renderers/media-renderer-core.d.ts.map +1 -1
- package/dist/renderers/media-renderer-scene.d.ts +37 -0
- package/dist/renderers/media-renderer-scene.d.ts.map +1 -1
- package/dist/renderers/media-renderer-state.d.ts +11 -1
- package/dist/renderers/media-renderer-state.d.ts.map +1 -1
- package/dist/renderers/media-renderer-transport.d.ts +59 -0
- package/dist/renderers/media-renderer-transport.d.ts.map +1 -0
- package/dist/renderers/pixi-box-layer.d.ts +5 -0
- package/dist/renderers/pixi-box-layer.d.ts.map +1 -1
- package/dist/renderers/pixi-focus-layer.d.ts +18 -2
- package/dist/renderers/pixi-focus-layer.d.ts.map +1 -1
- package/dist/renderers/pixi-frame-present.d.ts +77 -0
- package/dist/renderers/pixi-frame-present.d.ts.map +1 -0
- package/dist/renderers/pixi-id-mask-shader.d.ts +12 -2
- package/dist/renderers/pixi-id-mask-shader.d.ts.map +1 -1
- package/dist/renderers/pixi-interaction-layer.d.ts.map +1 -1
- package/dist/renderers/pixi-interaction-presentation-layer.d.ts +13 -2
- package/dist/renderers/pixi-interaction-presentation-layer.d.ts.map +1 -1
- package/dist/renderers/pixi-mask-halo.d.ts +24 -0
- package/dist/renderers/pixi-mask-halo.d.ts.map +1 -1
- package/dist/renderers/pixi-mask-layer.d.ts +71 -8
- package/dist/renderers/pixi-mask-layer.d.ts.map +1 -1
- package/dist/renderers/pixi-media-scene.d.ts +67 -0
- package/dist/renderers/pixi-media-scene.d.ts.map +1 -1
- package/dist/renderers/pixi-polygon-layer.d.ts +7 -2
- package/dist/renderers/pixi-polygon-layer.d.ts.map +1 -1
- package/dist/renderers/pixi-region-coverage-mask.d.ts +91 -0
- package/dist/renderers/pixi-region-coverage-mask.d.ts.map +1 -0
- package/dist/renderers/pixi-region-effect.d.ts +42 -0
- package/dist/renderers/pixi-region-effect.d.ts.map +1 -0
- package/dist/renderers/pixi-region-layer.d.ts +68 -2
- package/dist/renderers/pixi-region-layer.d.ts.map +1 -1
- package/dist/renderers/pixi-vector-layer.d.ts.map +1 -1
- package/dist/renderers/prepared-annotation-window.d.ts +47 -0
- package/dist/renderers/prepared-annotation-window.d.ts.map +1 -0
- package/dist/renderers/presented-frame-channel.d.ts +107 -0
- package/dist/renderers/presented-frame-channel.d.ts.map +1 -0
- package/dist/renderers/scene-render-scheduler.d.ts +20 -0
- package/dist/renderers/scene-render-scheduler.d.ts.map +1 -0
- package/dist/sessions/media-session-defaults.d.ts +10 -6
- package/dist/sessions/media-session-defaults.d.ts.map +1 -1
- package/dist/sessions/media-session-media.d.ts.map +1 -1
- package/dist/sessions/media-session-state.d.ts.map +1 -1
- package/dist/sessions/media-session.d.ts.map +1 -1
- package/dist/tracking.worker.js +58 -3
- package/dist/tracking.worker.js.map +1 -1
- package/dist/types/media-conditions.d.ts +149 -0
- package/dist/types/media-conditions.d.ts.map +1 -0
- package/dist/types/media-normalization.d.ts +34 -0
- package/dist/types/media-normalization.d.ts.map +1 -1
- package/dist/types/media-renderer.d.ts +31 -1
- package/dist/types/media-renderer.d.ts.map +1 -1
- package/dist/types/media-session.d.ts +89 -8
- package/dist/types/media-session.d.ts.map +1 -1
- package/dist/types/render-preparation.d.ts +101 -4
- package/dist/types/render-preparation.d.ts.map +1 -1
- package/dist/web-video-engine/analysis-session.d.ts +76 -0
- package/dist/web-video-engine/analysis-session.d.ts.map +1 -0
- package/dist/web-video-engine/analysis.d.ts +7 -0
- package/dist/web-video-engine/analysis.d.ts.map +1 -0
- package/dist/web-video-engine/analysis.js +1678 -0
- package/dist/web-video-engine/analysis.js.map +1 -0
- package/dist/web-video-engine/cache-budget.d.ts +19 -0
- package/dist/web-video-engine/cache-budget.d.ts.map +1 -0
- package/dist/web-video-engine/canvas-sink-scrub-cursor.d.ts +90 -0
- package/dist/web-video-engine/canvas-sink-scrub-cursor.d.ts.map +1 -0
- package/dist/web-video-engine/clock.d.ts +83 -0
- package/dist/web-video-engine/clock.d.ts.map +1 -0
- package/dist/web-video-engine/constants.d.ts +253 -0
- package/dist/web-video-engine/constants.d.ts.map +1 -0
- package/dist/web-video-engine/create-scrub-cursor.d.ts +62 -0
- package/dist/web-video-engine/create-scrub-cursor.d.ts.map +1 -0
- package/dist/web-video-engine/decode-resolution.d.ts +115 -0
- package/dist/web-video-engine/decode-resolution.d.ts.map +1 -0
- package/dist/web-video-engine/decode-scheduler.d.ts +356 -0
- package/dist/web-video-engine/decode-scheduler.d.ts.map +1 -0
- package/dist/web-video-engine/decode-session.d.ts +276 -0
- package/dist/web-video-engine/decode-session.d.ts.map +1 -0
- package/dist/web-video-engine/decode-source.d.ts +250 -0
- package/dist/web-video-engine/decode-source.d.ts.map +1 -0
- package/dist/web-video-engine/diagnostics-store.d.ts +18 -0
- package/dist/web-video-engine/diagnostics-store.d.ts.map +1 -0
- package/dist/web-video-engine/diagnostics.d.ts +316 -0
- package/dist/web-video-engine/diagnostics.d.ts.map +1 -0
- package/dist/web-video-engine/embedded-engine-worker.d.ts +2 -0
- package/dist/web-video-engine/embedded-engine-worker.d.ts.map +1 -0
- package/dist/web-video-engine/engine-core.d.ts +258 -0
- package/dist/web-video-engine/engine-core.d.ts.map +1 -0
- package/dist/web-video-engine/engine.d.ts +26 -0
- package/dist/web-video-engine/engine.d.ts.map +1 -0
- package/dist/web-video-engine/engine.js +873 -0
- package/dist/web-video-engine/engine.js.map +1 -0
- package/dist/web-video-engine/engine.worker.d.ts +2 -0
- package/dist/web-video-engine/engine.worker.d.ts.map +1 -0
- package/dist/web-video-engine/engine.worker.js +31320 -0
- package/dist/web-video-engine/engine.worker.js.map +1 -0
- package/dist/web-video-engine/frame-cache.d.ts +129 -0
- package/dist/web-video-engine/frame-cache.d.ts.map +1 -0
- package/dist/web-video-engine/frame-extractor.d.ts +28 -0
- package/dist/web-video-engine/frame-extractor.d.ts.map +1 -0
- package/dist/web-video-engine/frame-timeline-GINI8Gum.js +560 -0
- package/dist/web-video-engine/frame-timeline-GINI8Gum.js.map +1 -0
- package/dist/web-video-engine/frame-timeline.d.ts +71 -0
- package/dist/web-video-engine/frame-timeline.d.ts.map +1 -0
- package/dist/web-video-engine/frame-walker.d.ts +74 -0
- package/dist/web-video-engine/frame-walker.d.ts.map +1 -0
- package/dist/web-video-engine/index.d.ts +3 -0
- package/dist/web-video-engine/index.d.ts.map +1 -0
- package/dist/web-video-engine/index.js +3 -0
- package/dist/web-video-engine/index.js.map +1 -0
- package/dist/web-video-engine/key-packet.d.ts +65 -0
- package/dist/web-video-engine/key-packet.d.ts.map +1 -0
- package/dist/web-video-engine/keyframe-index.d.ts +91 -0
- package/dist/web-video-engine/keyframe-index.d.ts.map +1 -0
- package/dist/web-video-engine/mirror-store.d.ts +56 -0
- package/dist/web-video-engine/mirror-store.d.ts.map +1 -0
- package/dist/web-video-engine/renderer.d.ts +94 -0
- package/dist/web-video-engine/renderer.d.ts.map +1 -0
- package/dist/web-video-engine/rotation.d.ts +35 -0
- package/dist/web-video-engine/rotation.d.ts.map +1 -0
- package/dist/web-video-engine/scrub-controller.d.ts +376 -0
- package/dist/web-video-engine/scrub-controller.d.ts.map +1 -0
- package/dist/web-video-engine/scrub-cursor.d.ts +342 -0
- package/dist/web-video-engine/scrub-cursor.d.ts.map +1 -0
- package/dist/web-video-engine/scrub-trajectory.d.ts +30 -0
- package/dist/web-video-engine/scrub-trajectory.d.ts.map +1 -0
- package/dist/web-video-engine/source-residency.d.ts +57 -0
- package/dist/web-video-engine/source-residency.d.ts.map +1 -0
- package/dist/web-video-engine/trace-recorder.d.ts +164 -0
- package/dist/web-video-engine/trace-recorder.d.ts.map +1 -0
- package/dist/web-video-engine/types.d.ts +204 -0
- package/dist/web-video-engine/types.d.ts.map +1 -0
- package/dist/web-video-engine/video-engine.d.ts +426 -0
- package/dist/web-video-engine/video-engine.d.ts.map +1 -0
- package/dist/web-video-engine/webgpu-renderer.d.ts +62 -0
- package/dist/web-video-engine/webgpu-renderer.d.ts.map +1 -0
- package/dist/web-video-engine/worker-bridge.d.ts +12 -0
- package/dist/web-video-engine/worker-bridge.d.ts.map +1 -0
- package/dist/web-video-engine/worker-dispatch.d.ts +17 -0
- package/dist/web-video-engine/worker-dispatch.d.ts.map +1 -0
- package/dist/web-video-engine/worker-protocol.d.ts +267 -0
- package/dist/web-video-engine/worker-protocol.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/detections/buffered-detection-timeline.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/detections/composite-detection-frame-source.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/index.d.ts +4 -3
- package/node_modules/supervision-js-core/dist/index.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/index.js +1075 -266
- package/node_modules/supervision-js-core/dist/index.js.map +1 -1
- package/node_modules/supervision-js-core/dist/styles/default-annotation-presentation.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/styles/interaction-style.d.ts +4 -36
- package/node_modules/supervision-js-core/dist/styles/interaction-style.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/styles/polyline-style.d.ts +5 -0
- package/node_modules/supervision-js-core/dist/styles/polyline-style.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/types/annotation-renderer.d.ts +92 -7
- package/node_modules/supervision-js-core/dist/types/annotation-renderer.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/types/detection-timeline.d.ts +179 -17
- package/node_modules/supervision-js-core/dist/types/detection-timeline.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/types/media-rendering.d.ts +78 -2
- package/node_modules/supervision-js-core/dist/types/media-rendering.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/types/polyline-style.d.ts +2 -0
- package/node_modules/supervision-js-core/dist/types/polyline-style.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/types/session-lifecycle.d.ts +16 -0
- package/node_modules/supervision-js-core/dist/types/session-lifecycle.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/utils/detection-conversions.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/utils/detection-frames.d.ts +5 -0
- package/node_modules/supervision-js-core/dist/utils/detection-frames.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/utils/detection-masks.d.ts +9 -0
- package/node_modules/supervision-js-core/dist/utils/detection-masks.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/utils/detection-ranges.d.ts +18 -0
- package/node_modules/supervision-js-core/dist/utils/detection-ranges.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/utils/id-mask-frame.d.ts +15 -2
- package/node_modules/supervision-js-core/dist/utils/id-mask-frame.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/utils/wait-bound.d.ts +7 -0
- package/node_modules/supervision-js-core/dist/utils/wait-bound.d.ts.map +1 -0
- package/package.json +22 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis.js","sources":["../src/key-packet.ts","../src/rotation.ts","../src/decode-session.ts","../src/scrub-cursor.ts","../src/decode-source.ts","../src/keyframe-index.ts","../src/analysis-session.ts","../src/frame-extractor.ts","../src/frame-walker.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface CacheBudgets {
|
|
2
|
+
readonly exactBudgetBytes: number;
|
|
3
|
+
readonly previewCapacity: number;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Sizes both cache tiers to the device's reported RAM and the frame size.
|
|
7
|
+
*
|
|
8
|
+
* The exact tier holds a working set the access pattern fixes in frames, the
|
|
9
|
+
* scrub prefetch window, so its slot floor survives any frame size and the RAM
|
|
10
|
+
* band adds speculative slots on top only while a slot stays cheap. An 8MP
|
|
11
|
+
* source lands on the floor and keeps nothing speculative, which is what holds
|
|
12
|
+
* its resident footprint down; coverage past the window comes from the preview
|
|
13
|
+
* tier at a 79th of the cost per slot. That tier has no working set to protect,
|
|
14
|
+
* so its count is purely its byte budget over the downscaled frame size, which
|
|
15
|
+
* gives a square 8MP source enough coarse history without over-allocating for a
|
|
16
|
+
* small 16:9 one.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveCacheBudgets(decodeWidth: number, decodeHeight: number, previewWidth: number): CacheBudgets;
|
|
19
|
+
//# sourceMappingURL=cache-budget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-budget.d.ts","sourceRoot":"","sources":["../src/cache-budget.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,YAAY,CAyBd"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { type AnySourceHandle } from "./decode-source";
|
|
2
|
+
import type { FrameId } from "./frame-timeline";
|
|
3
|
+
import { type ScrubCursor, ScrubCursorState, type ScrubFrame, type ScrubFrameListener, type ScrubTrackInfo } from "./scrub-cursor";
|
|
4
|
+
import { type Sec } from "./types";
|
|
5
|
+
/**
|
|
6
|
+
* Uncached cursor seam: a thin latest-wins queue and play-mode forward iterator
|
|
7
|
+
* over an opened decode source. This is the cacheStrategy "none" backend, kept
|
|
8
|
+
* for consumers that do not want the scheduler's memory footprint.
|
|
9
|
+
*
|
|
10
|
+
* Random-access seeks ride the provider's getFrame(t), which does the keyframe
|
|
11
|
+
* walk and GOP decode internally. Forward playback uses frames(start) as a
|
|
12
|
+
* streaming iterator, alive only between attachPlay and detachPlay so a paused
|
|
13
|
+
* cursor never holds a decoder pipeline open.
|
|
14
|
+
*
|
|
15
|
+
* On the canvas source it emits CanvasScrubFrame; on the zero-copy sample source
|
|
16
|
+
* a fresh decode emits SampleScrubFrame, whose close the controller owns after
|
|
17
|
+
* paint. With no cache this cursor never blits a sample, so every fresh sample
|
|
18
|
+
* is handed straight to the consumer.
|
|
19
|
+
*
|
|
20
|
+
* Coalescing: seekTo/seekToKey overwrite pendingSeekTargetS; drainSeek processes
|
|
21
|
+
* only the latest target after the in-flight one settles, so a burst of scrub
|
|
22
|
+
* seeks collapses to the most recent.
|
|
23
|
+
*/
|
|
24
|
+
export declare class CanvasSinkScrubCursor implements ScrubCursor {
|
|
25
|
+
private readonly provider;
|
|
26
|
+
private readonly trackInfo;
|
|
27
|
+
private readonly disposeSource;
|
|
28
|
+
/**
|
|
29
|
+
* Forward-playback iterator. Lives only between attachPlay and detachPlay so
|
|
30
|
+
* a paused cursor never holds a decoder pipeline open.
|
|
31
|
+
*/
|
|
32
|
+
private iterator;
|
|
33
|
+
/**
|
|
34
|
+
* Serializes next() calls. AsyncGenerator iterators are single-consumer;
|
|
35
|
+
* without this chain a rAF tick racing a backup pull could double-advance
|
|
36
|
+
* and emit duplicate frames.
|
|
37
|
+
*/
|
|
38
|
+
private nextInFlight;
|
|
39
|
+
private nextPending;
|
|
40
|
+
private currentState;
|
|
41
|
+
private readonly listeners;
|
|
42
|
+
private idleResolvers;
|
|
43
|
+
private settleResolvers;
|
|
44
|
+
private pendingSeekTargetS;
|
|
45
|
+
private pendingSeekKeyOnly;
|
|
46
|
+
private seekDraining;
|
|
47
|
+
private closed;
|
|
48
|
+
private lastEmittedFrame;
|
|
49
|
+
constructor(source: AnySourceHandle);
|
|
50
|
+
get state(): ScrubCursorState;
|
|
51
|
+
get track(): ScrubTrackInfo;
|
|
52
|
+
get isIdle(): boolean;
|
|
53
|
+
open(): Promise<void>;
|
|
54
|
+
/** No cache to read; the scheduler is the caching backend. */
|
|
55
|
+
peekCached(): ScrubFrame | null;
|
|
56
|
+
/**
|
|
57
|
+
* Decodes one named frame of the source and emits it.
|
|
58
|
+
*
|
|
59
|
+
* The retrieval is at-or-before a time the frame table produced, and the
|
|
60
|
+
* demuxer normalises that back to the same integer tick it came from, so it
|
|
61
|
+
* lands on that frame and no other. Nothing here walks, compares or skips,
|
|
62
|
+
* so a step across a frame boundary needs no epsilon.
|
|
63
|
+
*/
|
|
64
|
+
seekToFrame(frame: FrameId): Promise<ScrubFrame | null>;
|
|
65
|
+
seekTo(timestamp: Sec): void;
|
|
66
|
+
/**
|
|
67
|
+
* getFrame(t) lands at or before t, which is the keyframe-or-earlier
|
|
68
|
+
* semantics seekToKey implies. The emitted frame is marked as a keyframe
|
|
69
|
+
* result via the keyOnly flag.
|
|
70
|
+
*/
|
|
71
|
+
seekToKey(timestamp: Sec): void;
|
|
72
|
+
/** Floors a seek target to the track's first timestamp. A seek below the
|
|
73
|
+
* origin (an offset/trimmed clip) has no sample to land on, so it would
|
|
74
|
+
* emit nothing; clamping lands it on the first frame instead. */
|
|
75
|
+
private clampToOrigin;
|
|
76
|
+
attachPlay(startS: number): void;
|
|
77
|
+
detachPlay(): void;
|
|
78
|
+
next(): void;
|
|
79
|
+
idle(): Promise<void>;
|
|
80
|
+
seekSettled(): Promise<void>;
|
|
81
|
+
subscribe(listener: ScrubFrameListener): () => void;
|
|
82
|
+
close(): Promise<void>;
|
|
83
|
+
private drainSeek;
|
|
84
|
+
private runSeek;
|
|
85
|
+
private pullForwardOne;
|
|
86
|
+
private emitFrame;
|
|
87
|
+
private flushIdleResolvers;
|
|
88
|
+
private flushSettleResolvers;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=canvas-sink-scrub-cursor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas-sink-scrub-cursor.d.ts","sourceRoot":"","sources":["../src/canvas-sink-scrub-cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,KAAK,WAAW,EAChB,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAS,KAAK,GAAG,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,qBAAsB,YAAW,WAAW;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAEpD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAA4D;IAC5E;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAA2B;gBAEvC,MAAM,EAAE,eAAe;IAMnC,IAAI,KAAK,IAAI,gBAAgB,CAE5B;IACD,IAAI,KAAK,IAAI,cAAc,CAE1B;IACD,IAAI,MAAM,IAAI,OAAO,CAOpB;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B,8DAA8D;IAC9D,UAAU,IAAI,UAAU,GAAG,IAAI;IAI/B;;;;;;;OAOG;IACG,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAU7D,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAM5B;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAM/B;;sEAEkE;IAClE,OAAO,CAAC,aAAa;IAIrB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMhC,UAAU,IAAI,IAAI;IAKlB,IAAI,IAAI,IAAI;IAiBZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAU7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAad,SAAS;YAkBT,OAAO;YASP,cAAc;IAc5B,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,oBAAoB;CAK7B"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media clock. Models playback time, NOT wall time. `now()` is frozen while
|
|
3
|
+
* paused and advances at real-time rate while playing. This is the same
|
|
4
|
+
* model the official mediabunny media-player example uses for its playback
|
|
5
|
+
* loop (audioContext.currentTime - audioContextStartTime + playbackTimeAtStart).
|
|
6
|
+
*
|
|
7
|
+
* Engine never imports AudioContext directly. The default PerformanceMediaClock
|
|
8
|
+
* is correct for muted scrubbing; an AudioContextMediaClock is the documented
|
|
9
|
+
* seam for future audio-bearing consumers needing sample-accurate A/V sync.
|
|
10
|
+
*
|
|
11
|
+
* Lifecycle:
|
|
12
|
+
* - play(t?): captures t (default = current media time) as the anchor; from
|
|
13
|
+
* here `now()` advances at wall-clock rate.
|
|
14
|
+
* - pause(): freezes `now()` at its current value. Subsequent reads return
|
|
15
|
+
* that frozen value until play() or seek() runs.
|
|
16
|
+
* - seek(t): sets the anchor to t. If currently playing, time continues to
|
|
17
|
+
* advance from t. If paused, `now()` returns t.
|
|
18
|
+
* - setRate(r): media seconds per wall second from here on. Only the slope
|
|
19
|
+
* changes; where the playhead is does not.
|
|
20
|
+
*/
|
|
21
|
+
export interface MediaClock {
|
|
22
|
+
/** Current media time in seconds. Frozen while paused. */
|
|
23
|
+
now(): number;
|
|
24
|
+
/** Begin advancing from t (default: current value of now()). */
|
|
25
|
+
play(t?: number): void;
|
|
26
|
+
/** Freeze now() at its current value. */
|
|
27
|
+
pause(): void;
|
|
28
|
+
/** Jump to media time t. Subsequent play/pause behavior is preserved. */
|
|
29
|
+
seek(t: number): void;
|
|
30
|
+
/** True iff play() is in effect. */
|
|
31
|
+
readonly playing: boolean;
|
|
32
|
+
/** Media seconds per wall second. Forward only, so always above zero. */
|
|
33
|
+
readonly rate: number;
|
|
34
|
+
/**
|
|
35
|
+
* Changes the slope from now on. Implementations re-anchor on the current
|
|
36
|
+
* media time first, so the elapsed span already accrued keeps the rate it
|
|
37
|
+
* was accrued at and the playhead does not jump.
|
|
38
|
+
*/
|
|
39
|
+
setRate(rate: number): void;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Default wall-clock-driven media clock. Uses performance.now() as the wall
|
|
43
|
+
* source. Suitable for muted scrubbing where A/V sync is not a concern.
|
|
44
|
+
*/
|
|
45
|
+
export declare class PerformanceMediaClock implements MediaClock {
|
|
46
|
+
private mediaTimeAtAnchor;
|
|
47
|
+
private wallTimeAtAnchorMs;
|
|
48
|
+
private _playing;
|
|
49
|
+
private _rate;
|
|
50
|
+
get playing(): boolean;
|
|
51
|
+
get rate(): number;
|
|
52
|
+
now(): number;
|
|
53
|
+
setRate(rate: number): void;
|
|
54
|
+
play(t?: number): void;
|
|
55
|
+
pause(): void;
|
|
56
|
+
seek(t: number): void;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Documented future implementation for audio-bearing consumers needing
|
|
60
|
+
* sample-accurate A/V sync. NOT shipped. Kept as a TSDoc anchor so the
|
|
61
|
+
* seam exists when an audio consumer wires up.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* const ctx = new AudioContext()
|
|
65
|
+
* const clock = new AudioContextMediaClock(ctx)
|
|
66
|
+
* const engine = new EngineCore({ emit, clock })
|
|
67
|
+
*/
|
|
68
|
+
export declare class AudioContextMediaClock implements MediaClock {
|
|
69
|
+
private readonly ctx;
|
|
70
|
+
private mediaTimeAtAnchor;
|
|
71
|
+
private ctxTimeAtAnchor;
|
|
72
|
+
private _playing;
|
|
73
|
+
private _rate;
|
|
74
|
+
constructor(ctx: AudioContext);
|
|
75
|
+
get playing(): boolean;
|
|
76
|
+
get rate(): number;
|
|
77
|
+
now(): number;
|
|
78
|
+
setRate(rate: number): void;
|
|
79
|
+
play(t?: number): void;
|
|
80
|
+
pause(): void;
|
|
81
|
+
seek(t: number): void;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=clock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../src/clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,GAAG,IAAI,MAAM,CAAC;IACd,gEAAgE;IAChE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,yCAAyC;IACzC,KAAK,IAAI,IAAI,CAAC;IACd,yEAAyE;IACzE,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,oCAAoC;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,UAAU;IACtD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAK;IAElB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,GAAG,IAAI,MAAM;IAUb,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAUtB,KAAK,IAAI,IAAI;IAOb,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;CAItB;AAED;;;;;;;;;GASG;AACH,qBAAa,sBAAuB,YAAW,UAAU;IAM3C,OAAO,CAAC,QAAQ,CAAC,GAAG;IALhC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAK;gBAEW,GAAG,EAAE,YAAY;IAI9C,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,GAAG,IAAI,MAAM;IAUb,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAUtB,KAAK,IAAI,IAAI;IAOb,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;CAItB"}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* READ_AHEAD_CANVAS is the playback decode-ahead depth: how many decoded frames
|
|
3
|
+
* the controller keeps queued ahead of the playhead so a decode that overruns a
|
|
4
|
+
* frame interval does not starve the next tick (the cause of stutter even on
|
|
5
|
+
* small, well-encoded clips, where playback otherwise pulls one frame per paint
|
|
6
|
+
* with no cushion). Applies to canvas blits, which are independent and cheap to
|
|
7
|
+
* hold; sample (zero-copy) frames pin a decoder slot each, so the controller
|
|
8
|
+
* keeps those at a depth of one to spare the WebCodecs pool.
|
|
9
|
+
*
|
|
10
|
+
* REANCHOR_STALL_MS is the wall time past which a picture standing still stops
|
|
11
|
+
* being a hitch to work through and becomes a stretch to re-anchor across. Two
|
|
12
|
+
* gaps are measured against it, and they settle in opposite directions.
|
|
13
|
+
*
|
|
14
|
+
* A gap between playing render ticks is a loop nothing was driving, which a
|
|
15
|
+
* hidden tab produces. Nobody was watching, so the clock is the truth and the
|
|
16
|
+
* walk seeks forward onto the playhead.
|
|
17
|
+
*
|
|
18
|
+
* A gap between the walk's deliveries is a pipeline with nothing to show while
|
|
19
|
+
* the loop ran, which a seek onto unbuffered ground produces. The viewer sat
|
|
20
|
+
* through it waiting on a position they asked for, so the frame is the truth
|
|
21
|
+
* and the clock is pulled back onto it. Left to catch up instead, the walk
|
|
22
|
+
* replays the whole wait at decode speed on its way to the playhead: measured
|
|
23
|
+
* against the deployed demo over six seeks, a mean 2.4x for a second, peaking
|
|
24
|
+
* at 24x, with 44 source frames flashed past.
|
|
25
|
+
*
|
|
26
|
+
* Wall time is the reading in both, so a high rate legitimately moving the
|
|
27
|
+
* media clock several frames per gap is not read as an absence.
|
|
28
|
+
*
|
|
29
|
+
* Half a second is where the tick-gap costs cross at 1x. A backlog costs one
|
|
30
|
+
* decode per source frame in it, measured at 240 frames a second on the 30fps
|
|
31
|
+
* demo clip (4.2ms each), against a keyframe-anchored seek at p95 47ms on the
|
|
32
|
+
* same clip: half a second of 30fps backlog is 15 frames, so 63ms of decode
|
|
33
|
+
* against that 47ms, and every higher rate puts more frames in the same gap. It
|
|
34
|
+
* clears the worst legitimate gap of either kind by the same order: a foreground
|
|
35
|
+
* loop leaves a long task or a GC pause to the frame-by-frame path, and forty
|
|
36
|
+
* seconds of network-fed playback of the demo clip held its picture still for at
|
|
37
|
+
* most 51ms.
|
|
38
|
+
*
|
|
39
|
+
* The present cadence is how often playback puts a frame on screen: the rate's
|
|
40
|
+
* whole demand cut to the share of it the machine has been paying for, and never
|
|
41
|
+
* under the source's own frame rate. At a full share the pump declines nothing,
|
|
42
|
+
* which is where a machine with headroom stays at every rate.
|
|
43
|
+
* A step moves the share by PRESENT_CADENCE_STEP, taking a quarter off it when
|
|
44
|
+
* the pipeline has fallen behind the playhead and putting that same quarter back
|
|
45
|
+
* when it has room to spare. The share bottoms out at one over
|
|
46
|
+
* PLAYBACK_RATE.MAX, which is the deepest cut that means anything: below it even
|
|
47
|
+
* the fastest rate asks for less than the source rate the cadence floors at.
|
|
48
|
+
*
|
|
49
|
+
* What takes the share down is a running bill, in frames, between what the clock
|
|
50
|
+
* asked the pipeline for and what the play walk delivered. The bill accumulates
|
|
51
|
+
* rather than being read per tick, which is what tells a shortfall from noise:
|
|
52
|
+
* counting whole frames against a fractional demand leaves every tick out by up
|
|
53
|
+
* to one either way and those cancel, while a machine that cannot sustain the
|
|
54
|
+
* rate falls short every tick and adds up. Measured over 100ms windows on an M3
|
|
55
|
+
* Max at rates 2x to 8x, a pipeline with headroom stayed inside 1.5 frames of
|
|
56
|
+
* its demand either way, so a bill of PRESENT_CADENCE_EVIDENCE_FRAMES frames is
|
|
57
|
+
* one it cannot run up.
|
|
58
|
+
*
|
|
59
|
+
* What puts the share back is the walk holding a frame the clock has not run
|
|
60
|
+
* past, unbroken for the wall time the source takes to produce that many frames.
|
|
61
|
+
* That is the only evidence a pipeline can offer that it has room to spare: a
|
|
62
|
+
* machine at equilibrium delivers exactly what the clock asks for however much
|
|
63
|
+
* headroom it has, so waiting for a surplus in the bill would leave every
|
|
64
|
+
* machine at whatever its worst stretch measured. It is a live reading and the
|
|
65
|
+
* bill is a cumulative one, which is why each takes one direction: ground lost
|
|
66
|
+
* still reads lost once the walk is keeping up again, and catch-up pulls are
|
|
67
|
+
* what carry the walk back onto the playhead.
|
|
68
|
+
*
|
|
69
|
+
* Neither reading is the depth of the decode-ahead queue, which belongs to the
|
|
70
|
+
* decode path and not to the machine: on the zero-copy path, which pins a
|
|
71
|
+
* decoder slot per queued frame and so buffers one, a single frame in hand is
|
|
72
|
+
* full depth and one tick from empty alike.
|
|
73
|
+
*
|
|
74
|
+
* How far behind the machine is therefore sets the pace rather than the size of
|
|
75
|
+
* the step: the bigger the shortfall the sooner the bill reaches that figure and
|
|
76
|
+
* the sooner the next step lands. Zeroing on each step makes the next one gather
|
|
77
|
+
* its own evidence, which is what stops a share sitting at the machine's limit
|
|
78
|
+
* from pulsing.
|
|
79
|
+
*
|
|
80
|
+
* Frames the clock passed, frames the walk delivered and wall time on the
|
|
81
|
+
* playhead: nothing either reading is made of knows what the panel refreshes at,
|
|
82
|
+
* so one machine lands on one cadence on any panel. A faster panel offers more
|
|
83
|
+
* slots and a machine with the headroom fills them; what it cannot do is hold
|
|
84
|
+
* the pump above what the machine pays for, because the share comes down until
|
|
85
|
+
* the pipeline is back on the playhead.
|
|
86
|
+
*
|
|
87
|
+
* PRESENT_CADENCE_SLACK is how far under the interval still counts as a full
|
|
88
|
+
* one. Presents land on display ticks, so a panel refreshing at the ceiling
|
|
89
|
+
* measures each gap as one interval give or take rAF jitter, and an exact
|
|
90
|
+
* comparison would decline every second frame there. A quarter leaves 4.2ms of
|
|
91
|
+
* jitter room at 60Hz.
|
|
92
|
+
*
|
|
93
|
+
* PRESENT_CADENCE_HZ is the demand above which frames the pump culled or
|
|
94
|
+
* declined dominate the dropped-frame ledger, so the discarded-frames rule in
|
|
95
|
+
* evaluateWarnings stands down rather than reading a count it cannot attribute.
|
|
96
|
+
*/
|
|
97
|
+
export declare const PLAYBACK: {
|
|
98
|
+
readonly READ_AHEAD_CANVAS: 3;
|
|
99
|
+
readonly PRESENT_CADENCE_EVIDENCE_FRAMES: 3;
|
|
100
|
+
readonly REANCHOR_STALL_MS: 500;
|
|
101
|
+
readonly PRESENT_CADENCE_STEP: 0.75;
|
|
102
|
+
readonly PRESENT_CADENCE_SLACK: 0.25;
|
|
103
|
+
readonly PRESENT_CADENCE_HZ: 60;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Forward playback-rate range the engine accepts. Reverse playback needs a
|
|
107
|
+
* backwards decode strategy the runtime does not have, so zero and negative
|
|
108
|
+
* rates are refused rather than approximated.
|
|
109
|
+
*
|
|
110
|
+
* MAX is an API bound, not a promise that every source plays smoothly there.
|
|
111
|
+
* Sustaining rate r means decoding r x nativeFps frames a second, and the
|
|
112
|
+
* decode-ahead cushion is fixed at PLAYBACK.READ_AHEAD_CANVAS frames (raising it
|
|
113
|
+
* would outrun the CanvasSink pool and tear), so how high a given source really
|
|
114
|
+
* goes is a property of that source's frame size and encode. The engine measures
|
|
115
|
+
* it instead of guessing: DiagnosticsSnapshot carries the commanded rate beside
|
|
116
|
+
* the presented one, and PLAYBACK_RATE_NOT_SUSTAINED fires when they diverge.
|
|
117
|
+
* SUSTAINED_SHORTFALL is the share of the commanded rate the presented one has
|
|
118
|
+
* to hold to count as sustained.
|
|
119
|
+
*/
|
|
120
|
+
export declare const PLAYBACK_RATE: {
|
|
121
|
+
readonly MIN: 0.25;
|
|
122
|
+
readonly MAX: 8;
|
|
123
|
+
readonly SUSTAINED_SHORTFALL: 0.8;
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* CanvasSink frame-pool size: how many decoded canvases the sink recycles
|
|
127
|
+
* round-robin. The pool has no backpressure (a new decode overwrites the oldest
|
|
128
|
+
* slot rather than blocking), and the playback queue hands the raw pool canvas
|
|
129
|
+
* straight to the painter, so the pool must outnumber every canvas outstanding at
|
|
130
|
+
* once: the full play read-ahead, the one in flight, and the one being painted.
|
|
131
|
+
* Sized below that, a fresh decode stomps the pixels of a still-queued frame
|
|
132
|
+
* before it paints (silent tearing). The cache is unaffected; it copies into its
|
|
133
|
+
* own OffscreenCanvas. Derived from the read-ahead so the two cannot drift.
|
|
134
|
+
*/
|
|
135
|
+
export declare const SCRUB: {
|
|
136
|
+
readonly DEFAULT_POOL_SIZE: number;
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* Bounds on building a track's frame timeline, the presentation-order table of
|
|
140
|
+
* every frame's timestamp in the container's own integer grain.
|
|
141
|
+
*
|
|
142
|
+
* MAX_FRAMES caps the metadata walk that builds it. A 70-second 30fps source
|
|
143
|
+
* walks 2113 packets in a measured 5.7ms; the cap is four hundred times that,
|
|
144
|
+
* which no ordinary file reaches and a fragmented or endless source does. Past
|
|
145
|
+
* it the load fails, so nothing silently runs without frame identity.
|
|
146
|
+
*
|
|
147
|
+
* FALLBACK_TICK_RATE is for a track backing that cannot state its grain. A
|
|
148
|
+
* microsecond is the finest timestamp WebCodecs carries, so no real timestamp is
|
|
149
|
+
* lost at that rate; what is lost is the guarantee that every timestamp is a
|
|
150
|
+
* whole tick.
|
|
151
|
+
*/
|
|
152
|
+
export declare const FRAME_TIMELINE: {
|
|
153
|
+
readonly MAX_FRAMES: 1000000;
|
|
154
|
+
readonly FALLBACK_TICK_RATE: 1000000;
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Tiered frame-cache tunables. Both tiers hold OffscreenCanvas blits, never
|
|
158
|
+
* VideoFrames: a raw-frame cache pins decoder output, stalling the decoder and
|
|
159
|
+
* growing VRAM without bound. The exact tier holds crisp full-resolution frames
|
|
160
|
+
* around the scrub playhead; the preview tier is the coarse downscaled history
|
|
161
|
+
* that answers a scrub anywhere else instantly while a crisp decode lands.
|
|
162
|
+
*
|
|
163
|
+
* Only the exact tier's window is worth holding at full resolution. A crisp
|
|
164
|
+
* frame the playhead has moved off is one re-anchored decode away: on the
|
|
165
|
+
* session path that is a probe plus a walk from the enclosing sync sample,
|
|
166
|
+
* measured at 49ms mean / 80ms worst on a 2840x2840 15fps source, flat in how
|
|
167
|
+
* far the jump travelled. Coverage past the window is worth having, not worth
|
|
168
|
+
* having crisp, so it lives in the preview tier at a 79th of the bytes.
|
|
169
|
+
*
|
|
170
|
+
* resolveCacheBudgets turns these into a per-source budget from
|
|
171
|
+
* navigator.deviceMemory and the decode frame size. A crisp slot costs
|
|
172
|
+
* decodeWidth x decodeHeight x 4 bytes, which spans two orders of magnitude
|
|
173
|
+
* across sources: 0.9MB for a 640x360 decode, 32.3MB for a square 8MP native
|
|
174
|
+
* decode. So a byte figure alone sets the slot count only for small frames. For
|
|
175
|
+
* large ones any byte figure worth spending buys fewer slots than the access
|
|
176
|
+
* pattern needs, and a slot floor sets the count with the bytes following from
|
|
177
|
+
* it. The exact tier is therefore both: EXACT_BUDGET_BYTES_PER_GB times reported
|
|
178
|
+
* RAM clamped to [MIN, MAX], raised to whatever MIN_EXACT_SLOTS costs at this
|
|
179
|
+
* frame size.
|
|
180
|
+
*
|
|
181
|
+
* MIN_EXACT_SLOTS: the scrub prefetch window, a center frame plus
|
|
182
|
+
* SCRUB_WINDOW_FRAMES each side. DecodeScheduler narrows its window to whatever
|
|
183
|
+
* the exact tier holds, so this floor is what keeps an 8MP source at the full
|
|
184
|
+
* window width, and slots past it would be speculative history the preview tier
|
|
185
|
+
* already answers.
|
|
186
|
+
*
|
|
187
|
+
* PREVIEW_SLOTS_MAX: the preview slot count is its byte budget over the
|
|
188
|
+
* downscaled frame size, capped here. No floor pairs with it: raising a starved
|
|
189
|
+
* count means overspending the byte budget, when the frame width is what a wide
|
|
190
|
+
* preview has to give up. At a 79th of a crisp slot the tier carries the
|
|
191
|
+
* timeline coverage an 8MP source cannot afford crisply: 163 slots against the
|
|
192
|
+
* exact tier's 13, 11s of a 15fps clip.
|
|
193
|
+
*
|
|
194
|
+
* SKIP_NEAR_MS: cache lookups that resolve to a frame within this many
|
|
195
|
+
* milliseconds of what the visible canvas already shows are rejected so the
|
|
196
|
+
* consumer falls through to a full-res decode. Keeps a frame-step gesture from
|
|
197
|
+
* snapping back to the already-painted neighbor. Fixed in ms, so it spans one
|
|
198
|
+
* frame at 15fps and three at 30fps.
|
|
199
|
+
*
|
|
200
|
+
* DEFAULT_BUCKET_MS: timestamp-bucket size when the source frame rate is
|
|
201
|
+
* unknown. Finer than the frame interval at any rate up to 30fps, so distinct
|
|
202
|
+
* frames never collapse onto one slot.
|
|
203
|
+
*
|
|
204
|
+
* DEFAULT_DEVICE_MEMORY_GB: the RAM assumed for every browser that reports
|
|
205
|
+
* none, which is all of them outside Chromium and any page off a secure
|
|
206
|
+
* context. It is a guess, and the byte clamps above are what bound a wrong
|
|
207
|
+
* one: at 8 the exact tier sits on its ceiling and the preview tier at two
|
|
208
|
+
* thirds of its own.
|
|
209
|
+
*/
|
|
210
|
+
export declare const FRAME_CACHE: {
|
|
211
|
+
readonly PREVIEW_WIDTH_PX: 320;
|
|
212
|
+
readonly SKIP_NEAR_MS: 100;
|
|
213
|
+
readonly DEFAULT_BUCKET_MS: 33;
|
|
214
|
+
readonly MIN_EXACT_SLOTS: 13;
|
|
215
|
+
readonly DEFAULT_DEVICE_MEMORY_GB: 8;
|
|
216
|
+
readonly EXACT_BUDGET_BYTES_PER_GB: number;
|
|
217
|
+
readonly EXACT_BUDGET_BYTES_MIN: number;
|
|
218
|
+
readonly EXACT_BUDGET_BYTES_MAX: number;
|
|
219
|
+
readonly PREVIEW_BUDGET_BYTES_PER_GB: number;
|
|
220
|
+
readonly PREVIEW_BUDGET_BYTES_MIN: number;
|
|
221
|
+
readonly PREVIEW_BUDGET_BYTES_MAX: number;
|
|
222
|
+
readonly PREVIEW_SLOTS_MAX: 512;
|
|
223
|
+
};
|
|
224
|
+
/**
|
|
225
|
+
* Diagnostics instrument tunables. Inert unless a consumer opts in: the worker
|
|
226
|
+
* broadcasts a snapshot at BROADCAST_HZ only while subscribed, the trace rings
|
|
227
|
+
* allocate only while armed, and SCRUB_LATENCY_RING bounds the percentile sample.
|
|
228
|
+
*/
|
|
229
|
+
export declare const DIAGNOSTICS: {
|
|
230
|
+
readonly BROADCAST_HZ: 10;
|
|
231
|
+
readonly TRACE_EVENT_CAP: 2000;
|
|
232
|
+
readonly TRACE_SNAPSHOT_CAP: 600;
|
|
233
|
+
readonly SCRUB_LATENCY_RING: 64;
|
|
234
|
+
};
|
|
235
|
+
/**
|
|
236
|
+
* What an armed capture actually keeps. The snapshot ring is fed at the fixed
|
|
237
|
+
* broadcast rate, so its capacity converts to a wall-clock window; the event
|
|
238
|
+
* ring is fed by paints and gestures at no fixed rate, so its bound is a count
|
|
239
|
+
* and nothing more. A readout that states one number for "the capture" is
|
|
240
|
+
* describing neither ring.
|
|
241
|
+
*/
|
|
242
|
+
export declare const TRACE_RING_BOUNDS: {
|
|
243
|
+
readonly snapshotWindowMs: number;
|
|
244
|
+
readonly snapshotCap: 600;
|
|
245
|
+
readonly eventCap: 2000;
|
|
246
|
+
};
|
|
247
|
+
export declare const HANG_RECOVERY: {
|
|
248
|
+
readonly DECODE_HANG_TIMEOUT_MS: 30000;
|
|
249
|
+
readonly SEED_HANG_TIMEOUT_MS: 8000;
|
|
250
|
+
readonly SEED_DECODE_ATTEMPTS: 3;
|
|
251
|
+
readonly WORKER_COMMAND_TIMEOUT_MS: number;
|
|
252
|
+
};
|
|
253
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+FG;AACH,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX;;;;;;;;;GASG;AACH,eAAO,MAAM,KAAK;;CAER,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAad,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;;CAKpB,CAAC;AAsCX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { DecodeResolutionStrategy } from "./decode-resolution";
|
|
2
|
+
import type { ScrubCursorFactory } from "./scrub-cursor";
|
|
3
|
+
import type { SourceResidency } from "./source-residency";
|
|
4
|
+
import type { UrlSourceReadConfig, VideoEngineError, VideoSource } from "./types";
|
|
5
|
+
/** On-screen canvas measurements the decode strategy reasons over. */
|
|
6
|
+
export interface ScrubViewport {
|
|
7
|
+
/** CSS-pixel width of the canvas box, or null when unmeasured. */
|
|
8
|
+
displayWidth: number | null;
|
|
9
|
+
devicePixelRatio: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Cache tuning passed through to the scheduler. Frame dimensions are filled from
|
|
13
|
+
* the resolved track. The budgets are optional overrides: omitted, they are
|
|
14
|
+
* resolved per source from device memory and frame size by resolveCacheBudgets.
|
|
15
|
+
*/
|
|
16
|
+
export interface ScrubCacheConfig {
|
|
17
|
+
previewWidth: number;
|
|
18
|
+
previewCapacity?: number;
|
|
19
|
+
exactBudgetBytes?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface CreateScrubCursorOptions {
|
|
22
|
+
source: VideoSource;
|
|
23
|
+
/**
|
|
24
|
+
* Decides the resolution frames are held and painted at: the display canvas
|
|
25
|
+
* backing store and every cache blit. Combined with the viewport and the
|
|
26
|
+
* track's native dimensions; defaults to native resolution when omitted.
|
|
27
|
+
* On the CanvasSink path it also sizes the sink's own output, but a path
|
|
28
|
+
* that owns its decoder decodes native and scales into these dimensions.
|
|
29
|
+
*/
|
|
30
|
+
decodeStrategy?: DecodeResolutionStrategy;
|
|
31
|
+
/** On-screen box the decodeStrategy may scale to. Native when omitted. */
|
|
32
|
+
viewport?: ScrubViewport;
|
|
33
|
+
/** CanvasSink frame-pool size. */
|
|
34
|
+
poolSize?: number;
|
|
35
|
+
/** Cache tuning. Omit or pass null for the uncached cursor. */
|
|
36
|
+
cache?: ScrubCacheConfig | null;
|
|
37
|
+
/** Pin the 2D renderer. Mirrors the controller flag; rules out the zero-copy
|
|
38
|
+
* sample path so a 2D consumer keeps the byte-identical CanvasSink path. */
|
|
39
|
+
prefer2d?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Called once when the decoder is judged unable to decode this source at
|
|
42
|
+
* all. A failure after open() cannot surface as a rejected promise, since by
|
|
43
|
+
* then nobody is awaiting one; this is how it reaches the transport.
|
|
44
|
+
*/
|
|
45
|
+
onDecodeFailure?: (error: VideoEngineError) => void;
|
|
46
|
+
/** Serves the demuxer's byte reads from what this process already holds. */
|
|
47
|
+
sourceResidency?: SourceResidency;
|
|
48
|
+
/** Read tuning for a URL source, passed through to mediabunny. */
|
|
49
|
+
urlSource?: UrlSourceReadConfig;
|
|
50
|
+
signal?: AbortSignal;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Opens the decode source and chooses the cursor backend: the caching
|
|
54
|
+
* DecodeScheduler when a cache config is given, otherwise the uncached
|
|
55
|
+
* CanvasSinkScrubCursor. The returned cursor is already seeded with its first
|
|
56
|
+
* frame, so callers receive a ready cursor with track metadata resolved.
|
|
57
|
+
*
|
|
58
|
+
* This is the single place the backend is chosen, so the gate is one branch and
|
|
59
|
+
* both backends share the same opened source.
|
|
60
|
+
*/
|
|
61
|
+
export declare const createScrubCursor: ScrubCursorFactory;
|
|
62
|
+
//# sourceMappingURL=create-scrub-cursor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-scrub-cursor.d.ts","sourceRoot":"","sources":["../src/create-scrub-cursor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChC;iFAC6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACpD,4EAA4E;IAC5E,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,kEAAkE;IAClE,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAkB/B,CAAC"}
|