supervision 0.2.0-next.0 → 0.2.0-next.2
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/constants/media-renderer.d.ts +3 -0
- package/dist/constants/media-renderer.d.ts.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1722 -1395
- package/dist/index.js.map +1 -1
- package/dist/mask-preparation.worker.js +109 -31
- package/dist/mask-preparation.worker.js.map +1 -1
- package/dist/media/media-frame-clock.d.ts +4 -0
- package/dist/media/media-frame-clock.d.ts.map +1 -0
- package/dist/media/media-source-state.d.ts.map +1 -1
- package/dist/media/media-source.d.ts +6 -0
- package/dist/media/media-source.d.ts.map +1 -1
- package/dist/media/video-engine-media-source.d.ts +17 -7
- package/dist/media/video-engine-media-source.d.ts.map +1 -1
- package/dist/media/video-engine-media-source.js +3 -0
- package/dist/media/video-engine-media-source.js.map +1 -0
- package/dist/playback/media-playback-controller.d.ts +7 -1
- package/dist/playback/media-playback-controller.d.ts.map +1 -1
- package/dist/render-preparation/mask-frame-artifact.d.ts +2 -0
- package/dist/render-preparation/mask-frame-artifact.d.ts.map +1 -1
- package/dist/render-preparation/mask-frame-compositor.d.ts +7 -0
- package/dist/render-preparation/mask-frame-compositor.d.ts.map +1 -1
- package/dist/render-preparation/mask-preparation-worker-protocol.d.ts +1 -0
- package/dist/render-preparation/mask-preparation-worker-protocol.d.ts.map +1 -1
- package/dist/render-preparation/prepared-render-window.d.ts +21 -2
- package/dist/render-preparation/prepared-render-window.d.ts.map +1 -1
- package/dist/render-preparation/prepared-window-timeline.d.ts +1 -0
- package/dist/render-preparation/prepared-window-timeline.d.ts.map +1 -1
- package/dist/renderers/injected-pixi.d.ts +38 -0
- package/dist/renderers/injected-pixi.d.ts.map +1 -0
- package/dist/renderers/media-frame-navigation.d.ts +17 -0
- package/dist/renderers/media-frame-navigation.d.ts.map +1 -0
- package/dist/renderers/media-renderer-core.d.ts +9 -0
- package/dist/renderers/media-renderer-core.d.ts.map +1 -1
- package/dist/renderers/media-renderer-scene.d.ts +17 -5
- package/dist/renderers/media-renderer-scene.d.ts.map +1 -1
- package/dist/renderers/media-renderer-state.d.ts +9 -0
- package/dist/renderers/media-renderer-state.d.ts.map +1 -1
- package/dist/renderers/media-renderer-transport.d.ts +19 -3
- package/dist/renderers/media-renderer-transport.d.ts.map +1 -1
- package/dist/renderers/pixi-focus-layer.d.ts +1 -0
- package/dist/renderers/pixi-focus-layer.d.ts.map +1 -1
- package/dist/renderers/pixi-frame-present.d.ts +1 -1
- package/dist/renderers/pixi-frame-present.d.ts.map +1 -1
- package/dist/renderers/pixi-id-mask-shader.d.ts +4 -33
- package/dist/renderers/pixi-id-mask-shader.d.ts.map +1 -1
- package/dist/renderers/pixi-interaction-presentation-layer.d.ts +0 -1
- package/dist/renderers/pixi-interaction-presentation-layer.d.ts.map +1 -1
- package/dist/renderers/pixi-mask-halo.d.ts +4 -33
- package/dist/renderers/pixi-mask-halo.d.ts.map +1 -1
- package/dist/renderers/pixi-mask-layer.d.ts +28 -29
- package/dist/renderers/pixi-mask-layer.d.ts.map +1 -1
- package/dist/renderers/pixi-media-scene.d.ts.map +1 -1
- package/dist/renderers/pixi-polygon-layer.d.ts +2 -0
- package/dist/renderers/pixi-polygon-layer.d.ts.map +1 -1
- package/dist/renderers/pixi-region-coverage-mask.d.ts +4 -33
- package/dist/renderers/pixi-region-coverage-mask.d.ts.map +1 -1
- package/dist/renderers/pixi-region-layer.d.ts +6 -31
- package/dist/renderers/pixi-region-layer.d.ts.map +1 -1
- package/dist/renderers/pixi-shader-lifecycle.d.ts +14 -0
- package/dist/renderers/pixi-shader-lifecycle.d.ts.map +1 -0
- package/dist/renderers/prepared-annotation-window.d.ts.map +1 -1
- package/dist/renderers/presented-frame-channel.d.ts +34 -1
- package/dist/renderers/presented-frame-channel.d.ts.map +1 -1
- package/dist/sessions/media-session-defaults.d.ts.map +1 -1
- package/dist/sessions/media-session-detections.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 +19 -5
- package/dist/tracking.worker.js.map +1 -1
- package/dist/types/media-frame-clock.d.ts +16 -0
- package/dist/types/media-frame-clock.d.ts.map +1 -0
- package/dist/types/media-frame-navigation.d.ts +28 -0
- package/dist/types/media-frame-navigation.d.ts.map +1 -0
- package/dist/types/media-renderer-display.d.ts +12 -0
- package/dist/types/media-renderer-display.d.ts.map +1 -0
- package/dist/types/media-renderer.d.ts +13 -0
- package/dist/types/media-renderer.d.ts.map +1 -1
- package/dist/types/media-session.d.ts +35 -32
- package/dist/types/media-session.d.ts.map +1 -1
- package/dist/types/render-preparation.d.ts +78 -28
- package/dist/types/render-preparation.d.ts.map +1 -1
- package/dist/video-engine-media-source-DR-x1UfK.js +483 -0
- package/dist/video-engine-media-source-DR-x1UfK.js.map +1 -0
- package/dist/web-video-engine/analysis-session.d.ts +0 -1
- package/dist/web-video-engine/analysis.d.ts +0 -1
- package/dist/web-video-engine/analysis.js +211 -23
- package/dist/web-video-engine/cache-budget.d.ts +0 -1
- package/dist/web-video-engine/canvas-sink-scrub-cursor.d.ts +6 -2
- package/dist/web-video-engine/clock.d.ts +0 -1
- package/dist/web-video-engine/constants.d.ts +9 -1
- package/dist/web-video-engine/create-scrub-cursor.d.ts +6 -3
- package/dist/web-video-engine/decode-resolution.d.ts +0 -1
- package/dist/web-video-engine/decode-scheduler.d.ts +26 -5
- package/dist/web-video-engine/decode-session.d.ts +11 -1
- package/dist/web-video-engine/decode-source.d.ts +11 -1
- package/dist/web-video-engine/diagnostics-store.d.ts +0 -1
- package/dist/web-video-engine/diagnostics.d.ts +19 -19
- package/dist/web-video-engine/embedded-engine-worker.d.ts +0 -1
- package/dist/web-video-engine/engine-core.d.ts +31 -11
- package/dist/web-video-engine/engine.d.ts +3 -4
- package/dist/web-video-engine/engine.js +175 -44
- package/dist/web-video-engine/engine.worker.d.ts +0 -1
- package/dist/web-video-engine/engine.worker.js +5712 -2947
- package/dist/web-video-engine/frame-cache.d.ts +121 -12
- package/dist/web-video-engine/frame-extractor.d.ts +0 -1
- package/dist/web-video-engine/{frame-timeline-GINI8Gum.js → frame-timeline-DreEwsRY.js} +83 -27
- package/dist/web-video-engine/frame-timeline.d.ts +10 -1
- package/dist/web-video-engine/frame-walker.d.ts +0 -1
- package/dist/web-video-engine/index.d.ts +12 -2
- package/dist/web-video-engine/index.d.ts.map +1 -1
- package/dist/web-video-engine/index.js +2 -2
- package/dist/web-video-engine/key-packet.d.ts +0 -1
- package/dist/web-video-engine/keyframe-index.d.ts +0 -1
- package/dist/web-video-engine/mirror-store.d.ts +0 -1
- package/dist/web-video-engine/pausable-deadline.d.ts +11 -0
- package/dist/web-video-engine/renderer.d.ts +0 -1
- package/dist/web-video-engine/rotation.d.ts +0 -1
- package/dist/web-video-engine/scrub-controller.d.ts +8 -5
- package/dist/web-video-engine/scrub-cursor.d.ts +15 -7
- package/dist/web-video-engine/scrub-trajectory.d.ts +0 -1
- package/dist/web-video-engine/source-residency.d.ts +35 -1
- package/dist/web-video-engine/trace-recorder.d.ts +0 -1
- package/dist/web-video-engine/types.d.ts +18 -22
- package/dist/web-video-engine/video-engine.d.ts +39 -17
- package/dist/web-video-engine/webgpu-renderer.d.ts +0 -1
- package/dist/web-video-engine/worker-bridge.d.ts +0 -1
- package/dist/web-video-engine/worker-dispatch.d.ts +0 -1
- package/dist/web-video-engine/worker-protocol.d.ts +38 -15
- package/node_modules/supervision-js-core/dist/detections/buffered-detection-timeline.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/index.d.ts +2 -2
- package/node_modules/supervision-js-core/dist/index.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/index.js +182 -68
- package/node_modules/supervision-js-core/dist/index.js.map +1 -1
- package/node_modules/supervision-js-core/dist/types/detection-timeline.d.ts +20 -3
- 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 +28 -26
- package/node_modules/supervision-js-core/dist/types/media-rendering.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-masks.d.ts.map +1 -1
- package/node_modules/supervision-js-core/dist/utils/id-mask-frame.d.ts +19 -0
- package/node_modules/supervision-js-core/dist/utils/id-mask-frame.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/media/media-condition-probe.d.ts +0 -51
- package/dist/media/media-condition-probe.d.ts.map +0 -1
- package/dist/media/media-conditions.d.ts +0 -28
- package/dist/media/media-conditions.d.ts.map +0 -1
- package/dist/types/media-conditions.d.ts +0 -149
- package/dist/types/media-conditions.d.ts.map +0 -1
- package/dist/web-video-engine/analysis-session.d.ts.map +0 -1
- package/dist/web-video-engine/analysis.d.ts.map +0 -1
- package/dist/web-video-engine/analysis.js.map +0 -1
- package/dist/web-video-engine/cache-budget.d.ts.map +0 -1
- package/dist/web-video-engine/canvas-sink-scrub-cursor.d.ts.map +0 -1
- package/dist/web-video-engine/clock.d.ts.map +0 -1
- package/dist/web-video-engine/constants.d.ts.map +0 -1
- package/dist/web-video-engine/create-scrub-cursor.d.ts.map +0 -1
- package/dist/web-video-engine/decode-resolution.d.ts.map +0 -1
- package/dist/web-video-engine/decode-scheduler.d.ts.map +0 -1
- package/dist/web-video-engine/decode-session.d.ts.map +0 -1
- package/dist/web-video-engine/decode-source.d.ts.map +0 -1
- package/dist/web-video-engine/diagnostics-store.d.ts.map +0 -1
- package/dist/web-video-engine/diagnostics.d.ts.map +0 -1
- package/dist/web-video-engine/embedded-engine-worker.d.ts.map +0 -1
- package/dist/web-video-engine/engine-core.d.ts.map +0 -1
- package/dist/web-video-engine/engine.d.ts.map +0 -1
- package/dist/web-video-engine/engine.js.map +0 -1
- package/dist/web-video-engine/engine.worker.d.ts.map +0 -1
- package/dist/web-video-engine/engine.worker.js.map +0 -1
- package/dist/web-video-engine/frame-cache.d.ts.map +0 -1
- package/dist/web-video-engine/frame-extractor.d.ts.map +0 -1
- package/dist/web-video-engine/frame-timeline-GINI8Gum.js.map +0 -1
- package/dist/web-video-engine/frame-timeline.d.ts.map +0 -1
- package/dist/web-video-engine/frame-walker.d.ts.map +0 -1
- package/dist/web-video-engine/key-packet.d.ts.map +0 -1
- package/dist/web-video-engine/keyframe-index.d.ts.map +0 -1
- package/dist/web-video-engine/mirror-store.d.ts.map +0 -1
- package/dist/web-video-engine/renderer.d.ts.map +0 -1
- package/dist/web-video-engine/rotation.d.ts.map +0 -1
- package/dist/web-video-engine/scrub-controller.d.ts.map +0 -1
- package/dist/web-video-engine/scrub-cursor.d.ts.map +0 -1
- package/dist/web-video-engine/scrub-trajectory.d.ts.map +0 -1
- package/dist/web-video-engine/source-residency.d.ts.map +0 -1
- package/dist/web-video-engine/trace-recorder.d.ts.map +0 -1
- package/dist/web-video-engine/types.d.ts.map +0 -1
- package/dist/web-video-engine/video-engine.d.ts.map +0 -1
- package/dist/web-video-engine/webgpu-renderer.d.ts.map +0 -1
- package/dist/web-video-engine/worker-bridge.d.ts.map +0 -1
- package/dist/web-video-engine/worker-dispatch.d.ts.map +0 -1
- package/dist/web-video-engine/worker-protocol.d.ts.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BlobSource, ReadableStreamSource, UrlSource } from "mediabunny";
|
|
2
2
|
import type { CreateScrubCursorOptions } from "./create-scrub-cursor";
|
|
3
3
|
import { type SessionFrameSource } from "./decode-session";
|
|
4
|
+
import { type DecodeDimensions } from "./decode-resolution";
|
|
4
5
|
import type { SourceResidency } from "./source-residency";
|
|
5
6
|
import type { KeyframeProbe } from "./keyframe-index";
|
|
6
7
|
import { type ScrubTrackInfo, type VideoSampleLike } from "./scrub-cursor";
|
|
@@ -97,6 +98,7 @@ export type DecodedFrame = {
|
|
|
97
98
|
* which the scheduler reports so a human can see which machinery is decoding.
|
|
98
99
|
*/
|
|
99
100
|
export interface FrameProvider {
|
|
101
|
+
resizeOutput?(dimensions: DecodeDimensions): Promise<void>;
|
|
100
102
|
readonly decodePath: DecodePath;
|
|
101
103
|
readonly track: ScrubTrackInfo;
|
|
102
104
|
readonly keyframeProbe: KeyframeProbe;
|
|
@@ -220,6 +222,15 @@ export interface DecodeSessionContext {
|
|
|
220
222
|
* anchor trick applies to this bitstream. */
|
|
221
223
|
readonly decoderConfig: VideoDecoderConfig;
|
|
222
224
|
}
|
|
225
|
+
/** Platform facts used to contain decoder-output ownership to Android.
|
|
226
|
+
* Client hints win when available so desktop UA emulation cannot accidentally
|
|
227
|
+
* turn the expensive path on. */
|
|
228
|
+
export interface DecodeSessionPixelOwnershipContext {
|
|
229
|
+
readonly clientPlatform?: string;
|
|
230
|
+
readonly userAgent?: string;
|
|
231
|
+
readonly offscreenCanvasAvailable: boolean;
|
|
232
|
+
}
|
|
233
|
+
export declare function shouldOwnDecodeSessionPixels(context: DecodeSessionPixelOwnershipContext): boolean;
|
|
223
234
|
/**
|
|
224
235
|
* The gate. The session reaches a non-IDR anchor by declaring it a recovery
|
|
225
236
|
* point, which only holds for AVCC-framed H.264 carrying its parameter sets, so
|
|
@@ -247,4 +258,3 @@ export declare function toMediabunnySource(source: VideoSource, residency?: Sour
|
|
|
247
258
|
* to a degraded-but-alive state instead of rebuilding for that kind.
|
|
248
259
|
*/
|
|
249
260
|
export declare function isReopenableSource(source: VideoSource): boolean;
|
|
250
|
-
//# sourceMappingURL=decode-source.d.ts.map
|
|
@@ -20,9 +20,10 @@ export interface DiagnosticsTrack {
|
|
|
20
20
|
* owned, null on the uncached cursor). All plain data, so it crosses the worker
|
|
21
21
|
* boundary by structured clone.
|
|
22
22
|
*
|
|
23
|
-
*
|
|
24
|
-
* DiagnosticsSnapshot
|
|
25
|
-
*
|
|
23
|
+
* What `getStats` answers with, one round trip per call and no broadcast timer
|
|
24
|
+
* required. {@link DiagnosticsSnapshot} opens with these same three fields and
|
|
25
|
+
* carries the rest of the instrument payload, but only while the diagnostics
|
|
26
|
+
* broadcast is running.
|
|
26
27
|
*/
|
|
27
28
|
export interface EngineDiagnostics {
|
|
28
29
|
readonly renderer: RendererName | null;
|
|
@@ -182,21 +183,6 @@ export interface Warning {
|
|
|
182
183
|
readonly advice: string;
|
|
183
184
|
readonly evidence: string;
|
|
184
185
|
}
|
|
185
|
-
/**
|
|
186
|
-
* The clone-safe wire snapshot the worker broadcasts at BROADCAST_HZ. A superset
|
|
187
|
-
* of EngineDiagnostics: it keeps renderer/track/scheduler verbatim so legacy
|
|
188
|
-
* readers still resolve, and adds the realtime needles, the pipeline ledger,
|
|
189
|
-
* derived cache bytes, track geometry, GOP block, scrub aggregates, the
|
|
190
|
-
* play-time seek block, counters, memory, the clock/screen pair, and the
|
|
191
|
-
* worker-evaluated warnings. Only plain data crosses the boundary.
|
|
192
|
-
*
|
|
193
|
-
* webgpuAvailable and memory.jsHeapUsedBytes are the fields the worker leaves at
|
|
194
|
-
* their empty value for the main thread to fill after the broadcast, so a rule
|
|
195
|
-
* in evaluateWarnings (which runs in the worker) can never read them, and an
|
|
196
|
-
* exported trace, assembled worker-side, carries the unfilled value. Warnings
|
|
197
|
-
* are evaluated once, worker-side, so the HUD and an exported trace always show
|
|
198
|
-
* the same diagnoses.
|
|
199
|
-
*/
|
|
200
186
|
/**
|
|
201
187
|
* Source bytes this process holds, for a host that wants to show a viewer how
|
|
202
188
|
* much of the clip is local. Null unless the engine was loaded with
|
|
@@ -213,6 +199,21 @@ export interface SourceResidencyDiagnostics {
|
|
|
213
199
|
readonly prefetchedBytes: number;
|
|
214
200
|
readonly warming: boolean;
|
|
215
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* The clone-safe wire snapshot the worker broadcasts at BROADCAST_HZ. A superset
|
|
204
|
+
* of {@link EngineDiagnostics}: renderer, track and scheduler carry the same
|
|
205
|
+
* values, and it adds the realtime needles, the pipeline ledger, derived cache
|
|
206
|
+
* bytes, track geometry, GOP block, scrub aggregates, the play-time seek block,
|
|
207
|
+
* counters, memory, the clock/screen pair, and the worker-evaluated warnings.
|
|
208
|
+
* Only plain data crosses the boundary.
|
|
209
|
+
*
|
|
210
|
+
* webgpuAvailable and memory.jsHeapUsedBytes are the fields the worker leaves at
|
|
211
|
+
* their empty value for the main thread to fill after the broadcast, so a rule
|
|
212
|
+
* in evaluateWarnings (which runs in the worker) can never read them, and an
|
|
213
|
+
* exported trace, assembled worker-side, carries the unfilled value. Warnings
|
|
214
|
+
* are evaluated once, worker-side, so the HUD and an exported trace always show
|
|
215
|
+
* the same diagnoses.
|
|
216
|
+
*/
|
|
216
217
|
export interface DiagnosticsSnapshot {
|
|
217
218
|
/**
|
|
218
219
|
* Which presentation the engine was loaded for. `renderer` and the geometry
|
|
@@ -313,4 +314,3 @@ export declare function cacheLookups(cache: FrameCacheStats | null | undefined):
|
|
|
313
314
|
* UI and the trace share) and in tests. No I/O, no side effects.
|
|
314
315
|
*/
|
|
315
316
|
export declare function evaluateWarnings(snapshot: DiagnosticsSnapshot): Warning[];
|
|
316
|
-
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type MediaClock } from "./clock";
|
|
2
|
-
import type
|
|
2
|
+
import { type DisplayBoxResolutionOptions } from "./decode-resolution";
|
|
3
|
+
import type { FrameId, FrameLanding } from "./frame-timeline";
|
|
3
4
|
import { type EngineDiagnostics } from "./diagnostics";
|
|
4
5
|
import { type SeekIntent } from "./scrub-cursor";
|
|
5
6
|
import { type EngineTrace } from "./trace-recorder";
|
|
@@ -38,6 +39,8 @@ export interface EngineCoreOptions {
|
|
|
38
39
|
* the core never emits a competing time that would yank a settled playhead.
|
|
39
40
|
*/
|
|
40
41
|
export declare class EngineCore {
|
|
42
|
+
private decodeStrategy;
|
|
43
|
+
private displayResize;
|
|
41
44
|
private readonly emit;
|
|
42
45
|
private readonly emitDiagnostics;
|
|
43
46
|
private readonly emitPresentedFrame;
|
|
@@ -82,6 +85,7 @@ export declare class EngineCore {
|
|
|
82
85
|
* so without the target on it any leftover frame answers for the seek in
|
|
83
86
|
* flight and publishes itself as the playhead. */
|
|
84
87
|
private awaitedSeek;
|
|
88
|
+
private seekGeneration;
|
|
85
89
|
/** Wall stamp of a seek being served by re-anchoring the playback walk, or
|
|
86
90
|
* null when no such seek is waiting on its crisp frame. */
|
|
87
91
|
private playSeekStartedAtMs;
|
|
@@ -91,7 +95,13 @@ export declare class EngineCore {
|
|
|
91
95
|
private playSeekMaxMs;
|
|
92
96
|
/** The frame the last paint put up, for the diagnostics screen readout. */
|
|
93
97
|
private lastPaintedId;
|
|
94
|
-
/**
|
|
98
|
+
/** Last frame the host confirmed reached its display surface. */
|
|
99
|
+
private lastHostFrame;
|
|
100
|
+
/** Rejects an older refresh that completes after a newer one in one epoch. */
|
|
101
|
+
private lastHostPaintSeq;
|
|
102
|
+
/** Main-thread visibility pauses only the wait for host presentation. */
|
|
103
|
+
private presentationVisible;
|
|
104
|
+
/** Mirrors WebVideoEngine's interactive-seek latch: true when a drag paused a
|
|
95
105
|
* playing engine, so endInteractiveSeek knows to resume. */
|
|
96
106
|
private resumeAfterInteractiveSeek;
|
|
97
107
|
/** Worker-realm broadcast timer handle, or null when diagnostics are off. */
|
|
@@ -117,6 +127,8 @@ export declare class EngineCore {
|
|
|
117
127
|
*/
|
|
118
128
|
setCanvas(canvas: OffscreenCanvas | null, viewport?: SerializedViewport): void;
|
|
119
129
|
load(config: EngineLoadConfig): Promise<EngineReadySnapshot>;
|
|
130
|
+
setDisplay(display: DisplayBoxResolutionOptions): Promise<boolean>;
|
|
131
|
+
private afterDisplayResize;
|
|
120
132
|
play(): void;
|
|
121
133
|
pause(): void;
|
|
122
134
|
togglePlayback(): void;
|
|
@@ -160,13 +172,11 @@ export declare class EngineCore {
|
|
|
160
172
|
* exported trace shows the playback-state timeline alongside paints/seeks. */
|
|
161
173
|
private emitStatus;
|
|
162
174
|
/**
|
|
163
|
-
* The
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
* again. Stop the transport first, then report, so the status a consumer
|
|
167
|
-
* sees and what the engine is doing agree.
|
|
175
|
+
* The runtime can no longer deliver pixels, whether decoding stopped or the
|
|
176
|
+
* frames handoff failed. Stop the transport first, then report, so the status
|
|
177
|
+
* a consumer sees and what the engine is doing agree.
|
|
168
178
|
*/
|
|
169
|
-
private
|
|
179
|
+
private handleTerminalFailure;
|
|
170
180
|
/** Says the failure again for whoever just asked the transport to move. A
|
|
171
181
|
* consumer that only listens for changes has already been told; one that
|
|
172
182
|
* reads the status after its own command has to find the same answer. */
|
|
@@ -175,7 +185,7 @@ export declare class EngineCore {
|
|
|
175
185
|
endInteractiveSeek(): void;
|
|
176
186
|
dispose(): Promise<void>;
|
|
177
187
|
/** True only when the cursor exists and reports settled. Mirrors
|
|
178
|
-
*
|
|
188
|
+
* WebVideoEngine.isIdle for tests; the facade derives its own from state. */
|
|
179
189
|
isIdle(): boolean;
|
|
180
190
|
/** Engine diagnostics snapshot (renderer, track facts, scheduler stats), or
|
|
181
191
|
* null before load. The scheduler field is null on the uncached cursor. */
|
|
@@ -183,7 +193,14 @@ export declare class EngineCore {
|
|
|
183
193
|
private observeSeekIdle;
|
|
184
194
|
private handleEnded;
|
|
185
195
|
private awaitSeekLanding;
|
|
196
|
+
/** Main-thread document visibility; decoding/watchdogs remain active. */
|
|
197
|
+
setPresentationVisibility(visible: boolean): void;
|
|
198
|
+
private isCurrentSeek;
|
|
186
199
|
private forgetSeekLanding;
|
|
200
|
+
private abandonAwaitedSeek;
|
|
201
|
+
/** Ends an impossible landing. Awaitable movement rejects with the engine's
|
|
202
|
+
* terminal error; a scrub has no consumer, so it is released quietly. */
|
|
203
|
+
private failAwaitedSeek;
|
|
187
204
|
/** Releases the latch of a seek that has already answered its caller. The
|
|
188
205
|
* landing rode back on the return value, so a paint arriving after it would
|
|
189
206
|
* move the playhead to somewhere the caller was never told about. */
|
|
@@ -200,7 +217,6 @@ export declare class EngineCore {
|
|
|
200
217
|
/** The frame table of the loaded source. Reached only from paths that have
|
|
201
218
|
* already established a cursor, which is what carries it. */
|
|
202
219
|
private timeline;
|
|
203
|
-
private landingOf;
|
|
204
220
|
/**
|
|
205
221
|
* Points the background walk at where the viewer is, as a byte offset. The
|
|
206
222
|
* file's own byte layout is not exposed, so this reads position as a share of
|
|
@@ -209,6 +225,11 @@ export declare class EngineCore {
|
|
|
209
225
|
*/
|
|
210
226
|
private aimResidency;
|
|
211
227
|
private onPaint;
|
|
228
|
+
/** Makes only a frame the host actually rendered authoritative for playback
|
|
229
|
+
* time and pause settlement. An older navigation or refresh cannot move the
|
|
230
|
+
* clock backward after a newer frame has won. */
|
|
231
|
+
acknowledgePresentedFrame(paintSeq: number, frameId: FrameId, navigationGeneration: number): void;
|
|
232
|
+
private beginPresentationGeneration;
|
|
212
233
|
/**
|
|
213
234
|
* Posts one frame with the identity of the paint it came from, in the same
|
|
214
235
|
* message. With no sink wired there is no receiver, so the frame is closed
|
|
@@ -255,4 +276,3 @@ export declare class EngineCore {
|
|
|
255
276
|
private devicePixelRatio;
|
|
256
277
|
private traceEnvironment;
|
|
257
278
|
}
|
|
258
|
-
//# sourceMappingURL=engine-core.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type {
|
|
1
|
+
export { WebVideoEngine } from "./video-engine";
|
|
2
|
+
export type { WebVideoEngineHandle, WebVideoEngineOptions, } from "./video-engine";
|
|
3
3
|
export { SourceKind } from "./types";
|
|
4
4
|
export type { BlobVideoSource, StreamVideoSource, UrlSourceReadConfig, UrlVideoSource, VideoMetadata, VideoSource, } from "./types";
|
|
5
5
|
export { PlaybackStatus } from "./types";
|
|
@@ -18,9 +18,8 @@ export { asFps, asPaintSeq, asSec } from "./types";
|
|
|
18
18
|
export type { Fps, Sec } from "./types";
|
|
19
19
|
export { cappedResolution, displayBoxResolution, nativeResolution, viewportResolution, } from "./decode-resolution";
|
|
20
20
|
export type { DecodeResolutionStrategy, DisplayBoxResolutionOptions, ViewportResolutionOptions, } from "./decode-resolution";
|
|
21
|
-
export {
|
|
21
|
+
export { WebVideoEngineError, WebVideoEngineErrorCode } from "./types";
|
|
22
22
|
export type { Warning, WarningSeverity } from "./diagnostics";
|
|
23
23
|
export type { DiagnosticsSnapshot, SourceResidencyDiagnostics, } from "./diagnostics";
|
|
24
24
|
export type { SourceResidencyConfig } from "./worker-protocol";
|
|
25
25
|
export { DIAGNOSTICS, TRACE_RING_BOUNDS } from "./constants";
|
|
26
|
-
//# sourceMappingURL=engine.d.ts.map
|