@luxonis/depthai-viewer-common 3.9.7 → 4.0.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.
Files changed (154) hide show
  1. package/THIRD_PARTY_NOTICES.md +36 -304
  2. package/benchmark-cli.mjs +166 -11
  3. package/benchmark-lib.sh +40 -5
  4. package/benchmark-root.sh +79 -13
  5. package/benchmark.sh +112 -5
  6. package/dist/components/Streams.d.ts +6 -0
  7. package/dist/components/Streams.d.ts.map +1 -1
  8. package/dist/components/Streams.js +12 -4
  9. package/dist/components/Streams.js.map +1 -1
  10. package/dist/hooks/benchmark-automation.d.ts.map +1 -1
  11. package/dist/hooks/benchmark-automation.js +288 -63
  12. package/dist/hooks/benchmark-automation.js.map +1 -1
  13. package/dist/index.css +7 -0
  14. package/dist/utils/vite-dev-fix.d.ts.map +1 -1
  15. package/dist/utils/vite-dev-fix.js +0 -15
  16. package/dist/utils/vite-dev-fix.js.map +1 -1
  17. package/dist/visualizer/components/Panel.d.ts.map +1 -1
  18. package/dist/visualizer/components/Panel.js +6 -3
  19. package/dist/visualizer/components/Panel.js.map +1 -1
  20. package/dist/visualizer/components/shared-interval.d.ts +1 -1
  21. package/dist/visualizer/components/shared-interval.d.ts.map +1 -1
  22. package/dist/visualizer/components/shared-interval.js +6 -2
  23. package/dist/visualizer/components/shared-interval.js.map +1 -1
  24. package/dist/visualizer/connection/communicator.d.ts +1 -0
  25. package/dist/visualizer/connection/communicator.d.ts.map +1 -1
  26. package/dist/visualizer/connection/communicator.js.map +1 -1
  27. package/dist/visualizer/connection/connection.d.ts.map +1 -1
  28. package/dist/visualizer/connection/connection.js +8 -7
  29. package/dist/visualizer/connection/connection.js.map +1 -1
  30. package/dist/visualizer/connection/foxglove-connection.d.ts +4 -2
  31. package/dist/visualizer/connection/foxglove-connection.d.ts.map +1 -1
  32. package/dist/visualizer/connection/foxglove-connection.js +88 -40
  33. package/dist/visualizer/connection/foxglove-connection.js.map +1 -1
  34. package/dist/visualizer/context/MessagePipelineProvider.d.ts +1 -1
  35. package/dist/visualizer/context/MessagePipelineProvider.d.ts.map +1 -1
  36. package/dist/visualizer/context/MessagePipelineProvider.js +24 -6
  37. package/dist/visualizer/context/MessagePipelineProvider.js.map +1 -1
  38. package/dist/visualizer/context/VisualizerContext.d.ts.map +1 -1
  39. package/dist/visualizer/context/VisualizerContext.js +1 -32
  40. package/dist/visualizer/context/VisualizerContext.js.map +1 -1
  41. package/dist/visualizer/index.d.ts +1 -0
  42. package/dist/visualizer/index.d.ts.map +1 -1
  43. package/dist/visualizer/index.js +1 -0
  44. package/dist/visualizer/index.js.map +1 -1
  45. package/dist/visualizer/messaging/browser-decoder-fixtures.d.ts.map +1 -1
  46. package/dist/visualizer/messaging/browser-decoder-fixtures.js +187 -24
  47. package/dist/visualizer/messaging/browser-decoder-fixtures.js.map +1 -1
  48. package/dist/visualizer/messaging/decode-core.d.ts +9 -1
  49. package/dist/visualizer/messaging/decode-core.d.ts.map +1 -1
  50. package/dist/visualizer/messaging/decode-core.js +26 -16
  51. package/dist/visualizer/messaging/decode-core.js.map +1 -1
  52. package/dist/visualizer/messaging/decoder-fixtures.d.ts.map +1 -1
  53. package/dist/visualizer/messaging/decoder-fixtures.js +128 -1
  54. package/dist/visualizer/messaging/decoder-fixtures.js.map +1 -1
  55. package/dist/visualizer/messaging/decoder-harness.d.ts +2 -1
  56. package/dist/visualizer/messaging/decoder-harness.d.ts.map +1 -1
  57. package/dist/visualizer/messaging/decoder-harness.js.map +1 -1
  58. package/dist/visualizer/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.d.ts +6 -1
  59. package/dist/visualizer/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.d.ts.map +1 -1
  60. package/dist/visualizer/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js +5 -1
  61. package/dist/visualizer/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js.map +1 -1
  62. package/dist/visualizer/messaging/deserialization/pointcloud/poitcloudPoolManager.d.ts +10 -14
  63. package/dist/visualizer/messaging/deserialization/pointcloud/poitcloudPoolManager.d.ts.map +1 -1
  64. package/dist/visualizer/messaging/deserialization/pointcloud/poitcloudPoolManager.js +56 -288
  65. package/dist/visualizer/messaging/deserialization/pointcloud/poitcloudPoolManager.js.map +1 -1
  66. package/dist/visualizer/messaging/deserialization/pointcloud/utils.d.ts.map +1 -1
  67. package/dist/visualizer/messaging/deserialization/pointcloud/utils.js +2 -7
  68. package/dist/visualizer/messaging/deserialization/pointcloud/utils.js.map +1 -1
  69. package/dist/visualizer/messaging/deserialization/video/depth.d.ts +2 -1
  70. package/dist/visualizer/messaging/deserialization/video/depth.d.ts.map +1 -1
  71. package/dist/visualizer/messaging/deserialization/video/depth.js +9 -65
  72. package/dist/visualizer/messaging/deserialization/video/depth.js.map +1 -1
  73. package/dist/visualizer/messaging/deserialization/video/h264.d.ts +3 -3
  74. package/dist/visualizer/messaging/deserialization/video/h264.d.ts.map +1 -1
  75. package/dist/visualizer/messaging/deserialization/video/h264.js +80 -25
  76. package/dist/visualizer/messaging/deserialization/video/h264.js.map +1 -1
  77. package/dist/visualizer/messaging/deserialization/video/h265.d.ts +1 -1
  78. package/dist/visualizer/messaging/deserialization/video/h265.d.ts.map +1 -1
  79. package/dist/visualizer/messaging/deserialization/video/h265.js +62 -22
  80. package/dist/visualizer/messaging/deserialization/video/h265.js.map +1 -1
  81. package/dist/visualizer/messaging/deserialization/video/mjpeg.d.ts +1 -0
  82. package/dist/visualizer/messaging/deserialization/video/mjpeg.d.ts.map +1 -1
  83. package/dist/visualizer/messaging/deserialization/video/mjpeg.js +14 -2
  84. package/dist/visualizer/messaging/deserialization/video/mjpeg.js.map +1 -1
  85. package/dist/visualizer/messaging/deserialization/video/rgbd-to-pointcloud.d.ts +3 -1
  86. package/dist/visualizer/messaging/deserialization/video/rgbd-to-pointcloud.d.ts.map +1 -1
  87. package/dist/visualizer/messaging/deserialization/video/rgbd-to-pointcloud.js +152 -250
  88. package/dist/visualizer/messaging/deserialization/video/rgbd-to-pointcloud.js.map +1 -1
  89. package/dist/visualizer/messaging/deserialization.worker.d.ts +5 -3
  90. package/dist/visualizer/messaging/deserialization.worker.d.ts.map +1 -1
  91. package/dist/visualizer/messaging/deserialization.worker.js +16 -2
  92. package/dist/visualizer/messaging/deserialization.worker.js.map +1 -1
  93. package/dist/visualizer/messaging/message-event.d.ts +3 -0
  94. package/dist/visualizer/messaging/message-event.d.ts.map +1 -1
  95. package/dist/visualizer/messaging/message-event.js +18 -4
  96. package/dist/visualizer/messaging/message-event.js.map +1 -1
  97. package/dist/visualizer/messaging/message-handler.d.ts +3 -1
  98. package/dist/visualizer/messaging/message-handler.d.ts.map +1 -1
  99. package/dist/visualizer/messaging/message-handler.js +120 -49
  100. package/dist/visualizer/messaging/message-handler.js.map +1 -1
  101. package/dist/visualizer/output.css +7 -0
  102. package/dist/visualizer/panels/PointCloudPanel.d.ts.map +1 -1
  103. package/dist/visualizer/panels/PointCloudPanel.js +2 -0
  104. package/dist/visualizer/panels/PointCloudPanel.js.map +1 -1
  105. package/dist/visualizer/panels/image/ImageCanvasRenderer.d.ts.map +1 -1
  106. package/dist/visualizer/panels/image/ImageCanvasRenderer.js +246 -69
  107. package/dist/visualizer/panels/image/ImageCanvasRenderer.js.map +1 -1
  108. package/dist/visualizer/panels/image/annotation-overlay.d.ts.map +1 -1
  109. package/dist/visualizer/panels/image/annotation-overlay.js +16 -2
  110. package/dist/visualizer/panels/image/annotation-overlay.js.map +1 -1
  111. package/dist/visualizer/panels/image/raw-image-decoder.d.ts.map +1 -1
  112. package/dist/visualizer/panels/image/raw-image-decoder.js +1 -0
  113. package/dist/visualizer/panels/image/raw-image-decoder.js.map +1 -1
  114. package/dist/visualizer/panels/image/webgl-image-renderer.d.ts +11 -2
  115. package/dist/visualizer/panels/image/webgl-image-renderer.d.ts.map +1 -1
  116. package/dist/visualizer/panels/image/webgl-image-renderer.js +236 -41
  117. package/dist/visualizer/panels/image/webgl-image-renderer.js.map +1 -1
  118. package/dist/visualizer/panels/image/webgl-segmentation-mask-renderer.d.ts +16 -0
  119. package/dist/visualizer/panels/image/webgl-segmentation-mask-renderer.d.ts.map +1 -0
  120. package/dist/visualizer/panels/image/webgl-segmentation-mask-renderer.js +184 -0
  121. package/dist/visualizer/panels/image/webgl-segmentation-mask-renderer.js.map +1 -0
  122. package/dist/visualizer/panels/image/worker-image-decoder.d.ts.map +1 -1
  123. package/dist/visualizer/panels/image/worker-image-decoder.js +8 -3
  124. package/dist/visualizer/panels/image/worker-image-decoder.js.map +1 -1
  125. package/dist/visualizer/panels/pointcloud/PointCloudCanvasRenderer.d.ts.map +1 -1
  126. package/dist/visualizer/panels/pointcloud/PointCloudCanvasRenderer.js +256 -73
  127. package/dist/visualizer/panels/pointcloud/PointCloudCanvasRenderer.js.map +1 -1
  128. package/dist/visualizer/panels/pointcloud/point-cloud-materials.d.ts +5 -0
  129. package/dist/visualizer/panels/pointcloud/point-cloud-materials.d.ts.map +1 -0
  130. package/dist/visualizer/panels/pointcloud/point-cloud-materials.js +123 -0
  131. package/dist/visualizer/panels/pointcloud/point-cloud-materials.js.map +1 -0
  132. package/dist/visualizer/protobuf.generated/NNData.d.ts +92 -0
  133. package/dist/visualizer/protobuf.generated/NNData.d.ts.map +1 -0
  134. package/dist/visualizer/protobuf.generated/NNData.js +620 -0
  135. package/dist/visualizer/protobuf.generated/NNData.js.map +1 -0
  136. package/dist/visualizer/utils/benchmark-metrics.d.ts +27 -0
  137. package/dist/visualizer/utils/benchmark-metrics.d.ts.map +1 -0
  138. package/dist/visualizer/utils/benchmark-metrics.js +139 -0
  139. package/dist/visualizer/utils/benchmark-metrics.js.map +1 -0
  140. package/dist/visualizer/utils/comlink-wrap.d.ts.map +1 -1
  141. package/dist/visualizer/utils/comlink-wrap.js +5 -0
  142. package/dist/visualizer/utils/comlink-wrap.js.map +1 -1
  143. package/dist/visualizer/utils/poitcloud-sync.d.ts.map +1 -1
  144. package/dist/visualizer/utils/poitcloud-sync.js +5 -2
  145. package/dist/visualizer/utils/poitcloud-sync.js.map +1 -1
  146. package/package.json +3 -4
  147. package/dist/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.d.ts +0 -2
  148. package/dist/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.d.ts.map +0 -1
  149. package/dist/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.js +0 -45
  150. package/dist/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.js.map +0 -1
  151. package/dist/visualizer/messaging/deserialization/video/depth-coloring.worker.d.ts +0 -5
  152. package/dist/visualizer/messaging/deserialization/video/depth-coloring.worker.d.ts.map +0 -1
  153. package/dist/visualizer/messaging/deserialization/video/depth-coloring.worker.js +0 -124
  154. package/dist/visualizer/messaging/deserialization/video/depth-coloring.worker.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark-metrics.d.ts","sourceRoot":"","sources":["../../../src/visualizer/utils/benchmark-metrics.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,0BAA0B,CAAC;IAC9C,eAAe,EAAE,0BAA0B,CAAC;IAC5C,eAAe,EAAE,0BAA0B,CAAC;IAC5C,eAAe,EAAE,0BAA0B,CAAC;IAC5C,iBAAiB,EAAE,0BAA0B,CAAC;CAC/C,CAAC;AAoEF,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAKrE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAMhE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAYxE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAY9E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAa3D;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GACxC,uBAAuB,CAsCzB"}
