@luxonis/visualizer-protobuf 3.1.6 → 3.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/{deserialization.worker-BPsjKVe4.js → deserialization.worker-Bb65S7kM.js} +142 -62
  2. package/dist/{index-DLZ3xvY3.js → index-5P3yK0Y5.js} +1 -1
  3. package/dist/{index-mot3qpp9.js → index-BG23zkos.js} +1 -1
  4. package/dist/{index-CHlhmU5r.js → index-Bf5zVcAc.js} +1 -1
  5. package/dist/{index-CKfc_K3x.js → index-Bl1gi-zh.js} +1 -1
  6. package/dist/{index-CjcnWHBX.js → index-C1xWJh2E.js} +1 -1
  7. package/dist/{index-Drd3hxmz.js → index-CDlXPOVY.js} +1 -1
  8. package/dist/{index-DQXLqhI5.js → index-CDxyA65I.js} +1 -1
  9. package/dist/{index-Bcd7r8Iv.js → index-CJ4dvZSx.js} +1 -1
  10. package/dist/{index-DRcGifo6.js → index-Cj9IeP3v.js} +1 -1
  11. package/dist/{index-D-ixoHgF.js → index-CjSLV104.js} +1 -1
  12. package/dist/{index-1RjTt6HK.js → index-CxuRylDm.js} +2 -2
  13. package/dist/{index-Bi4nJb4U.js → index-D3o7BG11.js} +22 -22
  14. package/dist/{index-BOEXymjd.js → index-DEfpAjec.js} +1 -1
  15. package/dist/{index-DLW4CyCW.js → index-DM-9EFgN.js} +1 -1
  16. package/dist/{index-DhI-rSJS.js → index-DVZvqFFB.js} +1 -1
  17. package/dist/{index-Bnw5i4J9.js → index-DkB77p5v.js} +1 -1
  18. package/dist/{index-C5yt-flE.js → index-DlbKtmKk.js} +1 -1
  19. package/dist/{index-BoqJy5eD.js → index-F7xi9wdl.js} +1 -1
  20. package/dist/{index-DOEAktbW.js → index-K7wbxNjM.js} +1 -1
  21. package/dist/{index-BF6pGj6y.js → index-u97AsRd9.js} +1 -1
  22. package/dist/index.js +1 -1
  23. package/dist/lib/src/messaging/deserialization/video/h264.d.ts +7 -0
  24. package/dist/lib/src/messaging/deserialization/video/h264.d.ts.map +1 -1
  25. package/dist/lib/src/messaging/deserialization/video/h264.js +67 -30
  26. package/dist/lib/src/messaging/deserialization/video/h264.js.map +1 -1
  27. package/dist/lib/src/messaging/deserialization/video/h265.d.ts +7 -0
  28. package/dist/lib/src/messaging/deserialization/video/h265.d.ts.map +1 -1
  29. package/dist/lib/src/messaging/deserialization/video/h265.js +63 -26
  30. package/dist/lib/src/messaging/deserialization/video/h265.js.map +1 -1
  31. package/package.json +1 -1
@@ -823,14 +823,56 @@ function closeDecoder$1(decoder) {
823
823
  }
824
824
  function closeTopicDecoder$1(topic, topicDecoders) {
825
825
  const decoderInfo = topicDecoders.get(topic);
826
+ topicDecoders.delete(topic);
826
827
  closeDecoder$1(decoderInfo === null || decoderInfo === void 0 ? void 0 : decoderInfo.decoder);
827
828
  decoderInfo === null || decoderInfo === void 0 || decoderInfo.timing.clear();
828
829
  decoderInfo === null || decoderInfo === void 0 || decoderInfo.transformations.clear();
830
+ if (decoderInfo) {
831
+ decoderInfo.pendingFrame = undefined;
832
+ }
829
833
  }
830
834
  function isIgnorableInitialDecodeError(error) {
831
835
  const message = error instanceof Error ? error.message : String(error);
832
836
  return message.includes("A key frame is required after configure() or flush()");
833
837
  }
