@blockcast/mmt-container 2.2.0-main.73af0eedcbc8 → 2.2.0-main.75b39a2cdddf
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 +1001 -215
- package/dist/browser-runtime.js.map +4 -4
- package/dist/carp-catalog.js.map +1 -1
- 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/catalog-network-source.js.map +1 -1
- 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 +33 -1
- package/dist/fec-manager.d.ts.map +1 -1
- package/dist/fec-manager.js +222 -6
- package/dist/fec-manager.js.map +2 -2
- package/dist/fec-state.js.map +1 -1
- 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/held-layer-admission.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +2 -2
- package/dist/iso-block-locator.d.ts +9 -0
- package/dist/iso-block-locator.d.ts.map +1 -1
- package/dist/iso-block-locator.js +17 -0
- 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/mfu-reassembler.js +12 -19
- package/dist/mfu-reassembler.js.map +2 -2
- package/dist/mmtp-container-parser.d.ts +58 -10
- package/dist/mmtp-container-parser.d.ts.map +1 -1
- package/dist/mmtp-container-parser.js +105 -34
- package/dist/mmtp-container-parser.js.map +2 -2
- package/dist/mmtp-container-parser.no-modules.js +229 -51
- package/dist/mmtp-container-parser.no-modules.js.map +3 -3
- package/dist/mmtp-decode-pipeline.js +104 -34
- package/dist/mmtp-decode-pipeline.js.map +2 -2
- package/dist/mmtp-fec-session.d.ts +41 -3
- package/dist/mmtp-fec-session.d.ts.map +1 -1
- package/dist/mmtp-fec-session.js +118 -13
- package/dist/mmtp-fec-session.js.map +3 -3
- package/dist/mmtp-router.d.ts +18 -1
- package/dist/mmtp-router.d.ts.map +1 -1
- package/dist/mmtp-router.js +323 -64
- package/dist/mmtp-router.js.map +2 -2
- package/dist/multicast-auth-catalog.js.map +1 -1
- package/dist/multicast-input.js.map +1 -1
- package/dist/multicast-manager.js +547 -72
- 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/multicast-unwrap.js +12 -19
- package/dist/multicast-unwrap.js.map +2 -2
- package/dist/no-modules.js +222 -48
- package/dist/no-modules.js.map +3 -3
- package/dist/repair-fetch.js.map +1 -1
- package/dist/repair-layer-subscriptions.d.ts +82 -0
- package/dist/repair-layer-subscriptions.d.ts.map +1 -0
- package/dist/repair-layer-subscriptions.js +192 -0
- package/dist/repair-layer-subscriptions.js.map +7 -0
- package/dist/signaling.js.map +1 -1
- package/dist/timestamp-codec.js +12 -19
- package/dist/timestamp-codec.js.map +2 -2
- package/dist/track-session.d.ts +1 -1
- package/dist/track-session.js.map +1 -1
- package/dist/wasm-mfu-reassembler.js.map +1 -1
- package/dist/wasm-mmtp-container-parser.js +104 -34
- 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 +277 -6
- package/src/fec-worker-setup.ts +2 -2
- package/src/index.ts +18 -2
- package/src/iso-block-locator.ts +19 -0
- package/src/iso-bmff-timing.ts +40 -1
- package/src/mmtp-container-parser.ts +125 -19
- package/src/mmtp-fec-session.ts +115 -15
- package/src/mmtp-router.ts +350 -13
- package/src/repair-layer-subscriptions.ts +261 -0
- package/src/track-session.ts +1 -1
|
@@ -1335,9 +1335,9 @@ async function openSubscription(rx, openedPromise, options, packetIds) {
|
|
|
1335
1335
|
} catch (error) {
|
|
1336
1336
|
throw new MulticastError("subscription-failed", "MulticastReceiver did not open", error);
|
|
1337
1337
|
}
|
|
1338
|
-
if (
|
|
1338
|
+
if (opened.integrityScheme !== INTEGRITY_SCHEME) {
|
|
1339
1339
|
await rx.close();
|
|
1340
|
-
throw unsupported(`integrity scheme ${String(
|
|
1340
|
+
throw unsupported(`integrity scheme ${String(opened.integrityScheme)} is not ${INTEGRITY_SCHEME}`);
|
|
1341
1341
|
}
|
|
1342
1342
|
const events = new EventTarget();
|
|
1343
1343
|
let state = "connected";
|
|
@@ -1456,14 +1456,15 @@ var MOQT_PUBLISHER_PRIORITY = Object.freeze({
|
|
|
1456
1456
|
});
|
|
1457
1457
|
|
|
1458
1458
|
// node_modules/@blockcast/mmt-transport/dist/amt-gateway.js
|
|
1459
|
+
var MAX_PENDING_PACKETS = 256;
|
|
1459
1460
|
var AMTGatewayManager = class {
|
|
1460
1461
|
subscriptions = /* @__PURE__ */ new Map();
|
|
1461
1462
|
messageHandler;
|
|
1463
|
+
messageListenerRegistered = false;
|
|
1462
1464
|
pendingPackets = /* @__PURE__ */ new Map();
|
|
1463
1465
|
constructor() {
|
|
1464
1466
|
this.messageHandler = (event) => {
|
|
1465
1467
|
const data = event.data;
|
|
1466
|
-
console.log(`[AMT] SW message received:`, data.type);
|
|
1467
1468
|
if (data.type === "UDP_PACKET") {
|
|
1468
1469
|
this.handlePacket(data);
|
|
1469
1470
|
} else if (data.type === "SOCKET_ERROR") {
|
|
@@ -1472,12 +1473,22 @@ var AMTGatewayManager = class {
|
|
|
1472
1473
|
console.log(`[AMT SW Debug] ${data.message}`);
|
|
1473
1474
|
}
|
|
1474
1475
|
};
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1476
|
+
}
|
|
1477
|
+
ensureMessageListener() {
|
|
1478
|
+
if (this.messageListenerRegistered || typeof navigator === "undefined" || !navigator.serviceWorker || !this.messageHandler) {
|
|
1479
|
+
return;
|
|
1480
|
+
}
|
|
1481
|
+
navigator.serviceWorker.addEventListener("message", this.messageHandler);
|
|
1482
|
+
this.messageListenerRegistered = true;
|
|
1483
|
+
console.log("[AMT] Registered service worker message handler");
|
|
1484
|
+
}
|
|
1485
|
+
removeMessageListener() {
|
|
1486
|
+
if (!this.messageListenerRegistered)
|
|
1487
|
+
return;
|
|
1488
|
+
if (this.messageHandler && typeof navigator !== "undefined" && navigator.serviceWorker) {
|
|
1489
|
+
navigator.serviceWorker.removeEventListener("message", this.messageHandler);
|
|
1480
1490
|
}
|
|
1491
|
+
this.messageListenerRegistered = false;
|
|
1481
1492
|
}
|
|
1482
1493
|
/**
|
|
1483
1494
|
* Subscribe via AMT tunnel
|
|
@@ -1487,6 +1498,7 @@ var AMTGatewayManager = class {
|
|
|
1487
1498
|
if (config.protected) {
|
|
1488
1499
|
throw new Error("AMTGatewayManager refuses a protected join: it reports no per-datagram sender (multicast-02 7.2.7)");
|
|
1489
1500
|
}
|
|
1501
|
+
this.ensureMessageListener();
|
|
1490
1502
|
const keyStr = this.getKeyString(key);
|
|
1491
1503
|
if (this.subscriptions.has(keyStr)) {
|
|
1492
1504
|
console.log(`[AMT] Reusing existing subscription to ${keyStr}`);
|
|
@@ -1522,6 +1534,8 @@ var AMTGatewayManager = class {
|
|
|
1522
1534
|
this.subscriptions.delete(keyStr);
|
|
1523
1535
|
this.pendingPackets.delete(subscription.subscriptionId);
|
|
1524
1536
|
}
|
|
1537
|
+
if (this.subscriptions.size === 0)
|
|
1538
|
+
this.removeMessageListener();
|
|
1525
1539
|
throw new Error(`Failed to subscribe via AMT: ${error instanceof Error ? error.message : String(error)}`);
|
|
1526
1540
|
}
|
|
1527
1541
|
}
|
|
@@ -1543,6 +1557,8 @@ var AMTGatewayManager = class {
|
|
|
1543
1557
|
} finally {
|
|
1544
1558
|
this.subscriptions.delete(handle);
|
|
1545
1559
|
this.pendingPackets.delete(subscription.subscriptionId);
|
|
1560
|
+
if (this.subscriptions.size === 0)
|
|
1561
|
+
this.removeMessageListener();
|
|
1546
1562
|
}
|
|
1547
1563
|
}
|
|
1548
1564
|
/**
|
|
@@ -1559,14 +1575,12 @@ var AMTGatewayManager = class {
|
|
|
1559
1575
|
if (!subscriptionId)
|
|
1560
1576
|
return;
|
|
1561
1577
|
const subscription = this.subscriptions.get(subscriptionId);
|
|
1562
|
-
if (!subscription)
|
|
1563
|
-
console.warn(`[AMT] Received packet for unknown subscription: ${subscriptionId}`);
|
|
1578
|
+
if (!subscription)
|
|
1564
1579
|
return;
|
|
1565
|
-
}
|
|
1566
1580
|
if (!subscription.handshakeComplete) {
|
|
1567
1581
|
const queue = this.pendingPackets.get(subscriptionId);
|
|
1568
1582
|
const packetData2 = data;
|
|
1569
|
-
if (queue) {
|
|
1583
|
+
if (queue && queue.length < MAX_PENDING_PACKETS) {
|
|
1570
1584
|
queue.push({
|
|
1571
1585
|
data: packetData2.data,
|
|
1572
1586
|
remoteAddress: packetData2.remoteAddress,
|
|
@@ -1592,19 +1606,15 @@ var AMTGatewayManager = class {
|
|
|
1592
1606
|
if (!subscriptionId)
|
|
1593
1607
|
return;
|
|
1594
1608
|
const subscription = this.subscriptions.get(subscriptionId);
|
|
1595
|
-
if (!subscription)
|
|
1596
|
-
console.warn(`[AMT] Received error for unknown subscription: ${subscriptionId}`);
|
|
1609
|
+
if (!subscription)
|
|
1597
1610
|
return;
|
|
1598
|
-
}
|
|
1599
1611
|
subscription.config.onError(new Error(error || "Unknown error"));
|
|
1600
1612
|
}
|
|
1601
1613
|
/**
|
|
1602
1614
|
* Cleanup on destroy
|
|
1603
1615
|
*/
|
|
1604
1616
|
destroy() {
|
|
1605
|
-
|
|
1606
|
-
navigator.serviceWorker.removeEventListener("message", this.messageHandler);
|
|
1607
|
-
}
|
|
1617
|
+
this.removeMessageListener();
|
|
1608
1618
|
const handles = Array.from(this.subscriptions.keys());
|
|
1609
1619
|
for (const handle of handles) {
|
|
1610
1620
|
this.unsubscribe(handle).catch((err) => {
|