@luxonis/visualizer-protobuf 2.18.0 → 2.18.1
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/{deserialization.worker-DsG76nP8.js → deserialization.worker-C9dXbAlS.js} +29 -198
- package/dist/{index-BFMXTxLw.js → index-B-Q9SHDe.js} +2 -2
- package/dist/{index-DdKOhCXT.js → index-BRTt63KE.js} +2 -2
- package/dist/{index-Ci0X5xT3.js → index-BY93INKj.js} +2 -2
- package/dist/{index-BWittpbR.js → index-B_wE-TAZ.js} +2 -2
- package/dist/{index-BomoqOv5.js → index-Bw0wb_7x.js} +2 -2
- package/dist/{index-BT9CBn7l.js → index-C1DjWsph.js} +3 -3
- package/dist/{index-4PQpGzhb.js → index-CWyWOStx.js} +2 -2
- package/dist/{index-ByIsztCr.js → index-CZ83vGC_.js} +2 -2
- package/dist/{index-CrtBH66u.js → index-ClVSD2eR.js} +2 -2
- package/dist/{index-CcIi7pJR.js → index-Cn-9uas1.js} +2 -2
- package/dist/{index-DUUnuN10.js → index-DD1GBu5y.js} +2 -2
- package/dist/{index-CR6XGTJc.js → index-DHft_1uY.js} +61 -30
- package/dist/{index-CXThSQcL.js → index-DQCgeYB2.js} +2 -2
- package/dist/{index-CJRhjhJ0.js → index-DuOl-R4e.js} +2 -2
- package/dist/{index-BeQ1w8aW.js → index-IroDl_1U.js} +2 -2
- package/dist/{index-DchGURxJ.js → index-WMQ28NAM.js} +2 -2
- package/dist/{index-CcP1Qppv.js → index-hFI4BOol.js} +2 -2
- package/dist/{index-CXIVXFcJ.js → index-hGphzS2C.js} +4 -4
- package/dist/{index-BQecGu9I.js → index-lMTiVIpT.js} +2 -2
- package/dist/index.js +2 -2
- package/dist/lib/src/connection/foxglove-connection.d.ts +3 -1
- package/dist/lib/src/connection/foxglove-connection.d.ts.map +1 -1
- package/dist/lib/src/connection/foxglove-connection.js +11 -2
- package/dist/lib/src/connection/foxglove-connection.js.map +1 -1
- package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.d.ts +2 -0
- package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.d.ts.map +1 -0
- package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js +164 -0
- package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js.map +1 -0
- package/dist/lib/src/messaging/deserialization/pointcloud/utils.d.ts +9 -1
- package/dist/lib/src/messaging/deserialization/pointcloud/utils.d.ts.map +1 -1
- package/dist/lib/src/messaging/deserialization/pointcloud/utils.js +13 -7
- package/dist/lib/src/messaging/deserialization/pointcloud/utils.js.map +1 -1
- package/dist/lib/src/messaging/deserialization/video/color.js +1 -1
- package/dist/lib/src/messaging/deserialization/video/color.js.map +1 -1
- package/dist/lib/src/messaging/deserialization/video/depth.d.ts +14 -3
- package/dist/lib/src/messaging/deserialization/video/depth.d.ts.map +1 -1
- package/dist/lib/src/messaging/deserialization/video/depth.js +16 -157
- package/dist/lib/src/messaging/deserialization/video/depth.js.map +1 -1
- package/dist/lib/src/messaging/deserialization/video/h264.d.ts.map +1 -1
- package/dist/lib/src/messaging/deserialization/video/h264.js.map +1 -1
- package/dist/lib/src/messaging/deserialization.worker.d.ts +15 -11
- package/dist/lib/src/messaging/deserialization.worker.d.ts.map +1 -1
- package/dist/lib/src/messaging/deserialization.worker.js +6 -5
- package/dist/lib/src/messaging/deserialization.worker.js.map +1 -1
- package/dist/lib/src/messaging/message-handler.d.ts.map +1 -1
- package/dist/lib/src/messaging/message-handler.js +2 -1
- package/dist/lib/src/messaging/message-handler.js.map +1 -1
- package/dist/lib/src/utils/poitcloud-sync.d.ts.map +1 -1
- package/dist/lib/src/utils/poitcloud-sync.js +18 -5
- package/dist/lib/src/utils/poitcloud-sync.js.map +1 -1
- package/dist/pointcloudFromDepth.worker-CnEm_1b0.js +199 -0
- package/dist/{tslib.es6-D98N6tjc.js → tslib.es6-D1dICxG6.js} +15 -8
- package/dist/{useMessageReducer-Cg30zaG9.js → useMessageReducer--GRvgQq6.js} +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pointcloudFromDepth.worker.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAC1D,uCAAuC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,SAAS,uBAAuB,CAC9B,WAAwB,EACxB,KAAa,EACb,MAAc,EACd,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU;IAGV,MAAM,SAAS,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAChE,IAAI,KAAK,CAAC,KAAK,CAAC,CACjB,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3C,4DAA4D;YAC5D,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,gDAAgD;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,EAAE,CAAC;YAAA,SAAS;QAAA,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAG,CAAC,EAAE,IAAI,CAAE,CAAC,CAAC,GAAG;QACtD,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAG,CAAC,EAAG,IAAI,CAAC,CAAC,CAAA,GAAG;QAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAE,CAAC,EAAE,IAAI,CAAE,CAAC,CAAA,GAAG;QAC5D,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI;IACvC,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCd,CAAC;AACF,KAAK,UAAU,oBAAoB,CAC/B,UAAuB,EACvB,KAAa,EACb,MAAc,EACd,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU;IACV,uEAAuE;IACvE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACtC,OAAO,uBAAuB,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IACrD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACjD,OAAO,uBAAuB,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAG3B,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;IACjC,MAAM,UAAU,GAAG,SAAS,GAAG,EAAE,CAAC;IAElC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5E,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;QACpC,IAAI,EAAE,WAAW,CAAC,UAAU;QAC5B,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ;KAC1D,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC;QACzC,IAAI,EAAE,UAAU,CAAC,UAAU;QAC3B,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ;KAC1D,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC;QACvC,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ;KAC1D,CAAC,CAAC;IAEH,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;IAC/C,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IAEnD,MAAM,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC;QACjD,OAAO,EAAE;YACL,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE;YACzF,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE;YACzF,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;SAClF;KACJ,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC;QACrC,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE;YACL,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;YACjD,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE;YACtD,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE;SACvD;KACJ,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAC3C,IAAI,EAAE,MAAM;KACf,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAC1C,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5E,OAAO,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE;KACxD,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IACrD,MAAM,WAAW,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;IACtD,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClC,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACvC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;IAC3D,WAAW,CAAC,GAAG,EAAE,CAAC;IAClB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACrC,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,KAAK,EAAE,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ;KAC3D,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAClD,WAAW,CAAC,kBAAkB,CAAC,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IACxF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAE5C,iEAAiE;IACjE,MAAM,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACxC,YAAY,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
import { type Remote } from "comlink";
|
|
1
2
|
export declare function uint8ArrayToUint16Array(uint8Array: Uint8Array): Uint16Array;
|
|
2
3
|
export declare function nv12ToRgbaToPointcloud(nv12Data: Uint8Array, nv12Width: number, nv12Height: number, depthWidth: number, depthHeight: number, data: Uint8Array): Uint8Array;
|
|
3
|
-
export declare
|
|
4
|
+
export declare class i420ToRgbaToPoitcloudWorker {
|
|
5
|
+
protected lastUsedWorkerIndex: number;
|
|
6
|
+
protected workerApis: Remote<{
|
|
7
|
+
i420ToRgbaToPointcloud: (i420Data: Uint8Array, i420Width: number, i420Height: number, depthWidth: number, depthHeight: number, data: Uint8Array) => Promise<Uint8Array>;
|
|
8
|
+
}>[];
|
|
9
|
+
constructor();
|
|
10
|
+
i420ToRgbaToPointcloudWorker(i420Data: Uint8Array, i420Width: number, i420Height: number, depthWidth: number, depthHeight: number, data: Uint8Array): Promise<Uint8Array>;
|
|
11
|
+
}
|
|
4
12
|
export declare function i420ToRgbaToPointcloud(i420Data: Uint8Array, i420Width: number, i420Height: number, depthWidth: number, depthHeight: number, data: Uint8Array): Uint8Array;
|
|
5
13
|
type NeuralCameraIntrinsic = {
|
|
6
14
|
focalLenght: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/pointcloud/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/pointcloud/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAE7C,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,WAAW,CAmB3E;AAID,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,UAAU,GACf,UAAU,CA2CZ;AAKD,qBAAa,2BAA2B;IACtC,SAAS,CAAC,mBAAmB,SAAK;IAClC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;QAC3B,sBAAsB,EAAE,CACtB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,UAAU,KACb,OAAO,CAAC,UAAU,CAAC,CAAC;KAC1B,CAAC,EAAE,CAAC;;IAKU,4BAA4B,CACvC,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,UAAU,CAAC;CAOzB;AAID,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,UAAU,GACf,UAAU,CA4CZ;AAED,KAAK,qBAAqB,GAAG;IAC3B,WAAW,EAAE;QACX,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,cAAc,EAAE;QACd,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;CACH,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAI;IACpC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
4
|
-
/// <reference types="@webgpu/types" />
|
|
5
4
|
import { wrap } from "comlink";
|
|
6
5
|
export function uint8ArrayToUint16Array(uint8Array) {
|
|
7
6
|
if (uint8Array.length % 2 !== 0) {
|
|
@@ -56,12 +55,19 @@ export function nv12ToRgbaToPointcloud(nv12Data, nv12Width, nv12Height, depthWid
|
|
|
56
55
|
}
|
|
57
56
|
return new Uint8Array(buffer);
|
|
58
57
|
}
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
58
|
+
const WORKER_COUNT = 4;
|
|
59
|
+
export class i420ToRgbaToPoitcloudWorker {
|
|
60
|
+
lastUsedWorkerIndex = 0;
|
|
61
|
+
workerApis;
|
|
62
|
+
constructor() {
|
|
63
|
+
this.workerApis = new Array(WORKER_COUNT).fill(undefined).map(() => wrap(new Worker(new URL("./i420ToRgbaToPoitcloud.worker.ts", import.meta.url), { type: "module" })));
|
|
64
|
+
}
|
|
65
|
+
async i420ToRgbaToPointcloudWorker(i420Data, i420Width, i420Height, depthWidth, depthHeight, data) {
|
|
66
|
+
// biome-ignore lint/style/noNonNullAssertion: This should work
|
|
67
|
+
const workerApi = this.workerApis[this.lastUsedWorkerIndex];
|
|
68
|
+
this.lastUsedWorkerIndex = (this.lastUsedWorkerIndex + 1) % WORKER_COUNT;
|
|
69
|
+
return await workerApi.i420ToRgbaToPointcloud(i420Data, i420Width, i420Height, depthWidth, depthHeight, data);
|
|
70
|
+
}
|
|
65
71
|
}
|
|
66
72
|
/* H264 (i420) to RGBA */
|
|
67
73
|
export function i420ToRgbaToPointcloud(i420Data, i420Width, i420Height, depthWidth, depthHeight, data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/pointcloud/utils.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/pointcloud/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { parseMessage } from "../../utils.js";
|
|
|
6
6
|
export function deserializeColorFrame({ topic, message, callback }) {
|
|
7
7
|
const { receiveTime, encoding, step, width, height, stride, planeStride } = parseMessage(message);
|
|
8
8
|
const foxgloveMessage = {
|
|
9
|
-
timestamp: receiveTime,
|
|
9
|
+
timestamp: message.tsDevice ?? receiveTime,
|
|
10
10
|
frame_id: `color-${topic}-frame`,
|
|
11
11
|
width,
|
|
12
12
|
height,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/color.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAG1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AAI9F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,MAAM,UAAU,qBAAqB,CAAC,EACpC,KAAK,EACL,OAAO,EACP,QAAQ,EACsB;IAC9B,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAElG,MAAM,eAAe,GAAqB;QACxC,SAAS,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/color.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAG1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AAI9F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,MAAM,UAAU,qBAAqB,CAAC,EACpC,KAAK,EACL,OAAO,EACP,QAAQ,EACsB;IAC9B,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAElG,MAAM,eAAe,GAAqB;QACxC,SAAS,EAAE,OAAO,CAAC,QAAQ,IAAI,WAAW;QAC1C,QAAQ,EAAE,SAAS,KAAK,QAAQ;QAChC,KAAK;QACL,MAAM;QACN,QAAQ;QACR,IAAI,EAAE,KAAK,GAAG,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM;QACN,WAAW;KACZ,CAAC;IAEF,QAAQ,CAAC;QACP,KAAK;QACL,WAAW;QACX,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,kBAAkB,CAAC,eAAe,CAAC;QAChD,UAAU,EAAE,mBAAmB;KAChC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { type Remote } from "comlink";
|
|
1
2
|
import type { PointCloud } from "@foxglove/schemas";
|
|
2
|
-
import { MessageEvent } from "@foxglove/studio-base/players/types";
|
|
3
|
-
import { ImgFrame } from "../../../protobuf.generated/ImgFrame.js";
|
|
3
|
+
import type { MessageEvent } from "@foxglove/studio-base/players/types";
|
|
4
|
+
import type { ImgFrame } from "../../../protobuf.generated/ImgFrame.js";
|
|
5
|
+
import { type NeuralCameraIntrinsics } from "../pointcloud/utils.js";
|
|
4
6
|
export type PointCloudWithDimensions = PointCloud & {
|
|
5
7
|
width?: number;
|
|
6
8
|
height?: number;
|
|
@@ -9,6 +11,15 @@ export type DeserializeDepthFrameArgs = {
|
|
|
9
11
|
topic: string;
|
|
10
12
|
message: ImgFrame;
|
|
11
13
|
callback: (event: MessageEvent) => void;
|
|
14
|
+
neuralCameraIntrinsics: NeuralCameraIntrinsics;
|
|
12
15
|
};
|
|
13
|
-
export declare
|
|
16
|
+
export declare class depthToPointcloudWorkerPool {
|
|
17
|
+
protected lastUsedWorkerIndex: number;
|
|
18
|
+
protected workerApis: Remote<{
|
|
19
|
+
depthToPointcloudGPU: (depthArray: Uint16Array, width: number, height: number, fx: number, fy: number, cx: number, cy: number) => Promise<Uint8Array>;
|
|
20
|
+
}>[];
|
|
21
|
+
constructor();
|
|
22
|
+
depthToPointcloudGPU(depthArray: Uint16Array, width: number, height: number, fx: number, fy: number, cx: number, cy: number): Promise<Uint8Array>;
|
|
23
|
+
}
|
|
24
|
+
export declare function deserializeDepthFrame({ topic, message, callback, neuralCameraIntrinsics }: DeserializeDepthFrameArgs): Promise<void>;
|
|
14
25
|
//# sourceMappingURL=depth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depth.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/depth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"depth.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/depth.ts"],"names":[],"mappings":"AAKA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,EAAE,KAAK,sBAAsB,EAA2B,MAAM,wBAAwB,CAAC;AAE9F,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,sBAAsB,EAAE,sBAAsB,CAAC;CAChD,CAAC;AAKF,qBAAa,2BAA2B;IACtC,SAAS,CAAC,mBAAmB,SAAK;IAClC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;QAC3B,oBAAoB,EAAE,CACpB,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,KACP,OAAO,CAAC,UAAU,CAAC,CAAC;KAC1B,CAAC,EAAE,CAAC;;IAKU,oBAAoB,CAC/B,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,UAAU,CAAC;CAOzB;AAGD,wBAAsB,qBAAqB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAC,sBAAsB,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CzI"}
|
|
@@ -2,177 +2,36 @@
|
|
|
2
2
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
4
4
|
/* eslint-disable no-underscore-dangle */
|
|
5
|
+
import { wrap } from "comlink";
|
|
5
6
|
import { NumericType } from "@foxglove/schemas";
|
|
6
7
|
import { estimateObjectSize } from "@foxglove/studio-base/players/messageMemoryEstimation.js";
|
|
7
8
|
import { parseMessage } from "../../utils.js";
|
|
8
9
|
import { uint8ArrayToUint16Array } from "../pointcloud/utils.js";
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
|
|
16
|
-
let i = global_id.x;
|
|
17
|
-
let fx = intrinsicsBuffer[0];
|
|
18
|
-
let fy = intrinsicsBuffer[1];
|
|
19
|
-
let cx = intrinsicsBuffer[2];
|
|
20
|
-
let cy = intrinsicsBuffer[3];
|
|
21
|
-
let scale = intrinsicsBuffer[4];
|
|
22
|
-
let width = intrinsicsBuffer[5];
|
|
23
|
-
let height = intrinsicsBuffer[6];
|
|
24
|
-
|
|
25
|
-
if (i >= u32(width * height)) { return; }
|
|
26
|
-
|
|
27
|
-
let u = i % u32(width);
|
|
28
|
-
let v = i / u32(width);
|
|
29
|
-
|
|
30
|
-
// Convert uint16 depth value to float (stored as u32, so we bitwise mask)
|
|
31
|
-
let rawDepth = depthBuffer[i] & 0xFFFFu;
|
|
32
|
-
let z = f32(rawDepth) * scale;
|
|
33
|
-
|
|
34
|
-
let x = (cx - f32(u)) * z / fx;
|
|
35
|
-
let y = (cy - f32(v)) * z / fy;
|
|
36
|
-
|
|
37
|
-
let base = i * 4u; // 4 values per point (X, Y, Z, Color)
|
|
38
|
-
|
|
39
|
-
// Convert floats to u32 representation for storage
|
|
40
|
-
xyzColorBuffer[base] = bitcast<u32>(x);
|
|
41
|
-
xyzColorBuffer[base + 1u] = bitcast<u32>(y);
|
|
42
|
-
xyzColorBuffer[base + 2u] = bitcast<u32>(z);
|
|
43
|
-
|
|
44
|
-
// Example: RGB set based on depth, Alpha is fixed at 255
|
|
45
|
-
let r = u32(clamp(z * 255.0, 0.0, 255.0));
|
|
46
|
-
let g = u32(clamp(y * 255.0, 0.0, 255.0));
|
|
47
|
-
let b = u32(clamp(x * 255.0, 0.0, 255.0));
|
|
48
|
-
xyzColorBuffer[base + 3u] = (r & 0xFFu) | ((g & 0xFFu) << 8) | ((b & 0xFFu) << 16) | (255u << 24);
|
|
49
|
-
}
|
|
50
|
-
`;
|
|
51
|
-
async function depthToPointcloudGPU(depthArray, width, height, fx, fy, cx, cy) {
|
|
52
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
53
|
-
if (!navigator.gpu) {
|
|
54
|
-
console.warn("WebGPU not supported.");
|
|
55
|
-
return depthToPointCloudBuffer(depthArray, width, height, fx, fy, cx, cy);
|
|
56
|
-
}
|
|
57
|
-
const adapter = await navigator.gpu.requestAdapter();
|
|
58
|
-
if (!adapter) {
|
|
59
|
-
console.warn("Couldn't request WebGPU adapter.");
|
|
60
|
-
return depthToPointCloudBuffer(depthArray, width, height, fx, fy, cx, cy);
|
|
61
|
-
}
|
|
62
|
-
const device = await adapter.requestDevice();
|
|
63
|
-
const queue = device.queue;
|
|
64
|
-
const scale = 1.0;
|
|
65
|
-
const numPixels = width * height;
|
|
66
|
-
const outputSize = numPixels * 16;
|
|
67
|
-
const depthData32 = new Uint32Array(depthArray);
|
|
68
|
-
const intrinsics = new Float32Array([fx, fy, cx, cy, scale, width, height]);
|
|
69
|
-
const depthBuffer = device.createBuffer({
|
|
70
|
-
size: depthData32.byteLength,
|
|
71
|
-
usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST,
|
|
72
|
-
});
|
|
73
|
-
const intrinsicsBuffer = device.createBuffer({
|
|
74
|
-
size: intrinsics.byteLength,
|
|
75
|
-
usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST,
|
|
76
|
-
});
|
|
77
|
-
const xyzColorBuffer = device.createBuffer({
|
|
78
|
-
size: outputSize,
|
|
79
|
-
usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC,
|
|
80
|
-
});
|
|
81
|
-
queue.writeBuffer(depthBuffer, 0, depthData32);
|
|
82
|
-
queue.writeBuffer(intrinsicsBuffer, 0, intrinsics);
|
|
83
|
-
const bindGroupLayout = device.createBindGroupLayout({
|
|
84
|
-
entries: [
|
|
85
|
-
{ binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: "read-only-storage" } },
|
|
86
|
-
{ binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: "read-only-storage" } },
|
|
87
|
-
{ binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: "storage" } },
|
|
88
|
-
],
|
|
89
|
-
});
|
|
90
|
-
const bindGroup = device.createBindGroup({
|
|
91
|
-
layout: bindGroupLayout,
|
|
92
|
-
entries: [
|
|
93
|
-
{ binding: 0, resource: { buffer: depthBuffer } },
|
|
94
|
-
{ binding: 1, resource: { buffer: intrinsicsBuffer } },
|
|
95
|
-
{ binding: 2, resource: { buffer: xyzColorBuffer } },
|
|
96
|
-
],
|
|
97
|
-
});
|
|
98
|
-
const shaderModule = device.createShaderModule({
|
|
99
|
-
code: shader
|
|
100
|
-
});
|
|
101
|
-
const pipeline = device.createComputePipeline({
|
|
102
|
-
layout: device.createPipelineLayout({ bindGroupLayouts: [bindGroupLayout] }),
|
|
103
|
-
compute: { module: shaderModule, entryPoint: "main" },
|
|
104
|
-
});
|
|
105
|
-
const commandEncoder = device.createCommandEncoder();
|
|
106
|
-
const passEncoder = commandEncoder.beginComputePass();
|
|
107
|
-
passEncoder.setPipeline(pipeline);
|
|
108
|
-
passEncoder.setBindGroup(0, bindGroup);
|
|
109
|
-
passEncoder.dispatchWorkgroups(Math.ceil(numPixels / 256));
|
|
110
|
-
passEncoder.end();
|
|
111
|
-
device.queue.submit([commandEncoder.finish()]);
|
|
112
|
-
const outputBuffer = device.createBuffer({
|
|
113
|
-
size: xyzColorBuffer.size,
|
|
114
|
-
usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ,
|
|
115
|
-
});
|
|
116
|
-
const copyEncoder = device.createCommandEncoder();
|
|
117
|
-
copyEncoder.copyBufferToBuffer(xyzColorBuffer, 0, outputBuffer, 0, xyzColorBuffer.size);
|
|
118
|
-
device.queue.submit([copyEncoder.finish()]);
|
|
119
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
120
|
-
await outputBuffer.mapAsync(GPUMapMode.READ);
|
|
121
|
-
const mappedRange = outputBuffer.getMappedRange();
|
|
122
|
-
const result = new Uint8Array(mappedRange.byteLength);
|
|
123
|
-
result.set(new Uint8Array(mappedRange));
|
|
124
|
-
outputBuffer.unmap();
|
|
125
|
-
return result;
|
|
126
|
-
}
|
|
127
|
-
function depthToPointCloudBuffer(uint16Array, width, height, fx, fy, cx, cy) {
|
|
128
|
-
const depthData = Array.from({ length: height }, () => new Array(width));
|
|
129
|
-
for (let v = 0; v < height; v++) {
|
|
130
|
-
depthData[v] = depthData[v] ?? [];
|
|
131
|
-
for (let u = 0; u < width; u++) {
|
|
132
|
-
const d = uint16Array[v * width + u] ?? -1;
|
|
133
|
-
depthData[v][u] = d > 0 ? d : -1;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
const points = [];
|
|
137
|
-
// Accumulate the x, y, z values for each pixel.
|
|
138
|
-
for (let v = 0; v < height; v++) {
|
|
139
|
-
const row = depthData[v];
|
|
140
|
-
if (!row) {
|
|
141
|
-
continue;
|
|
142
|
-
}
|
|
143
|
-
for (let u = 0; u < width; u++) {
|
|
144
|
-
const z = row[u] ?? 0;
|
|
145
|
-
const x = (cx - u) * z / fx;
|
|
146
|
-
const y = (cy - v) * z / fy;
|
|
147
|
-
points.push(x, y, z);
|
|
148
|
-
}
|
|
10
|
+
const WORKER_COUNT = 3;
|
|
11
|
+
export class depthToPointcloudWorkerPool {
|
|
12
|
+
lastUsedWorkerIndex = 0;
|
|
13
|
+
workerApis;
|
|
14
|
+
constructor() {
|
|
15
|
+
this.workerApis = new Array(WORKER_COUNT).fill(undefined).map(() => wrap(new Worker(new URL("../pointcloud/pointcloudFromDepth.worker.ts", import.meta.url), { type: "module" })));
|
|
149
16
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
view.setFloat32(offset, points[i * 3] ?? 0, true); //X
|
|
156
|
-
view.setFloat32(offset + 4, points[i * 3 + 1] ?? 0, true); //Y
|
|
157
|
-
view.setFloat32(offset + 8, points[i * 3 + 2] ?? 0, true); //Z
|
|
158
|
-
view.setUint8(offset + 12, 0); // R
|
|
159
|
-
view.setUint8(offset + 13, 0); // G
|
|
160
|
-
view.setUint8(offset + 14, 0); // B
|
|
161
|
-
view.setUint8(offset + 15, 255); // A
|
|
17
|
+
async depthToPointcloudGPU(depthArray, width, height, fx, fy, cx, cy) {
|
|
18
|
+
// biome-ignore lint/style/noNonNullAssertion: This should work
|
|
19
|
+
const workerApi = this.workerApis[this.lastUsedWorkerIndex];
|
|
20
|
+
this.lastUsedWorkerIndex = (this.lastUsedWorkerIndex + 1) % WORKER_COUNT;
|
|
21
|
+
return await workerApi.depthToPointcloudGPU(depthArray, width, height, fx, fy, cx, cy);
|
|
162
22
|
}
|
|
163
|
-
return new Uint8Array(buffer);
|
|
164
23
|
}
|
|
165
|
-
|
|
24
|
+
const workerPool = new depthToPointcloudWorkerPool();
|
|
25
|
+
export async function deserializeDepthFrame({ topic, message, callback, neuralCameraIntrinsics }) {
|
|
166
26
|
const { receiveTime, width, height } = parseMessage(message);
|
|
167
|
-
const neuralCameraIntrinsics = JSON.parse(localStorage.getItem("neuralCameraIntrinsics") ?? "{}");
|
|
168
27
|
const uint16Array = uint8ArrayToUint16Array(message.data);
|
|
169
28
|
const fx = neuralCameraIntrinsics.right.focalLenght.x;
|
|
170
29
|
const fy = neuralCameraIntrinsics.right.focalLenght.y;
|
|
171
30
|
const cx = neuralCameraIntrinsics.right.principalPoint.x;
|
|
172
31
|
const cy = neuralCameraIntrinsics.right.principalPoint.y;
|
|
173
|
-
const pointCloudBufferGPU = depthToPointcloudGPU(uint16Array, width, height, fx, fy, cx, cy);
|
|
32
|
+
const pointCloudBufferGPU = workerPool.depthToPointcloudGPU(uint16Array, width, height, fx, fy, cx, cy);
|
|
174
33
|
const foxgloveMessage = {
|
|
175
|
-
timestamp: receiveTime,
|
|
34
|
+
timestamp: message.tsDevice ?? receiveTime,
|
|
176
35
|
frame_id: `pointcloud-${topic}-frame`,
|
|
177
36
|
point_stride: 16,
|
|
178
37
|
pose: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depth.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/depth.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAC1D,yCAAyC;
|
|
1
|
+
{"version":3,"file":"depth.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/depth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"h264.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/h264.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAIlE,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE;IACtC,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAChC,CAAC,CAAC;AA8CH,KAAK,+BAA+B,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,GAAG,QAAQ,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,wBAAsB,2BAA2B,CAAC,EAChD,KAAK,EACL,OAAO,EACP,aAAa,EACb,QAAQ,EACT,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"h264.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/h264.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAIlE,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE;IACtC,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAChC,CAAC,CAAC;AA8CH,KAAK,+BAA+B,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,GAAG,QAAQ,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,wBAAsB,2BAA2B,CAAC,EAChD,KAAK,EACL,OAAO,EACP,aAAa,EACb,QAAQ,EACT,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"h264.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/h264.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"h264.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/h264.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AAM9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAahE,SAAS,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAA0B;IACpF,OAAO,IAAI,YAAY,CAAC;QACtB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE3B,MAAM,WAAW,GACf,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;;oBAErD,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAE9B,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAExD,MAAM,eAAe,GAAa;gBAChC,SAAS,EAAE,WAAW;gBACtB,QAAQ,EAAE,QAAQ,KAAK,QAAQ;gBAC/B,KAAK,EAAE,KAAK,CAAC,YAAY;gBACzB,MAAM,EAAE,KAAK,CAAC,aAAa;gBAC3B,IAAI,EAAE,MAAM;gBACZ,QAAQ;gBACR,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI;aAChC,CAAC;YAGF,QAAQ,CAAC;gBACP,KAAK;gBACL,WAAW;gBACX,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,kBAAkB,CAAC,eAAe,CAAC;gBAChD,UAAU,EAAE,mBAAmB;aAChC,CAAC,CAAC;YAEH,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QACD,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;AACL,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,EAChD,KAAK,EACL,OAAO,EACP,aAAa,EACb,QAAQ,EACwB;IAChC,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;QAEvE,OAAO,CAAC,SAAS,CAAC;YAChB,KAAK,EAAE,aAAa;YACpB,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC;QAEH,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE;YACvB,OAAO;YACP,MAAM,EAAE,IAAI,GAAG,EAAE;SAClB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,CAAC,eAAe,GAAG,EAAE,EAAE,CAAC;QAC7C,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IAC1F,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAGpD,MAAM,KAAK,GAA0B;QACnC,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,SAAS,EAAE,cAAc;KAC1B,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3C,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import { MessageEvent } from "@foxglove/studio-base/players/types";
|
|
2
|
-
import { TopicSizes } from "./deserialization/detections/detection.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
1
|
+
import type { MessageEvent } from "@foxglove/studio-base/players/types";
|
|
2
|
+
import { type TopicSizes } from "./deserialization/detections/detection.js";
|
|
3
|
+
import type { NeuralCameraIntrinsics } from "./deserialization/pointcloud/utils.js";
|
|
4
|
+
import { type TopicDecoders } from "./deserialization/video/h264.js";
|
|
5
|
+
import type { FoxgloveMessage } from "../connection/communicator";
|
|
6
|
+
import { type EncodedFrame } from "../protobuf.generated/EncodedFrame.js";
|
|
7
|
+
import type { ImageAnnotations } from "../protobuf.generated/ImageAnnotations.js";
|
|
8
|
+
import type { ImgDetections } from "../protobuf.generated/ImgDetections.js";
|
|
9
|
+
import { type ImgFrame } from "../protobuf.generated/ImgFrame.js";
|
|
10
|
+
import type { PointCloudData } from "../protobuf.generated/PointCloudData.js";
|
|
11
|
+
import type { SpatialImgDetections } from "../protobuf.generated/SpatialImgDetections.js";
|
|
11
12
|
export type DeserializeDepthAiMessageArgs = {
|
|
12
13
|
topic: string;
|
|
13
14
|
topicDecoders: TopicDecoders;
|
|
15
|
+
neuralCameraIntrinsics: NeuralCameraIntrinsics;
|
|
14
16
|
topicSizes: TopicSizes;
|
|
15
17
|
callback: (event: MessageEvent) => void;
|
|
16
18
|
} & ({
|
|
@@ -34,6 +36,8 @@ export type DeserializeDepthAiMessageArgs = {
|
|
|
34
36
|
});
|
|
35
37
|
export type DeserializationWorkerApi = {
|
|
36
38
|
initCallback: (cb: (event: MessageEvent) => void) => void;
|
|
37
|
-
handleMessageToDecode: ({ schema, buffer, topic }: FoxgloveMessage
|
|
39
|
+
handleMessageToDecode: ({ schema, buffer, topic, neuralCameraIntrinsics }: FoxgloveMessage & {
|
|
40
|
+
neuralCameraIntrinsics: NeuralCameraIntrinsics;
|
|
41
|
+
}) => void;
|
|
38
42
|
};
|
|
39
43
|
//# sourceMappingURL=deserialization.worker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialization.worker.d.ts","sourceRoot":"","sources":["../../../../src/messaging/deserialization.worker.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"deserialization.worker.d.ts","sourceRoot":"","sources":["../../../../src/messaging/deserialization.worker.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGxE,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAEtG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAGpF,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAIlG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,KAAK,YAAY,EAAW,MAAM,uCAAuC,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,KAAK,QAAQ,EAAQ,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAE1F,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,aAAa,CAAC;IAC7B,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CACzC,GAAG,CACE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAClD,CAAC;AAmGJ,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,KAAK,IAAI,CAAC;IAC1D,qBAAqB,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAC,sBAAsB,EAAG,EAAE,eAAe,GAAG;QAAE,sBAAsB,EAAE,sBAAsB,CAAA;KAAE,KAAK,IAAI,CAAC;CAC1J,CAAA"}
|
|
@@ -9,17 +9,17 @@ import { deserializeColorFrame } from "./deserialization/video/color.js";
|
|
|
9
9
|
import { deserializeDepthFrame } from "./deserialization/video/depth.js";
|
|
10
10
|
import { deserializeEncodedFrameH264 } from "./deserialization/video/h264.js";
|
|
11
11
|
import { deserializeMJPEGFrame } from "./deserialization/video/mjpeg.js";
|
|
12
|
+
import { protobufsBySchema } from "./protobuf";
|
|
12
13
|
import { parseMessage } from "./utils.js";
|
|
13
14
|
import { Profile } from "../protobuf.generated/EncodedFrame.js";
|
|
14
15
|
import { Type } from "../protobuf.generated/ImgFrame.js";
|
|
15
|
-
import { protobufsBySchema } from "./protobuf";
|
|
16
16
|
const topicDecoders = new Map();
|
|
17
17
|
const topicSizes = new Map();
|
|
18
18
|
let callback;
|
|
19
19
|
function initCallback(cb) {
|
|
20
20
|
callback = cb;
|
|
21
21
|
}
|
|
22
|
-
function handleMessageToDecode({ schema, buffer, topic }) {
|
|
22
|
+
function handleMessageToDecode({ schema, buffer, topic, neuralCameraIntrinsics }) {
|
|
23
23
|
const protobufSchema = protobufsBySchema[schema];
|
|
24
24
|
if (!protobufSchema) {
|
|
25
25
|
console.warn(`Unsupported message schema "${schema}"`);
|
|
@@ -33,11 +33,12 @@ function handleMessageToDecode({ schema, buffer, topic }) {
|
|
|
33
33
|
topicDecoders,
|
|
34
34
|
message,
|
|
35
35
|
callback,
|
|
36
|
-
type: protobufSchema.type
|
|
36
|
+
type: protobufSchema.type,
|
|
37
|
+
neuralCameraIntrinsics
|
|
37
38
|
});
|
|
38
39
|
}
|
|
39
40
|
async function deserializeDepthAiMessage(args) {
|
|
40
|
-
const { topicDecoders, topicSizes, type, message, callback, topic } = args;
|
|
41
|
+
const { topicDecoders, topicSizes, type, message, callback, topic, neuralCameraIntrinsics } = args;
|
|
41
42
|
switch (type) {
|
|
42
43
|
case "encodedFrame": {
|
|
43
44
|
topicSizes.set(topic, { width: message.width, height: message.height });
|
|
@@ -61,7 +62,7 @@ async function deserializeDepthAiMessage(args) {
|
|
|
61
62
|
break;
|
|
62
63
|
}
|
|
63
64
|
case Type.RAW16: {
|
|
64
|
-
await deserializeDepthFrame({ topic, message, callback });
|
|
65
|
+
await deserializeDepthFrame({ topic, message, callback, neuralCameraIntrinsics });
|
|
65
66
|
break;
|
|
66
67
|
}
|
|
67
68
|
default: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialization.worker.js","sourceRoot":"","sources":["../../../../src/messaging/deserialization.worker.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAC1D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"deserialization.worker.js","sourceRoot":"","sources":["../../../../src/messaging/deserialization.worker.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAC1D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAmB,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAExF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAsB,MAAM,iCAAiC,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAqB,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAGnF,OAAO,EAAiB,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAmBxE,MAAM,aAAa,GAAkB,IAAI,GAAG,EAAE,CAAC;AAC/C,MAAM,UAAU,GAAe,IAAI,GAAG,EAAE,CAAC;AACzC,IAAI,QAAuC,CAAC;AAE5C,SAAS,YAAY,CAAC,EAAiC;IACrD,QAAQ,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAC,sBAAsB,EAAyE;IACpJ,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,+BAA+B,MAAM,GAAG,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAE3D,KAAK,yBAAyB,CAAC;QAC7B,KAAK;QACL,UAAU;QACV,aAAa;QACb,OAAO;QACP,QAAQ;QACR,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,sBAAsB;KACU,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,IAAmC;IAEnC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAC,sBAAsB,EAAE,GAAG,IAAI,CAAC;IAElG,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACxE,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;gBACpC,MAAM,2BAA2B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjF,CAAC;iBAAM,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC5C,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,kCAAkC;YACpC,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACnE,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACzC,QAAQ,WAAW,EAAE,CAAC;gBACpB,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,MAAM,2BAA2B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC/E,MAAM;gBACR,CAAC;gBACD,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChB,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAC,sBAAsB,EAAE,CAAC,CAAC;oBACjF,MAAM;gBACR,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACR,qBAAqB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,wBAAwB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YACnE,MAAM;QACR,CAAC;QACD,KAAK,uBAAuB,CAAC,CAAC,CAAC;YAC7B,8BAA8B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YACzE,MAAM;QACR,CAAC;QACD,KAAK,wBAAwB,CAAC,CAAC,CAAC;YAC9B,+CAA+C;YAC/C,wBAAwB,CAAC;gBACvB,KAAK;gBACL,UAAU;gBACV,OAAO,EAAE;oBACP,GAAG,OAAO;oBACV,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,SAAU,CAAC;iBAC1E;gBACD,QAAQ;aACT,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,yBAAyB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxD,MAAM;QACR,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,OAAO,CAAC,IAAI,CAAC,8CAA8C,IAAI,GAAG,CAAC,CAAC;YACpE,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAOD,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-handler.d.ts","sourceRoot":"","sources":["../../../../src/messaging/message-handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAKnE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"message-handler.d.ts","sourceRoot":"","sources":["../../../../src/messaging/message-handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAKnE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;CAC5C,CAAC;AAaF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,cAAc,CAgB5F"}
|
|
@@ -7,6 +7,7 @@ function initWorker(callback) {
|
|
|
7
7
|
workerWrap.initCallback(Comlink.proxy(callback));
|
|
8
8
|
return workerWrap;
|
|
9
9
|
}
|
|
10
|
+
const neuralCameraIntrinsics = JSON.parse(localStorage.getItem("neuralCameraIntrinsics") ?? "{}");
|
|
10
11
|
export function createMessageHandler(callback) {
|
|
11
12
|
const workerPool = new Map();
|
|
12
13
|
return {
|
|
@@ -17,7 +18,7 @@ export function createMessageHandler(callback) {
|
|
|
17
18
|
worker = newWorker;
|
|
18
19
|
workerPool.set(topic, newWorker);
|
|
19
20
|
}
|
|
20
|
-
worker.handleMessageToDecode({ schema, buffer, topic });
|
|
21
|
+
worker.handleMessageToDecode({ schema, buffer, topic, neuralCameraIntrinsics });
|
|
21
22
|
}),
|
|
22
23
|
};
|
|
23
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../../../src/messaging/message-handler.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../../../src/messaging/message-handler.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAanC,SAAS,UAAU,CAAC,QAAuC;IACzD,MAAM,UAAU,GAA6B,OAAO,CAAC,IAAI,CACvD,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAC9G,CAAC;IAEF,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEjD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,sBAAsB,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,IAAI,CAA0B,CAAC;AAC5H,MAAM,UAAU,oBAAoB,CAAC,QAAuC;IAC1E,MAAM,UAAU,GAA0C,IAAI,GAAG,EAAE,CAAC;IAEpE,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YACrC,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACvC,MAAM,GAAG,SAAS,CAAC;gBACnB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACnC,CAAC;YAED,MAAO,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAC,sBAAsB,EAAE,CAAC,CAAC;QAClF,CAAC,CAA6B;KAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poitcloud-sync.d.ts","sourceRoot":"","sources":["../../../../src/utils/poitcloud-sync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAEzF,qBAAa,sBAAsB;;
|
|
1
|
+
{"version":3,"file":"poitcloud-sync.d.ts","sourceRoot":"","sources":["../../../../src/utils/poitcloud-sync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAEzF,qBAAa,sBAAsB;;IAwC1B,YAAY,EAAE,wBAAwB,EAAE,CAAM;IAG9C,QAAQ,CAAC,IAAI,EAAC,MAAM,GAAG,wBAAwB,GAAG,IAAI;IAsBtD,QAAQ,CAAC,KAAK,EAAE,wBAAwB,GAAG,IAAI;CAOvD"}
|
|
@@ -15,7 +15,10 @@ export class PoitCloudSyncFramework {
|
|
|
15
15
|
// biome-ignore lint/style/noNonNullAssertion:
|
|
16
16
|
const midKey = arr[mid].timestamp.nsec;
|
|
17
17
|
if (midKey === targetKey) {
|
|
18
|
-
|
|
18
|
+
if ((Math.abs(midKey - targetKey) / 10 ** 9) < this.#MAX_DELAY_SEC) {
|
|
19
|
+
return { res: bestMatch, index: left };
|
|
20
|
+
}
|
|
21
|
+
return { res: null, index: mid };
|
|
19
22
|
}
|
|
20
23
|
if (midKey < targetKey) {
|
|
21
24
|
bestMatch = arr[mid];
|
|
@@ -25,10 +28,14 @@ export class PoitCloudSyncFramework {
|
|
|
25
28
|
right = mid - 1;
|
|
26
29
|
}
|
|
27
30
|
}
|
|
28
|
-
|
|
31
|
+
if (bestMatch && (Math.abs(bestMatch.timestamp.nsec - targetKey) / 10 ** 9) < this.#MAX_DELAY_SEC) {
|
|
32
|
+
return { res: bestMatch, index: left };
|
|
33
|
+
}
|
|
34
|
+
return { res: null, index: left };
|
|
29
35
|
}
|
|
30
36
|
storedFrames = [];
|
|
31
|
-
#
|
|
37
|
+
#MAX_DELAY_SEC = 0.01;
|
|
38
|
+
#MAX_STORED_FRAMES = 15;
|
|
32
39
|
getFrame(nsec) {
|
|
33
40
|
const { res, index = 0 } = this.#binarySearch(this.storedFrames, nsec);
|
|
34
41
|
// cleans the array
|
|
@@ -38,8 +45,14 @@ export class PoitCloudSyncFramework {
|
|
|
38
45
|
if (res) {
|
|
39
46
|
return res;
|
|
40
47
|
}
|
|
41
|
-
|
|
42
|
-
|
|
48
|
+
const popedFrame = this.storedFrames.pop();
|
|
49
|
+
if (popedFrame) {
|
|
50
|
+
if ((Math.abs(popedFrame.timestamp.nsec - nsec) / 10 ** 9) < this.#MAX_DELAY_SEC) {
|
|
51
|
+
return popedFrame;
|
|
52
|
+
}
|
|
53
|
+
this.storedFrames.push(popedFrame);
|
|
54
|
+
}
|
|
55
|
+
return null;
|
|
43
56
|
}
|
|
44
57
|
addFrame(frame) {
|
|
45
58
|
if (Object.keys(this.storedFrames).length > this.#MAX_STORED_FRAMES) {
|