@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.
Files changed (40) hide show
  1. package/README.md +2 -2
  2. package/lib/gen/zappar-bridge.d.ts +13 -0
  3. package/lib/gen/zappar-bridge.js +1 -0
  4. package/lib/gen/zappar-client.d.ts +1 -0
  5. package/lib/gen/zappar-client.js +125 -16
  6. package/lib/gen/zappar-cwrap.js +81 -3
  7. package/lib/gen/zappar-native.d.ts +17 -1
  8. package/lib/gen/zappar-native.js +6 -0
  9. package/lib/gen/zappar-server.d.ts +3 -0
  10. package/lib/gen/zappar-server.js +81 -15
  11. package/lib/gen/zappar.d.ts +17 -0
  12. package/lib/gen/zappar.js +1 -0
  13. package/lib/html-element-source.d.ts +3 -1
  14. package/lib/html-element-source.js +12 -6
  15. package/lib/image-process-gl.d.ts +3 -2
  16. package/lib/image-process-gl.js +9 -7
  17. package/lib/imagebitmap-camera-source.d.ts +3 -1
  18. package/lib/imagebitmap-camera-source.js +10 -4
  19. package/lib/index.d.ts +1 -1
  20. package/lib/index.js +1 -1
  21. package/lib/mstp-camera-source.d.ts +2 -1
  22. package/lib/mstp-camera-source.js +5 -0
  23. package/lib/native.js +20 -1
  24. package/lib/pipeline.d.ts +3 -1
  25. package/lib/pipeline.js +12 -2
  26. package/lib/profile.d.ts +2 -2
  27. package/lib/profile.js +3 -3
  28. package/lib/version.d.ts +1 -1
  29. package/lib/version.js +1 -1
  30. package/lib/worker-imagebitmap.js +5 -4
  31. package/lib/worker-server.js +19 -8
  32. package/lib/workerinterface.d.ts +8 -1
  33. package/lib/zappar-cv.js +203 -166
  34. package/lib/zappar-cv.wasm +0 -0
  35. package/package.json +1 -1
  36. package/umd/{17cb8e68ad2789719d7f.wasm → 5a86c8fa5c139c48ad64.wasm} +0 -0
  37. package/umd/751.zappar-cv.js +1 -1
  38. package/umd/867.zappar-cv.js +1 -1
  39. package/umd/zappar-cv.js +1 -1
  40. package/umd/zappar-cv.worker.js +1 -1
@@ -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 * profile.dataWidth / 320.0;
269
+ let focalLength = 300.0 * dataWidth / 320.0;
259
270
  cameraModel[0] = focalLength;
260
271
  cameraModel[1] = focalLength;
261
- cameraModel[2] = profile.dataWidth * 0.5;
262
- cameraModel[3] = profile.dataHeight * 0.5;
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: profile.dataWidth,
271
- h: profile.dataHeight,
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);
@@ -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";