@@ -0,0 +1,139 @@
1
+ // This Source Code Form is subject to the terms of the Mozilla Public
2
+ // License, v2.0. If a copy of the MPL was not distributed with this
3
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
4
+ const MAX_SAMPLES = 4_096;
5
+ const states = new Map();
6
+ let enabled = false;
7
+ function getState(topic) {
8
+ const existing = states.get(topic);
9
+ if (existing) {
10
+ return existing;
11
+ }
12
+ const state = {
13
+ ingressCount: 0,
14
+ decodedCount: 0,
15
+ renderedCount: 0,
16
+ ingressIntervals: [],
17
+ decodeLatencies: [],
18
+ renderLatencies: [],
19
+ presentationAges: [],
20
+ };
21
+ states.set(topic, state);
22
+ return state;
23
+ }
24
+ function appendSample(samples, value) {
25
+ if (!Number.isFinite(value) || value < 0) {
26
+ return;
27
+ }
28
+ if (samples.length >= MAX_SAMPLES) {
29
+ samples.splice(0, Math.ceil(MAX_SAMPLES / 4));
30
+ }
31
+ samples.push(value);
32
+ }
33
+ function percentile(sortedSamples, quantile) {
34
+ if (sortedSamples.length === 0) {
35
+ return null;
36
+ }
37
+ const index = Math.min(sortedSamples.length - 1, Math.ceil(sortedSamples.length * quantile) - 1);
38
+ return Number(sortedSamples[Math.max(0, index)].toFixed(3));
39
+ }
40
+ function summarize(samples) {
41
+ if (samples.length === 0) {
42
+ return { min: null, p50: null, p95: null, p99: null, max: null };
43
+ }
44
+ const sorted = [...samples].sort((left, right) => left - right);
45
+ return {
46
+ min: Number(sorted[0].toFixed(3)),
47
+ p50: percentile(sorted, 0.5),
48
+ p95: percentile(sorted, 0.95),
49
+ p99: percentile(sorted, 0.99),
50
+ max: Number(sorted.at(-1).toFixed(3)),
51
+ };
52
+ }
53
+ export function setBenchmarkMetricsEnabled(nextEnabled) {
54
+ enabled = nextEnabled;
55
+ if (!nextEnabled) {
56
+ states.clear();
57
+ }
58
+ }
59
+ export function clearStreamBenchmarkMetrics(topic) {
60
+ if (topic) {
61
+ states.delete(topic);
62
+ }
63
+ else {
64
+ states.clear();
65
+ }
66
+ }
67
+ export function recordBenchmarkIngress(topic) {
68
+ if (!enabled) {
69
+ return undefined;
70
+ }
71
+ const now = performance.now();
72
+ const state = getState(topic);
73
+ if (state.lastIngressAt != undefined) {
74
+ appendSample(state.ingressIntervals, now - state.lastIngressAt);
75
+ }
76
+ state.lastIngressAt = now;
77
+ state.ingressCount += 1;
78
+ return now;
79
+ }
80
+ export function recordBenchmarkDecoded(topic, ingressAt) {
81
+ if (!enabled) {
82
+ return;
83
+ }
84
+ const now = performance.now();
85
+ const state = getState(topic);
86
+ state.decodedCount += 1;
87
+ state.lastDecodedAt = now;
88
+ state.lastDecodedIngressAt = ingressAt;
89
+ if (ingressAt != undefined) {
90
+ appendSample(state.decodeLatencies, now - ingressAt);
91
+ }
92
+ }
93
+ export function recordBenchmarkRendered(topic) {
94
+ if (!enabled) {
95
+ return;
96
+ }
97
+ const now = performance.now();
98
+ const state = getState(topic);
99
+ state.renderedCount += 1;
100
+ if (state.lastDecodedAt != undefined) {
101
+ appendSample(state.renderLatencies, now - state.lastDecodedAt);
102
+ }
103
+ if (state.lastDecodedIngressAt != undefined) {
104
+ appendSample(state.presentationAges, now - state.lastDecodedIngressAt);
105
+ }
106
+ }
107
+ export function getStreamBenchmarkSnapshot(topicOrTopics) {
108
+ const topics = typeof topicOrTopics === "string" ? [topicOrTopics] : topicOrTopics;
109
+ const selectedStates = topics
110
+ .map((topic) => states.get(topic))
111
+ .filter((state) => state != undefined);
112
+ const ingressIntervals = selectedStates.flatMap((state) => state.ingressIntervals);
113
+ const decodeLatencies = selectedStates.flatMap((state) => state.decodeLatencies);
114
+ const renderLatencies = selectedStates.flatMap((state) => state.renderLatencies);
115
+ const presentationAges = selectedStates.flatMap((state) => state.presentationAges);
116
+ const ingressCount = selectedStates.reduce((total, state) => total + state.ingressCount, 0);
117
+ const decodedCount = selectedStates.reduce((total, state) => total + state.decodedCount, 0);
118
+ const renderedCount = selectedStates.reduce((total, state) => total + state.renderedCount, 0);
119
+ const decodeDropCount = selectedStates.reduce((total, state) => total + Math.max(0, state.ingressCount - state.decodedCount), 0);
120
+ const renderDropCount = selectedStates.reduce((total, state) => total + Math.max(0, state.decodedCount - state.renderedCount), 0);
121
+ const medianInterval = summarize(ingressIntervals).p50 ?? 0;
122
+ const jitterSamples = ingressIntervals.map((interval) => Math.abs(interval - medianInterval));
123
+ return {
124
+ ingressCount,
125
+ decodedCount,
126
+ renderedCount,
127
+ decodeDropCount,
128
+ renderDropCount,
129
+ endToEndDropRate: ingressCount > 0
130
+ ? Number((Math.max(0, ingressCount - renderedCount) / ingressCount).toFixed(4))
131
+ : 0,
132
+ ingressIntervalMs: summarize(ingressIntervals),
133
+ ingressJitterMs: summarize(jitterSamples),
134
+ decodeLatencyMs: summarize(decodeLatencies),
135
+ renderLatencyMs: summarize(renderLatencies),
136
+ presentationAgeMs: summarize(presentationAges),
137
+ };
138
+ }
139
+ //# sourceMappingURL=benchmark-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark-metrics.js","sourceRoot":"","sources":["../../../src/visualizer/utils/benchmark-metrics.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"comlink-wrap.d.ts","sourceRoot":"","sources":["../../../src/visualizer/utils/comlink-wrap.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAsB,MAAM,SAAS,CAAC;AAE1D,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAU7E"}
1
+ {"version":3,"file":"comlink-wrap.d.ts","sourceRoot":"","sources":["../../../src/visualizer/utils/comlink-wrap.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAsB,MAAM,SAAS,CAAC;AAE1D,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAe7E"}
@@ -4,9 +4,14 @@
4
4
  import { releaseProxy, wrap } from "comlink";
5
5
  export function createComlinkWorker(worker) {
6
6
  const remote = wrap(worker);
7
+ let disposed = false;
7
8
  return {
8
9
  remote,
9
10
  dispose: () => {
11
+ if (disposed) {
12
+ return;
13
+ }
14
+ disposed = true;
10
15
  remote[releaseProxy]();
11
16
  worker.terminate();
12
17
  },
@@ -1 +1 @@
1
- {"version":3,"file":"comlink-wrap.js","sourceRoot":"","sources":["../../../src/visualizer/utils/comlink-wrap.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAe,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAO1D,MAAM,UAAU,mBAAmB,CAAI,MAAc;IACnD,MAAM,MAAM,GAAG,IAAI,CAAI,MAAM,CAAC,CAAC;IAE/B,OAAO;QACL,MAAM;QACN,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"comlink-wrap.js","sourceRoot":"","sources":["../../../src/visualizer/utils/comlink-wrap.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAe,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAO1D,MAAM,UAAU,mBAAmB,CAAI,MAAc;IACnD,MAAM,MAAM,GAAG,IAAI,CAAI,MAAM,CAAC,CAAC;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,OAAO;QACL,MAAM;QACN,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"poitcloud-sync.d.ts","sourceRoot":"","sources":["../../../src/visualizer/utils/poitcloud-sync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0DAA0D,CAAC;AAE5G,KAAK,aAAa,GAAG;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,qBAAa,sBAAsB;;IA4E1B,QAAQ,CACb,SAAS,EAAE,aAAa,GACvB,wBAAwB,GAAG,2BAA2B,GAAG,IAAI;IAyBzD,QAAQ,CAAC,KAAK,EAAE,wBAAwB,GAAG,2BAA2B,GAAG,IAAI;CAYrF"}
1
+ {"version":3,"file":"poitcloud-sync.d.ts","sourceRoot":"","sources":["../../../src/visualizer/utils/poitcloud-sync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0DAA0D,CAAC;AAE5G,KAAK,aAAa,GAAG;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,qBAAa,sBAAsB;;IA+E1B,QAAQ,CACb,SAAS,EAAE,aAAa,GACvB,wBAAwB,GAAG,2BAA2B,GAAG,IAAI;IAyBzD,QAAQ,CAAC,KAAK,EAAE,wBAAwB,GAAG,2BAA2B,GAAG,IAAI;CAYrF"}
@@ -2,7 +2,10 @@ export class PoitCloudSyncFramework {
2
2
  #storedFrames = [];
3
3
  #storedFramesStartIndex = 0;
4
4
  #MAX_DELAY_SEC = 0.065;
5
- #MAX_STORED_FRAMES = 100;
5
+ // At 30 FPS the 65 ms matching window spans roughly two frames. Retaining a large
6
+ // history here is both useless for synchronization and extremely expensive for
7
+ // high-resolution depth payloads.
8
+ #MAX_STORED_FRAMES = 6;
6
9
  #toTimestampKey(timestamp) {
7
10
  return timestamp.sec * 1_000_000_000 + timestamp.nsec;
8
11
  }
@@ -40,7 +43,7 @@ export class PoitCloudSyncFramework {
40
43
  const midKey = this.#toTimestampKey(midFrame.timestamp);
41
44
  if (midKey === targetKey) {
42
45
  if (Math.abs(midKey - targetKey) / 10 ** 9 < this.#MAX_DELAY_SEC) {
43
- return { res: bestMatch, index: left };
46
+ return { res: midFrame, index: mid + 1 };
44
47
  }
45
48
  return { res: null, index: mid };
46
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"poitcloud-sync.js","sourceRoot":"","sources":["../../../src/visualizer/utils/poitcloud-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poitcloud-sync.js","sourceRoot":"","sources":["../../../src/visualizer/utils/poitcloud-sync.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luxonis/depthai-viewer-common",
3
- "version": "3.9.7",
3
+ "version": "4.0.0",
4
4
  "description": "Common utilities and components for building a frontend application for DepthAI projects",
5
5
  "license": "Apache-2.0 AND MPL-2.0",
6
6
  "author": "Luxonis Holding Corporation",
@@ -39,8 +39,8 @@
39
39
  "@bufbuild/protobuf": "^2.12.0",
40
40
  "@luxonis/depthai-pipeline-lib": "*",
41
41
  "@luxonis/remote-connection": "3.0.1",
42
- "@luxonis/ui-components": "^1.3.8",
43
- "@luxonis/ui-utils": "^1.0.4",
42
+ "@luxonis/ui-components": "^1.3.9",
43
+ "@luxonis/ui-utils": "^1.0.7",
44
44
  "comlink": "^4.4.2",
45
45
  "extend": "3.0.2",
46
46
  "lodash": "^4.18.1",
@@ -48,7 +48,6 @@
48
48
  "react-dnd": "16.0.1",
49
49
  "react-dnd-html5-backend": "16.0.1",
50
50
  "react-icons": "^5.6.0",
51
- "react-mosaic-component": "6.1.1",
52
51
  "react-resizable-panels": "^2.1.3",
53
52
  "react-syntax-highlighter": "^16.1.1",
54
53
  "shallowequal": "1.1.0",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=i420ToRgbaToPoitcloud.worker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"i420ToRgbaToPoitcloud.worker.d.ts","sourceRoot":"","sources":["../../../../../src/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.ts"],"names":[],"mappings":""}
@@ -1,45 +0,0 @@
1
- // This Source Code Form is subject to the terms of the Mozilla Public
2
- // License, v2.0. If a copy of the MPL was not distributed with this
3
- // file, You can obtain one at http://mozilla.org/MPL/2.0/
4
- import { expose } from "comlink";
5
- function i420ToRgbaToPointcloud(i420Data, i420Width, i420Height, depthWidth, depthHeight, data) {
6
- const frameSize = i420Width * i420Height;
7
- const uOffset = frameSize;
8
- const vOffset = frameSize + frameSize / 4;
9
- const pointCount = data.byteLength / 16;
10
- const buffer = new ArrayBuffer(data.byteLength);
11
- const view = new DataView(buffer);
12
- const dataView = new DataView(data.buffer);
13
- for (let i = 0; i < pointCount; i++) {
14
- const depthX = i % depthWidth;
15
- const depthY = Math.floor(i / depthWidth);
16
- const i420X = Math.floor(depthX * (i420Width / depthWidth));
17
- const i420Y = Math.floor(depthY * (i420Height / depthHeight));
18
- if (i420X >= i420Width || i420Y >= i420Height) {
19
- continue;
20
- }
21
- const index = i420Y * i420Width + i420X;
22
- const uvIndex = Math.floor(i420Y / 2) * (i420Width / 2) + Math.floor(i420X / 2);
23
- const Y = i420Data[index] ?? 0;
24
- const U = (i420Data[uOffset + uvIndex] ?? 128) - 128;
25
- const V = (i420Data[vOffset + uvIndex] ?? 128) - 128;
26
- let R = Y + 1.402 * V;
27
- let G = Y - 0.344136 * U - 0.714136 * V;
28
- let B = Y + 1.772 * U;
29
- R = Math.min(255, Math.max(0, R));
30
- G = Math.min(255, Math.max(0, G));
31
- B = Math.min(255, Math.max(0, B));
32
- const offset = i * 16;
33
- view.setFloat32(offset, dataView.getFloat32(offset, true), true); // x
34
- view.setFloat32(offset + 4, dataView.getFloat32(offset + 4, true), true); // y
35
- view.setFloat32(offset + 8, dataView.getFloat32(offset + 8, true), true); // z
36
- view.setUint8(offset + 12, R); // Red
37
- view.setUint8(offset + 13, G); // Green
38
- view.setUint8(offset + 14, B); // Blue
39
- view.setUint8(offset + 15, 255); // Alpha (fully opaque)
40
- }
41
- return new Uint8Array(buffer);
42
- }
43
- // Expose the function using Comlink
44
- expose({ i420ToRgbaToPointcloud });
45
- //# sourceMappingURL=i420ToRgbaToPoitcloud.worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"i420ToRgbaToPoitcloud.worker.js","sourceRoot":"","sources":["../../../../../src/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export declare function colorDepht(data: Uint8Array, encoding: string, width: number, height: number, maxSteroDepth: number): Uint8Array;
2
- export type ColorDepthApi = {
3
- colorDepht: (data: Uint8Array, encoding: string, width: number, height: number, maxSteroDepth: number) => Uint8Array;
4
- };
5
- //# sourceMappingURL=depth-coloring.worker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"depth-coloring.worker.d.ts","sourceRoot":"","sources":["../../../../../src/visualizer/messaging/deserialization/video/depth-coloring.worker.ts"],"names":[],"mappings":"AAUA,wBAAgB,UAAU,CACxB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB,UAAU,CAiBZ;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,CACV,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,KAClB,UAAU,CAAC;CACjB,CAAC"}
@@ -1,124 +0,0 @@
1
- // This Source Code Form is subject to the terms of the Mozilla Public
2
- // License, v2.0. If a copy of the MPL was not distributed with this
3
- // file, You can obtain one at http://mozilla.org/MPL/2.0/
4
- import { expose, transfer } from "comlink";
5
- // Reusable buffers to avoid allocations
6
- let depthBuffer = null;
7
- let colorBuffer = null;
8
- export function colorDepht(data, encoding, width, height, maxSteroDepth) {
9
- const pixelCount = width * height;
10
- if (!depthBuffer || depthBuffer.length < pixelCount) {
11
- depthBuffer = new Float32Array(pixelCount);
12
- }
13
- if (!colorBuffer || colorBuffer.length < pixelCount * 3) {
14
- colorBuffer = new Uint8Array(pixelCount * 3);
15
- }
16
- parseDepthData(data, encoding, width, height, depthBuffer);
17
- colorizeDepthFrame(depthBuffer, width, height, maxSteroDepth, colorBuffer);
18
- const result = new Uint8Array(pixelCount * 3);
19
- result.set(colorBuffer.subarray(0, pixelCount * 3));
20
- return transfer(result, [result.buffer]);
21
- }
22
- function parseDepthData(data, encoding, width, height, depthData) {
23
- const pixelCount = width * height;
24
- if (encoding === "mono16" || encoding === "16UC1") {
25
- const byteOffset = data.byteOffset;
26
- const byteLength = data.byteLength;
27
- if (byteOffset % 2 === 0 && byteLength >= pixelCount * 2) {
28
- const uint16View = new Uint16Array(data.buffer, byteOffset, pixelCount);
29
- for (let i = 0; i < pixelCount; i++) {
30
- depthData[i] = uint16View[i] * 0.001;
31
- }
32
- }
33
- else {
34
- // Fallback: use DataView for unaligned data
35
- const view = new DataView(data.buffer, byteOffset, byteLength);
36
- for (let i = 0; i < pixelCount; i++) {
37
- depthData[i] = view.getUint16(i * 2, true) * 0.001;
38
- }
39
- }
40
- }
41
- else if (encoding === "32FC1") {
42
- const byteOffset = data.byteOffset;
43
- const byteLength = data.byteLength;
44
- if (byteOffset % 4 === 0 && byteLength >= pixelCount * 4) {
45
- const float32View = new Float32Array(data.buffer, byteOffset, pixelCount);
46
- for (let i = 0; i < pixelCount; i++) {
47
- depthData[i] = float32View[i];
48
- }
49
- }
50
- else {
51
- const view = new DataView(data.buffer, byteOffset, byteLength);
52
- for (let i = 0; i < pixelCount; i++) {
53
- depthData[i] = view.getFloat32(i * 4, true);
54
- }
55
- }
56
- }
57
- else {
58
- throw new Error(`Unsupported depth encoding: ${encoding}`);
59
- }
60
- }
61
- expose({ colorDepht });
62
- function colorizeDepthFrame(depthData, width, height, maxDepth, colorizedData) {
63
- const pixelCount = width * height;
64
- const colormap = getJetColormap();
65
- const invMaxDepth = 255 / maxDepth;
66
- for (let i = 0; i < pixelCount; i++) {
67
- const depth = depthData[i];
68
- const clipped = depth < 0 ? 0 : depth > maxDepth ? maxDepth : depth;
69
- const normalized = Math.floor(clipped * invMaxDepth);
70
- const colorOffset = normalized * 3;
71
- const offset = i * 3;
72
- colorizedData[offset] = colormap[colorOffset];
73
- colorizedData[offset + 1] = colormap[colorOffset + 1];
74
- colorizedData[offset + 2] = colormap[colorOffset + 2];
75
- }
76
- }
77
- let cachedColormapFlat = null;
78
- function getJetColormap() {
79
- if (cachedColormapFlat) {
80
- return cachedColormapFlat;
81
- }
82
- const colormap = new Uint8Array(256 * 3);
83
- for (let i = 0; i < 256; i++) {
84
- const value = i / 255.0;
85
- let r = 0;
86
- let g = 0;
87
- let b = 0;
88
- if (value < 0.125) {
89
- r = 0;
90
- g = 0;
91
- b = 0.5 + 0.5 * (value / 0.125);
92
- }
93
- else if (value < 0.375) {
94
- r = 0;
95
- g = (value - 0.125) / 0.25;
96
- b = 1;
97
- }
98
- else if (value < 0.625) {
99
- r = (value - 0.375) / 0.25;
100
- g = 1;
101
- b = 1 - (value - 0.375) / 0.25;
102
- }
103
- else if (value < 0.875) {
104
- r = 1;
105
- g = 1 - (value - 0.625) / 0.25;
106
- b = 0;
107
- }
108
- else {
109
- r = 1 - (0.5 * (value - 0.875)) / 0.125;
110
- g = 0;
111
- b = 0;
112
- }
113
- const offset = i * 3;
114
- colormap[offset] = Math.floor(r * 255);
115
- colormap[offset + 1] = Math.floor(g * 255);
116
- colormap[offset + 2] = Math.floor(b * 255);
117
- }
118
- colormap[0] = 0;
119
- colormap[1] = 0;
120
- colormap[2] = 0;
121
- cachedColormapFlat = colormap;
122
- return colormap;
123
- }
124
- //# sourceMappingURL=depth-coloring.worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"depth-coloring.worker.js","sourceRoot":"","sources":["../../../../../src/visualizer/messaging/deserialization/video/depth-coloring.worker.ts"],"names":[],"mappings":"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"}