@zappar/zappar-cv 3.3.0-beta.1 → 3.4.0-beta.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/README.md +2 -2
- package/lib/bridged-camera-source.d.ts +2 -0
- package/lib/bridged-camera-source.js +13 -0
- package/lib/bridged-message.d.ts +1 -0
- package/lib/bridged-world-tracker.js +8 -6
- package/lib/camera-frame-data.d.ts +1 -2
- package/lib/ceres-worker.d.ts +1 -1
- package/lib/ceres-worker.js +5 -5
- package/lib/gen/zappar-bridge.d.ts +3 -1
- package/lib/gen/zappar-client.js +100 -71
- package/lib/gen/zappar-cwrap.js +27 -6
- package/lib/gen/zappar-native.d.ts +6 -3
- package/lib/gen/zappar-native.js +1 -0
- package/lib/gen/zappar-server.js +80 -68
- package/lib/gen/zappar.d.ts +3 -1
- package/lib/html-element-source.js +3 -4
- package/lib/index-standalone.js +1 -1
- package/lib/mstp-camera-source.d.ts +3 -0
- package/lib/mstp-camera-source.js +21 -0
- package/lib/native.js +20 -14
- package/lib/options.d.ts +2 -1
- package/lib/pipeline.d.ts +1 -0
- package/lib/pipeline.js +13 -0
- package/lib/profile.js +1 -2
- package/lib/src/additional.d.ts +49 -0
- package/lib/src/android-bridge-message-handler.d.ts +15 -0
- package/lib/src/array-from-string.d.ts +2 -0
- package/lib/src/bridged-camera-source.d.ts +53 -0
- package/lib/src/bridged-d3-tracker.d.ts +18 -0
- package/lib/src/bridged-message-parser.d.ts +12 -0
- package/lib/src/bridged-message.d.ts +79 -0
- package/lib/src/bridged-world-tracker.d.ts +21 -0
- package/lib/src/camera-frame-data.d.ts +10 -0
- package/lib/src/camera-source-map.d.ts +11 -0
- package/lib/src/camera-source.d.ts +28 -0
- package/lib/src/cameramodel.d.ts +2 -0
- package/lib/src/ceres-worker.d.ts +1 -0
- package/lib/src/compatibility.d.ts +5 -0
- package/lib/src/data-download.d.ts +8 -0
- package/lib/src/deserializer.d.ts +41 -0
- package/lib/src/direct.d.ts +3 -0
- package/lib/src/drawaxis.d.ts +2 -0
- package/lib/src/drawcamera.d.ts +12 -0
- package/lib/src/drawface.d.ts +16 -0
- package/lib/src/drawfaceproject.d.ts +15 -0
- package/lib/src/drawgrid.d.ts +2 -0
- package/lib/src/drawmesh.d.ts +14 -0
- package/lib/src/drawplane.d.ts +2 -0
- package/lib/src/drawpoints.d.ts +11 -0
- package/lib/src/drawpointswithtype.d.ts +13 -0
- package/lib/src/drawpolygon.d.ts +5 -0
- package/lib/src/drawpreviewmesh.d.ts +16 -0
- package/lib/src/drawquad.d.ts +2 -0
- package/lib/src/event.d.ts +30 -0
- package/lib/src/facelandmark.d.ts +11 -0
- package/lib/src/facelandmarkdata.d.ts +4 -0
- package/lib/src/facelandmarkinterface.d.ts +5 -0
- package/lib/src/facemesh.d.ts +27 -0
- package/lib/src/gen/zappar-bridge.d.ts +182 -0
- package/lib/src/gen/zappar-client.d.ts +26 -0
- package/lib/src/gen/zappar-cwrap.d.ts +12 -0
- package/lib/src/gen/zappar-native.d.ts +256 -0
- package/lib/src/gen/zappar-server.d.ts +50 -0
- package/lib/src/gen/zappar.d.ts +311 -0
- package/lib/src/gfx.d.ts +1 -0
- package/lib/src/gl-state-manager.d.ts +9 -0
- package/lib/src/html-element-source.d.ts +42 -0
- package/lib/src/image-process-gl.d.ts +40 -0
- package/lib/src/imagebitmap-camera-source.d.ts +39 -0
- package/lib/src/imagetracker-previewmesh.d.ts +2 -0
- package/lib/src/imagetracker.d.ts +43 -0
- package/lib/src/index-standalone.d.ts +3 -0
- package/lib/src/index.d.ts +7 -0
- package/lib/src/landmarkdatagenerate.d.ts +2 -0
- package/lib/src/loglevel.d.ts +5 -0
- package/lib/src/messages.d.ts +13 -0
- package/lib/src/mstp-camera-source.d.ts +44 -0
- package/lib/src/native.d.ts +3 -0
- package/lib/src/options.d.ts +5 -0
- package/lib/src/permission.d.ts +12 -0
- package/lib/src/pipeline.d.ts +88 -0
- package/lib/src/profile.d.ts +24 -0
- package/lib/src/riff-reader.d.ts +18 -0
- package/lib/src/sequencerecorder.d.ts +99 -0
- package/lib/src/sequencesource.d.ts +25 -0
- package/lib/src/serializer.d.ts +60 -0
- package/lib/src/shader.d.ts +2 -0
- package/lib/src/source.d.ts +22 -0
- package/lib/src/tr.d.ts +6 -0
- package/lib/src/tracing/jsontracer.d.ts +14 -0
- package/lib/src/tracing/performancetracer.d.ts +11 -0
- package/lib/src/tracing/sharedtracer.d.ts +2 -0
- package/lib/src/tracing/usertimingtracer.d.ts +10 -0
- package/lib/src/version.d.ts +1 -0
- package/lib/src/worker-client.d.ts +4 -0
- package/lib/src/worker-imagebitmap.d.ts +5 -0
- package/lib/src/worker-messages.d.ts +11 -0
- package/lib/src/worker-server.d.ts +3 -0
- package/lib/src/worker.d.ts +1 -0
- package/lib/src/workerinterface.d.ts +110 -0
- package/lib/src/yuv-conversion-gl.d.ts +44 -0
- package/lib/tests/barcode-finder.d.ts +1 -0
- package/lib/tests/camera-data-raw.d.ts +1 -0
- package/lib/tests/camera-data-rgb.d.ts +1 -0
- package/lib/tests/camera-far-near.d.ts +1 -0
- package/lib/tests/camera-only.d.ts +1 -0
- package/lib/tests/common.d.ts +15 -0
- package/lib/tests/d3-tracking.d.ts +1 -0
- package/lib/tests/drawanchor.d.ts +3 -0
- package/lib/tests/face-landmarks.d.ts +1 -0
- package/lib/tests/face-tracking.d.ts +1 -0
- package/lib/tests/image-tracking-cylinder.d.ts +1 -0
- package/lib/tests/image-tracking-preview-mesh.d.ts +1 -0
- package/lib/tests/image-tracking.d.ts +1 -0
- package/lib/tests/instant-tracking.d.ts +1 -0
- package/lib/tests/no-rendering.d.ts +1 -0
- package/lib/tests/sequence-preview.d.ts +1 -0
- package/lib/tests/two-pipelines.d.ts +1 -0
- package/lib/tests/video-face-tracking.d.ts +1 -0
- package/lib/tests/world-tracking-camera-offset-anchor.d.ts +1 -0
- package/lib/tests/world-tracking-meshes.d.ts +1 -0
- package/lib/tests/world-tracking-plane-offset-anchor.d.ts +1 -0
- package/lib/tests/world-tracking.d.ts +1 -0
- package/lib/tests/zapcode-tracking.d.ts +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/worker-client.d.ts +1 -1
- package/lib/worker-client.js +23 -9
- package/lib/worker-messages.d.ts +2 -1
- package/lib/worker-messages.js +2 -1
- package/lib/worker-server.js +27 -10
- package/lib/workerinterface.d.ts +2 -1
- package/lib/zappar-cv.js +1 -1
- package/lib/zappar-cv.wasm +0 -0
- package/package.json +2 -4
- package/umd/169.zappar-cv.js +0 -1
- package/umd/25.zappar-cv.js +0 -1
- package/umd/287.zappar-cv.js +0 -1
- package/umd/482727c0e7dd40d73f5a.zbin +0 -0
- package/umd/670905e7f3a8925b89cb.wasm +0 -0
- package/umd/867.zappar-cv.js +0 -1
- package/umd/b4f46e148a3b3b5aef90.zbin +0 -0
- package/umd/f7b62a3a53b5c9b3222b.zbin +0 -0
- package/umd/zappar-cv-ceres.worker.js +0 -1
- package/umd/zappar-cv.js +0 -1
- package/umd/zappar-cv.worker.js +0 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="dom-webcodecs" />
|
|
2
|
+
export interface CameraFrameInfo {
|
|
3
|
+
rgbFrame?: ImageBitmap | VideoFrame | ImageData;
|
|
4
|
+
data?: ArrayBuffer;
|
|
5
|
+
texture: WebGLTexture | undefined;
|
|
6
|
+
dataWidth: number;
|
|
7
|
+
dataHeight: number;
|
|
8
|
+
cameraModel: Float32Array;
|
|
9
|
+
cameraToDevice: Float32Array;
|
|
10
|
+
cameraSource: Source;
|
|
11
|
+
cameraSourceData?: any;
|
|
12
|
+
uvTransform?: Float32Array;
|
|
13
|
+
userFacing: boolean;
|
|
14
|
+
remoteToken?: number;
|
|
15
|
+
frame?: VideoFrame | ImageBitmap;
|
|
16
|
+
}
|
|
17
|
+
export declare abstract class Source {
|
|
18
|
+
abstract getFrame(currentlyProcessing: boolean): void;
|
|
19
|
+
abstract pause(): void;
|
|
20
|
+
abstract uploadGL(info: CameraFrameInfo): void;
|
|
21
|
+
recycle?(info: CameraFrameInfo): void;
|
|
22
|
+
}
|
package/lib/src/tr.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PerformanceTracer } from "./performancetracer";
|
|
2
|
+
export declare class JSONTracer implements PerformanceTracer {
|
|
3
|
+
private stackDepth;
|
|
4
|
+
private events;
|
|
5
|
+
private static beginTemplate;
|
|
6
|
+
private static endTemplate;
|
|
7
|
+
private static namingEvents;
|
|
8
|
+
constructor();
|
|
9
|
+
clear(): void;
|
|
10
|
+
toJSON(): string;
|
|
11
|
+
postJSON(url: string): void;
|
|
12
|
+
start(name: string): void;
|
|
13
|
+
end(): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface PerformanceTracer {
|
|
2
|
+
clear: () => void;
|
|
3
|
+
start: (name: string) => void;
|
|
4
|
+
end: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare class PerformanceTracerManager implements PerformanceTracer {
|
|
7
|
+
tracers: PerformanceTracer[];
|
|
8
|
+
clear(): void;
|
|
9
|
+
start(name: string): void;
|
|
10
|
+
end(): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PerformanceTracer } from "./performancetracer";
|
|
2
|
+
export declare class UserTimingTracer implements PerformanceTracer {
|
|
3
|
+
private useFixedName;
|
|
4
|
+
private markCount;
|
|
5
|
+
private traceStack;
|
|
6
|
+
constructor(useFixedName?: boolean);
|
|
7
|
+
clear(): void;
|
|
8
|
+
start(name: string): void;
|
|
9
|
+
end(): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const VERSION = "3.4.0-beta.0";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { MsgManager } from "./messages";
|
|
2
|
+
export declare let messageManager: MsgManager;
|
|
3
|
+
export declare function launchWorker(worker?: Worker): Promise<void>;
|
|
4
|
+
export declare function launchCeresWorkers(port0: MessagePort, port1: MessagePort, worker0?: Worker, worker1?: Worker): Promise<void>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { zappar_cwrap } from "./gen/zappar-native";
|
|
2
|
+
import { zappar_server } from "./gen/zappar-server";
|
|
3
|
+
import { MsgManager } from "./messages";
|
|
4
|
+
import { ImageBitmapC2S } from "./workerinterface";
|
|
5
|
+
export declare function handleImageBitmap(m: ImageBitmapC2S, r: zappar_cwrap, server: zappar_server, mgr: MsgManager): void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type * as ZNM from "./zappar-cv";
|
|
2
|
+
export interface WorkerMessageAPI {
|
|
3
|
+
worker_message_send_count: () => number;
|
|
4
|
+
worker_message_send_clear: () => void;
|
|
5
|
+
worker_message_send_data_size: (index: number) => number;
|
|
6
|
+
worker_message_send_data: (index: number) => number;
|
|
7
|
+
worker_message_send_reference: (index: number) => number;
|
|
8
|
+
worker_message_send_instance: (index: number) => number;
|
|
9
|
+
worker_message_receive: (ref: number, size: number, data: number, instance: number) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function getWorkerMessageAPI(mod: ZNM.Module): WorkerMessageAPI;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/// <reference types="dom-webcodecs" />
|
|
2
|
+
import { CameraFrameData } from "./camera-frame-data";
|
|
3
|
+
import { camera_profile_t, zappar_camera_source_t, zappar_pipeline_t } from "./gen/zappar-native";
|
|
4
|
+
export interface CameraFrameC2S {
|
|
5
|
+
t: "cameraFrameC2S";
|
|
6
|
+
d: ArrayBuffer;
|
|
7
|
+
p: zappar_pipeline_t;
|
|
8
|
+
userFacing: boolean;
|
|
9
|
+
c2d: Float32Array;
|
|
10
|
+
cm: Float32Array;
|
|
11
|
+
token: number;
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
captureTime: number;
|
|
15
|
+
}
|
|
16
|
+
export interface CameraFrameReturnS2C {
|
|
17
|
+
t: "cameraFrameRecycleS2C";
|
|
18
|
+
token: number;
|
|
19
|
+
d: ArrayBuffer;
|
|
20
|
+
p: zappar_pipeline_t;
|
|
21
|
+
att?: Float32Array;
|
|
22
|
+
}
|
|
23
|
+
export interface VideoFrameS2C {
|
|
24
|
+
t: "videoFrameS2C";
|
|
25
|
+
token: number;
|
|
26
|
+
d: VideoFrame;
|
|
27
|
+
p: zappar_pipeline_t;
|
|
28
|
+
source: zappar_camera_source_t;
|
|
29
|
+
userFacing: boolean;
|
|
30
|
+
uvTransform: Float32Array;
|
|
31
|
+
w: number;
|
|
32
|
+
h: number;
|
|
33
|
+
cameraModel: Float32Array;
|
|
34
|
+
cameraToDevice: Float32Array;
|
|
35
|
+
}
|
|
36
|
+
export interface StreamC2S {
|
|
37
|
+
t: "streamC2S";
|
|
38
|
+
p: zappar_pipeline_t;
|
|
39
|
+
s: ReadableStream<VideoFrame>;
|
|
40
|
+
userFacing: boolean;
|
|
41
|
+
source: zappar_camera_source_t;
|
|
42
|
+
}
|
|
43
|
+
export interface CameraProfileC2S {
|
|
44
|
+
t: "cameraProfileC2S";
|
|
45
|
+
p: zappar_pipeline_t;
|
|
46
|
+
source: zappar_camera_source_t;
|
|
47
|
+
profile: camera_profile_t;
|
|
48
|
+
}
|
|
49
|
+
export interface CameraToScreenRotationC2S {
|
|
50
|
+
t: "cameraToScreenC2S";
|
|
51
|
+
p: zappar_pipeline_t;
|
|
52
|
+
r: number;
|
|
53
|
+
}
|
|
54
|
+
export interface ImageBitmapC2S {
|
|
55
|
+
t: "imageBitmapC2S";
|
|
56
|
+
p: zappar_pipeline_t;
|
|
57
|
+
i: ImageBitmap;
|
|
58
|
+
r: number;
|
|
59
|
+
userFacing: boolean;
|
|
60
|
+
tokenId: number;
|
|
61
|
+
cameraModel: Float32Array;
|
|
62
|
+
cameraToDevice: Float32Array;
|
|
63
|
+
cp: camera_profile_t;
|
|
64
|
+
}
|
|
65
|
+
export interface ImageBitmapS2C {
|
|
66
|
+
t: "imageBitmapS2C";
|
|
67
|
+
p: zappar_pipeline_t;
|
|
68
|
+
dataWidth: number;
|
|
69
|
+
dataHeight: number;
|
|
70
|
+
uvTransform: Float32Array;
|
|
71
|
+
userFacing: boolean;
|
|
72
|
+
frame: ImageBitmap;
|
|
73
|
+
tokenId: number;
|
|
74
|
+
}
|
|
75
|
+
export interface StreamEndedS2C {
|
|
76
|
+
t: "streamEndedS2C";
|
|
77
|
+
p: zappar_pipeline_t;
|
|
78
|
+
source: zappar_camera_source_t;
|
|
79
|
+
}
|
|
80
|
+
export interface SensorDataC2S {
|
|
81
|
+
t: "sensorDataC2S";
|
|
82
|
+
sensor: "accel" | "accel_wo_gravity_int" | "accel_w_gravity_int" | "rotation_rate_int" | "attitude_int" | "rotation_rate" | "attitude" | "relative_orientation";
|
|
83
|
+
p: zappar_pipeline_t;
|
|
84
|
+
x: number;
|
|
85
|
+
y: number;
|
|
86
|
+
z: number;
|
|
87
|
+
w?: number;
|
|
88
|
+
timestamp: number;
|
|
89
|
+
interval: number;
|
|
90
|
+
}
|
|
91
|
+
export interface AttitudeMatrixC2S {
|
|
92
|
+
t: "attitudeMatrixC2S";
|
|
93
|
+
p: zappar_pipeline_t;
|
|
94
|
+
m: Float32Array;
|
|
95
|
+
}
|
|
96
|
+
export interface CameraDataRawEnabledC2S {
|
|
97
|
+
t: "rawenabled";
|
|
98
|
+
v: boolean;
|
|
99
|
+
}
|
|
100
|
+
export interface CameraDataRawRequestC2S {
|
|
101
|
+
t: "rawrequest";
|
|
102
|
+
p: zappar_pipeline_t;
|
|
103
|
+
token: number;
|
|
104
|
+
}
|
|
105
|
+
export interface CameraDataRawS2C {
|
|
106
|
+
t: "raw";
|
|
107
|
+
token: number;
|
|
108
|
+
p: zappar_pipeline_t;
|
|
109
|
+
data: CameraFrameData | null;
|
|
110
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface PlaneData {
|
|
2
|
+
width: number;
|
|
3
|
+
height: number;
|
|
4
|
+
data: Uint8Array;
|
|
5
|
+
}
|
|
6
|
+
export interface UvPlaneData {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
data: Uint8Array;
|
|
10
|
+
dataVPlane?: Uint8Array;
|
|
11
|
+
}
|
|
12
|
+
export declare enum UvLayout {
|
|
13
|
+
INTERLEAVED_UV = 0,
|
|
14
|
+
INTERLEAVED_VU = 1,
|
|
15
|
+
PLANAR_UV = 2
|
|
16
|
+
}
|
|
17
|
+
export declare class YUVConversionGL {
|
|
18
|
+
private _gl;
|
|
19
|
+
private _yTexture;
|
|
20
|
+
private _uvTexture;
|
|
21
|
+
private _uvTextureSinglePlane;
|
|
22
|
+
private _vTexture;
|
|
23
|
+
private _framebufferId;
|
|
24
|
+
private _vao;
|
|
25
|
+
private _vertexBuffer;
|
|
26
|
+
private _conversionShaders;
|
|
27
|
+
private _isWebGL2;
|
|
28
|
+
private _useVao;
|
|
29
|
+
private _oneComponentInternalFormat;
|
|
30
|
+
private _oneComponentFormat;
|
|
31
|
+
private _twoComponentInternalFormat;
|
|
32
|
+
private _twoComponentFormat;
|
|
33
|
+
private _vaoExtension;
|
|
34
|
+
private _instancedArraysExtension;
|
|
35
|
+
constructor(_gl: WebGL2RenderingContext | WebGLRenderingContext);
|
|
36
|
+
resetGLContext(): void;
|
|
37
|
+
destroy(): void;
|
|
38
|
+
yuvToTexture(y: PlaneData, uv: UvPlaneData, uvLayout: UvLayout, destination: WebGLTexture): void;
|
|
39
|
+
private _getVertexAttribState;
|
|
40
|
+
private _prepareContext;
|
|
41
|
+
private _prepareConversionShader;
|
|
42
|
+
private _prepareTextures;
|
|
43
|
+
private _createSizedTexture;
|
|
44
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Zappar, zappar_pipeline_t } from "../src";
|
|
2
|
+
import { zappar_sequence_source_t } from "../src/gen/zappar";
|
|
3
|
+
import { Event1 } from "../src/event";
|
|
4
|
+
export declare let canvas: HTMLCanvasElement;
|
|
5
|
+
export declare let mirrorPoses: boolean;
|
|
6
|
+
export declare let pipeline: zappar_pipeline_t;
|
|
7
|
+
export declare let onSequenceLoaded: Event1<zappar_sequence_source_t>;
|
|
8
|
+
export declare function setup(webgl2?: boolean): Zappar;
|
|
9
|
+
export declare function currentPoseSetting(): PoseSetting;
|
|
10
|
+
export declare enum PoseSetting {
|
|
11
|
+
default = 0,
|
|
12
|
+
attitude = 1,
|
|
13
|
+
target = 2
|
|
14
|
+
}
|
|
15
|
+
export declare function getGLContext(): WebGLRenderingContext | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare function drawCylinderMVP(gl: WebGLRenderingContext, segments: number, mvpMatrix: Float32Array, color: number[]): void;
|
|
2
|
+
export declare function drawCylinder(gl: WebGLRenderingContext, segments: number, projectionMatrix: Float32Array, cameraMatrix: Float32Array, targetMatrix: Float32Array, color: number[]): void;
|
|
3
|
+
export declare function drawAnchor(gl: WebGLRenderingContext, segments: number, length: number, diameter: number, projectionMatrix: Float32Array, cameraMatrix: Float32Array, targetMatrix: Float32Array): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/lib/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "3.
|
|
1
|
+
export declare const VERSION = "3.4.0-beta.0";
|
package/lib/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "3.
|
|
1
|
+
export const VERSION = "3.4.0-beta.0";
|
package/lib/worker-client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { MsgManager } from "./messages";
|
|
2
2
|
export declare let messageManager: MsgManager;
|
|
3
3
|
export declare function launchWorker(worker?: Worker): Promise<void>;
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function launchCeresWorkers(port0: MessagePort, port1: MessagePort, worker0?: Worker, worker1?: Worker): Promise<void>;
|
package/lib/worker-client.js
CHANGED
|
@@ -41,16 +41,30 @@ export function launchWorker(worker) {
|
|
|
41
41
|
});
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
|
-
export function
|
|
44
|
+
export function launchCeresWorkers(port0, port1, worker0, worker1) {
|
|
45
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
{
|
|
47
|
+
if (!worker0)
|
|
48
|
+
worker0 = new Worker(new URL("./ceres-worker", import.meta.url), { type: 'module' });
|
|
49
|
+
worker0.postMessage({
|
|
50
|
+
t: "wasm",
|
|
51
|
+
url: new URL("./zappar-cv.wasm", import.meta.url).toString(),
|
|
52
|
+
module: yield wasmModule,
|
|
53
|
+
port: port0,
|
|
54
|
+
instance: 0,
|
|
55
|
+
}, [port0]);
|
|
56
|
+
}
|
|
57
|
+
{
|
|
58
|
+
if (!worker1)
|
|
59
|
+
worker1 = new Worker(new URL("./ceres-worker", import.meta.url), { type: 'module' });
|
|
60
|
+
worker1.postMessage({
|
|
61
|
+
t: "wasm",
|
|
62
|
+
url: new URL("./zappar-cv.wasm", import.meta.url).toString(),
|
|
63
|
+
module: yield wasmModule,
|
|
64
|
+
port: port1,
|
|
65
|
+
instance: 1,
|
|
66
|
+
}, [port1]);
|
|
67
|
+
}
|
|
54
68
|
});
|
|
55
69
|
}
|
|
56
70
|
function waitForLoad(w) {
|
package/lib/worker-messages.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export interface WorkerMessageAPI {
|
|
|
5
5
|
worker_message_send_data_size: (index: number) => number;
|
|
6
6
|
worker_message_send_data: (index: number) => number;
|
|
7
7
|
worker_message_send_reference: (index: number) => number;
|
|
8
|
-
|
|
8
|
+
worker_message_send_instance: (index: number) => number;
|
|
9
|
+
worker_message_receive: (ref: number, size: number, data: number, instance: number) => void;
|
|
9
10
|
}
|
|
10
11
|
export declare function getWorkerMessageAPI(mod: ZNM.Module): WorkerMessageAPI;
|
package/lib/worker-messages.js
CHANGED
|
@@ -5,6 +5,7 @@ export function getWorkerMessageAPI(mod) {
|
|
|
5
5
|
worker_message_send_data_size: mod.cwrap("worker_message_send_data_size", "number", ["number"]),
|
|
6
6
|
worker_message_send_data: mod.cwrap("worker_message_send_data", "number", ["number"]),
|
|
7
7
|
worker_message_send_reference: mod.cwrap("worker_message_send_reference", "number", ["number"]),
|
|
8
|
-
|
|
8
|
+
worker_message_send_instance: mod.cwrap("worker_message_send_instance", "number", ["number"]),
|
|
9
|
+
worker_message_receive: mod.cwrap("worker_message_receive", null, ["number", "number", "number", "number"]),
|
|
9
10
|
};
|
|
10
11
|
}
|
package/lib/worker-server.js
CHANGED
|
@@ -17,7 +17,8 @@ import { handleImageBitmap } from "./worker-imagebitmap";
|
|
|
17
17
|
import { getWorkerMessageAPI } from "./worker-messages";
|
|
18
18
|
import { getDataDownloadAPI } from "./data-download";
|
|
19
19
|
export let messageManager = new MsgManager();
|
|
20
|
-
let
|
|
20
|
+
let workerMessageChannel0;
|
|
21
|
+
let workerMessageChannel1;
|
|
21
22
|
let latestCameraToScreenRotation = 0;
|
|
22
23
|
let rawDataAccessEnabled = false;
|
|
23
24
|
const rawCameraFrameBuffersByPipeline = new Map();
|
|
@@ -152,6 +153,9 @@ export function launchWorkerServer(wasmUrl, module, shouldRecordData) {
|
|
|
152
153
|
case "rotation_rate":
|
|
153
154
|
r.pipeline_motion_rotation_rate_submit(pipeline, msgt.timestamp, msgt.x, msgt.y, msgt.z);
|
|
154
155
|
break;
|
|
156
|
+
case "relative_orientation":
|
|
157
|
+
r.pipeline_motion_relative_orientation_submit_int(pipeline, msgt.timestamp, msgt.interval, msgt.x, msgt.y, msgt.z, msgt.w);
|
|
158
|
+
break;
|
|
155
159
|
}
|
|
156
160
|
break;
|
|
157
161
|
}
|
|
@@ -288,7 +292,7 @@ function consumeReader(mod, r, reader, p, userFacing, server, source, workerMess
|
|
|
288
292
|
const pipeline = server._pipeline_by_instance.get(p);
|
|
289
293
|
if (pipeline) {
|
|
290
294
|
try {
|
|
291
|
-
r.pipeline_camera_frame_submit_raw_pointer(pipeline, streamDataBufferPointer, size, framePixelFormatFromFormat(frame.format), width, height, token, cameraToDeviceTransform, latestCameraToScreenRotation, cameraModel, userFacing, (
|
|
295
|
+
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);
|
|
292
296
|
handleMessages(mod, workerMessageAPI);
|
|
293
297
|
if (dataDownloadAPI)
|
|
294
298
|
handleDataDownload(mod, dataDownloadAPI);
|
|
@@ -358,29 +362,42 @@ function handleMessages(mod, m) {
|
|
|
358
362
|
const toSend = m.worker_message_send_count();
|
|
359
363
|
if (toSend === 0)
|
|
360
364
|
return;
|
|
361
|
-
if (!
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
+
if (!workerMessageChannel0 || !workerMessageChannel1) {
|
|
366
|
+
workerMessageChannel0 = new MessageChannel();
|
|
367
|
+
workerMessageChannel0.port1.start();
|
|
368
|
+
workerMessageChannel0.port1.addEventListener('message', evt => {
|
|
369
|
+
if (evt.data.t !== 'msgrec')
|
|
370
|
+
return;
|
|
371
|
+
const data = evt.data.data;
|
|
372
|
+
const ptr = mod._malloc(data.byteLength);
|
|
373
|
+
mod.HEAPU8.set(data, ptr);
|
|
374
|
+
m.worker_message_receive(evt.data.reference, data.byteLength, ptr, 0);
|
|
375
|
+
mod._free(ptr);
|
|
376
|
+
});
|
|
377
|
+
workerMessageChannel1 = new MessageChannel();
|
|
378
|
+
workerMessageChannel1.port1.start();
|
|
379
|
+
workerMessageChannel1.port1.addEventListener('message', evt => {
|
|
365
380
|
if (evt.data.t !== 'msgrec')
|
|
366
381
|
return;
|
|
367
382
|
const data = evt.data.data;
|
|
368
383
|
const ptr = mod._malloc(data.byteLength);
|
|
369
384
|
mod.HEAPU8.set(data, ptr);
|
|
370
|
-
m.worker_message_receive(evt.data.reference, data.byteLength, ptr);
|
|
385
|
+
m.worker_message_receive(evt.data.reference, data.byteLength, ptr, 1);
|
|
371
386
|
mod._free(ptr);
|
|
372
387
|
});
|
|
373
|
-
messageManager.postOutgoingMessage({ t: 'setupCeresWorker',
|
|
388
|
+
messageManager.postOutgoingMessage({ t: 'setupCeresWorker', port0: workerMessageChannel0.port2, port1: workerMessageChannel1.port2 }, [workerMessageChannel0.port2, workerMessageChannel1.port2]);
|
|
374
389
|
}
|
|
375
390
|
for (let i = 0; i < toSend; i++) {
|
|
376
391
|
const reference = m.worker_message_send_reference(i);
|
|
377
392
|
const dataSize = m.worker_message_send_data_size(i);
|
|
393
|
+
const instance = m.worker_message_send_instance(i);
|
|
378
394
|
const dataPtr = m.worker_message_send_data(i);
|
|
379
395
|
const data = mod.HEAPU8.slice(dataPtr, dataPtr + dataSize);
|
|
380
|
-
|
|
396
|
+
(instance === 0 ? workerMessageChannel0 : workerMessageChannel1).port1.postMessage({
|
|
381
397
|
t: 'msgsend',
|
|
382
398
|
data,
|
|
383
|
-
reference
|
|
399
|
+
reference,
|
|
400
|
+
instance
|
|
384
401
|
}, [data.buffer]);
|
|
385
402
|
}
|
|
386
403
|
m.worker_message_send_clear();
|
package/lib/workerinterface.d.ts
CHANGED
|
@@ -79,11 +79,12 @@ export interface StreamEndedS2C {
|
|
|
79
79
|
}
|
|
80
80
|
export interface SensorDataC2S {
|
|
81
81
|
t: "sensorDataC2S";
|
|
82
|
-
sensor: "accel" | "accel_wo_gravity_int" | "accel_w_gravity_int" | "rotation_rate_int" | "attitude_int" | "rotation_rate" | "attitude";
|
|
82
|
+
sensor: "accel" | "accel_wo_gravity_int" | "accel_w_gravity_int" | "rotation_rate_int" | "attitude_int" | "rotation_rate" | "attitude" | "relative_orientation";
|
|
83
83
|
p: zappar_pipeline_t;
|
|
84
84
|
x: number;
|
|
85
85
|
y: number;
|
|
86
86
|
z: number;
|
|
87
|
+
w?: number;
|
|
87
88
|
timestamp: number;
|
|
88
89
|
interval: number;
|
|
89
90
|
}
|