@zappar/zappar-cv 3.0.1-alpha.5 → 3.0.1-alpha.8
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/README.md +2 -2
- package/lib/gen/zappar-bridge.d.ts +13 -0
- package/lib/gen/zappar-bridge.js +1 -0
- package/lib/gen/zappar-client.d.ts +1 -0
- package/lib/gen/zappar-client.js +125 -16
- package/lib/gen/zappar-cwrap.js +81 -3
- package/lib/gen/zappar-native.d.ts +17 -1
- package/lib/gen/zappar-native.js +6 -0
- package/lib/gen/zappar-server.d.ts +3 -0
- package/lib/gen/zappar-server.js +81 -15
- package/lib/gen/zappar.d.ts +17 -0
- package/lib/gen/zappar.js +1 -0
- package/lib/html-element-source.d.ts +3 -1
- package/lib/html-element-source.js +12 -6
- package/lib/image-process-gl.d.ts +3 -2
- package/lib/image-process-gl.js +9 -7
- package/lib/imagebitmap-camera-source.d.ts +3 -1
- package/lib/imagebitmap-camera-source.js +10 -4
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/mstp-camera-source.d.ts +2 -1
- package/lib/mstp-camera-source.js +5 -0
- package/lib/native.js +20 -1
- package/lib/pipeline.d.ts +3 -1
- package/lib/pipeline.js +12 -2
- package/lib/profile.d.ts +2 -2
- package/lib/profile.js +3 -3
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/worker-imagebitmap.js +5 -4
- package/lib/worker-server.js +19 -8
- package/lib/workerinterface.d.ts +8 -1
- package/lib/zappar-cv.js +203 -166
- package/lib/zappar-cv.wasm +0 -0
- package/package.json +1 -1
- package/umd/{17cb8e68ad2789719d7f.wasm → 5a86c8fa5c139c48ad64.wasm} +0 -0
- package/umd/751.zappar-cv.js +1 -1
- package/umd/867.zappar-cv.js +1 -1
- package/umd/zappar-cv.js +1 -1
- package/umd/zappar-cv.worker.js +1 -1
package/lib/worker-server.js
CHANGED
|
@@ -12,9 +12,8 @@ import { getRuntimeObject } from "./gen/zappar-cwrap";
|
|
|
12
12
|
import { zappar_server } from "./gen/zappar-server";
|
|
13
13
|
import { MsgManager } from "./messages";
|
|
14
14
|
import { mat4 } from "gl-matrix";
|
|
15
|
-
import { frame_pixel_format_t } from "./gen/zappar-native";
|
|
15
|
+
import { camera_profile_t, frame_pixel_format_t } from "./gen/zappar-native";
|
|
16
16
|
import { handleImageBitmap } from "./worker-imagebitmap";
|
|
17
|
-
import { profile } from "./profile";
|
|
18
17
|
import { getWorkerMessageAPI } from "./worker-messages";
|
|
19
18
|
import { getDataDownloadAPI } from "./data-download";
|
|
20
19
|
export let messageManager = new MsgManager();
|
|
@@ -22,6 +21,7 @@ let workerMessageChannel;
|
|
|
22
21
|
let latestCameraToScreenRotation = 0;
|
|
23
22
|
let rawDataAccessEnabled = false;
|
|
24
23
|
const rawCameraFrameBuffersByPipeline = new Map();
|
|
24
|
+
const cameraProfileBySource = new Map();
|
|
25
25
|
export function launchWorkerServer(wasmUrl, module, shouldRecordData) {
|
|
26
26
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27
27
|
let mod = ZNM.default({
|
|
@@ -99,6 +99,11 @@ export function launchWorkerServer(wasmUrl, module, shouldRecordData) {
|
|
|
99
99
|
messageManager.postOutgoingMessage(ret, []);
|
|
100
100
|
break;
|
|
101
101
|
}
|
|
102
|
+
case "cameraProfileC2S": {
|
|
103
|
+
let msgt = msg;
|
|
104
|
+
cameraProfileBySource.set(msgt.source, msgt.p);
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
102
107
|
case "streamC2S": {
|
|
103
108
|
let msgt = msg;
|
|
104
109
|
consumeStream(mod, r, msgt.s, msgt.p, msgt.userFacing, server, msgt.source, workerMessageAPI, dataDownloadAPI).then(() => {
|
|
@@ -250,16 +255,22 @@ function consumeReader(mod, r, reader, p, userFacing, server, source, workerMess
|
|
|
250
255
|
uvTransform = new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
|
|
251
256
|
break;
|
|
252
257
|
}
|
|
258
|
+
let downSample = false;
|
|
259
|
+
if (cameraProfileBySource.get(source) !== camera_profile_t.HIGH) {
|
|
260
|
+
dataWidth /= 2;
|
|
261
|
+
dataHeight /= 2;
|
|
262
|
+
downSample = true;
|
|
263
|
+
}
|
|
253
264
|
let clone = frame.clone();
|
|
254
265
|
if (userFacing)
|
|
255
266
|
mat4.fromScaling(cameraToDeviceTransform, [-1, 1, -1]);
|
|
256
267
|
else
|
|
257
268
|
mat4.identity(cameraToDeviceTransform);
|
|
258
|
-
let focalLength = 300.0 *
|
|
269
|
+
let focalLength = 300.0 * dataWidth / 320.0;
|
|
259
270
|
cameraModel[0] = focalLength;
|
|
260
271
|
cameraModel[1] = focalLength;
|
|
261
|
-
cameraModel[2] =
|
|
262
|
-
cameraModel[3] =
|
|
272
|
+
cameraModel[2] = dataWidth * 0.5;
|
|
273
|
+
cameraModel[3] = dataHeight * 0.5;
|
|
263
274
|
const ret = {
|
|
264
275
|
token: token,
|
|
265
276
|
d: clone,
|
|
@@ -267,8 +278,8 @@ function consumeReader(mod, r, reader, p, userFacing, server, source, workerMess
|
|
|
267
278
|
t: "videoFrameS2C",
|
|
268
279
|
userFacing,
|
|
269
280
|
uvTransform,
|
|
270
|
-
w:
|
|
271
|
-
h:
|
|
281
|
+
w: dataWidth,
|
|
282
|
+
h: dataHeight,
|
|
272
283
|
cameraToDevice: cameraToDeviceTransform,
|
|
273
284
|
cameraModel,
|
|
274
285
|
source
|
|
@@ -277,7 +288,7 @@ function consumeReader(mod, r, reader, p, userFacing, server, source, workerMess
|
|
|
277
288
|
const pipeline = server._pipeline_by_instance.get(p);
|
|
278
289
|
if (pipeline) {
|
|
279
290
|
try {
|
|
280
|
-
r.pipeline_camera_frame_submit_raw_pointer(pipeline, streamDataBufferPointer, size, framePixelFormatFromFormat(frame.format), width, height, token, cameraToDeviceTransform, latestCameraToScreenRotation, cameraModel, userFacing, (_b = frame.timestamp) !== null && _b !== void 0 ? _b : -1);
|
|
291
|
+
r.pipeline_camera_frame_submit_raw_pointer(pipeline, streamDataBufferPointer, size, framePixelFormatFromFormat(frame.format), width, height, token, cameraToDeviceTransform, latestCameraToScreenRotation, cameraModel, userFacing, (_b = frame.timestamp) !== null && _b !== void 0 ? _b : -1, downSample);
|
|
281
292
|
handleMessages(mod, workerMessageAPI);
|
|
282
293
|
if (dataDownloadAPI)
|
|
283
294
|
handleDataDownload(mod, dataDownloadAPI);
|
package/lib/workerinterface.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="dom-webcodecs" />
|
|
2
2
|
import { CameraFrameData } from "./camera-frame-data";
|
|
3
|
-
import { zappar_camera_source_t, zappar_pipeline_t } from "./gen/zappar-native";
|
|
3
|
+
import { camera_profile_t, zappar_camera_source_t, zappar_pipeline_t } from "./gen/zappar-native";
|
|
4
4
|
export interface CameraFrameC2S {
|
|
5
5
|
t: "cameraFrameC2S";
|
|
6
6
|
d: ArrayBuffer;
|
|
@@ -39,6 +39,12 @@ export interface StreamC2S {
|
|
|
39
39
|
userFacing: boolean;
|
|
40
40
|
source: zappar_camera_source_t;
|
|
41
41
|
}
|
|
42
|
+
export interface CameraProfileC2S {
|
|
43
|
+
t: "cameraProfileC2S";
|
|
44
|
+
p: zappar_pipeline_t;
|
|
45
|
+
source: zappar_camera_source_t;
|
|
46
|
+
profile: camera_profile_t;
|
|
47
|
+
}
|
|
42
48
|
export interface CameraToScreenRotationC2S {
|
|
43
49
|
t: "cameraToScreenC2S";
|
|
44
50
|
p: zappar_pipeline_t;
|
|
@@ -53,6 +59,7 @@ export interface ImageBitmapC2S {
|
|
|
53
59
|
tokenId: number;
|
|
54
60
|
cameraModel: Float32Array;
|
|
55
61
|
cameraToDevice: Float32Array;
|
|
62
|
+
cp: camera_profile_t;
|
|
56
63
|
}
|
|
57
64
|
export interface ImageBitmapS2C {
|
|
58
65
|
t: "imageBitmapS2C";
|