@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
|
@@ -1459,11 +1459,11 @@ var MOQT_PUBLISHER_PRIORITY = Object.freeze({
|
|
|
1459
1459
|
var AMTGatewayManager = class {
|
|
1460
1460
|
subscriptions = /* @__PURE__ */ new Map();
|
|
1461
1461
|
messageHandler;
|
|
1462
|
+
messageListenerRegistered = false;
|
|
1462
1463
|
pendingPackets = /* @__PURE__ */ new Map();
|
|
1463
1464
|
constructor() {
|
|
1464
1465
|
this.messageHandler = (event) => {
|
|
1465
1466
|
const data = event.data;
|
|
1466
|
-
console.log(`[AMT] SW message received:`, data.type);
|
|
1467
1467
|
if (data.type === "UDP_PACKET") {
|
|
1468
1468
|
this.handlePacket(data);
|
|
1469
1469
|
} else if (data.type === "SOCKET_ERROR") {
|
|
@@ -1472,12 +1472,22 @@ var AMTGatewayManager = class {
|
|
|
1472
1472
|
console.log(`[AMT SW Debug] ${data.message}`);
|
|
1473
1473
|
}
|
|
1474
1474
|
};
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1475
|
+
}
|
|
1476
|
+
ensureMessageListener() {
|
|
1477
|
+
if (this.messageListenerRegistered || typeof navigator === "undefined" || !navigator.serviceWorker || !this.messageHandler) {
|
|
1478
|
+
return;
|
|
1479
|
+
}
|
|
1480
|
+
navigator.serviceWorker.addEventListener("message", this.messageHandler);
|
|
1481
|
+
this.messageListenerRegistered = true;
|
|
1482
|
+
console.log("[AMT] Registered service worker message handler");
|
|
1483
|
+
}
|
|
1484
|
+
removeMessageListener() {
|
|
1485
|
+
if (!this.messageListenerRegistered)
|
|
1486
|
+
return;
|
|
1487
|
+
if (this.messageHandler && typeof navigator !== "undefined" && navigator.serviceWorker) {
|
|
1488
|
+
navigator.serviceWorker.removeEventListener("message", this.messageHandler);
|
|
1480
1489
|
}
|
|
1490
|
+
this.messageListenerRegistered = false;
|
|
1481
1491
|
}
|
|
1482
1492
|
/**
|
|
1483
1493
|
* Subscribe via AMT tunnel
|
|
@@ -1487,6 +1497,7 @@ var AMTGatewayManager = class {
|
|
|
1487
1497
|
if (config.protected) {
|
|
1488
1498
|
throw new Error("AMTGatewayManager refuses a protected join: it reports no per-datagram sender (multicast-02 7.2.7)");
|
|
1489
1499
|
}
|
|
1500
|
+
this.ensureMessageListener();
|
|
1490
1501
|
const keyStr = this.getKeyString(key);
|
|
1491
1502
|
if (this.subscriptions.has(keyStr)) {
|
|
1492
1503
|
console.log(`[AMT] Reusing existing subscription to ${keyStr}`);
|
|
@@ -1522,6 +1533,8 @@ var AMTGatewayManager = class {
|
|
|
1522
1533
|
this.subscriptions.delete(keyStr);
|
|
1523
1534
|
this.pendingPackets.delete(subscription.subscriptionId);
|
|
1524
1535
|
}
|
|
1536
|
+
if (this.subscriptions.size === 0)
|
|
1537
|
+
this.removeMessageListener();
|
|
1525
1538
|
throw new Error(`Failed to subscribe via AMT: ${error instanceof Error ? error.message : String(error)}`);
|
|
1526
1539
|
}
|
|
1527
1540
|
}
|
|
@@ -1543,6 +1556,8 @@ var AMTGatewayManager = class {
|
|
|
1543
1556
|
} finally {
|
|
1544
1557
|
this.subscriptions.delete(handle);
|
|
1545
1558
|
this.pendingPackets.delete(subscription.subscriptionId);
|
|
1559
|
+
if (this.subscriptions.size === 0)
|
|
1560
|
+
this.removeMessageListener();
|
|
1546
1561
|
}
|
|
1547
1562
|
}
|
|
1548
1563
|
/**
|
|
@@ -1559,10 +1574,8 @@ var AMTGatewayManager = class {
|
|
|
1559
1574
|
if (!subscriptionId)
|
|
1560
1575
|
return;
|
|
1561
1576
|
const subscription = this.subscriptions.get(subscriptionId);
|
|
1562
|
-
if (!subscription)
|
|
1563
|
-
console.warn(`[AMT] Received packet for unknown subscription: ${subscriptionId}`);
|
|
1577
|
+
if (!subscription)
|
|
1564
1578
|
return;
|
|
1565
|
-
}
|
|
1566
1579
|
if (!subscription.handshakeComplete) {
|
|
1567
1580
|
const queue = this.pendingPackets.get(subscriptionId);
|
|
1568
1581
|
const packetData2 = data;
|
|
@@ -1592,19 +1605,15 @@ var AMTGatewayManager = class {
|
|
|
1592
1605
|
if (!subscriptionId)
|
|
1593
1606
|
return;
|
|
1594
1607
|
const subscription = this.subscriptions.get(subscriptionId);
|
|
1595
|
-
if (!subscription)
|
|
1596
|
-
console.warn(`[AMT] Received error for unknown subscription: ${subscriptionId}`);
|
|
1608
|
+
if (!subscription)
|
|
1597
1609
|
return;
|
|
1598
|
-
}
|
|
1599
1610
|
subscription.config.onError(new Error(error || "Unknown error"));
|
|
1600
1611
|
}
|
|
1601
1612
|
/**
|
|
1602
1613
|
* Cleanup on destroy
|
|
1603
1614
|
*/
|
|
1604
1615
|
destroy() {
|
|
1605
|
-
|
|
1606
|
-
navigator.serviceWorker.removeEventListener("message", this.messageHandler);
|
|
1607
|
-
}
|
|
1616
|
+
this.removeMessageListener();
|
|
1608
1617
|
const handles = Array.from(this.subscriptions.keys());
|
|
1609
1618
|
for (const handle of handles) {
|
|
1610
1619
|
this.unsubscribe(handle).catch((err) => {
|