@luxonis/visualizer-protobuf 3.1.11 → 3.1.13

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 (81) hide show
  1. package/dist/{FoxgloveServer-B98MHUu6.js → FoxgloveServer-Da9kV1cr.js} +1 -1
  2. package/dist/{communicator-Bzkx3Qfr.js → communicator-Dh2aL-rj.js} +1 -1
  3. package/dist/{depth-DlC6A3Te.js → depth-DiD1V2Sg.js} +15 -28
  4. package/dist/{deserialization.worker-CO4m6y8V.js → deserialization.worker-DU2Hs4UP.js} +577 -341
  5. package/dist/{foxglove-protocol-yHdoBNaD.js → foxglove-protocol-BtLMVx24.js} +1 -1
  6. package/dist/{index-CB1fYMKI.js → index--95nXh6E.js} +5 -5
  7. package/dist/{index-Dqm1x8G2.js → index-B5oN0fQm.js} +1 -1
  8. package/dist/{index-BXzWxQD4.js → index-B9-rLgJ9.js} +7 -7
  9. package/dist/{index-DCsDqt-U.js → index-BMp_L7Aa.js} +5 -5
  10. package/dist/{index-Be6EYnox.js → index-B_3PleIH.js} +49 -35
  11. package/dist/{index-BYTk-1GW.js → index-BjiepKHF.js} +5 -5
  12. package/dist/{index-DgUF0rJi.js → index-C45UVGjk.js} +5 -5
  13. package/dist/{index-D_pNGJGQ.js → index-CCq5_y78.js} +5 -5
  14. package/dist/{index-D2sxEb00.js → index-CNjpp5xs.js} +5 -5
  15. package/dist/{index-B-g3aWAt.js → index-CcWunxJv.js} +5 -5
  16. package/dist/{index-BEUjTghZ.js → index-CidrwlEk.js} +5 -5
  17. package/dist/{index-CKE7xLWy.js → index-CqayH0_I.js} +5 -5
  18. package/dist/{index-CDp9Pzg1.js → index-CxKEiKY9.js} +5 -5
  19. package/dist/{index-BlROWu-J.js → index-D686pHc1.js} +6 -6
  20. package/dist/{index-DCsBkCC7.js → index-DWt4Nj5G.js} +5 -5
  21. package/dist/{index-DtnnnQqJ.js → index-DewnJOHY.js} +5 -5
  22. package/dist/{index-D0BOBLGo.js → index-DnhrXuH6.js} +5 -5
  23. package/dist/{index-OIOsl1pr.js → index-DopAEQk2.js} +5 -5
  24. package/dist/{index-D063HnO-.js → index-DzOBiI2h.js} +5 -5
  25. package/dist/{index-Dvd5sByT.js → index-JlGCfxtk.js} +5 -5
  26. package/dist/{index-DXmbPIsN.js → index-X1k93Nku.js} +5 -5
  27. package/dist/index.js +5 -5
  28. package/dist/lib/src/connection/foxglove-connection.d.ts.map +1 -1
  29. package/dist/lib/src/connection/foxglove-connection.js +7 -1
  30. package/dist/lib/src/connection/foxglove-connection.js.map +1 -1
  31. package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js +2 -2
  32. package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js.map +1 -1
  33. package/dist/lib/src/messaging/deserialization/pointcloud/poitcloudPoolManager.js.map +1 -1
  34. package/dist/lib/src/messaging/deserialization/pointcloud/utils.d.ts.map +1 -1
  35. package/dist/lib/src/messaging/deserialization/pointcloud/utils.js.map +1 -1
  36. package/dist/lib/src/messaging/deserialization/video/depth.d.ts.map +1 -1
  37. package/dist/lib/src/messaging/deserialization/video/depth.js +11 -1
  38. package/dist/lib/src/messaging/deserialization/video/depth.js.map +1 -1
  39. package/dist/lib/src/messaging/deserialization/video/h264.d.ts +11 -6
  40. package/dist/lib/src/messaging/deserialization/video/h264.d.ts.map +1 -1
  41. package/dist/lib/src/messaging/deserialization/video/h264.js +115 -166
  42. package/dist/lib/src/messaging/deserialization/video/h264.js.map +1 -1
  43. package/dist/lib/src/messaging/deserialization/video/h265.d.ts +2 -7
  44. package/dist/lib/src/messaging/deserialization/video/h265.d.ts.map +1 -1
  45. package/dist/lib/src/messaging/deserialization/video/h265.js +55 -126
  46. package/dist/lib/src/messaging/deserialization/video/h265.js.map +1 -1
  47. package/dist/lib/src/messaging/deserialization/video/mjpeg.d.ts.map +1 -1
  48. package/dist/lib/src/messaging/deserialization/video/mjpeg.js +7 -8
  49. package/dist/lib/src/messaging/deserialization/video/mjpeg.js.map +1 -1
  50. package/dist/lib/src/messaging/deserialization/video/rgbd-to-pointcloud.d.ts +17 -0
  51. package/dist/lib/src/messaging/deserialization/video/rgbd-to-pointcloud.d.ts.map +1 -0
  52. package/dist/lib/src/messaging/deserialization/video/rgbd-to-pointcloud.js +325 -0
  53. package/dist/lib/src/messaging/deserialization/video/rgbd-to-pointcloud.js.map +1 -0
  54. package/dist/lib/src/messaging/deserialization.worker.d.ts +4 -0
  55. package/dist/lib/src/messaging/deserialization.worker.d.ts.map +1 -1
  56. package/dist/lib/src/messaging/deserialization.worker.js +16 -3
  57. package/dist/lib/src/messaging/deserialization.worker.js.map +1 -1
  58. package/dist/lib/src/messaging/protobuf.d.ts +12 -1
  59. package/dist/lib/src/messaging/protobuf.d.ts.map +1 -1
  60. package/dist/lib/src/messaging/protobuf.js +8 -0
  61. package/dist/lib/src/messaging/protobuf.js.map +1 -1
  62. package/dist/lib/src/messaging/utils.d.ts.map +1 -1
  63. package/dist/lib/src/messaging/utils.js +2 -0
  64. package/dist/lib/src/messaging/utils.js.map +1 -1
  65. package/dist/lib/src/output.css +2 -21
  66. package/dist/lib/src/panels/PointCloudPanel.d.ts.map +1 -1
  67. package/dist/lib/src/panels/PointCloudPanel.js +5 -1
  68. package/dist/lib/src/panels/PointCloudPanel.js.map +1 -1
  69. package/dist/lib/src/utils/metrics-manager.d.ts +1 -0
  70. package/dist/lib/src/utils/metrics-manager.d.ts.map +1 -1
  71. package/dist/lib/src/utils/metrics-manager.js +4 -2
  72. package/dist/lib/src/utils/metrics-manager.js.map +1 -1
  73. package/dist/lib/src/utils/poitcloud-sync.d.ts +4 -3
  74. package/dist/lib/src/utils/poitcloud-sync.d.ts.map +1 -1
  75. package/dist/lib/src/utils/poitcloud-sync.js +3 -1
  76. package/dist/lib/src/utils/poitcloud-sync.js.map +1 -1
  77. package/dist/{pointcloudFromDepth.worker-JLptpLHr.js → pointcloudFromDepth.worker-60RA4Ief.js} +2 -2
  78. package/dist/{protobuf-Be0G3NFz.js → protobuf-OcbVtxg1.js} +406 -218
  79. package/dist/{worker-NFznpx6V.js → worker-Be-hru8f.js} +3 -3
  80. package/dist/{worker-0Q6os6Ck.js → worker-C2MHIq3t.js} +4 -4
  81. package/package.json +2 -2
