@blockcast/mmt-transport 0.2.2-main.ce3c8aeb7f68 → 0.2.2-main.d4a1f53b8678
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/dist/endpoint-config.d.ts +22 -0
- package/dist/endpoint-config.d.ts.map +1 -1
- package/dist/endpoint-config.js +45 -3
- package/dist/endpoint-config.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/mmt-transport.no-modules.js +75 -13
- package/dist/mmt-transport.no-modules.js.map +3 -3
- package/dist/moqt-priority.d.ts +11 -0
- package/dist/moqt-priority.d.ts.map +1 -1
- package/dist/moqt-priority.js +11 -0
- package/dist/moqt-priority.js.map +1 -1
- package/dist/multicast-catalog-policy.d.ts +15 -2
- package/dist/multicast-catalog-policy.d.ts.map +1 -1
- package/dist/multicast-catalog-policy.js +53 -10
- package/dist/multicast-catalog-policy.js.map +1 -1
- package/dist/multicast-subscription-pool.d.ts.map +1 -1
- package/dist/multicast-subscription-pool.js +34 -6
- package/dist/multicast-subscription-pool.js.map +1 -1
- package/dist/packet-batch.d.ts +13 -0
- package/dist/packet-batch.d.ts.map +1 -0
- package/dist/packet-batch.js +14 -0
- package/dist/packet-batch.js.map +1 -0
- package/dist/types.d.ts +41 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -2
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
- package/src/endpoint-config.ts +48 -3
- package/src/index.ts +4 -0
- package/src/moqt-priority.ts +11 -0
- package/src/multicast-catalog-policy.ts +54 -9
- package/src/multicast-subscription-pool.ts +39 -7
- package/src/packet-batch.ts +17 -0
- package/src/types.ts +42 -2
|
@@ -53,6 +53,28 @@ export declare function isUsableMulticastEndpoint(endpoint: {
|
|
|
53
53
|
groupAddress?: string;
|
|
54
54
|
port?: unknown;
|
|
55
55
|
} | undefined): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Reject a URL multicast override that still carries a retired unprefixed alias.
|
|
58
|
+
*
|
|
59
|
+
* Both URL readers call this only once a valid override is established (a valid
|
|
60
|
+
* multicast `mc_group` and a valid `mc_port`; `readUrlMulticastConfig` also
|
|
61
|
+
* requires the whole endpoint to normalize), which is where they used to read
|
|
62
|
+
* the aliases: a link that
|
|
63
|
+
* relied on one fails here with its replacement named, instead of silently
|
|
64
|
+
* losing its AMT relay (and, in `readUrlMulticastConfig`, its tunnel mode).
|
|
65
|
+
* Presence is the error, whatever the value and whether or not the `mc_` form
|
|
66
|
+
* is also present: quietly preferring one of two keys is the tolerant read being
|
|
67
|
+
* retired. Outside an override the readers read no override key at all, the
|
|
68
|
+
* `mc_` forms included, so the bare names are left to the page; they are live
|
|
69
|
+
* page parameters elsewhere, and keeping clear of those is what the `mc_`
|
|
70
|
+
* namespace is for.
|
|
71
|
+
*/
|
|
72
|
+
export declare function assertNoRetiredMulticastUrlParams(params: URLSearchParams): void;
|
|
73
|
+
/**
|
|
74
|
+
* Read an explicit multicast endpoint override from `mc_*` URL parameters.
|
|
75
|
+
* Throws when an override carries a retired unprefixed alias
|
|
76
|
+
* (`assertNoRetiredMulticastUrlParams`).
|
|
77
|
+
*/
|
|
56
78
|
export declare function readUrlMulticastConfig(search?: string | URLSearchParams): MulticastEndpointConfig | undefined;
|
|
57
79
|
export declare function isMulticastExplicitlyDisabled(search?: string | URLSearchParams): boolean;
|
|
58
80
|
//# sourceMappingURL=endpoint-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-config.d.ts","sourceRoot":"","sources":["../src/endpoint-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,8BAA8B,EAE9B,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,4BAA4B,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,4BAA4B,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,4BAA4B;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,4BAA4B,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC/C,KAAK,EAAE,4BAA4B,GACjC,8BAA8B,CAmDhC;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAajF;AAED,wBAAgB,0BAA0B,CACzC,QAAQ,EAAE,uBAAuB,GAC/B,uBAAuB,GAAG,SAAS,CAgBrC;AAED,mEAAmE;AACnE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,CAW9E;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAIxE;AAED,wBAAgB,yBAAyB,CACxC,QAAQ,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,GAC7D,OAAO,CAGT;AAED,wBAAgB,sBAAsB,CACrC,MAAM,GAAE,MAAM,GAAG,eAAwE,GACvF,uBAAuB,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"endpoint-config.d.ts","sourceRoot":"","sources":["../src/endpoint-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,8BAA8B,EAE9B,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,4BAA4B,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,4BAA4B,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,4BAA4B;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,4BAA4B,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC/C,KAAK,EAAE,4BAA4B,GACjC,8BAA8B,CAmDhC;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAajF;AAED,wBAAgB,0BAA0B,CACzC,QAAQ,EAAE,uBAAuB,GAC/B,uBAAuB,GAAG,SAAS,CAgBrC;AAED,mEAAmE;AACnE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,CAW9E;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAIxE;AAED,wBAAgB,yBAAyB,CACxC,QAAQ,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,GAC7D,OAAO,CAGT;AAWD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAQ/E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,GAAE,MAAM,GAAG,eAAwE,GACvF,uBAAuB,GAAG,SAAS,CAwBrC;AAED,wBAAgB,6BAA6B,CAC5C,MAAM,GAAE,MAAM,GAAG,eAAwE,GACvF,OAAO,CAKT"}
|
package/dist/endpoint-config.js
CHANGED
|
@@ -117,17 +117,53 @@ export function isUsableMulticastEndpoint(endpoint) {
|
|
|
117
117
|
const port = Number(endpoint?.port);
|
|
118
118
|
return isValidMulticastGroupAddress(endpoint?.groupAddress) && isPositivePort(port);
|
|
119
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Unprefixed aliases of the `mc_` URL override keys, retired in BLO-37507, each
|
|
122
|
+
* paired with the key that replaces it.
|
|
123
|
+
*/
|
|
124
|
+
const RETIRED_MULTICAST_URL_PARAMS = [
|
|
125
|
+
["amt_relay", "mc_amt_relay"],
|
|
126
|
+
["amt_relay_port", "mc_amt_relay_port"],
|
|
127
|
+
];
|
|
128
|
+
/**
|
|
129
|
+
* Reject a URL multicast override that still carries a retired unprefixed alias.
|
|
130
|
+
*
|
|
131
|
+
* Both URL readers call this only once a valid override is established (a valid
|
|
132
|
+
* multicast `mc_group` and a valid `mc_port`; `readUrlMulticastConfig` also
|
|
133
|
+
* requires the whole endpoint to normalize), which is where they used to read
|
|
134
|
+
* the aliases: a link that
|
|
135
|
+
* relied on one fails here with its replacement named, instead of silently
|
|
136
|
+
* losing its AMT relay (and, in `readUrlMulticastConfig`, its tunnel mode).
|
|
137
|
+
* Presence is the error, whatever the value and whether or not the `mc_` form
|
|
138
|
+
* is also present: quietly preferring one of two keys is the tolerant read being
|
|
139
|
+
* retired. Outside an override the readers read no override key at all, the
|
|
140
|
+
* `mc_` forms included, so the bare names are left to the page; they are live
|
|
141
|
+
* page parameters elsewhere, and keeping clear of those is what the `mc_`
|
|
142
|
+
* namespace is for.
|
|
143
|
+
*/
|
|
144
|
+
export function assertNoRetiredMulticastUrlParams(params) {
|
|
145
|
+
for (const [retired, replacement] of RETIRED_MULTICAST_URL_PARAMS) {
|
|
146
|
+
if (params.has(retired)) {
|
|
147
|
+
throw new Error(`multicast URL override: query parameter "${retired}" is retired; use "${replacement}"`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Read an explicit multicast endpoint override from `mc_*` URL parameters.
|
|
153
|
+
* Throws when an override carries a retired unprefixed alias
|
|
154
|
+
* (`assertNoRetiredMulticastUrlParams`).
|
|
155
|
+
*/
|
|
120
156
|
export function readUrlMulticastConfig(search = typeof location === "undefined" ? "" : location.search) {
|
|
121
157
|
const params = typeof search === "string" ? new URLSearchParams(search) : search;
|
|
122
158
|
const groupAddress = params.get("mc_group") || "";
|
|
123
159
|
const port = positivePort(params.get("mc_port"));
|
|
124
160
|
if (!groupAddress || !port)
|
|
125
161
|
return undefined;
|
|
126
|
-
const amtRelay = params.get("mc_amt_relay") ||
|
|
127
|
-
const amtRelayPort = positivePort(params.get("mc_amt_relay_port")
|
|
162
|
+
const amtRelay = params.get("mc_amt_relay") || undefined;
|
|
163
|
+
const amtRelayPort = positivePort(params.get("mc_amt_relay_port"));
|
|
128
164
|
const requestedMode = params.get("mc_mode");
|
|
129
165
|
const mode = amtRelay ? "tunnel" : multicastMode(requestedMode);
|
|
130
|
-
|
|
166
|
+
const endpoint = normalizeMulticastEndpoint({
|
|
131
167
|
groupAddress,
|
|
132
168
|
sourceAddress: params.get("mc_source") || undefined,
|
|
133
169
|
port,
|
|
@@ -135,6 +171,12 @@ export function readUrlMulticastConfig(search = typeof location === "undefined"
|
|
|
135
171
|
...(amtRelay ? { amtRelay } : {}),
|
|
136
172
|
...(amtRelayPort ? { amtRelayPort } : {}),
|
|
137
173
|
});
|
|
174
|
+
// An endpoint that does not normalize (e.g. a non-multicast mc_group) is no
|
|
175
|
+
// override, so the page keeps its own bare names; the same scope
|
|
176
|
+
// readPlayerMulticastConfig applies by validating the group first.
|
|
177
|
+
if (endpoint)
|
|
178
|
+
assertNoRetiredMulticastUrlParams(params);
|
|
179
|
+
return endpoint;
|
|
138
180
|
}
|
|
139
181
|
export function isMulticastExplicitlyDisabled(search = typeof location === "undefined" ? "" : location.search) {
|
|
140
182
|
const params = typeof search === "string" ? new URLSearchParams(search) : search;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-config.js","sourceRoot":"","sources":["../src/endpoint-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"endpoint-config.js","sourceRoot":"","sources":["../src/endpoint-config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -22,8 +22,10 @@
|
|
|
22
22
|
* - Unified FEC/ABR pipeline across all transport modes
|
|
23
23
|
* - A/V synchronization via SharedClock
|
|
24
24
|
*/
|
|
25
|
-
export type { TransportConfig, TransportSubscription, QualityLevel, TransportCapabilities, TransportMode, TransportState, DRIADRelay, AmtRelayInfo, GroupKey, PacketMetadata, Micro, SyncDecision, WindowMulticastSubscribeConfig, WindowMulticastSubscribeConfigBytes, WindowMulticastSubscribeConfigAmt, WindowMulticastSubscriptionState, WindowMulticastSubscriptionEventMap, WindowMulticastSubscription, WindowMulticastCapabilities, WindowMulticastGateway, MulticastTransportMode, MulticastConfig, PacketSource, SubscriptionState, SubscriptionStats, MulticastSubscriptionHandle, MulticastBridge, MoqFecConfig, RepairObjectHeader, } from "./types.js";
|
|
26
|
-
export {
|
|
25
|
+
export type { TransportConfig, TransportSubscription, QualityLevel, TransportCapabilities, TransportMode, TransportState, DRIADRelay, AmtRelayInfo, GroupKey, PacketMetadata, Micro, SyncDecision, WindowMulticastSubscribeConfig, WindowMulticastSubscribeConfigBytes, WindowMulticastSubscribeConfigAmt, WindowMulticastSubscriptionState, WindowMulticastSubscriptionEventMap, WindowMulticastSubscription, WindowMulticastDelivery, WindowMulticastCapabilities, WindowMulticastGateway, MulticastTransportMode, MulticastConfig, PacketSource, SubscriptionState, SubscriptionStats, MulticastSubscriptionHandle, MulticastBridge, MoqFecConfig, RepairObjectHeader, } from "./types.js";
|
|
26
|
+
export {
|
|
27
|
+
/** @deprecated FEC configuration is signalled in the catalog `fec` block. */
|
|
28
|
+
FEC_CONFIG_MESSAGE_TYPE, repairTrackPath, MoqFecAlgorithm, } from "./types.js";
|
|
27
29
|
export { TransportManager, transportManager } from "./transport-manager.js";
|
|
28
30
|
export { DRIADDiscovery, driadDiscovery } from "./driad-discovery.js";
|
|
29
31
|
export { AdaptiveBitrateController, QUALITY_LEVELS, type FecStatsForAbr, } from "./abr-controller.js";
|
|
@@ -32,6 +34,7 @@ export { MulticastOrchestrator, DEFAULT_DWELL_MS, DEFAULT_JOIN_DEADLINE_MS, good
|
|
|
32
34
|
export { createMulticastSignalingReconciler, normalizeCatalogEndpoints, type MulticastSignalingEndpoint, } from "./multicast-signaling-reconciler.js";
|
|
33
35
|
export { catalogTierEndpoints, endpointCarriesMedia, endpointToMulticastConfig, hasMulticastCatalogBaseline, hasUnicastMediaRenditions, isMulticastOnlyCatalog, isRecoverableMulticastSignalReadError, mergeUrlMulticastPolicy, normalizeMulticastConfig, readPlayerMulticastConfig, requiresMulticastCapability, sameMulticastConfig, selectEndpointPacketIds, selectEndpointPacketIdsForTracks, selectMulticastCandidate, selectMulticastCandidateForTracks, urlOverrideBlocksMulticastCandidate, withMulticastEndpoints, type PlayerMulticastConfig, type MulticastTrackSelection, } from "./multicast-catalog-policy.js";
|
|
34
36
|
export { isMulticastExplicitlyDisabled, isMulticastTrackPacketId, isUsableMulticastEndpoint, isValidMulticastGroupAddress, multicastEndpointKey, normalizeMulticastEndpoint, readUrlMulticastConfig, toWindowMulticastSubscribeConfig, type MulticastEndpointConfig, type MulticastTransportPreference, type WindowMulticastEndpointInput, } from "./endpoint-config.js";
|
|
37
|
+
export { subscriptionDeliversPacketBatches } from "./packet-batch.js";
|
|
35
38
|
export { MulticastSubscriptionPool, multicastSubscriptionPool, type MulticastSubscriptionConsumer, type MulticastSubscriptionLease, } from "./multicast-subscription-pool.js";
|
|
36
39
|
export { classifyStall, TransportStallDetector, type FecProgressSnapshot, type PlayerStallClassification, type PlayerStallSnapshot, type StallDetectorConfig, } from "./stall-detector.js";
|
|
37
40
|
export { makeSourceSwitchHandler, wireStallDetector, wireStarvationDetector, type ActivatableSessions, type FecStarvationSnapshot, type LossArcSession, type StallDetectorLike, type StarvationDetectorLike, } from "./takeover.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,YAAY,EACX,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,KAAK,EACL,YAAY,EACZ,8BAA8B,EAC9B,mCAAmC,EACnC,iCAAiC,EACjC,gCAAgC,EAChC,mCAAmC,EACnC,2BAA2B,EAC3B,2BAA2B,EAC3B,sBAAsB,EAEtB,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,eAAe,EAEf,YAAY,EACZ,kBAAkB,GAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,YAAY,EACX,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,KAAK,EACL,YAAY,EACZ,8BAA8B,EAC9B,mCAAmC,EACnC,iCAAiC,EACjC,gCAAgC,EAChC,mCAAmC,EACnC,2BAA2B,EAC3B,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EAEtB,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,eAAe,EAEf,YAAY,EACZ,kBAAkB,GAClB,MAAM,YAAY,CAAC;AAGpB,OAAO;AACN,6EAA6E;AAC7E,uBAAuB,EACvB,eAAe,EACf,eAAe,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG5E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtE,OAAO,EACN,yBAAyB,EACzB,cAAc,EACd,KAAK,cAAc,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,WAAW,EACX,mBAAmB,EACnB,KAAK,qBAAqB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACtB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACN,kCAAkC,EAClC,yBAAyB,EACzB,KAAK,0BAA0B,GAC/B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACN,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,qCAAqC,EACrC,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,gCAAgC,EAChC,wBAAwB,EACxB,iCAAiC,EACjC,mCAAmC,EACnC,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC5B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACN,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,gCAAgC,EAChC,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GACjC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EACN,yBAAyB,EACzB,yBAAyB,EACzB,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,GAC/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACN,aAAa,EACb,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,GAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACN,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,aAAa,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACN,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,sBAAsB,EACtB,KAAK,sBAAsB,GAC3B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACN,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACN,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,GACb,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -23,7 +23,9 @@
|
|
|
23
23
|
* - A/V synchronization via SharedClock
|
|
24
24
|
*/
|
|
25
25
|
// FEC constants and utilities per draft-ramadan-moq-fec-00
|
|
26
|
-
export {
|
|
26
|
+
export {
|
|
27
|
+
/** @deprecated FEC configuration is signalled in the catalog `fec` block. */
|
|
28
|
+
FEC_CONFIG_MESSAGE_TYPE, repairTrackPath, MoqFecAlgorithm, } from "./types.js";
|
|
27
29
|
export { TransportManager, transportManager } from "./transport-manager.js";
|
|
28
30
|
// DRIAD Discovery
|
|
29
31
|
export { DRIADDiscovery, driadDiscovery } from "./driad-discovery.js";
|
|
@@ -34,6 +36,7 @@ export { MulticastOrchestrator, DEFAULT_DWELL_MS, DEFAULT_JOIN_DEADLINE_MS, good
|
|
|
34
36
|
export { createMulticastSignalingReconciler, normalizeCatalogEndpoints, } from "./multicast-signaling-reconciler.js";
|
|
35
37
|
export { catalogTierEndpoints, endpointCarriesMedia, endpointToMulticastConfig, hasMulticastCatalogBaseline, hasUnicastMediaRenditions, isMulticastOnlyCatalog, isRecoverableMulticastSignalReadError, mergeUrlMulticastPolicy, normalizeMulticastConfig, readPlayerMulticastConfig, requiresMulticastCapability, sameMulticastConfig, selectEndpointPacketIds, selectEndpointPacketIdsForTracks, selectMulticastCandidate, selectMulticastCandidateForTracks, urlOverrideBlocksMulticastCandidate, withMulticastEndpoints, } from "./multicast-catalog-policy.js";
|
|
36
38
|
export { isMulticastExplicitlyDisabled, isMulticastTrackPacketId, isUsableMulticastEndpoint, isValidMulticastGroupAddress, multicastEndpointKey, normalizeMulticastEndpoint, readUrlMulticastConfig, toWindowMulticastSubscribeConfig, } from "./endpoint-config.js";
|
|
39
|
+
export { subscriptionDeliversPacketBatches } from "./packet-batch.js";
|
|
37
40
|
export { MulticastSubscriptionPool, multicastSubscriptionPool, } from "./multicast-subscription-pool.js";
|
|
38
41
|
export { classifyStall, TransportStallDetector, } from "./stall-detector.js";
|
|
39
42
|
export { makeSourceSwitchHandler, wireStallDetector, wireStarvationDetector, } from "./takeover.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAsCH,2DAA2D;AAC3D,OAAO;AACN,6EAA6E;AAC7E,uBAAuB,EACvB,eAAe,EACf,eAAe,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE5E,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtE,8BAA8B;AAC9B,OAAO,EACN,yBAAyB,EACzB,cAAc,GAEd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,WAAW,EACX,mBAAmB,GAEnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,GAOhB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACN,kCAAkC,EAClC,yBAAyB,GAEzB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACN,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,qCAAqC,EACrC,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,gCAAgC,EAChC,wBAAwB,EACxB,iCAAiC,EACjC,mCAAmC,EACnC,sBAAsB,GAGtB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACN,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,gCAAgC,GAIhC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EACN,yBAAyB,EACzB,yBAAyB,GAGzB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACN,aAAa,EACb,sBAAsB,GAKtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,GAMtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACN,kBAAkB,GAUlB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACN,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EAErB,sBAAsB,GAEtB,MAAM,oBAAoB,CAAC;AAE5B,cAAc;AACd,OAAO,EACN,iBAAiB,EACjB,UAAU,EACV,iBAAiB,GAGjB,MAAM,kBAAkB,CAAC;AAE1B,iBAAiB;AACjB,OAAO,EACN,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,GACb,MAAM,YAAY,CAAC"}
|
|
@@ -269,16 +269,29 @@
|
|
|
269
269
|
const port = Number(endpoint?.port);
|
|
270
270
|
return isValidMulticastGroupAddress(endpoint?.groupAddress) && isPositivePort(port);
|
|
271
271
|
}
|
|
272
|
+
var RETIRED_MULTICAST_URL_PARAMS = [
|
|
273
|
+
["amt_relay", "mc_amt_relay"],
|
|
274
|
+
["amt_relay_port", "mc_amt_relay_port"]
|
|
275
|
+
];
|
|
276
|
+
function assertNoRetiredMulticastUrlParams(params) {
|
|
277
|
+
for (const [retired, replacement] of RETIRED_MULTICAST_URL_PARAMS) {
|
|
278
|
+
if (params.has(retired)) {
|
|
279
|
+
throw new Error(
|
|
280
|
+
`multicast URL override: query parameter "${retired}" is retired; use "${replacement}"`
|
|
281
|
+
);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
272
285
|
function readUrlMulticastConfig(search = typeof location === "undefined" ? "" : location.search) {
|
|
273
286
|
const params = typeof search === "string" ? new URLSearchParams(search) : search;
|
|
274
287
|
const groupAddress = params.get("mc_group") || "";
|
|
275
288
|
const port = positivePort(params.get("mc_port"));
|
|
276
289
|
if (!groupAddress || !port) return void 0;
|
|
277
|
-
const amtRelay = params.get("mc_amt_relay") ||
|
|
278
|
-
const amtRelayPort = positivePort(params.get("mc_amt_relay_port")
|
|
290
|
+
const amtRelay = params.get("mc_amt_relay") || void 0;
|
|
291
|
+
const amtRelayPort = positivePort(params.get("mc_amt_relay_port"));
|
|
279
292
|
const requestedMode = params.get("mc_mode");
|
|
280
293
|
const mode = amtRelay ? "tunnel" : multicastMode(requestedMode);
|
|
281
|
-
|
|
294
|
+
const endpoint = normalizeMulticastEndpoint({
|
|
282
295
|
groupAddress,
|
|
283
296
|
sourceAddress: params.get("mc_source") || void 0,
|
|
284
297
|
port,
|
|
@@ -286,6 +299,8 @@
|
|
|
286
299
|
...amtRelay ? { amtRelay } : {},
|
|
287
300
|
...amtRelayPort ? { amtRelayPort } : {}
|
|
288
301
|
});
|
|
302
|
+
if (endpoint) assertNoRetiredMulticastUrlParams(params);
|
|
303
|
+
return endpoint;
|
|
289
304
|
}
|
|
290
305
|
function isMulticastExplicitlyDisabled(search = typeof location === "undefined" ? "" : location.search) {
|
|
291
306
|
const params = typeof search === "string" ? new URLSearchParams(search) : search;
|
|
@@ -692,9 +707,10 @@
|
|
|
692
707
|
if (!isValidMulticastGroupAddress(group)) return null;
|
|
693
708
|
const port = positivePort2(params.get("mc_port"));
|
|
694
709
|
if (!port) return null;
|
|
710
|
+
assertNoRetiredMulticastUrlParams(params);
|
|
695
711
|
const mode = params.get("mc_mode") || "";
|
|
696
|
-
const amtRelay = params.get("mc_amt_relay") ||
|
|
697
|
-
const amtRelayPort = positivePort2(params.get("mc_amt_relay_port")
|
|
712
|
+
const amtRelay = params.get("mc_amt_relay") || "";
|
|
713
|
+
const amtRelayPort = positivePort2(params.get("mc_amt_relay_port"));
|
|
698
714
|
const config = {
|
|
699
715
|
group,
|
|
700
716
|
source: params.get("mc_source") || "",
|
|
@@ -766,7 +782,7 @@
|
|
|
766
782
|
}
|
|
767
783
|
function findAmtRelay(networkSource) {
|
|
768
784
|
const sources = Array.isArray(networkSource) ? networkSource : networkSource ? [networkSource] : [];
|
|
769
|
-
const source = sources.find((candidate) => candidate?.type === "amt" && typeof candidate?.relay === "string" && candidate.relay.trim());
|
|
785
|
+
const source = sources.find((candidate) => candidate?.type === "amt" && candidate?.discovery !== "driad" && typeof candidate?.relay === "string" && candidate.relay.trim());
|
|
770
786
|
if (!source) return void 0;
|
|
771
787
|
const port = positivePort2(String(source.port ?? ""));
|
|
772
788
|
const relay = source.relay.trim();
|
|
@@ -796,7 +812,19 @@
|
|
|
796
812
|
}
|
|
797
813
|
return renditions;
|
|
798
814
|
}
|
|
815
|
+
function assertNoRetiredTrackFields(catalog) {
|
|
816
|
+
if (catalog && typeof catalog === "object" && "commonTrackFields" in catalog) {
|
|
817
|
+
throw new Error("multicast catalog policy: $.commonTrackFields is retired; every track must declare its own packaging");
|
|
818
|
+
}
|
|
819
|
+
const tracks = Array.isArray(catalog?.tracks) ? catalog.tracks : [];
|
|
820
|
+
tracks.forEach((track, index) => {
|
|
821
|
+
if (track && typeof track === "object" && "selectionParams" in track) {
|
|
822
|
+
throw new Error(`multicast catalog policy: $.tracks[${index}].selectionParams is retired; selection fields are flat on the track`);
|
|
823
|
+
}
|
|
824
|
+
});
|
|
825
|
+
}
|
|
799
826
|
function catalogRepairTracks(catalog, name) {
|
|
827
|
+
assertNoRetiredTrackFields(catalog);
|
|
800
828
|
const tracks = Array.isArray(catalog?.tracks) ? catalog.tracks : [];
|
|
801
829
|
const track = tracks.find((candidate) => candidate?.name === name);
|
|
802
830
|
const rendition = catalog?.video?.renditions?.[name] ?? catalog?.audio?.renditions?.[name];
|
|
@@ -805,9 +833,8 @@
|
|
|
805
833
|
const names = /* @__PURE__ */ new Set();
|
|
806
834
|
if (typeof fec.repairTrack === "string" && fec.repairTrack.length > 0) names.add(fec.repairTrack);
|
|
807
835
|
const dependsOn = (entry) => Array.isArray(entry?.depends) && entry.depends.length === 1 && entry.depends[0] === name;
|
|
808
|
-
const common = catalog?.commonTrackFields ?? {};
|
|
809
836
|
for (const candidate of tracks) {
|
|
810
|
-
const packaging = candidate?.packaging
|
|
837
|
+
const packaging = candidate?.packaging;
|
|
811
838
|
if (packaging === "fec-repair" && typeof candidate?.name === "string" && candidate.name.length > 0 && dependsOn(candidate)) {
|
|
812
839
|
names.add(candidate.name);
|
|
813
840
|
}
|
|
@@ -844,6 +871,11 @@
|
|
|
844
871
|
return selected;
|
|
845
872
|
}
|
|
846
873
|
|
|
874
|
+
// src/packet-batch.ts
|
|
875
|
+
function subscriptionDeliversPacketBatches(subscription) {
|
|
876
|
+
return subscription.eventTypes?.includes("packets") === true;
|
|
877
|
+
}
|
|
878
|
+
|
|
847
879
|
// src/multicast-subscription-pool.ts
|
|
848
880
|
var MulticastSubscriptionPool = class {
|
|
849
881
|
#entries = /* @__PURE__ */ new Map();
|
|
@@ -918,8 +950,18 @@
|
|
|
918
950
|
}));
|
|
919
951
|
const consumers = /* @__PURE__ */ new Map();
|
|
920
952
|
let entry;
|
|
921
|
-
const
|
|
922
|
-
|
|
953
|
+
const packetListener = subscriptionDeliversPacketBatches(subscription) ? {
|
|
954
|
+
type: "packets",
|
|
955
|
+
listener: (event) => {
|
|
956
|
+
for (const data of event.detail) {
|
|
957
|
+
this.#dispatch(consumers, (consumer) => consumer.onBytes(data));
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
} : {
|
|
961
|
+
type: "bytes",
|
|
962
|
+
listener: (event) => {
|
|
963
|
+
this.#dispatch(consumers, (consumer) => consumer.onBytes(event.detail));
|
|
964
|
+
}
|
|
923
965
|
};
|
|
924
966
|
const stateListener = (event) => {
|
|
925
967
|
this.#dispatch(consumers, (consumer) => consumer.onState?.(event.detail));
|
|
@@ -932,8 +974,12 @@
|
|
|
932
974
|
const error = event.detail instanceof Error ? event.detail : new Error(String(event.detail));
|
|
933
975
|
this.#dispatch(consumers, (consumer) => consumer.onError?.(error));
|
|
934
976
|
};
|
|
935
|
-
entry = { subscription, consumers,
|
|
936
|
-
|
|
977
|
+
entry = { subscription, consumers, packetListener, stateListener, errorListener, closed: false };
|
|
978
|
+
if (packetListener.type === "packets") {
|
|
979
|
+
subscription.addEventListener("packets", packetListener.listener);
|
|
980
|
+
} else {
|
|
981
|
+
subscription.addEventListener("bytes", packetListener.listener);
|
|
982
|
+
}
|
|
937
983
|
subscription.addEventListener("state", stateListener);
|
|
938
984
|
subscription.addEventListener("error", errorListener);
|
|
939
985
|
return entry;
|
|
@@ -948,7 +994,12 @@
|
|
|
948
994
|
return id;
|
|
949
995
|
}
|
|
950
996
|
#detach(entry) {
|
|
951
|
-
|
|
997
|
+
const { packetListener } = entry;
|
|
998
|
+
if (packetListener.type === "packets") {
|
|
999
|
+
entry.subscription.removeEventListener("packets", packetListener.listener);
|
|
1000
|
+
} else {
|
|
1001
|
+
entry.subscription.removeEventListener("bytes", packetListener.listener);
|
|
1002
|
+
}
|
|
952
1003
|
entry.subscription.removeEventListener("state", entry.stateListener);
|
|
953
1004
|
entry.subscription.removeEventListener("error", entry.errorListener);
|
|
954
1005
|
}
|
|
@@ -980,9 +1031,20 @@
|
|
|
980
1031
|
}
|
|
981
1032
|
var MOQT_SUBSCRIBER_PRIORITY = Object.freeze({
|
|
982
1033
|
catalog: moqtSubscriberPriority(0),
|
|
1034
|
+
/**
|
|
1035
|
+
* @deprecated A repair FETCH's SUBSCRIBER_PRIORITY is derived per request
|
|
1036
|
+
* from the catalog source and repair priorities (draft-ramadan-moq-fec
|
|
1037
|
+
* §11.4.5), not a player constant. Use the `subscriberPriority` that
|
|
1038
|
+
* `@blockcast/mmt-container`'s `wireRepairFetch` puts on each
|
|
1039
|
+
* `RepairFetchRequest` (`repairFetchSubscriberPriority`).
|
|
1040
|
+
*/
|
|
983
1041
|
deadlineRepair: moqtSubscriberPriority(0),
|
|
984
1042
|
audio: moqtSubscriberPriority(1),
|
|
985
1043
|
video: moqtSubscriberPriority(2),
|
|
1044
|
+
/**
|
|
1045
|
+
* @deprecated See `deadlineRepair`: use the request's catalog-derived
|
|
1046
|
+
* `RepairFetchRequest.subscriberPriority` (draft-ramadan-moq-fec §11.4.5).
|
|
1047
|
+
*/
|
|
986
1048
|
backgroundRepair: moqtSubscriberPriority(3)
|
|
987
1049
|
});
|
|
988
1050
|
var MOQT_PUBLISHER_PRIORITY = Object.freeze({
|