@blockcast/mmt-container 2.2.0-main.efb4fa4521af → 2.2.0-main.fb5c7dfbe2de
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -17
- package/dist/browser-runtime.js +1336 -302
- package/dist/browser-runtime.js.map +3 -3
- package/dist/catalog-fec-params.d.ts +17 -1
- package/dist/catalog-fec-params.d.ts.map +1 -1
- package/dist/catalog-fec-params.js +15 -0
- package/dist/catalog-fec-params.js.map +2 -2
- package/dist/cmcd-producer.d.ts +60 -47
- package/dist/cmcd-producer.d.ts.map +1 -1
- package/dist/cmcd-producer.js +138 -109
- package/dist/cmcd-producer.js.map +2 -2
- package/dist/delivery-catalog.js +26 -16
- package/dist/delivery-catalog.js.map +2 -2
- package/dist/delta-fallback-config.js.map +1 -1
- package/dist/fec-manager.d.ts +70 -12
- package/dist/fec-manager.d.ts.map +1 -1
- package/dist/fec-manager.js +403 -58
- package/dist/fec-manager.js.map +2 -2
- package/dist/fec-worker-setup.d.ts +1 -1
- package/dist/fec-worker-setup.js +1 -1
- package/dist/fec-worker-setup.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +2 -2
- package/dist/iso-block-locator.d.ts +48 -13
- package/dist/iso-block-locator.d.ts.map +1 -1
- package/dist/iso-block-locator.js +97 -25
- package/dist/iso-block-locator.js.map +2 -2
- package/dist/iso-bmff-timing.d.ts +10 -1
- package/dist/iso-bmff-timing.d.ts.map +1 -1
- package/dist/iso-bmff-timing.js +36 -2
- package/dist/iso-bmff-timing.js.map +2 -2
- package/dist/media-router.js.map +1 -1
- package/dist/mmtp-container-parser.d.ts +79 -10
- package/dist/mmtp-container-parser.d.ts.map +1 -1
- package/dist/mmtp-container-parser.js +207 -26
- package/dist/mmtp-container-parser.js.map +2 -2
- package/dist/mmtp-container-parser.no-modules.js +209 -29
- package/dist/mmtp-container-parser.no-modules.js.map +2 -2
- package/dist/mmtp-decode-pipeline.js +206 -26
- package/dist/mmtp-decode-pipeline.js.map +2 -2
- package/dist/mmtp-router.d.ts +34 -8
- package/dist/mmtp-router.d.ts.map +1 -1
- package/dist/mmtp-router.js +555 -79
- package/dist/mmtp-router.js.map +2 -2
- package/dist/multicast-manager.d.ts +13 -3
- package/dist/multicast-manager.d.ts.map +1 -1
- package/dist/multicast-manager.js +980 -146
- package/dist/multicast-manager.js.map +2 -2
- package/dist/multicast-transport.js +28 -18
- package/dist/multicast-transport.js.map +2 -2
- package/dist/no-modules.js +206 -26
- package/dist/no-modules.js.map +2 -2
- package/dist/repair-fetch.d.ts +36 -8
- package/dist/repair-fetch.d.ts.map +1 -1
- package/dist/repair-fetch.js +285 -26
- package/dist/repair-fetch.js.map +3 -3
- package/dist/repair-layer-subscriptions.d.ts +6 -2
- package/dist/repair-layer-subscriptions.d.ts.map +1 -1
- package/dist/repair-layer-subscriptions.js +6 -3
- package/dist/repair-layer-subscriptions.js.map +2 -2
- package/dist/track-session.d.ts +1 -1
- package/dist/track-session.d.ts.map +1 -1
- package/dist/track-session.js +1 -0
- package/dist/track-session.js.map +2 -2
- package/dist/wasm-mmtp-container-parser.js +206 -26
- package/dist/wasm-mmtp-container-parser.js.map +2 -2
- package/package.json +8 -5
- package/src/catalog-fec-params.ts +36 -1
- package/src/cmcd-producer.ts +189 -179
- package/src/fec-manager.ts +433 -32
- package/src/fec-worker-setup.ts +2 -2
- package/src/index.ts +9 -2
- package/src/iso-block-locator.ts +133 -31
- package/src/iso-bmff-timing.ts +40 -1
- package/src/mmtp-container-parser.ts +306 -29
- package/src/mmtp-router.ts +548 -38
- package/src/multicast-manager.ts +44 -6
- package/src/repair-fetch.ts +363 -49
- package/src/repair-layer-subscriptions.ts +13 -5
- package/src/track-session.ts +4 -1
package/dist/delivery-catalog.js
CHANGED
|
@@ -1268,14 +1268,15 @@ var MOQT_PUBLISHER_PRIORITY = Object.freeze({
|
|
|
1268
1268
|
});
|
|
1269
1269
|
|
|
1270
1270
|
// node_modules/@blockcast/mmt-transport/dist/amt-gateway.js
|
|
1271
|
+
var MAX_PENDING_PACKETS = 256;
|
|
1271
1272
|
var AMTGatewayManager = class {
|
|
1272
1273
|
subscriptions = /* @__PURE__ */ new Map();
|
|
1273
1274
|
messageHandler;
|
|
1275
|
+
messageListenerRegistered = false;
|
|
1274
1276
|
pendingPackets = /* @__PURE__ */ new Map();
|
|
1275
1277
|
constructor() {
|
|
1276
1278
|
this.messageHandler = (event) => {
|
|
1277
1279
|
const data = event.data;
|
|
1278
|
-
console.log(`[AMT] SW message received:`, data.type);
|
|
1279
1280
|
if (data.type === "UDP_PACKET") {
|
|
1280
1281
|
this.handlePacket(data);
|
|
1281
1282
|
} else if (data.type === "SOCKET_ERROR") {
|
|
@@ -1284,12 +1285,22 @@ var AMTGatewayManager = class {
|
|
|
1284
1285
|
console.log(`[AMT SW Debug] ${data.message}`);
|
|
1285
1286
|
}
|
|
1286
1287
|
};
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1288
|
+
}
|
|
1289
|
+
ensureMessageListener() {
|
|
1290
|
+
if (this.messageListenerRegistered || typeof navigator === "undefined" || !navigator.serviceWorker || !this.messageHandler) {
|
|
1291
|
+
return;
|
|
1292
|
+
}
|
|
1293
|
+
navigator.serviceWorker.addEventListener("message", this.messageHandler);
|
|
1294
|
+
this.messageListenerRegistered = true;
|
|
1295
|
+
console.log("[AMT] Registered service worker message handler");
|
|
1296
|
+
}
|
|
1297
|
+
removeMessageListener() {
|
|
1298
|
+
if (!this.messageListenerRegistered)
|
|
1299
|
+
return;
|
|
1300
|
+
if (this.messageHandler && typeof navigator !== "undefined" && navigator.serviceWorker) {
|
|
1301
|
+
navigator.serviceWorker.removeEventListener("message", this.messageHandler);
|
|
1292
1302
|
}
|
|
1303
|
+
this.messageListenerRegistered = false;
|
|
1293
1304
|
}
|
|
1294
1305
|
/**
|
|
1295
1306
|
* Subscribe via AMT tunnel
|
|
@@ -1299,6 +1310,7 @@ var AMTGatewayManager = class {
|
|
|
1299
1310
|
if (config.protected) {
|
|
1300
1311
|
throw new Error("AMTGatewayManager refuses a protected join: it reports no per-datagram sender (multicast-02 7.2.7)");
|
|
1301
1312
|
}
|
|
1313
|
+
this.ensureMessageListener();
|
|
1302
1314
|
const keyStr = this.getKeyString(key);
|
|
1303
1315
|
if (this.subscriptions.has(keyStr)) {
|
|
1304
1316
|
console.log(`[AMT] Reusing existing subscription to ${keyStr}`);
|
|
@@ -1334,6 +1346,8 @@ var AMTGatewayManager = class {
|
|
|
1334
1346
|
this.subscriptions.delete(keyStr);
|
|
1335
1347
|
this.pendingPackets.delete(subscription.subscriptionId);
|
|
1336
1348
|
}
|
|
1349
|
+
if (this.subscriptions.size === 0)
|
|
1350
|
+
this.removeMessageListener();
|
|
1337
1351
|
throw new Error(`Failed to subscribe via AMT: ${error instanceof Error ? error.message : String(error)}`);
|
|
1338
1352
|
}
|
|
1339
1353
|
}
|
|
@@ -1355,6 +1369,8 @@ var AMTGatewayManager = class {
|
|
|
1355
1369
|
} finally {
|
|
1356
1370
|
this.subscriptions.delete(handle);
|
|
1357
1371
|
this.pendingPackets.delete(subscription.subscriptionId);
|
|
1372
|
+
if (this.subscriptions.size === 0)
|
|
1373
|
+
this.removeMessageListener();
|
|
1358
1374
|
}
|
|
1359
1375
|
}
|
|
1360
1376
|
/**
|
|
@@ -1371,14 +1387,12 @@ var AMTGatewayManager = class {
|
|
|
1371
1387
|
if (!subscriptionId)
|
|
1372
1388
|
return;
|
|
1373
1389
|
const subscription = this.subscriptions.get(subscriptionId);
|
|
1374
|
-
if (!subscription)
|
|
1375
|
-
console.warn(`[AMT] Received packet for unknown subscription: ${subscriptionId}`);
|
|
1390
|
+
if (!subscription)
|
|
1376
1391
|
return;
|
|
1377
|
-
}
|
|
1378
1392
|
if (!subscription.handshakeComplete) {
|
|
1379
1393
|
const queue = this.pendingPackets.get(subscriptionId);
|
|
1380
1394
|
const packetData2 = data;
|
|
1381
|
-
if (queue) {
|
|
1395
|
+
if (queue && queue.length < MAX_PENDING_PACKETS) {
|
|
1382
1396
|
queue.push({
|
|
1383
1397
|
data: packetData2.data,
|
|
1384
1398
|
remoteAddress: packetData2.remoteAddress,
|
|
@@ -1404,19 +1418,15 @@ var AMTGatewayManager = class {
|
|
|
1404
1418
|
if (!subscriptionId)
|
|
1405
1419
|
return;
|
|
1406
1420
|
const subscription = this.subscriptions.get(subscriptionId);
|
|
1407
|
-
if (!subscription)
|
|
1408
|
-
console.warn(`[AMT] Received error for unknown subscription: ${subscriptionId}`);
|
|
1421
|
+
if (!subscription)
|
|
1409
1422
|
return;
|
|
1410
|
-
}
|
|
1411
1423
|
subscription.config.onError(new Error(error || "Unknown error"));
|
|
1412
1424
|
}
|
|
1413
1425
|
/**
|
|
1414
1426
|
* Cleanup on destroy
|
|
1415
1427
|
*/
|
|
1416
1428
|
destroy() {
|
|
1417
|
-
|
|
1418
|
-
navigator.serviceWorker.removeEventListener("message", this.messageHandler);
|
|
1419
|
-
}
|
|
1429
|
+
this.removeMessageListener();
|
|
1420
1430
|
const handles = Array.from(this.subscriptions.keys());
|
|
1421
1431
|
for (const handle of handles) {
|
|
1422
1432
|
this.unsubscribe(handle).catch((err) => {
|