@@ -6,19 +6,9 @@ import { estimateObjectSize } from "@foxglove/studio-base/players/messageMemoryE
6
6
  import { ensureWebCodecsSupported } from "../../../utils/compatibility.js";
7
7
  import { DecoderRuntimeError } from "../../../utils/error.js";
8
8
  import { Logger } from "../../../utils/logger";
9
- import { parseMessage, parsePixelFormat } from "../../utils.js";
9
+ import { parseMessage } from "../../utils.js";
10
+ import { copyVideoFrameToI420 } from "./h264.js";
10
11
  const logger = Logger.getLogger();
11
- function configureDecoder(decoder) {
12
- decoder.configure({
13
- codec: "hev1.1.6.L93.B0",
14
- optimizeForLatency: true,
15
- });
16
- }
17
- function ensureDecoderConfigured(decoder) {
18
- if (decoder.state === "unconfigured") {
19
- configureDecoder(decoder);
20
- }
21
- }
22
12
  function closeDecoder(decoder) {
23
13
  if (!decoder) {
24
14
  return;
@@ -35,116 +25,29 @@ function closeDecoder(decoder) {
35
25
  }
36
26
  function closeTopicDecoder(topic, topicDecoders) {
37
27
  const decoderInfo = topicDecoders.get(topic);
38
- topicDecoders.delete(topic);
39
28
  closeDecoder(decoderInfo?.decoder);
40
29
  decoderInfo?.timing.clear();
41
30
  decoderInfo?.transformations.clear();
42
- if (decoderInfo) {
43
- decoderInfo.pendingFrame = undefined;
44
- }
45
- }
46
- function isUnconfiguredCodecError(error) {
47
- const message = error instanceof Error ? error.message : String(error);
48
- return /cannot call ["']decode["'] on an unconfigured (?:codec|decoder)/i.test(message);
49
- }
50
- function resetTopicDecoder({ topic, topicDecoders, callback, onError, }) {
51
- const existingDecoderInfo = topicDecoders.get(topic);
52
- closeDecoder(existingDecoderInfo?.decoder);
53
- const decoder = createVideoDecoder({ topic, callback, topicDecoders, onError });
54
- try {
55
- configureDecoder(decoder);
56
- }
57
- catch (error) {
58
- closeDecoder(decoder);
59
- closeTopicDecoder(topic, topicDecoders);
60
- onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to configure H.265 decoder."));
61
- return undefined;
62
- }
63
- if (existingDecoderInfo) {
64
- existingDecoderInfo.decoder = decoder;
65
- existingDecoderInfo.timing.clear();
66
- existingDecoderInfo.transformations.clear();
67
- existingDecoderInfo.pendingFrame = undefined;
68
- }
69
- else {
70
- topicDecoders.set(topic, {
71
- decoder,
72
- timing: new Map(),
73
- transformations: new Map(),
74
- pendingFrame: undefined,
75
- });
76
- }
77
- return decoder;
78
- }
79
- function decodePendingFrame(topic, topicDecoders, callback, onError) {
80
- const decoderInfo = topicDecoders.get(topic);
81
- if (!decoderInfo) {
82
- return;
83
- }
84
- const decoder = decoderInfo.decoder;
85
- if (decoder.state === "closed" || decoder.decodeQueueSize > 0) {
86
- return;
87
- }
88
- const pendingFrame = decoderInfo.pendingFrame;
89
- if (!pendingFrame) {
90
- return;
91
- }
92
- decoderInfo.pendingFrame = undefined;
93
- decoderInfo.timing.set(pendingFrame.timestamp, pendingFrame.receiveTime);
94
- decoderInfo.transformations.set(pendingFrame.timestamp, pendingFrame.transformation);
95
- try {
96
- ensureDecoderConfigured(decoder);
97
- if (decoder.state !== "configured" || topicDecoders.get(topic)?.decoder !== decoder) {
98
- closeTopicDecoder(topic, topicDecoders);
99
- return;
100
- }
101
- const chunk = new EncodedVideoChunk({
102
- type: "key",
103
- data: pendingFrame.data,
104
- timestamp: pendingFrame.timestamp,
105
- });
106
- decoder.decode(chunk);
107
- }
108
- catch (error) {
109
- if (isUnconfiguredCodecError(error)) {
110
- decoderInfo.pendingFrame = pendingFrame;
111
- const replacementDecoder = resetTopicDecoder({ topic, topicDecoders, callback, onError });
112
- if (replacementDecoder?.state === "configured") {
113
- decodePendingFrame(topic, topicDecoders, callback, onError);
114
- }
115
- return;
116
- }
117
- closeTopicDecoder(topic, topicDecoders);
118
- onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to decode H.265 frame."));
119
- }
120
31
  }
121
- function createVideoDecoder({ topic, callback, topicDecoders, onError, }) {
122
- let decoder;
123
- decoder = new VideoDecoder({
32
+ function createVideoDecoder({ topic, topicDecoders, }) {
33
+ return new VideoDecoder({
124
34
  output: async (frame) => {
125
- if (topicDecoders.get(topic)?.decoder !== decoder) {
126
- frame.close();
127
- return;
128
- }
129
- const buffer = new Uint8Array(frame.allocationSize());
130
- await frame.copyTo(buffer);
35
+ const { data: buffer, width, height } = await copyVideoFrameToI420(frame, "H265");
131
36
  const receiveTime = topicDecoders.get(topic)?.timing.get(frame.timestamp)
132
37
  ??
133
38
  fromMicros(frame.timestamp);
134
- topicDecoders.get(topic)?.timing.delete(frame.timestamp);
135
39
  const transformation = topicDecoders.get(topic)?.transformations.get(frame.timestamp);
136
40
  topicDecoders.get(topic)?.transformations.delete(frame.timestamp);
137
- const [encoding, step] = parsePixelFormat(frame.format);
138
41
  const foxgloveMessage = {
139
42
  timestamp: receiveTime,
140
43
  frame_id: `h265-${topic}-frame`,
141
- width: frame.displayWidth,
142
- height: frame.displayHeight,
44
+ width,
45
+ height,
143
46
  data: buffer,
144
- encoding,
145
- step: frame.displayWidth * step
47
+ encoding: "yuv420p",
48
+ step: width,
146
49
  };
147
- callback({
50
+ topicDecoders.get(topic)?.callback({
148
51
  topic,
149
52
  receiveTime,
150
53
  message: foxgloveMessage,
@@ -153,20 +56,13 @@ function createVideoDecoder({ topic, callback, topicDecoders, onError, }) {
153
56
  depthaiTransformation: transformation,
154
57
  });
155
58
  frame.close();
156
- if (topicDecoders.get(topic)?.decoder === decoder) {
157
- decodePendingFrame(topic, topicDecoders, callback, onError);
158
- }
159
59
  },
160
60
  error: (error) => {
161
- if (topicDecoders.get(topic)?.decoder !== decoder) {
162
- return;
163
- }
164
61
  logger.error(error);
165
62
  closeTopicDecoder(topic, topicDecoders);
166
- onError(new DecoderRuntimeError(topic, error.message));
63
+ topicDecoders.get(topic)?.onError(new DecoderRuntimeError(topic, error.message));
167
64
  },
168
65
  });
169
- return decoder;
170
66
  }
171
67
  export async function deserializeEncodedFrameH265({ topic, message, topicDecoders, callback, onError, }) {
172
68
  const { receiveTime } = parseMessage(message);
@@ -175,28 +71,61 @@ export async function deserializeEncodedFrameH265({ topic, message, topicDecoder
175
71
  return;
176
72
  }
177
73
  const existingDecoderInfo = topicDecoders.get(topic);
178
- if (!existingDecoderInfo || existingDecoderInfo.decoder.state !== "configured") {
179
- const decoder = resetTopicDecoder({ topic, callback, topicDecoders, onError });
180
- if (!decoder) {
74
+ if (!existingDecoderInfo || existingDecoderInfo.decoder.state === "closed") {
75
+ const decoder = createVideoDecoder({ topic, topicDecoders });
76
+ try {
77
+ decoder.configure({
78
+ codec: "hev1.1.6.L93.B0",
79
+ optimizeForLatency: true
80
+ });
81
+ }
82
+ catch (error) {
83
+ closeDecoder(decoder);
84
+ onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to configure H.265 decoder."));
181
85
  return;
182
86
  }
87
+ if (existingDecoderInfo) {
88
+ existingDecoderInfo.decoder = decoder;
89
+ existingDecoderInfo.timing.clear();
90
+ existingDecoderInfo.transformations.clear();
91
+ existingDecoderInfo.callback = callback;
92
+ existingDecoderInfo.onError = onError;
93
+ }
94
+ else {
95
+ topicDecoders.set(topic, {
96
+ decoder,
97
+ timing: new Map(),
98
+ transformations: new Map(),
99
+ callback,
100
+ onError,
101
+ });
102
+ }
183
103
  }
184
104
  const decoderInfo = topicDecoders.get(topic);
185
105
  if (!decoderInfo) {
186
106
  return;
187
107
  }
108
+ decoderInfo.callback = callback;
109
+ decoderInfo.onError = onError;
110
+ if (decoderInfo.decoder.decodeQueueSize > 60) {
111
+ decoderInfo.decoder.reset();
112
+ return;
113
+ }
188
114
  const microTimestamp = receiveTime.sec * 1_000_000 + Math.floor(receiveTime.nsec / 1_000);
115
+ decoderInfo.timing.set(microTimestamp, receiveTime);
116
+ decoderInfo.transformations.set(microTimestamp, message.transformation);
189
117
  const frame = {
118
+ type: 'key',
190
119
  data: message.data,
191
- timestamp: microTimestamp,
192
- receiveTime,
193
- transformation: message.transformation,
120
+ timestamp: microTimestamp
194
121
  };
195
- if (decoderInfo.decoder.decodeQueueSize > 0) {
196
- decoderInfo.pendingFrame = frame;
197
- return;
122
+ try {
123
+ const chunk = new EncodedVideoChunk(frame);
124
+ decoderInfo.decoder.decode(chunk);
125
+ }
126
+ catch (error) {
127
+ closeTopicDecoder(topic, topicDecoders);
128
+ onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to decode H.265 frame."));
198
129
  }
199
- decoderInfo.pendingFrame = frame;
200
- decodePendingFrame(topic, topicDecoders, callback, onError);
201
130
  }
202
131
  //# sourceMappingURL=h265.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"h265.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/h265.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"h265.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/h265.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mjpeg.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/mjpeg.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAI3E,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,EAC1C,KAAK,EACL,OAAO,EACP,QAAQ,EACT,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwC3C"}
1
+ {"version":3,"file":"mjpeg.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/mjpeg.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAK3E,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,EAC1C,KAAK,EACL,OAAO,EACP,QAAQ,EACT,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC3C"}
@@ -3,7 +3,8 @@
3
3
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
4
4
  import { estimateObjectSize } from "@foxglove/studio-base/players/messageMemoryEstimation.js";
5
5
  import { ensureWebCodecsSupported } from "../../../utils/compatibility.js";
6
- import { parseMessage, parsePixelFormat } from "../../utils.js";
6
+ import { parseMessage } from "../../utils.js";
7
+ import { copyVideoFrameToI420 } from "./h264.js";
7
8
  export async function deserializeMJPEGFrame({ topic, message, callback }) {
8
9
  const { receiveTime } = parseMessage(message);
9
10
  const supported = ensureWebCodecsSupported("ImageDecoder");
@@ -15,17 +16,15 @@ export async function deserializeMJPEGFrame({ topic, message, callback }) {
15
16
  data: message.data
16
17
  });
17
18
  const { image: frame } = await decoder.decode();
18
- const buffer = new Uint8Array(frame.allocationSize());
19
- await frame.copyTo(buffer);
20
- const [encoding, step] = parsePixelFormat(frame.format);
19
+ const { data: buffer, width, height } = await copyVideoFrameToI420(frame, "MJPEG");
21
20
  const foxgloveMessage = {
22
21
  timestamp: receiveTime,
23
22
  frame_id: "camera",
24
- width: frame.displayWidth,
25
- height: frame.displayHeight,
23
+ width,
24
+ height,
26
25
  data: buffer,
27
- encoding,
28
- step: frame.displayWidth * step
26
+ encoding: "yuv420p",
27
+ step: width,
29
28
  };
30
29
  frame.close();
31
30
  callback({
@@ -1 +1 @@
1
- {"version":3,"file":"mjpeg.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/mjpeg.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAG1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AAI9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAQhE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,KAAK,EACL,OAAO,EACP,QAAQ,EACkB;IAC1B,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAE7C,MAAM,SAAS,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC;QAC/B,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC;IAEH,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;IAEhD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;IACtD,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3B,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAExD,MAAM,eAAe,GAAa;QAChC,SAAS,EAAE,WAAW;QACtB,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,KAAK,CAAC,YAAY;QACzB,MAAM,EAAE,KAAK,CAAC,aAAa;QAC3B,IAAI,EAAE,MAAM;QACZ,QAAQ;QACR,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI;KAChC,CAAC;IAEF,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,QAAQ,CAAC;QACP,KAAK;QACL,WAAW;QACX,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,kBAAkB,CAAC,eAAe,CAAC;QAChD,UAAU,EAAE,mBAAmB;QAC/B,qBAAqB,EAAE,OAAO,CAAC,cAAc;KAC9B,CAAC,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"mjpeg.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/mjpeg.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAG1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AAI9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAQjD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,KAAK,EACL,OAAO,EACP,QAAQ,EACkB;IAC1B,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAE7C,MAAM,SAAS,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC;QAC/B,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC;IAEH,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;IAEhD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEnF,MAAM,eAAe,GAAa;QAChC,SAAS,EAAE,WAAW;QACtB,QAAQ,EAAE,QAAQ;QAClB,KAAK;QACL,MAAM;QACN,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,KAAK;KACZ,CAAC;IAEF,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,QAAQ,CAAC;QACP,KAAK;QACL,WAAW;QACX,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,kBAAkB,CAAC,eAAe,CAAC;QAChD,UAAU,EAAE,mBAAmB;QAC/B,qBAAqB,EAAE,OAAO,CAAC,cAAc;KAC9B,CAAC,CAAC;AACrB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { MessageEvent } from "@foxglove/studio-base/players/types";
2
+ import { type PointCloudWithDimensions } from "./depth";
3
+ import { type TopicDecoders } from "./h264";
4
+ import type { RGBDData } from "../../../protobuf.generated/RGBDData";
5
+ import type { NeuralCameraIntrinsics } from "../pointcloud/utils";
6
+ export type DeserializeRGBDFrameArgs = {
7
+ topic: string;
8
+ topicDecoders: TopicDecoders;
9
+ cameraIntrinsics: NeuralCameraIntrinsics;
10
+ maxStereoDepth: number;
11
+ message: RGBDData;
12
+ callback: (event: MessageEvent) => void;
13
+ onError: (error: Error) => void;
14
+ };
15
+ export type PointCloudWithColorAndDepth = PointCloudWithDimensions;
16
+ export declare function deserializeRGBDFrameToPointCloud({ topic, topicDecoders, cameraIntrinsics, maxStereoDepth, message, callback, onError, }: DeserializeRGBDFrameArgs): Promise<void>;
17
+ //# sourceMappingURL=rgbd-to-pointcloud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbd-to-pointcloud.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/rgbd-to-pointcloud.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAyB,KAAK,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAK5F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAGrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGlE,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AA2VnE,wBAAsB,gCAAgC,CAAC,EACrD,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,QAAQ,EACR,OAAO,GACR,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgF1C"}