838
+ function decodePendingFrame$1(topic, topicDecoders, onError) {
839
+ const decoderInfo = topicDecoders.get(topic);
840
+ if (!decoderInfo) {
841
+ return;
842
+ }
843
+ const decoder = decoderInfo.decoder;
844
+ if (decoder.state === "closed" || decoder.decodeQueueSize > 0) {
845
+ return;
846
+ }
847
+ const pendingFrame = decoderInfo.pendingFrame;
848
+ if (!pendingFrame) {
849
+ return;
850
+ }
851
+ decoderInfo.pendingFrame = undefined;
852
+ decoderInfo.timing.set(pendingFrame.timestamp, pendingFrame.receiveTime);
853
+ decoderInfo.transformations.set(pendingFrame.timestamp, pendingFrame.transformation);
854
+ try {
855
+ var _topicDecoders$get;
856
+ ensureDecoderConfigured$1(decoder);
857
+ if (decoder.state !== "configured" || ((_topicDecoders$get = topicDecoders.get(topic)) === null || _topicDecoders$get === void 0 ? void 0 : _topicDecoders$get.decoder) !== decoder) {
858
+ closeTopicDecoder$1(topic, topicDecoders);
859
+ return;
860
+ }
861
+ const chunk = new EncodedVideoChunk({
862
+ type: "key",
863
+ data: pendingFrame.data,
864
+ timestamp: pendingFrame.timestamp
865
+ });
866
+ decoder.decode(chunk);
867
+ } catch (error) {
868
+ if (isIgnorableInitialDecodeError(error)) {
869
+ closeTopicDecoder$1(topic, topicDecoders);
870
+ return;
871
+ }
872
+ closeTopicDecoder$1(topic, topicDecoders);
873
+ onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to decode H.264 frame."));
874
+ }
875
+ }
834
876
  function packedToI420(packed, width, height, stride, format, cropLeft = 0, cropTop = 0) {
835
877
  if ((width & 1) !== 0 || (height & 1) !== 0) {
836
878
  throw new Error("I420 requires even width and height.");
@@ -943,9 +985,14 @@ function createVideoDecoder$1({
943
985
  onError
944
986
  }) {
945
987
  let hasProducedFrame = false;
946
- return new VideoDecoder({
988
+ let decoder;
989
+ decoder = new VideoDecoder({
947
990
  output: async frame => {
948
- var _visibleRect$width, _visibleRect$height, _visibleRect$x, _visibleRect$y, _topicDecoders$get$ti, _topicDecoders$get, _topicDecoders$get2, _topicDecoders$get3;
991
+ var _topicDecoders$get2, _visibleRect$width, _visibleRect$height, _visibleRect$x, _visibleRect$y, _topicDecoders$get$ti, _topicDecoders$get3, _topicDecoders$get4, _topicDecoders$get5, _topicDecoders$get6, _topicDecoders$get7;
992
+ if (((_topicDecoders$get2 = topicDecoders.get(topic)) === null || _topicDecoders$get2 === void 0 ? void 0 : _topicDecoders$get2.decoder) !== decoder) {
993
+ frame.close();
994
+ return;
995
+ }
949
996
  hasProducedFrame = true;
950
997
  const visibleRect = frame.visibleRect;
951
998
  const frameWidth = (_visibleRect$width = visibleRect === null || visibleRect === void 0 ? void 0 : visibleRect.width) !== null && _visibleRect$width !== void 0 ? _visibleRect$width : frame.codedWidth;
@@ -988,9 +1035,10 @@ function createVideoDecoder$1({
988
1035
  if (frame.format !== "I420" && frame.format !== "NV12" && frame.format !== "RGBX" && frame.format !== "RGBA" && frame.format !== "BGRX" && frame.format !== "BGRA") {
989
1036
  logger$2.warn("H264 decoder received unexpected frame format:", frame.format);
990
1037
  }
991
- const receiveTime = (_topicDecoders$get$ti = (_topicDecoders$get = topicDecoders.get(topic)) === null || _topicDecoders$get === void 0 ? void 0 : _topicDecoders$get.timing.get(frame.timestamp)) !== null && _topicDecoders$get$ti !== void 0 ? _topicDecoders$get$ti : dist.fromMicros(frame.timestamp);
992
- const transformation = (_topicDecoders$get2 = topicDecoders.get(topic)) === null || _topicDecoders$get2 === void 0 ? void 0 : _topicDecoders$get2.transformations.get(frame.timestamp);
993
- (_topicDecoders$get3 = topicDecoders.get(topic)) === null || _topicDecoders$get3 === void 0 || _topicDecoders$get3.transformations.delete(frame.timestamp);
1038
+ const receiveTime = (_topicDecoders$get$ti = (_topicDecoders$get3 = topicDecoders.get(topic)) === null || _topicDecoders$get3 === void 0 ? void 0 : _topicDecoders$get3.timing.get(frame.timestamp)) !== null && _topicDecoders$get$ti !== void 0 ? _topicDecoders$get$ti : dist.fromMicros(frame.timestamp);
1039
+ (_topicDecoders$get4 = topicDecoders.get(topic)) === null || _topicDecoders$get4 === void 0 || _topicDecoders$get4.timing.delete(frame.timestamp);
1040
+ const transformation = (_topicDecoders$get5 = topicDecoders.get(topic)) === null || _topicDecoders$get5 === void 0 ? void 0 : _topicDecoders$get5.transformations.get(frame.timestamp);
1041
+ (_topicDecoders$get6 = topicDecoders.get(topic)) === null || _topicDecoders$get6 === void 0 || _topicDecoders$get6.transformations.delete(frame.timestamp);
994
1042
  const foxgloveMessage = {
995
1043
  timestamp: receiveTime,
996
1044
  frame_id: `h264-${topic}-frame`,
@@ -1009,8 +1057,15 @@ function createVideoDecoder$1({
1009
1057
  depthaiTransformation: transformation
1010
1058
  });
1011
1059
  frame.close();
1060
+ if (((_topicDecoders$get7 = topicDecoders.get(topic)) === null || _topicDecoders$get7 === void 0 ? void 0 : _topicDecoders$get7.decoder) === decoder) {
1061
+ decodePendingFrame$1(topic, topicDecoders, onError);
1062
+ }
1012
1063
  },
1013
1064
  error: error => {
1065
+ var _topicDecoders$get8;
1066
+ if (((_topicDecoders$get8 = topicDecoders.get(topic)) === null || _topicDecoders$get8 === void 0 ? void 0 : _topicDecoders$get8.decoder) !== decoder) {
1067
+ return;
1068
+ }
1014
1069
  if (!hasProducedFrame && isIgnorableInitialDecodeError(error)) {
1015
1070
  logger$2.warn(`Ignoring initial H264 decoder error for topic ${topic}: ${error.message}`);
1016
1071
  closeTopicDecoder$1(topic, topicDecoders);
@@ -1021,6 +1076,7 @@ function createVideoDecoder$1({
1021
1076
  onError(new DecoderRuntimeError(topic, error.message));
1022
1077
  }
1023
1078
  });
1079
+ return decoder;
1024
1080
  }
1025
1081
  async function deserializeEncodedFrameH264({
1026
1082
  topic,
@@ -1055,11 +1111,13 @@ async function deserializeEncodedFrameH264({
1055
1111
  existingDecoderInfo.decoder = decoder;
1056
1112
  existingDecoderInfo.timing.clear();
1057
1113
  existingDecoderInfo.transformations.clear();
1114
+ existingDecoderInfo.pendingFrame = undefined;
1058
1115
  } else {
1059
1116
  topicDecoders.set(topic, {
1060
1117
  decoder,
1061
1118
  timing: new Map(),
1062
- transformations: new Map()
1119
+ transformations: new Map(),
1120
+ pendingFrame: undefined
1063
1121
  });
1064
1122
  }
1065
1123
  } else if (existingDecoderInfo.decoder.state === "unconfigured") {
@@ -1067,6 +1125,7 @@ async function deserializeEncodedFrameH264({
1067
1125
  ensureDecoderConfigured$1(existingDecoderInfo.decoder);
1068
1126
  existingDecoderInfo.timing.clear();
1069
1127
  existingDecoderInfo.transformations.clear();
1128
+ existingDecoderInfo.pendingFrame = undefined;
1070
1129
  } catch (error) {
1071
1130
  closeTopicDecoder$1(topic, topicDecoders);
1072
1131
  onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to reconfigure H.264 decoder."));
@@ -1077,38 +1136,19 @@ async function deserializeEncodedFrameH264({
1077
1136
  if (!decoderInfo) {
1078
1137
  return;
1079
1138
  }
1080
- if (decoderInfo.decoder.decodeQueueSize > 60) {
1081
- decoderInfo.decoder.reset();
1082
- try {
1083
- ensureDecoderConfigured$1(decoderInfo.decoder);
1084
- } catch (error) {
1085
- closeTopicDecoder$1(topic, topicDecoders);
1086
- onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to reconfigure H.264 decoder after reset."));
1087
- }
1088
- decoderInfo.timing.clear();
1089
- decoderInfo.transformations.clear();
1090
- return;
1091
- }
1092
1139
  const microTimestamp = receiveTime.sec * 1000000 + Math.floor(receiveTime.nsec / 1000);
1093
- decoderInfo.timing.set(microTimestamp, receiveTime);
1094
- decoderInfo.transformations.set(microTimestamp, message.transformation);
1095
1140
  const frame = {
1096
- type: 'key',
1097
1141
  data: message.data,
1098
- timestamp: microTimestamp
1142
+ timestamp: microTimestamp,
1143
+ receiveTime,
1144
+ transformation: message.transformation
1099
1145
  };
1100
- try {
1101
- ensureDecoderConfigured$1(decoderInfo.decoder);
1102
- const chunk = new EncodedVideoChunk(frame);
1103
- decoderInfo.decoder.decode(chunk);
1104
- } catch (error) {
1105
- if (isIgnorableInitialDecodeError(error)) {
1106
- closeTopicDecoder$1(topic, topicDecoders);
1107
- return;
1108
- }
1109
- closeTopicDecoder$1(topic, topicDecoders);
1110
- onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to decode H.264 frame."));
1146
+ if (decoderInfo.decoder.decodeQueueSize > 0) {
1147
+ decoderInfo.pendingFrame = frame;
1148
+ return;
1111
1149
  }
1150
+ decoderInfo.pendingFrame = frame;
1151
+ decodePendingFrame$1(topic, topicDecoders, onError);
1112
1152
  }
1113
1153
 
1114
1154
  // This Source Code Form is subject to the terms of the Mozilla Public
@@ -1142,9 +1182,47 @@ function closeDecoder(decoder) {
1142
1182
  }
1143
1183
  function closeTopicDecoder(topic, topicDecoders) {
1144
1184
  const decoderInfo = topicDecoders.get(topic);
1185
+ topicDecoders.delete(topic);
1145
1186
  closeDecoder(decoderInfo === null || decoderInfo === void 0 ? void 0 : decoderInfo.decoder);
1146
1187
  decoderInfo === null || decoderInfo === void 0 || decoderInfo.timing.clear();
1147
1188
  decoderInfo === null || decoderInfo === void 0 || decoderInfo.transformations.clear();
1189
+ if (decoderInfo) {
1190
+ decoderInfo.pendingFrame = undefined;
1191
+ }
1192
+ }
1193
+ function decodePendingFrame(topic, topicDecoders, onError) {
1194
+ const decoderInfo = topicDecoders.get(topic);
1195
+ if (!decoderInfo) {
1196
+ return;
1197
+ }
1198
+ const decoder = decoderInfo.decoder;
1199
+ if (decoder.state === "closed" || decoder.decodeQueueSize > 0) {
1200
+ return;
1201
+ }
1202
+ const pendingFrame = decoderInfo.pendingFrame;
1203
+ if (!pendingFrame) {
1204
+ return;
1205
+ }
1206
+ decoderInfo.pendingFrame = undefined;
1207
+ decoderInfo.timing.set(pendingFrame.timestamp, pendingFrame.receiveTime);
1208
+ decoderInfo.transformations.set(pendingFrame.timestamp, pendingFrame.transformation);
1209
+ try {
1210
+ var _topicDecoders$get;
1211
+ ensureDecoderConfigured(decoder);
1212
+ if (decoder.state !== "configured" || ((_topicDecoders$get = topicDecoders.get(topic)) === null || _topicDecoders$get === void 0 ? void 0 : _topicDecoders$get.decoder) !== decoder) {
1213
+ closeTopicDecoder(topic, topicDecoders);
1214
+ return;
1215
+ }
1216
+ const chunk = new EncodedVideoChunk({
1217
+ type: "key",
1218
+ data: pendingFrame.data,
1219
+ timestamp: pendingFrame.timestamp
1220
+ });
1221
+ decoder.decode(chunk);
1222
+ } catch (error) {
1223
+ closeTopicDecoder(topic, topicDecoders);
1224
+ onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to decode H.265 frame."));
1225
+ }
1148
1226
  }
1149
1227
  function createVideoDecoder({
1150
1228
  topic,
@@ -1152,14 +1230,20 @@ function createVideoDecoder({
1152
1230
  topicDecoders,
1153
1231
  onError
1154
1232
  }) {
1155
- return new VideoDecoder({
1233
+ let decoder;
1234
+ decoder = new VideoDecoder({
1156
1235
  output: async frame => {
1157
- var _topicDecoders$get$ti, _topicDecoders$get, _topicDecoders$get2, _topicDecoders$get3;
1236
+ var _topicDecoders$get2, _topicDecoders$get$ti, _topicDecoders$get3, _topicDecoders$get4, _topicDecoders$get5, _topicDecoders$get6, _topicDecoders$get7;
1237
+ if (((_topicDecoders$get2 = topicDecoders.get(topic)) === null || _topicDecoders$get2 === void 0 ? void 0 : _topicDecoders$get2.decoder) !== decoder) {
1238
+ frame.close();
1239
+ return;
1240
+ }
1158
1241
  const buffer = new Uint8Array(frame.allocationSize());
1159
1242
  await frame.copyTo(buffer);
1160
- const receiveTime = (_topicDecoders$get$ti = (_topicDecoders$get = topicDecoders.get(topic)) === null || _topicDecoders$get === void 0 ? void 0 : _topicDecoders$get.timing.get(frame.timestamp)) !== null && _topicDecoders$get$ti !== void 0 ? _topicDecoders$get$ti : dist.fromMicros(frame.timestamp);
1161
- const transformation = (_topicDecoders$get2 = topicDecoders.get(topic)) === null || _topicDecoders$get2 === void 0 ? void 0 : _topicDecoders$get2.transformations.get(frame.timestamp);
1162
- (_topicDecoders$get3 = topicDecoders.get(topic)) === null || _topicDecoders$get3 === void 0 || _topicDecoders$get3.transformations.delete(frame.timestamp);
1243
+ const receiveTime = (_topicDecoders$get$ti = (_topicDecoders$get3 = topicDecoders.get(topic)) === null || _topicDecoders$get3 === void 0 ? void 0 : _topicDecoders$get3.timing.get(frame.timestamp)) !== null && _topicDecoders$get$ti !== void 0 ? _topicDecoders$get$ti : dist.fromMicros(frame.timestamp);
1244
+ (_topicDecoders$get4 = topicDecoders.get(topic)) === null || _topicDecoders$get4 === void 0 || _topicDecoders$get4.timing.delete(frame.timestamp);
1245
+ const transformation = (_topicDecoders$get5 = topicDecoders.get(topic)) === null || _topicDecoders$get5 === void 0 ? void 0 : _topicDecoders$get5.transformations.get(frame.timestamp);
1246
+ (_topicDecoders$get6 = topicDecoders.get(topic)) === null || _topicDecoders$get6 === void 0 || _topicDecoders$get6.transformations.delete(frame.timestamp);
1163
1247
  const [encoding, step] = parsePixelFormat(frame.format);
1164
1248
  const foxgloveMessage = {
1165
1249
  timestamp: receiveTime,
@@ -1179,13 +1263,21 @@ function createVideoDecoder({
1179
1263
  depthaiTransformation: transformation
1180
1264
  });
1181
1265
  frame.close();
1266
+ if (((_topicDecoders$get7 = topicDecoders.get(topic)) === null || _topicDecoders$get7 === void 0 ? void 0 : _topicDecoders$get7.decoder) === decoder) {
1267
+ decodePendingFrame(topic, topicDecoders, onError);
1268
+ }
1182
1269
  },
1183
1270
  error: error => {
1271
+ var _topicDecoders$get8;
1272
+ if (((_topicDecoders$get8 = topicDecoders.get(topic)) === null || _topicDecoders$get8 === void 0 ? void 0 : _topicDecoders$get8.decoder) !== decoder) {
1273
+ return;
1274
+ }
1184
1275
  logger$1.error(error);
1185
1276
  closeTopicDecoder(topic, topicDecoders);
1186
1277
  onError(new DecoderRuntimeError(topic, error.message));
1187
1278
  }
1188
1279
  });
1280
+ return decoder;
1189
1281
  }
1190
1282
  async function deserializeEncodedFrameH265({
1191
1283
  topic,
@@ -1220,11 +1312,13 @@ async function deserializeEncodedFrameH265({
1220
1312
  existingDecoderInfo.decoder = decoder;
1221
1313
  existingDecoderInfo.timing.clear();
1222
1314
  existingDecoderInfo.transformations.clear();
1315
+ existingDecoderInfo.pendingFrame = undefined;
1223
1316
  } else {
1224
1317
  topicDecoders.set(topic, {
1225
1318
  decoder,
1226
1319
  timing: new Map(),
1227
- transformations: new Map()
1320
+ transformations: new Map(),
1321
+ pendingFrame: undefined
1228
1322
  });
1229
1323
  }
1230
1324
  } else if (existingDecoderInfo.decoder.state === "unconfigured") {
@@ -1232,6 +1326,7 @@ async function deserializeEncodedFrameH265({
1232
1326
  ensureDecoderConfigured(existingDecoderInfo.decoder);
1233
1327
  existingDecoderInfo.timing.clear();
1234
1328
  existingDecoderInfo.transformations.clear();
1329
+ existingDecoderInfo.pendingFrame = undefined;
1235
1330
  } catch (error) {
1236
1331
  closeTopicDecoder(topic, topicDecoders);
1237
1332
  onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to reconfigure H.265 decoder."));
@@ -1242,34 +1337,19 @@ async function deserializeEncodedFrameH265({
1242
1337
  if (!decoderInfo) {
1243
1338
  return;
1244
1339
  }
1245
- if (decoderInfo.decoder.decodeQueueSize > 60) {
1246
- decoderInfo.decoder.reset();
1247
- try {
1248
- ensureDecoderConfigured(decoderInfo.decoder);
1249
- } catch (error) {
1250
- closeTopicDecoder(topic, topicDecoders);
1251
- onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to reconfigure H.265 decoder after reset."));
1252
- }
1253
- decoderInfo.timing.clear();
1254
- decoderInfo.transformations.clear();
1255
- return;
1256
- }
1257
1340
  const microTimestamp = receiveTime.sec * 1000000 + Math.floor(receiveTime.nsec / 1000);
1258
- decoderInfo.timing.set(microTimestamp, receiveTime);
1259
- decoderInfo.transformations.set(microTimestamp, message.transformation);
1260
1341
  const frame = {
1261
- type: 'key',
1262
1342
  data: message.data,
1263
- timestamp: microTimestamp
1343
+ timestamp: microTimestamp,
1344
+ receiveTime,
1345
+ transformation: message.transformation
1264
1346
  };
1265
- try {
1266
- ensureDecoderConfigured(decoderInfo.decoder);
1267
- const chunk = new EncodedVideoChunk(frame);
1268
- decoderInfo.decoder.decode(chunk);
1269
- } catch (error) {
1270
- closeTopicDecoder(topic, topicDecoders);
1271
- onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to decode H.265 frame."));
1347
+ if (decoderInfo.decoder.decodeQueueSize > 0) {
1348
+ decoderInfo.pendingFrame = frame;
1349
+ return;
1272
1350
  }
1351
+ decoderInfo.pendingFrame = frame;
1352
+ decodePendingFrame(topic, topicDecoders, onError);
1273
1353
  }
1274
1354
 
1275
1355
  // This Source Code Form is subject to the terms of the Mozilla Public
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { a6 as ContextTracker, Y as ExternalTokenizer, U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport, ad as parseMixed } from './index-Bi4nJb4U.js';
2
+ import { a6 as ContextTracker, Y as ExternalTokenizer, U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport, ad as parseMixed } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { Y as ExternalTokenizer, U as styleTags, V as tags, Z as LRParser, a2 as LocalTokenGroup, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, a3 as flatIndent, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport } from './index-Bi4nJb4U.js';
2
+ import { Y as ExternalTokenizer, U as styleTags, V as tags, Z as LRParser, a2 as LocalTokenGroup, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, a3 as flatIndent, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, a3 as flatIndent, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport } from './index-Bi4nJb4U.js';
2
+ import { U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, a3 as flatIndent, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { U as styleTags, V as tags, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, T as foldNodeProp, a5 as foldInside, ae as defineCSSCompletionSource, X as LanguageSupport, Z as LRParser, Y as ExternalTokenizer } from './index-Bi4nJb4U.js';
2
+ import { U as styleTags, V as tags, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, T as foldNodeProp, a5 as foldInside, ae as defineCSSCompletionSource, X as LanguageSupport, Z as LRParser, Y as ExternalTokenizer } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { U as styleTags, V as tags, ag as javascriptLanguage, W as LRLanguage, X as LanguageSupport, Z as LRParser, ac as html, ad as parseMixed, Y as ExternalTokenizer } from './index-Bi4nJb4U.js';
2
+ import { U as styleTags, V as tags, ag as javascriptLanguage, W as LRLanguage, X as LanguageSupport, Z as LRParser, ac as html, ad as parseMixed, Y as ExternalTokenizer } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { Y as ExternalTokenizer, U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport } from './index-Bi4nJb4U.js';
2
+ import { Y as ExternalTokenizer, U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { Y as ExternalTokenizer, U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, ac as html, X as LanguageSupport, ad as parseMixed } from './index-Bi4nJb4U.js';
2
+ import { Y as ExternalTokenizer, U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, ac as html, X as LanguageSupport, ad as parseMixed } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport } from './index-Bi4nJb4U.js';
2
+ import { U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { aa as EditorView, ab as EditorSelection, W as LRLanguage, U as styleTags, V as tags, Q as indentNodeProp, a4 as delimitedIndent, T as foldNodeProp, X as LanguageSupport, Z as LRParser, a2 as LocalTokenGroup, a1 as syntaxTree, ac as html, ad as parseMixed, Y as ExternalTokenizer } from './index-Bi4nJb4U.js';
2
+ import { aa as EditorView, ab as EditorSelection, W as LRLanguage, U as styleTags, V as tags, Q as indentNodeProp, a4 as delimitedIndent, T as foldNodeProp, X as LanguageSupport, Z as LRParser, a2 as LocalTokenGroup, a1 as syntaxTree, ac as html, ad as parseMixed, Y as ExternalTokenizer } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { aa as EditorView, ab as EditorSelection, W as LRLanguage, U as styleTags, V as tags, Q as indentNodeProp, a4 as delimitedIndent, T as foldNodeProp, X as LanguageSupport, Z as LRParser, a1 as syntaxTree, ac as html, ad as parseMixed, Y as ExternalTokenizer } from './index-Bi4nJb4U.js';
2
+ import { aa as EditorView, ab as EditorSelection, W as LRLanguage, U as styleTags, V as tags, Q as indentNodeProp, a4 as delimitedIndent, T as foldNodeProp, X as LanguageSupport, Z as LRParser, a1 as syntaxTree, ac as html, ad as parseMixed, Y as ExternalTokenizer } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { ImagePanel } from './index-BF6pGj6y.js';
2
+ import { ImagePanel } from './index-u97AsRd9.js';
3
3
  import 'react';
4
4
  import 'react-dom/client';
5
5
  import './depth-DlC6A3Te.js';
@@ -10,7 +10,7 @@ import 'zustand';
10
10
  import 'react-mosaic-component';
11
11
  import '@mui/material';
12
12
  import './isArrayLikeObject-n9ytTioB.js';
13
- import './index-Bi4nJb4U.js';
13
+ import './index-D3o7BG11.js';
14
14
  import './utils-DmlHZWuo.js';
15
15
  import './FoxgloveServer-B98MHUu6.js';
16
16
  import 'ms';
@@ -975,7 +975,7 @@ ConfigStore.instance = void 0;
975
975
 
976
976
  var _localStorage$getItem;
977
977
  function initWorker(callback) {
978
- const worker = new Worker(new URL("deserialization.worker-BPsjKVe4.js", import.meta.url), {
978
+ const worker = new Worker(new URL("deserialization.worker-Bb65S7kM.js", import.meta.url), {
979
979
  type: "module",
980
980
  name: `message-decoder`
981
981
  });
@@ -88702,7 +88702,7 @@ function legacy(parser) {
88702
88702
  return new LanguageSupport(StreamLanguage.define(parser));
88703
88703
  }
88704
88704
  function sql$1(dialectName) {
88705
- return import('./index-DOEAktbW.js').then(m => m.sql({ dialect: m[dialectName] }));
88705
+ return import('./index-K7wbxNjM.js').then(m => m.sql({ dialect: m[dialectName] }));
88706
88706
  }
88707
88707
  /**
88708
88708
  An array of language descriptions for known language packages.
@@ -88713,7 +88713,7 @@ const languages = [
88713
88713
  name: "C",
88714
88714
  extensions: ["c", "h", "ino"],
88715
88715
  load() {
88716
- return import('./index-mot3qpp9.js').then(m => m.cpp());
88716
+ return import('./index-BG23zkos.js').then(m => m.cpp());
88717
88717
  }
88718
88718
  }),
88719
88719
  /*@__PURE__*/LanguageDescription.of({
@@ -88721,7 +88721,7 @@ const languages = [
88721
88721
  alias: ["cpp"],
88722
88722
  extensions: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"],
88723
88723
  load() {
88724
- return import('./index-mot3qpp9.js').then(m => m.cpp());
88724
+ return import('./index-BG23zkos.js').then(m => m.cpp());
88725
88725
  }
88726
88726
  }),
88727
88727
  /*@__PURE__*/LanguageDescription.of({
@@ -88741,7 +88741,7 @@ const languages = [
88741
88741
  name: "Go",
88742
88742
  extensions: ["go"],
88743
88743
  load() {
88744
- return import('./index-DhI-rSJS.js').then(m => m.go());
88744
+ return import('./index-DVZvqFFB.js').then(m => m.go());
88745
88745
  }
88746
88746
  }),
88747
88747
  /*@__PURE__*/LanguageDescription.of({
@@ -88756,7 +88756,7 @@ const languages = [
88756
88756
  name: "Java",
88757
88757
  extensions: ["java"],
88758
88758
  load() {
88759
- return import('./index-CHlhmU5r.js').then(m => m.java());
88759
+ return import('./index-Bf5zVcAc.js').then(m => m.java());
88760
88760
  }
88761
88761
  }),
88762
88762
  /*@__PURE__*/LanguageDescription.of({
@@ -88771,7 +88771,7 @@ const languages = [
88771
88771
  name: "Jinja",
88772
88772
  extensions: ["j2", "jinja", "jinja2"],
88773
88773
  load() {
88774
- return import('./index-DRcGifo6.js').then(m => m.jinja());
88774
+ return import('./index-Cj9IeP3v.js').then(m => m.jinja());
88775
88775
  }
88776
88776
  }),
88777
88777
  /*@__PURE__*/LanguageDescription.of({
@@ -88779,7 +88779,7 @@ const languages = [
88779
88779
  alias: ["json5"],
88780
88780
  extensions: ["json", "map"],
88781
88781
  load() {
88782
- return import('./index-Bcd7r8Iv.js').then(m => m.json());
88782
+ return import('./index-CJ4dvZSx.js').then(m => m.json());
88783
88783
  }
88784
88784
  }),
88785
88785
  /*@__PURE__*/LanguageDescription.of({
@@ -88793,14 +88793,14 @@ const languages = [
88793
88793
  name: "LESS",
88794
88794
  extensions: ["less"],
88795
88795
  load() {
88796
- return import('./index-CKfc_K3x.js').then(m => m.less());
88796
+ return import('./index-Bl1gi-zh.js').then(m => m.less());
88797
88797
  }
88798
88798
  }),
88799
88799
  /*@__PURE__*/LanguageDescription.of({
88800
88800
  name: "Liquid",
88801
88801
  extensions: ["liquid"],
88802
88802
  load() {
88803
- return import('./index-D-ixoHgF.js').then(m => m.liquid());
88803
+ return import('./index-CjSLV104.js').then(m => m.liquid());
88804
88804
  }
88805
88805
  }),
88806
88806
  /*@__PURE__*/LanguageDescription.of({
@@ -88826,7 +88826,7 @@ const languages = [
88826
88826
  name: "PHP",
88827
88827
  extensions: ["php", "php3", "php4", "php5", "php7", "phtml"],
88828
88828
  load() {
88829
- return import('./index-DQXLqhI5.js').then(m => m.php());
88829
+ return import('./index-CDxyA65I.js').then(m => m.php());
88830
88830
  }
88831
88831
  }),
88832
88832
  /*@__PURE__*/LanguageDescription.of({
@@ -88843,28 +88843,28 @@ const languages = [
88843
88843
  extensions: ["BUILD", "bzl", "py", "pyw"],
88844
88844
  filename: /^(BUCK|BUILD)$/,
88845
88845
  load() {
88846
- return import('./index-BOEXymjd.js').then(m => m.python());
88846
+ return import('./index-DEfpAjec.js').then(m => m.python());
88847
88847
  }
88848
88848
  }),
88849
88849
  /*@__PURE__*/LanguageDescription.of({
88850
88850
  name: "Rust",
88851
88851
  extensions: ["rs"],
88852
88852
  load() {
88853
- return import('./index-Drd3hxmz.js').then(m => m.rust());
88853
+ return import('./index-CDlXPOVY.js').then(m => m.rust());
88854
88854
  }
88855
88855
  }),
88856
88856
  /*@__PURE__*/LanguageDescription.of({
88857
88857
  name: "Sass",
88858
88858
  extensions: ["sass"],
88859
88859
  load() {
88860
- return import('./index-Bnw5i4J9.js').then(m => m.sass({ indented: true }));
88860
+ return import('./index-DkB77p5v.js').then(m => m.sass({ indented: true }));
88861
88861
  }
88862
88862
  }),
88863
88863
  /*@__PURE__*/LanguageDescription.of({
88864
88864
  name: "SCSS",
88865
88865
  extensions: ["scss"],
88866
88866
  load() {
88867
- return import('./index-Bnw5i4J9.js').then(m => m.sass());
88867
+ return import('./index-DkB77p5v.js').then(m => m.sass());
88868
88868
  }
88869
88869
  }),
88870
88870
  /*@__PURE__*/LanguageDescription.of({
@@ -88895,7 +88895,7 @@ const languages = [
88895
88895
  name: "WebAssembly",
88896
88896
  extensions: ["wat", "wast"],
88897
88897
  load() {
88898
- return import('./index-C5yt-flE.js').then(m => m.wast());
88898
+ return import('./index-DlbKtmKk.js').then(m => m.wast());
88899
88899
  }
88900
88900
  }),
88901
88901
  /*@__PURE__*/LanguageDescription.of({
@@ -88903,7 +88903,7 @@ const languages = [
88903
88903
  alias: ["rss", "wsdl", "xsd"],
88904
88904
  extensions: ["xml", "xsl", "xsd", "svg"],
88905
88905
  load() {
88906
- return import('./index-DLW4CyCW.js').then(m => m.xml());
88906
+ return import('./index-DM-9EFgN.js').then(m => m.xml());
88907
88907
  }
88908
88908
  }),
88909
88909
  /*@__PURE__*/LanguageDescription.of({
@@ -88911,7 +88911,7 @@ const languages = [
88911
88911
  alias: ["yml"],
88912
88912
  extensions: ["yaml", "yml"],
88913
88913
  load() {
88914
- return import('./index-DLZ3xvY3.js').then(m => m.yaml());
88914
+ return import('./index-5P3yK0Y5.js').then(m => m.yaml());
88915
88915
  }
88916
88916
  }),
88917
88917
  // Legacy modes ported from CodeMirror 5
@@ -89700,13 +89700,13 @@ const languages = [
89700
89700
  name: "Vue",
89701
89701
  extensions: ["vue"],
89702
89702
  load() {
89703
- return import('./index-BoqJy5eD.js').then(m => m.vue());
89703
+ return import('./index-F7xi9wdl.js').then(m => m.vue());
89704
89704
  }
89705
89705
  }),
89706
89706
  /*@__PURE__*/LanguageDescription.of({
89707
89707
  name: "Angular Template",
89708
89708
  load() {
89709
- return import('./index-CjcnWHBX.js').then(m => m.angular());
89709
+ return import('./index-C1xWJh2E.js').then(m => m.angular());
89710
89710
  }
89711
89711
  })
89712
89712
  ];
@@ -174760,7 +174760,7 @@ function createRenderDelaySampler() {
174760
174760
  };
174761
174761
  }
174762
174762
 
174763
- const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-1RjTt6HK.js'));
174763
+ const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-CxuRylDm.js'));
174764
174764
  const ImagePanelBody = ({
174765
174765
  topic,
174766
174766
  frameRenderedEvent,
@@ -174855,7 +174855,7 @@ const DEFAULT_CAMERA_STATE = {
174855
174855
  // License, v2.0. If a copy of the MPL was not distributed with this
174856
174856
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
174857
174857
 
174858
- const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-BF6pGj6y.js'));
174858
+ const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-u97AsRd9.js'));
174859
174859
  const PointCloudPanelBody = ({
174860
174860
  topic,
174861
174861
  frameRenderedEvent,
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { Y as ExternalTokenizer, a6 as ContextTracker, U as styleTags, V as tags, Z as LRParser, a1 as syntaxTree, $ as ifNotIn, W as LRLanguage, Q as indentNodeProp, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport, a8 as IterMode, a0 as completeFromList, a9 as NodeWeakMap, a7 as snippetCompletion } from './index-Bi4nJb4U.js';
2
+ import { Y as ExternalTokenizer, a6 as ContextTracker, U as styleTags, V as tags, Z as LRParser, a1 as syntaxTree, $ as ifNotIn, W as LRLanguage, Q as indentNodeProp, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport, a8 as IterMode, a0 as completeFromList, a9 as NodeWeakMap, a7 as snippetCompletion } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { a6 as ContextTracker, Y as ExternalTokenizer, U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, T as foldNodeProp, af as bracketMatchingHandle, X as LanguageSupport, aa as EditorView, a1 as syntaxTree, ab as EditorSelection } from './index-Bi4nJb4U.js';
2
+ import { a6 as ContextTracker, Y as ExternalTokenizer, U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, T as foldNodeProp, af as bracketMatchingHandle, X as LanguageSupport, aa as EditorView, a1 as syntaxTree, ab as EditorSelection } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { Y as ExternalTokenizer, a6 as ContextTracker, U as styleTags, V as tags, Z as LRParser, a2 as LocalTokenGroup, a7 as snippetCompletion, a1 as syntaxTree, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, a3 as flatIndent, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport, $ as ifNotIn, a0 as completeFromList, a8 as IterMode, a9 as NodeWeakMap } from './index-Bi4nJb4U.js';
2
+ import { Y as ExternalTokenizer, a6 as ContextTracker, U as styleTags, V as tags, Z as LRParser, a2 as LocalTokenGroup, a7 as snippetCompletion, a1 as syntaxTree, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, a3 as flatIndent, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport, $ as ifNotIn, a0 as completeFromList, a8 as IterMode, a9 as NodeWeakMap } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { Y as ExternalTokenizer, a6 as ContextTracker, U as styleTags, V as tags, Z as LRParser, W as LRLanguage, T as foldNodeProp, a5 as foldInside, Q as indentNodeProp, R as continuedIndent, ae as defineCSSCompletionSource, X as LanguageSupport } from './index-Bi4nJb4U.js';
2
+ import { Y as ExternalTokenizer, a6 as ContextTracker, U as styleTags, V as tags, Z as LRParser, W as LRLanguage, T as foldNodeProp, a5 as foldInside, Q as indentNodeProp, R as continuedIndent, ae as defineCSSCompletionSource, X as LanguageSupport } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { W as LRLanguage, Q as indentNodeProp, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, U as styleTags, V as tags, X as LanguageSupport, Z as LRParser } from './index-Bi4nJb4U.js';
2
+ import { W as LRLanguage, Q as indentNodeProp, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, U as styleTags, V as tags, X as LanguageSupport, Z as LRParser } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { U as styleTags, V as tags, W as LRLanguage, X as LanguageSupport, Z as LRParser, a2 as LocalTokenGroup, ac as html, ad as parseMixed, ag as javascriptLanguage } from './index-Bi4nJb4U.js';
2
+ import { U as styleTags, V as tags, W as LRLanguage, X as LanguageSupport, Z as LRParser, a2 as LocalTokenGroup, ac as html, ad as parseMixed, ag as javascriptLanguage } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { Q as indentNodeProp, R as continuedIndent, T as foldNodeProp, U as styleTags, V as tags, W as LRLanguage, X as LanguageSupport, Y as ExternalTokenizer, Z as LRParser, $ as ifNotIn, a0 as completeFromList, a1 as syntaxTree } from './index-Bi4nJb4U.js';
2
+ import { Q as indentNodeProp, R as continuedIndent, T as foldNodeProp, U as styleTags, V as tags, W as LRLanguage, X as LanguageSupport, Y as ExternalTokenizer, Z as LRParser, $ as ifNotIn, a0 as completeFromList, a1 as syntaxTree } from './index-D3o7BG11.js';
3
3
  import './protobuf-Be0G3NFz.js';
4
4
  import './logger-Bqy1nuLj.js';
5
5
  import './depth-DlC6A3Te.js';
@@ -4,7 +4,7 @@ import React__default, { useReducer, useRef, useCallback, useLayoutEffect, Compo
4
4
  import { createRoot } from 'react-dom/client';
5
5
  import { a0 as isSymbol, a1 as toString, a2 as keys, a3 as getSymbols$1, a4 as stubArray, a5 as arrayPush, a6 as baseGetAllKeys, h as getTag, a7 as getAllKeys, l as baseGet, f as baseIteratee, k as castPath, t as toKey, a8 as arrayMap$1, a9 as useCurrentLayoutActions, aa as useCurrentLayoutSelector, r as reportError, A as AppError, ab as usePanelMosaicId, ac as noop$4, L as Logger, ad as useSelectedPanels, p as getPanelTypeFromId, N as useShallowMemo, T as TAB_PANEL_TYPE, K as filterMap, d as dist$2, ae as useAppConfiguration, af as useJsonTreeTheme } from './depth-DlC6A3Te.js';
6
6
  import { createStore, useStore } from 'zustand';
7
- import { g as generateUtilityClass, c as createAggregator, f as flatRest, b as baseSet, A as AnalyticsContext, m as murmur2, P as PropTypes, _ as _objectWithoutPropertiesLoose$1, E as ErrorDisplay, S as Stack$1, a as makeStyles$1, u as useTranslation, d as usePanelCatalog, e as EmptyState, i as isEmpty, h as PanelContext, j as PanelCatalogContext, k as usePanelStateStore, l as difference, n as usePanelContext, o as useMessagePipeline, v as v4, p as useDefaultPanelTitle, q as useHoverValue, r as useSetHoverValue, s as useClearHoverValue, t as useMessagePipelineGetter, w as usePanelSettingsTreeUpdate, x as PlayerCapabilities, y as assertNever, z as PlayerPresence, B as isEqual, C as AppEvent, D as isDesktopApp, F as createTheme, G as propTypesExports, H as DEFAULT_CAMERA_STATE$1, I as format$1, J as stringType, K as serializeError, L as stringify$1, M as createIntl, N as createIntlCache, O as useAnalytics } from './index-Bi4nJb4U.js';
7
+ import { g as generateUtilityClass, c as createAggregator, f as flatRest, b as baseSet, A as AnalyticsContext, m as murmur2, P as PropTypes, _ as _objectWithoutPropertiesLoose$1, E as ErrorDisplay, S as Stack$1, a as makeStyles$1, u as useTranslation, d as usePanelCatalog, e as EmptyState, i as isEmpty, h as PanelContext, j as PanelCatalogContext, k as usePanelStateStore, l as difference, n as usePanelContext, o as useMessagePipeline, v as v4, p as useDefaultPanelTitle, q as useHoverValue, r as useSetHoverValue, s as useClearHoverValue, t as useMessagePipelineGetter, w as usePanelSettingsTreeUpdate, x as PlayerCapabilities, y as assertNever, z as PlayerPresence, B as isEqual, C as AppEvent, D as isDesktopApp, F as createTheme, G as propTypesExports, H as DEFAULT_CAMERA_STATE$1, I as format$1, J as stringType, K as serializeError, L as stringify$1, M as createIntl, N as createIntlCache, O as useAnalytics } from './index-D3o7BG11.js';
8
8
  import { _ as _classPrivateFieldLooseBase, a as _classPrivateFieldLooseKey, d as _objectWithoutProperties, e as _extends$1, f as commonjsGlobal, g as getDefaultExportFromCjs, b as _objectSpread2, i as getAugmentedNamespace, j as _asyncIterator } from './protobuf-Be0G3NFz.js';
9
9
  import { MosaicDragType, MosaicContext, MosaicWindowContext, getOtherBranch, getNodeAtPath } from 'react-mosaic-component';
10
10
  import { Link, Button, alpha, IconButton, Card, CardActionArea, CardMedia, CardContent, Typography, Container, Tooltip, Fade, ListItem, ListItemButton, ListItemText, List, TextField, InputAdornment, Popper, Grow, Paper, ClickAwayListener, Menu, MenuItem, Divider, buttonClasses, Backdrop, Chip, useTheme, inputBaseClasses, autocompleteClasses, inputClasses, Checkbox, dialogActionsClasses, filledInputClasses, inputAdornmentClasses, listSubheaderClasses, selectClasses, tableCellClasses, ThemeProvider as ThemeProvider$1, tabsClasses as tabsClasses$1, tabClasses, Tabs, Tab, ListItemIcon } from '@mui/material';
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- export { ar as FrameStore, ak as ImagePanel, aj as PanelLayout, al as PointCloudPanel, ah as VisualizerConnection, ai as VisualizerContext, am as constructKeyForTopicRenderMetrics, as as getIMUEventEmitter, ao as globalDecodeMetricsManager, an as globalInputEventMetricsManager, ap as globalRenderMetricsManager, aq as globalThroughputMetricsManager } from './index-Bi4nJb4U.js';
2
+ export { ar as FrameStore, ak as ImagePanel, aj as PanelLayout, al as PointCloudPanel, ah as VisualizerConnection, ai as VisualizerContext, am as constructKeyForTopicRenderMetrics, as as getIMUEventEmitter, ao as globalDecodeMetricsManager, an as globalInputEventMetricsManager, ap as globalRenderMetricsManager, aq as globalThroughputMetricsManager } from './index-D3o7BG11.js';
3
3
  export { S as getDistanceFromDepthDataForOffset } from './depth-DlC6A3Te.js';
4
4
  import './protobuf-Be0G3NFz.js';
5
5
  import './logger-Bqy1nuLj.js';
@@ -6,7 +6,14 @@ export type TopicDecoders = Map<string, {
6
6
  decoder: VideoDecoder;
7
7
  timing: Map<number, Timestamp>;
8
8
  transformations: Map<number, ImgTransformation | undefined>;
9
+ pendingFrame?: PendingFrame;
9
10
  }>;
11
+ type PendingFrame = {
12
+ data: Uint8Array;
13
+ timestamp: number;
14
+ receiveTime: Timestamp;
15
+ transformation: ImgTransformation | undefined;
16
+ };
10
17
  type DeserializeEncodedFrameH264Args = {
11
18
  topic: string;
12
19
  message: EncodedFrame | ImgFrame;
@@ -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,iBAAiB,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAQrF,MAAM,MAAM,aAAa,GAAG,GAAG,CAC7B,MAAM,EACN;IACE,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAAC,CAAC;CAC7D,CACF,CAAC;AAyUF,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;IACxC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,wBAAsB,2BAA2B,CAAC,EAChD,KAAK,EACL,OAAO,EACP,aAAa,EACb,QAAQ,EACR,OAAO,GACR,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAuGjD"}
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,iBAAiB,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAQrF,MAAM,MAAM,aAAa,GAAG,GAAG,CAC7B,MAAM,EACN;IACE,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAAC,CAAC;IAC5D,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CACF,CAAC;AAWF,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,cAAc,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC/C,CAAC;AAqYF,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;IACxC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,wBAAsB,2BAA2B,CAAC,EAChD,KAAK,EACL,OAAO,EACP,aAAa,EACb,QAAQ,EACR,OAAO,GACR,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CA2EjD"}
@@ -35,14 +35,56 @@ function closeDecoder(decoder) {
35
35
  }
36
36
  function closeTopicDecoder(topic, topicDecoders) {
37
37
  const decoderInfo = topicDecoders.get(topic);
38
+ topicDecoders.delete(topic);
38
39
  closeDecoder(decoderInfo?.decoder);
39
40
  decoderInfo?.timing.clear();
40
41
  decoderInfo?.transformations.clear();
42
+ if (decoderInfo) {
43
+ decoderInfo.pendingFrame = undefined;
44
+ }
41
45
  }
42
46
  function isIgnorableInitialDecodeError(error) {
43
47
  const message = error instanceof Error ? error.message : String(error);
44
48
  return message.includes("A key frame is required after configure() or flush()");
45
49
  }
50
+ function decodePendingFrame(topic, topicDecoders, onError) {
51
+ const decoderInfo = topicDecoders.get(topic);
52
+ if (!decoderInfo) {
53
+ return;
54
+ }
55
+ const decoder = decoderInfo.decoder;
56
+ if (decoder.state === "closed" || decoder.decodeQueueSize > 0) {
57
+ return;
58
+ }
59
+ const pendingFrame = decoderInfo.pendingFrame;
60
+ if (!pendingFrame) {
61
+ return;
62
+ }
63
+ decoderInfo.pendingFrame = undefined;
64
+ decoderInfo.timing.set(pendingFrame.timestamp, pendingFrame.receiveTime);
65
+ decoderInfo.transformations.set(pendingFrame.timestamp, pendingFrame.transformation);
66
+ try {
67
+ ensureDecoderConfigured(decoder);
68
+ if (decoder.state !== "configured" || topicDecoders.get(topic)?.decoder !== decoder) {
69
+ closeTopicDecoder(topic, topicDecoders);
70
+ return;
71
+ }
72
+ const chunk = new EncodedVideoChunk({
73
+ type: "key",
74
+ data: pendingFrame.data,
75
+ timestamp: pendingFrame.timestamp,
76
+ });
77
+ decoder.decode(chunk);
78
+ }
79
+ catch (error) {
80
+ if (isIgnorableInitialDecodeError(error)) {
81
+ closeTopicDecoder(topic, topicDecoders);
82
+ return;
83
+ }
84
+ closeTopicDecoder(topic, topicDecoders);
85
+ onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to decode H.264 frame."));
86
+ }
87
+ }
46
88
  function packedToI420(packed, width, height, stride, format, cropLeft = 0, cropTop = 0) {
47
89
  if ((width & 1) !== 0 || (height & 1) !== 0) {
48
90
  throw new Error("I420 requires even width and height.");
@@ -149,8 +191,13 @@ function repackI420(source, width, height, yLayout, uLayout, vLayout, cropLeft =
149
191
  }
150
192
  function createVideoDecoder({ topic, callback, topicDecoders, onError, }) {
151
193
  let hasProducedFrame = false;
152
- return new VideoDecoder({
194
+ let decoder;
195
+ decoder = new VideoDecoder({
153
196
  output: async (frame) => {
197
+ if (topicDecoders.get(topic)?.decoder !== decoder) {
198
+ frame.close();
199
+ return;
200
+ }
154
201
  hasProducedFrame = true;
155
202
  const visibleRect = frame.visibleRect;
156
203
  const frameWidth = visibleRect?.width ?? frame.codedWidth;
@@ -202,6 +249,7 @@ function createVideoDecoder({ topic, callback, topicDecoders, onError, }) {
202
249
  const receiveTime = topicDecoders.get(topic)?.timing.get(frame.timestamp)
203
250
  ??
204
251
  fromMicros(frame.timestamp);
252
+ topicDecoders.get(topic)?.timing.delete(frame.timestamp);
205
253
  const transformation = topicDecoders.get(topic)?.transformations.get(frame.timestamp);
206
254
  topicDecoders.get(topic)?.transformations.delete(frame.timestamp);
207
255
  const foxgloveMessage = {
@@ -222,8 +270,14 @@ function createVideoDecoder({ topic, callback, topicDecoders, onError, }) {
222
270
  depthaiTransformation: transformation,
223
271
  });
224
272
  frame.close();
273
+ if (topicDecoders.get(topic)?.decoder === decoder) {
274
+ decodePendingFrame(topic, topicDecoders, onError);
275
+ }
225
276
  },
226
277
  error: (error) => {
278
+ if (topicDecoders.get(topic)?.decoder !== decoder) {
279
+ return;
280
+ }
227
281
  if (!hasProducedFrame && isIgnorableInitialDecodeError(error)) {
228
282
  logger.warn(`Ignoring initial H264 decoder error for topic ${topic}: ${error.message}`);
229
283
  closeTopicDecoder(topic, topicDecoders);
@@ -234,6 +288,7 @@ function createVideoDecoder({ topic, callback, topicDecoders, onError, }) {
234
288
  onError(new DecoderRuntimeError(topic, error.message));
235
289
  },
236
290
  });
291
+ return decoder;
237
292
  }
238
293
  export async function deserializeEncodedFrameH264({ topic, message, topicDecoders, callback, onError, }) {
239
294
  const { receiveTime } = parseMessage(message);
@@ -256,12 +311,14 @@ export async function deserializeEncodedFrameH264({ topic, message, topicDecoder
256
311
  existingDecoderInfo.decoder = decoder;
257
312
  existingDecoderInfo.timing.clear();
258
313
  existingDecoderInfo.transformations.clear();
314
+ existingDecoderInfo.pendingFrame = undefined;
259
315
  }
260
316
  else {
261
317
  topicDecoders.set(topic, {
262
318
  decoder,
263
319
  timing: new Map(),
264
320
  transformations: new Map(),
321
+ pendingFrame: undefined,
265
322
  });
266
323
  }
267
324
  }
@@ -270,6 +327,7 @@ export async function deserializeEncodedFrameH264({ topic, message, topicDecoder
270
327
  ensureDecoderConfigured(existingDecoderInfo.decoder);
271
328
  existingDecoderInfo.timing.clear();
272
329
  existingDecoderInfo.transformations.clear();
330
+ existingDecoderInfo.pendingFrame = undefined;
273
331
  }
274
332
  catch (error) {
275
333
  closeTopicDecoder(topic, topicDecoders);
@@ -281,39 +339,18 @@ export async function deserializeEncodedFrameH264({ topic, message, topicDecoder
281
339
  if (!decoderInfo) {
282
340
  return;
283
341
  }
284
- if (decoderInfo.decoder.decodeQueueSize > 60) {
285
- decoderInfo.decoder.reset();
286
- try {
287
- ensureDecoderConfigured(decoderInfo.decoder);
288
- }
289
- catch (error) {
290
- closeTopicDecoder(topic, topicDecoders);
291
- onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to reconfigure H.264 decoder after reset."));
292
- }
293
- decoderInfo.timing.clear();
294
- decoderInfo.transformations.clear();
295
- return;
296
- }
297
342
  const microTimestamp = receiveTime.sec * 1_000_000 + Math.floor(receiveTime.nsec / 1_000);
298
- decoderInfo.timing.set(microTimestamp, receiveTime);
299
- decoderInfo.transformations.set(microTimestamp, message.transformation);
300
343
  const frame = {
301
- type: 'key',
302
344
  data: message.data,
303
- timestamp: microTimestamp
345
+ timestamp: microTimestamp,
346
+ receiveTime,
347
+ transformation: message.transformation,
304
348
  };
305
- try {
306
- ensureDecoderConfigured(decoderInfo.decoder);
307
- const chunk = new EncodedVideoChunk(frame);
308
- decoderInfo.decoder.decode(chunk);
309
- }
310
- catch (error) {
311
- if (isIgnorableInitialDecodeError(error)) {
312
- closeTopicDecoder(topic, topicDecoders);
313
- return;
314
- }
315
- closeTopicDecoder(topic, topicDecoders);
316
- onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to decode H.264 frame."));
349
+ if (decoderInfo.decoder.decodeQueueSize > 0) {
350
+ decoderInfo.pendingFrame = frame;
351
+ return;
317
352
  }
353
+ decoderInfo.pendingFrame = frame;
354
+ decodePendingFrame(topic, topicDecoders, onError);
318
355
  }
319
356
  //# sourceMappingURL=h264.js.map
@@ -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":"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"}
@@ -6,7 +6,14 @@ export type TopicDecoders = Map<string, {
6
6
  decoder: VideoDecoder;
7
7
  timing: Map<number, Timestamp>;
8
8
  transformations: Map<number, ImgTransformation | undefined>;
9
+ pendingFrame?: PendingFrame;
9
10
  }>;
11
+ type PendingFrame = {
12
+ data: Uint8Array;
13
+ timestamp: number;
14
+ receiveTime: Timestamp;
15
+ transformation: ImgTransformation | undefined;
16
+ };
10
17
  type DeserializeEncodedFrameH265Args = {
11
18
  topic: string;
12
19
  message: EncodedFrame | ImgFrame;
@@ -1 +1 @@
1
- {"version":3,"file":"h265.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/h265.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,iBAAiB,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AA4CrF,MAAM,MAAM,aAAa,GAAG,GAAG,CAC7B,MAAM,EACN;IACE,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAAC,CAAC;CAC7D,CACF,CAAC;AA2DF,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;IACxC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,wBAAsB,2BAA2B,CAAC,EAChD,KAAK,EACL,OAAO,EACP,aAAa,EACb,QAAQ,EACR,OAAO,GACR,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAmGjD"}
1
+ {"version":3,"file":"h265.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/video/h265.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,iBAAiB,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAgDrF,MAAM,MAAM,aAAa,GAAG,GAAG,CAC7B,MAAM,EACN;IACE,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAAC,CAAC;IAC5D,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CACF,CAAC;AASF,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,cAAc,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC/C,CAAC;AAmHF,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;IACxC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,wBAAsB,2BAA2B,CAAC,EAChD,KAAK,EACL,OAAO,EACP,aAAa,EACb,QAAQ,EACR,OAAO,GACR,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CA2EjD"}
@@ -35,18 +35,62 @@ function closeDecoder(decoder) {
35
35
  }
36
36
  function closeTopicDecoder(topic, topicDecoders) {
37
37
  const decoderInfo = topicDecoders.get(topic);
38
+ topicDecoders.delete(topic);
38
39
  closeDecoder(decoderInfo?.decoder);
39
40
  decoderInfo?.timing.clear();
40
41
  decoderInfo?.transformations.clear();
42
+ if (decoderInfo) {
43
+ decoderInfo.pendingFrame = undefined;
44
+ }
45
+ }
46
+ function decodePendingFrame(topic, topicDecoders, onError) {
47
+ const decoderInfo = topicDecoders.get(topic);
48
+ if (!decoderInfo) {
49
+ return;
50
+ }
51
+ const decoder = decoderInfo.decoder;
52
+ if (decoder.state === "closed" || decoder.decodeQueueSize > 0) {
53
+ return;
54
+ }
55
+ const pendingFrame = decoderInfo.pendingFrame;
56
+ if (!pendingFrame) {
57
+ return;
58
+ }
59
+ decoderInfo.pendingFrame = undefined;
60
+ decoderInfo.timing.set(pendingFrame.timestamp, pendingFrame.receiveTime);
61
+ decoderInfo.transformations.set(pendingFrame.timestamp, pendingFrame.transformation);
62
+ try {
63
+ ensureDecoderConfigured(decoder);
64
+ if (decoder.state !== "configured" || topicDecoders.get(topic)?.decoder !== decoder) {
65
+ closeTopicDecoder(topic, topicDecoders);
66
+ return;
67
+ }
68
+ const chunk = new EncodedVideoChunk({
69
+ type: "key",
70
+ data: pendingFrame.data,
71
+ timestamp: pendingFrame.timestamp,
72
+ });
73
+ decoder.decode(chunk);
74
+ }
75
+ catch (error) {
76
+ closeTopicDecoder(topic, topicDecoders);
77
+ onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to decode H.265 frame."));
78
+ }
41
79
  }
42
80
  function createVideoDecoder({ topic, callback, topicDecoders, onError, }) {
43
- return new VideoDecoder({
81
+ let decoder;
82
+ decoder = new VideoDecoder({
44
83
  output: async (frame) => {
84
+ if (topicDecoders.get(topic)?.decoder !== decoder) {
85
+ frame.close();
86
+ return;
87
+ }
45
88
  const buffer = new Uint8Array(frame.allocationSize());
46
89
  await frame.copyTo(buffer);
47
90
  const receiveTime = topicDecoders.get(topic)?.timing.get(frame.timestamp)
48
91
  ??
49
92
  fromMicros(frame.timestamp);
93
+ topicDecoders.get(topic)?.timing.delete(frame.timestamp);
50
94
  const transformation = topicDecoders.get(topic)?.transformations.get(frame.timestamp);
51
95
  topicDecoders.get(topic)?.transformations.delete(frame.timestamp);
52
96
  const [encoding, step] = parsePixelFormat(frame.format);
@@ -68,13 +112,20 @@ function createVideoDecoder({ topic, callback, topicDecoders, onError, }) {
68
112
  depthaiTransformation: transformation,
69
113
  });
70
114
  frame.close();
115
+ if (topicDecoders.get(topic)?.decoder === decoder) {
116
+ decodePendingFrame(topic, topicDecoders, onError);
117
+ }
71
118
  },
72
119
  error: (error) => {
120
+ if (topicDecoders.get(topic)?.decoder !== decoder) {
121
+ return;
122
+ }
73
123
  logger.error(error);
74
124
  closeTopicDecoder(topic, topicDecoders);
75
125
  onError(new DecoderRuntimeError(topic, error.message));
76
126
  },
77
127
  });
128
+ return decoder;
78
129
  }
79
130
  export async function deserializeEncodedFrameH265({ topic, message, topicDecoders, callback, onError, }) {
80
131
  const { receiveTime } = parseMessage(message);
@@ -97,12 +148,14 @@ export async function deserializeEncodedFrameH265({ topic, message, topicDecoder
97
148
  existingDecoderInfo.decoder = decoder;
98
149
  existingDecoderInfo.timing.clear();
99
150
  existingDecoderInfo.transformations.clear();
151
+ existingDecoderInfo.pendingFrame = undefined;
100
152
  }
101
153
  else {
102
154
  topicDecoders.set(topic, {
103
155
  decoder,
104
156
  timing: new Map(),
105
157
  transformations: new Map(),
158
+ pendingFrame: undefined,
106
159
  });
107
160
  }
108
161
  }
@@ -111,6 +164,7 @@ export async function deserializeEncodedFrameH265({ topic, message, topicDecoder
111
164
  ensureDecoderConfigured(existingDecoderInfo.decoder);
112
165
  existingDecoderInfo.timing.clear();
113
166
  existingDecoderInfo.transformations.clear();
167
+ existingDecoderInfo.pendingFrame = undefined;
114
168
  }
115
169
  catch (error) {
116
170
  closeTopicDecoder(topic, topicDecoders);
@@ -122,35 +176,18 @@ export async function deserializeEncodedFrameH265({ topic, message, topicDecoder
122
176
  if (!decoderInfo) {
123
177
  return;
124
178
  }
125
- if (decoderInfo.decoder.decodeQueueSize > 60) {
126
- decoderInfo.decoder.reset();
127
- try {
128
- ensureDecoderConfigured(decoderInfo.decoder);
129
- }
130
- catch (error) {
131
- closeTopicDecoder(topic, topicDecoders);
132
- onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to reconfigure H.265 decoder after reset."));
133
- }
134
- decoderInfo.timing.clear();
135
- decoderInfo.transformations.clear();
136
- return;
137
- }
138
179
  const microTimestamp = receiveTime.sec * 1_000_000 + Math.floor(receiveTime.nsec / 1_000);
139
- decoderInfo.timing.set(microTimestamp, receiveTime);
140
- decoderInfo.transformations.set(microTimestamp, message.transformation);
141
180
  const frame = {
142
- type: 'key',
143
181
  data: message.data,
144
- timestamp: microTimestamp
182
+ timestamp: microTimestamp,
183
+ receiveTime,
184
+ transformation: message.transformation,
145
185
  };
146
- try {
147
- ensureDecoderConfigured(decoderInfo.decoder);
148
- const chunk = new EncodedVideoChunk(frame);
149
- decoderInfo.decoder.decode(chunk);
150
- }
151
- catch (error) {
152
- closeTopicDecoder(topic, topicDecoders);
153
- onError(new DecoderRuntimeError(topic, error instanceof Error ? error.message : "Failed to decode H.265 frame."));
186
+ if (decoderInfo.decoder.decodeQueueSize > 0) {
187
+ decoderInfo.pendingFrame = frame;
188
+ return;
154
189
  }
190
+ decoderInfo.pendingFrame = frame;
191
+ decodePendingFrame(topic, topicDecoders, onError);
155
192
  }
156
193
  //# 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luxonis/visualizer-protobuf",
3
- "version": "3.1.6",
3
+ "version": "3.1.8",
4
4
  "type": "module",
5
5
  "description": "RobotHub Visualizer Library",
6
6
  "author": "Luxonis Corp",