supervision 0.1.1 → 0.1.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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +83 -0
- package/dist/index.js.map +1 -1
- package/dist/renderers/media-frame-capture.d.ts +24 -0
- package/dist/renderers/media-frame-capture.d.ts.map +1 -0
- package/dist/renderers/media-renderer-core.d.ts.map +1 -1
- package/dist/renderers/media-renderer-scene.d.ts +6 -1
- package/dist/renderers/media-renderer-scene.d.ts.map +1 -1
- package/dist/renderers/pixi-media-scene.d.ts.map +1 -1
- package/dist/sessions/media-session.d.ts.map +1 -1
- package/dist/types/media-renderer.d.ts +44 -0
- package/dist/types/media-renderer.d.ts.map +1 -1
- package/dist/types/media-session.d.ts +9 -1
- package/dist/types/media-session.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export { createImageUrlMediaSource, createStaticImageMediaSource, type HostFrame
|
|
|
15
15
|
export { createMediaStreamRendererSource, type MediaStreamRendererSourceOptions, } from "#media/media-stream-media-source";
|
|
16
16
|
export { createMediaRenderer } from "#renderers/media-renderer";
|
|
17
17
|
export { createMediaSession } from "#sessions/media-session";
|
|
18
|
+
export type { MediaFrameCapture, MediaFrameCaptureOptions, } from "#types/media-renderer";
|
|
18
19
|
export { BaseBoxStyle } from "supervision-js-core";
|
|
19
20
|
export type { BaseBoxStyleOptions } from "supervision-js-core";
|
|
20
21
|
export { BaseFocusStyle } from "supervision-js-core";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EACL,cAAc,EACd,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,YAAY,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,+BAA+B,EAC/B,KAAK,gCAAgC,GACtC,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2413,6 +2413,15 @@ async function createMediaRendererCore(options, providers) {
|
|
|
2413
2413
|
runtimeState.recordPresentationUpdate(presentedSample);
|
|
2414
2414
|
}
|
|
2415
2415
|
},
|
|
2416
|
+
async captureFrame(captureOptions) {
|
|
2417
|
+
if (runtimeState.isDestroyed()) {
|
|
2418
|
+
throw new Error("Media renderer has been destroyed.");
|
|
2419
|
+
}
|
|
2420
|
+
if (!mediaScene?.captureFrame) {
|
|
2421
|
+
throw new Error("Media renderer is not ready.");
|
|
2422
|
+
}
|
|
2423
|
+
return mediaScene.captureFrame(captureOptions);
|
|
2424
|
+
},
|
|
2416
2425
|
getState() {
|
|
2417
2426
|
return runtimeState.snapshot();
|
|
2418
2427
|
},
|
|
@@ -2725,6 +2734,56 @@ function clampSeekTime(options) {
|
|
|
2725
2734
|
return Math.min(Math.max(mediaTime, startTime), endTime ?? mediaTime);
|
|
2726
2735
|
}
|
|
2727
2736
|
|
|
2737
|
+
/** Encoded image type used when a capture does not request one. */
|
|
2738
|
+
const DEFAULT_MEDIA_FRAME_CAPTURE_TYPE = "image/jpeg";
|
|
2739
|
+
/** Lossy encoder quality used when a capture does not request one. */
|
|
2740
|
+
const DEFAULT_MEDIA_FRAME_CAPTURE_QUALITY = 0.92;
|
|
2741
|
+
/**
|
|
2742
|
+
* Encodes media pixels a renderer has already presented.
|
|
2743
|
+
*
|
|
2744
|
+
* The presented pixels and their timestamp are copied synchronously before the
|
|
2745
|
+
* first await, so a frame presented while the encoder runs cannot change the
|
|
2746
|
+
* captured image or desynchronize it from `mediaTime`.
|
|
2747
|
+
*/
|
|
2748
|
+
async function captureCanvasMediaFrame(request) {
|
|
2749
|
+
const { height, width } = request.source;
|
|
2750
|
+
if (width <= 0 || height <= 0) {
|
|
2751
|
+
throw new Error("No media frame has been presented yet.");
|
|
2752
|
+
}
|
|
2753
|
+
const type = request.capture?.type ?? DEFAULT_MEDIA_FRAME_CAPTURE_TYPE;
|
|
2754
|
+
const quality = request.capture?.quality ?? DEFAULT_MEDIA_FRAME_CAPTURE_QUALITY;
|
|
2755
|
+
if (!Number.isFinite(quality) || quality < 0 || quality > 1) {
|
|
2756
|
+
throw new RangeError("quality must be a number between 0 and 1.");
|
|
2757
|
+
}
|
|
2758
|
+
const snapshot = request.createCanvas();
|
|
2759
|
+
snapshot.width = width;
|
|
2760
|
+
snapshot.height = height;
|
|
2761
|
+
const context = snapshot.getContext("2d");
|
|
2762
|
+
if (!context) {
|
|
2763
|
+
throw new Error("Unable to create a media frame capture context.");
|
|
2764
|
+
}
|
|
2765
|
+
context.drawImage(request.source, 0, 0);
|
|
2766
|
+
const blob = await encodeCanvas(snapshot, type, quality);
|
|
2767
|
+
return {
|
|
2768
|
+
blob,
|
|
2769
|
+
height,
|
|
2770
|
+
mediaTime: request.mediaTime,
|
|
2771
|
+
type: blob.type || type,
|
|
2772
|
+
width,
|
|
2773
|
+
};
|
|
2774
|
+
}
|
|
2775
|
+
function encodeCanvas(canvas, type, quality) {
|
|
2776
|
+
return new Promise((resolve, reject) => {
|
|
2777
|
+
canvas.toBlob((blob) => {
|
|
2778
|
+
if (blob) {
|
|
2779
|
+
resolve(blob);
|
|
2780
|
+
return;
|
|
2781
|
+
}
|
|
2782
|
+
reject(new Error(`Unable to encode the presented media frame as ${type}.`));
|
|
2783
|
+
}, type, quality);
|
|
2784
|
+
});
|
|
2785
|
+
}
|
|
2786
|
+
|
|
2728
2787
|
function resolveScreenLength(value, viewportScale) {
|
|
2729
2788
|
return value / Math.max(viewportScale, Number.EPSILON);
|
|
2730
2789
|
}
|
|
@@ -7799,6 +7858,11 @@ async function createPixiMediaScene(options) {
|
|
|
7799
7858
|
let viewportScale = 1;
|
|
7800
7859
|
const viewport = createViewportController({ scale: 1 });
|
|
7801
7860
|
let hasPresentedSample = false;
|
|
7861
|
+
/**
|
|
7862
|
+
* Timestamp of the sample whose pixels are on the staging canvas. Unlike
|
|
7863
|
+
* `currentMediaTime`, presentation and selection updates never move it.
|
|
7864
|
+
*/
|
|
7865
|
+
let presentedSampleTimestamp = null;
|
|
7802
7866
|
let baseFit;
|
|
7803
7867
|
const interactionLayer = options.interaction || options.editingEngine
|
|
7804
7868
|
? createPixiInteractionLayer({
|
|
@@ -8057,6 +8121,7 @@ async function createPixiMediaScene(options) {
|
|
|
8057
8121
|
hasPresentedSample = true;
|
|
8058
8122
|
if (!collectFrameTimings) {
|
|
8059
8123
|
sample.draw(stagingContext, 0, 0, mediaWidth, mediaHeight);
|
|
8124
|
+
presentedSampleTimestamp = sample.timestamp;
|
|
8060
8125
|
stagingTextureSource?.update();
|
|
8061
8126
|
stagingTexture?.update();
|
|
8062
8127
|
maskLayer?.drawFrame(sample.timestamp);
|
|
@@ -8083,6 +8148,7 @@ async function createPixiMediaScene(options) {
|
|
|
8083
8148
|
let focusMs = 0;
|
|
8084
8149
|
mediaUploadMs = measure(() => {
|
|
8085
8150
|
sample.draw(stagingContext, 0, 0, mediaWidth, mediaHeight);
|
|
8151
|
+
presentedSampleTimestamp = sample.timestamp;
|
|
8086
8152
|
stagingTextureSource?.update();
|
|
8087
8153
|
stagingTexture?.update();
|
|
8088
8154
|
});
|
|
@@ -8129,6 +8195,17 @@ async function createPixiMediaScene(options) {
|
|
|
8129
8195
|
sample.close();
|
|
8130
8196
|
}
|
|
8131
8197
|
},
|
|
8198
|
+
captureFrame(captureOptions) {
|
|
8199
|
+
if (presentedSampleTimestamp === null) {
|
|
8200
|
+
return Promise.reject(new Error("No media frame has been presented yet."));
|
|
8201
|
+
}
|
|
8202
|
+
return captureCanvasMediaFrame({
|
|
8203
|
+
capture: captureOptions,
|
|
8204
|
+
createCanvas: () => document.createElement("canvas"),
|
|
8205
|
+
mediaTime: presentedSampleTimestamp,
|
|
8206
|
+
source: stagingCanvas,
|
|
8207
|
+
});
|
|
8208
|
+
},
|
|
8132
8209
|
waitForRenderPreparation(mediaTime, gateOptions) {
|
|
8133
8210
|
return Promise.all([
|
|
8134
8211
|
maskLayer?.waitForRenderPreparation(mediaTime, gateOptions),
|
|
@@ -9347,6 +9424,12 @@ async function createMediaSession(options) {
|
|
|
9347
9424
|
refresh() {
|
|
9348
9425
|
return renderer.refresh();
|
|
9349
9426
|
},
|
|
9427
|
+
captureFrame(captureOptions) {
|
|
9428
|
+
if (destroyed) {
|
|
9429
|
+
throw new Error("Media session has been destroyed.");
|
|
9430
|
+
}
|
|
9431
|
+
return renderer.captureFrame(captureOptions);
|
|
9432
|
+
},
|
|
9350
9433
|
setPresentation(presentation) {
|
|
9351
9434
|
currentPresentation = presentation;
|
|
9352
9435
|
renderer.setPresentation(resolvePresentation(currentPresentation));
|