@blockcast/mmt-container 2.2.0-main.c4fa878f4ff4 → 2.2.0-main.da2e7cd1dd5d
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 +241 -149
- 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 +24 -15
- package/dist/delivery-catalog.js.map +2 -2
- package/dist/delta-fallback-config.js.map +1 -1
- package/dist/fec-manager.d.ts +3 -1
- package/dist/fec-manager.d.ts.map +1 -1
- package/dist/fec-manager.js +26 -4
- 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 +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +2 -2
- package/dist/media-router.js.map +1 -1
- package/dist/mmtp-container-parser.d.ts +2 -0
- package/dist/mmtp-container-parser.d.ts.map +1 -1
- package/dist/mmtp-container-parser.js +4 -0
- package/dist/mmtp-container-parser.js.map +2 -2
- package/dist/mmtp-container-parser.no-modules.js +4 -0
- package/dist/mmtp-container-parser.no-modules.js.map +2 -2
- package/dist/mmtp-decode-pipeline.js +4 -0
- package/dist/mmtp-decode-pipeline.js.map +2 -2
- package/dist/mmtp-router.d.ts.map +1 -1
- package/dist/mmtp-router.js +38 -15
- package/dist/mmtp-router.js.map +2 -2
- package/dist/multicast-manager.js +64 -19
- package/dist/multicast-manager.js.map +2 -2
- package/dist/multicast-transport.js +24 -15
- package/dist/multicast-transport.js.map +2 -2
- package/dist/no-modules.js +4 -0
- package/dist/no-modules.js.map +2 -2
- 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.js.map +1 -1
- package/dist/wasm-mmtp-container-parser.js +4 -0
- package/dist/wasm-mmtp-container-parser.js.map +2 -2
- package/package.json +8 -5
- package/schemas/catalog.schema.json +4 -0
- package/src/catalog-fec-params.ts +36 -1
- package/src/cmcd-producer.ts +189 -179
- package/src/fec-manager.ts +26 -4
- package/src/fec-worker-setup.ts +2 -2
- package/src/index.ts +6 -2
- package/src/mmtp-container-parser.ts +12 -0
- package/src/mmtp-router.ts +21 -0
- package/src/repair-layer-subscriptions.ts +13 -5
- package/src/track-session.ts +1 -1
package/dist/delivery-catalog.js
CHANGED
|
@@ -1271,11 +1271,11 @@ var MOQT_PUBLISHER_PRIORITY = Object.freeze({
|
|
|
1271
1271
|
var AMTGatewayManager = class {
|
|
1272
1272
|
subscriptions = /* @__PURE__ */ new Map();
|
|
1273
1273
|
messageHandler;
|
|
1274
|
+
messageListenerRegistered = false;
|
|
1274
1275
|
pendingPackets = /* @__PURE__ */ new Map();
|
|
1275
1276
|
constructor() {
|
|
1276
1277
|
this.messageHandler = (event) => {
|
|
1277
1278
|
const data = event.data;
|
|
1278
|
-
console.log(`[AMT] SW message received:`, data.type);
|
|
1279
1279
|
if (data.type === "UDP_PACKET") {
|
|
1280
1280
|
this.handlePacket(data);
|
|
1281
1281
|
} else if (data.type === "SOCKET_ERROR") {
|
|
@@ -1284,12 +1284,22 @@ var AMTGatewayManager = class {
|
|
|
1284
1284
|
console.log(`[AMT SW Debug] ${data.message}`);
|
|
1285
1285
|
}
|
|
1286
1286
|
};
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1287
|
+
}
|
|
1288
|
+
ensureMessageListener() {
|
|
1289
|
+
if (this.messageListenerRegistered || typeof navigator === "undefined" || !navigator.serviceWorker || !this.messageHandler) {
|
|
1290
|
+
return;
|
|
1291
|
+
}
|
|
1292
|
+
navigator.serviceWorker.addEventListener("message", this.messageHandler);
|
|
1293
|
+
this.messageListenerRegistered = true;
|
|
1294
|
+
console.log("[AMT] Registered service worker message handler");
|
|
1295
|
+
}
|
|
1296
|
+
removeMessageListener() {
|
|
1297
|
+
if (!this.messageListenerRegistered)
|
|
1298
|
+
return;
|
|
1299
|
+
if (this.messageHandler && typeof navigator !== "undefined" && navigator.serviceWorker) {
|
|
1300
|
+
navigator.serviceWorker.removeEventListener("message", this.messageHandler);
|
|
1292
1301
|
}
|
|
1302
|
+
this.messageListenerRegistered = false;
|
|
1293
1303
|
}
|
|
1294
1304
|
/**
|
|
1295
1305
|
* Subscribe via AMT tunnel
|
|
@@ -1299,6 +1309,7 @@ var AMTGatewayManager = class {
|
|
|
1299
1309
|
if (config.protected) {
|
|
1300
1310
|
throw new Error("AMTGatewayManager refuses a protected join: it reports no per-datagram sender (multicast-02 7.2.7)");
|
|
1301
1311
|
}
|
|
1312
|
+
this.ensureMessageListener();
|
|
1302
1313
|
const keyStr = this.getKeyString(key);
|
|
1303
1314
|
if (this.subscriptions.has(keyStr)) {
|
|
1304
1315
|
console.log(`[AMT] Reusing existing subscription to ${keyStr}`);
|
|
@@ -1334,6 +1345,8 @@ var AMTGatewayManager = class {
|
|
|
1334
1345
|
this.subscriptions.delete(keyStr);
|
|
1335
1346
|
this.pendingPackets.delete(subscription.subscriptionId);
|
|
1336
1347
|
}
|
|
1348
|
+
if (this.subscriptions.size === 0)
|
|
1349
|
+
this.removeMessageListener();
|
|
1337
1350
|
throw new Error(`Failed to subscribe via AMT: ${error instanceof Error ? error.message : String(error)}`);
|
|
1338
1351
|
}
|
|
1339
1352
|
}
|
|
@@ -1355,6 +1368,8 @@ var AMTGatewayManager = class {
|
|
|
1355
1368
|
} finally {
|
|
1356
1369
|
this.subscriptions.delete(handle);
|
|
1357
1370
|
this.pendingPackets.delete(subscription.subscriptionId);
|
|
1371
|
+
if (this.subscriptions.size === 0)
|
|
1372
|
+
this.removeMessageListener();
|
|
1358
1373
|
}
|
|
1359
1374
|
}
|
|
1360
1375
|
/**
|
|
@@ -1371,10 +1386,8 @@ var AMTGatewayManager = class {
|
|
|
1371
1386
|
if (!subscriptionId)
|
|
1372
1387
|
return;
|
|
1373
1388
|
const subscription = this.subscriptions.get(subscriptionId);
|
|
1374
|
-
if (!subscription)
|
|
1375
|
-
console.warn(`[AMT] Received packet for unknown subscription: ${subscriptionId}`);
|
|
1389
|
+
if (!subscription)
|
|
1376
1390
|
return;
|
|
1377
|
-
}
|
|
1378
1391
|
if (!subscription.handshakeComplete) {
|
|
1379
1392
|
const queue = this.pendingPackets.get(subscriptionId);
|
|
1380
1393
|
const packetData2 = data;
|
|
@@ -1404,19 +1417,15 @@ var AMTGatewayManager = class {
|
|
|
1404
1417
|
if (!subscriptionId)
|
|
1405
1418
|
return;
|
|
1406
1419
|
const subscription = this.subscriptions.get(subscriptionId);
|
|
1407
|
-
if (!subscription)
|
|
1408
|
-
console.warn(`[AMT] Received error for unknown subscription: ${subscriptionId}`);
|
|
1420
|
+
if (!subscription)
|
|
1409
1421
|
return;
|
|
1410
|
-
}
|
|
1411
1422
|
subscription.config.onError(new Error(error || "Unknown error"));
|
|
1412
1423
|
}
|
|
1413
1424
|
/**
|
|
1414
1425
|
* Cleanup on destroy
|
|
1415
1426
|
*/
|
|
1416
1427
|
destroy() {
|
|
1417
|
-
|
|
1418
|
-
navigator.serviceWorker.removeEventListener("message", this.messageHandler);
|
|
1419
|
-
}
|
|
1428
|
+
this.removeMessageListener();
|
|
1420
1429
|
const handles = Array.from(this.subscriptions.keys());
|
|
1421
1430
|
for (const handle of handles) {
|
|
1422
1431
|
this.unsubscribe(handle).catch((err) => {
|