@blockcast/mmt-container 0.5.0-main.ed11aec88d91 → 0.5.0

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.
Files changed (43) hide show
  1. package/dist/browser-runtime.js +150 -21
  2. package/dist/browser-runtime.js.map +2 -2
  3. package/dist/fec-manager.d.ts.map +1 -1
  4. package/dist/fec-manager.js.map +2 -2
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js.map +2 -2
  8. package/dist/mmtp-container-parser.d.ts +10 -0
  9. package/dist/mmtp-container-parser.d.ts.map +1 -1
  10. package/dist/mmtp-container-parser.js +31 -1
  11. package/dist/mmtp-container-parser.js.map +2 -2
  12. package/dist/mmtp-container-parser.no-modules.js +31 -1
  13. package/dist/mmtp-container-parser.no-modules.js.map +2 -2
  14. package/dist/mmtp-decode-pipeline.js +31 -1
  15. package/dist/mmtp-decode-pipeline.js.map +2 -2
  16. package/dist/mmtp-router.d.ts +11 -0
  17. package/dist/mmtp-router.d.ts.map +1 -1
  18. package/dist/mmtp-router.js +54 -1
  19. package/dist/mmtp-router.js.map +2 -2
  20. package/dist/multicast-manager.d.ts +25 -1
  21. package/dist/multicast-manager.d.ts.map +1 -1
  22. package/dist/multicast-manager.js +92 -2
  23. package/dist/multicast-manager.js.map +2 -2
  24. package/dist/no-modules.js +31 -1
  25. package/dist/no-modules.js.map +2 -2
  26. package/dist/repair-fetch.d.ts +41 -10
  27. package/dist/repair-fetch.d.ts.map +1 -1
  28. package/dist/repair-fetch.js +58 -19
  29. package/dist/repair-fetch.js.map +2 -2
  30. package/dist/wasm-mmtp-container-parser.js +31 -1
  31. package/dist/wasm-mmtp-container-parser.js.map +2 -2
  32. package/package.json +7 -6
  33. package/src/fec-manager.ts +3 -0
  34. package/src/index.ts +1 -0
  35. package/src/mmtp-container-parser.ts +48 -0
  36. package/src/mmtp-router.ts +27 -0
  37. package/src/multicast-manager.ts +68 -0
  38. package/src/repair-fetch.ts +131 -31
  39. package/test-vectors/catalog/negative/multicast-auth-padded-key.json +0 -1
  40. package/test-vectors/catalog/negative/multicast-auth-reused-track-format.json +0 -1
  41. package/test-vectors/catalog/negative/multicast-auth-root-dotted-key.json +0 -1
  42. package/test-vectors/catalog/negative/multicast-auth-trailing-pad-bits.json +0 -1
  43. package/test-vectors/repair-policy-v1.json +113 -0
@@ -10,7 +10,7 @@
10
10
  import { type FecBlockProfile } from "@blockcast/mmt-base";
11
11
  import { FECManager, type FECManagerConfig, type WasmFecDecoder, type FecDecoderUnavailableReason, type FecFallbackDecoder, type MulticastSymbolDelivery, type RepairVia, type UndelimitedIsoLoss, type FecFailClosedEvent } from "./fec-manager.js";
12
12
  import { type BlockClass, type ClassifierMode, type ClassifierReason, type FrameGapDecision, type ReclassificationEvidence, type RepairPriority, type TrackKind } from "./block-policy.js";
13
- import type { RepairDeadlineBound, RepairPriorityReason, RepairSendMeasurement, RepairSkipReason, RepairSubscribeCallback } from "./repair-fetch.js";
13
+ import type { RepairDeadlineBound, RepairPriorityReason, RepairSendMeasurement, RepairSkipReason, RepairStopReason, RepairSubscribeCallback } from "./repair-fetch.js";
14
14
  import { MmtpRouter, type FrameCallback, type MmtpIngressContext, type MmtpStreamIdentity, type StreamSwitchCommit, type TrackPacketCallback } from "./mmtp-router.js";
15
15
  import { type WindowMulticastGateway } from "@blockcast/mmt-transport";
16
16
  import { MulticastTransport, type MulticastFailbackReason, type MulticastJoinOutcome, type MulticastJoinStats } from "./multicast-transport.js";
@@ -256,6 +256,9 @@ interface RepairSymbolCounts {
256
256
  * the deadline) so a harness reads the budget instead of inferring it.
257
257
  * - `repair-preempted` / `repair-deferred`: the scheduler aborted a delta
258
258
  * repair for keyframe work, or never ran it before its block resolved.
259
+ * - `repair-stopped`: the scheduler ended a running repair FETCH (its
260
+ * transport cancels it on the wire) and why; `moot` is a RAP above the
261
+ * block that arrived complete first (draft-ramadan-moq-fec 11.4.2).
259
262
  * - `repair-priority`: the catalog could not supply the SUBSCRIBER_PRIORITY a
260
263
  * repair FETCH must carry (draft-ramadan-moq-fec §11.4.5), so the FETCH was
261
264
  * sent without the parameter (`omitted`, keyframe/unknown blocks) or not
@@ -325,6 +328,11 @@ export type RepairLifecycleEvent = {
325
328
  readonly reason: RepairSkipReason;
326
329
  readonly rttMs: number | null;
327
330
  readonly budgetMs: number;
331
+ } | {
332
+ readonly version: 2;
333
+ readonly type: "repair-stopped";
334
+ readonly block: RepairBlockIdentity;
335
+ readonly reason: RepairStopReason;
328
336
  } | {
329
337
  readonly version: 2;
330
338
  readonly type: "repair-priority";
@@ -396,6 +404,13 @@ export interface BlockPolicyStats {
396
404
  * it (sources + RSB_length < K'), so no FETCH was sent.
397
405
  */
398
406
  repairsSkippedGroupCannotComplete: number;
407
+ /**
408
+ * `repairsSkipped` by reason: a keyframe-bearing block lay below a RAP
409
+ * that had already arrived complete (draft-ramadan-moq-fec 11.4.2).
410
+ */
411
+ repairsSkippedMootRap: number;
412
+ /** Running repair FETCHes the scheduler stopped, by reason (`repair-stopped`). */
413
+ repairStops: Record<RepairStopReason, number>;
399
414
  /**
400
415
  * The most recent skip: its reason, the measured RTT (null when
401
416
  * unmeasured), the time that was left to the deadline, and the request's
@@ -826,6 +841,15 @@ export declare class MulticastManager {
826
841
  * keyframe/audio work, or never dispatched before its block resolved.
827
842
  */
828
843
  noteRepairScheduling(type: "repair-preempted" | "repair-deferred", sbn: number, packetId: number, catalogTrackName?: string): void;
844
+ /** Record a running repair FETCH the scheduler stopped, and why. */
845
+ noteRepairStopped(reason: RepairStopReason, sbn: number, packetId: number, catalogTrackName?: string): void;
846
+ /**
847
+ * Whether a complete RAP above SS_ID `ssId` reached the stream's in-order
848
+ * release gate (draft-ramadan-moq-fec 11.4.2: repair below it is moot).
849
+ */
850
+ rapCompleteAbove(packetId: number, catalogTrackName: string | undefined, ssId: number): boolean;
851
+ /** Observe each complete RAP reaching a release gate (synchronous: defer FEC work). */
852
+ addRapCompleteObserver(observer: (packetId: number, catalogTrackName: string | undefined, ssId: number) => void): () => void;
829
853
  /** Catalog/reset epoch of a packet's streams; gap decisions carry it. */
830
854
  epochFor(packetId: number): number;
831
855
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"multicast-manager.d.ts","sourceRoot":"","sources":["../src/multicast-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multicast-manager.d.ts","sourceRoot":"","sources":["../src/multicast-manager.ts"],"names":[],"mappings":"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"}
@@ -11120,6 +11120,9 @@ function authoredGap(before, after) {
11120
11120
  if (!a || !b || a.mediaTimescale !== b.mediaTimescale) return false;
11121
11121
  return b.decodeTime > a.decodeTime + BigInt(a.durationTicks);
11122
11122
  }
11123
+ function ssIdAfter(a, b) {
11124
+ return (a - b | 0) > 0;
11125
+ }
11123
11126
  var FecReleaseSequencer = class {
11124
11127
  #streams = /* @__PURE__ */ new Map();
11125
11128
  #gate;
@@ -11181,11 +11184,17 @@ var FecReleaseSequencer = class {
11181
11184
  stream.last = null;
11182
11185
  stream.lastSbn = void 0;
11183
11186
  stream.discontinuity = false;
11187
+ stream.rapSsId = void 0;
11184
11188
  }
11185
11189
  if (stream.last !== null && compareFrameOrder(frame, stream.last) <= 0) {
11186
11190
  this.#recordStat("droppedStale");
11187
11191
  return;
11188
11192
  }
11193
+ const ssId = meta.fecSbn;
11194
+ if (meta.trackType === "video" && ssId !== void 0 && this.#gate.isRap?.(data, meta) === true) {
11195
+ if (stream.rapSsId === void 0 || ssIdAfter(ssId, stream.rapSsId)) stream.rapSsId = ssId;
11196
+ this.#gate.onRap?.(stream.packetId, stream.catalogTrackName, ssId);
11197
+ }
11189
11198
  if (stream.last === null) {
11190
11199
  if (meta.trackType === "video" && !meta.keyframe) {
11191
11200
  this.#recordStat("droppedBeforeStartupKeyframe");
@@ -11221,6 +11230,22 @@ var FecReleaseSequencer = class {
11221
11230
  }
11222
11231
  return earliest;
11223
11232
  }
11233
+ /**
11234
+ * Whether a complete RAP above SS_ID `ssId` entered the gate of a stream of
11235
+ * `packetId` (draft-ramadan-moq-fec 11.4.2: repair of a block below it is
11236
+ * moot). Its SS_ID is the one its frame completed in; a frame's packets
11237
+ * hold consecutive SS_IDs in authored order, so a complete RAP with a
11238
+ * packet above `ssId` has every packet of it at or above the first SS_ID
11239
+ * any loss at or below `ssId` could have taken.
11240
+ */
11241
+ rapAbove(packetId, catalogTrackName, ssId) {
11242
+ for (const stream of this.#streams.values()) {
11243
+ if (stream.packetId !== packetId) continue;
11244
+ if (catalogTrackName !== void 0 && stream.catalogTrackName !== catalogTrackName) continue;
11245
+ if (stream.rapSsId !== void 0 && ssIdAfter(stream.rapSsId, ssId)) return true;
11246
+ }
11247
+ return false;
11248
+ }
11224
11249
  /** Re-evaluate held gaps after FEC state changed. */
11225
11250
  poke(streamKey) {
11226
11251
  if (streamKey !== void 0) {
@@ -11311,7 +11336,8 @@ var FecReleaseSequencer = class {
11311
11336
  buf: [],
11312
11337
  last: null,
11313
11338
  lastSbn: void 0,
11314
- discontinuity: false
11339
+ discontinuity: false,
11340
+ rapSsId: void 0
11315
11341
  };
11316
11342
  this.#streams.set(streamKey, stream);
11317
11343
  }
@@ -11674,6 +11700,10 @@ var MmtpContainerParser = class _MmtpContainerParser {
11674
11700
  fecReleaseEarliestHeldAtMs(packetId, catalogTrackName) {
11675
11701
  return this.#fecSequencer?.earliestHeldArrivalMs(packetId, catalogTrackName);
11676
11702
  }
11703
+ /** See FecReleaseSequencer.rapAbove; false when no stream is FEC-gated. */
11704
+ fecReleaseRapAbove(packetId, catalogTrackName, ssId) {
11705
+ return this.#fecSequencer?.rapAbove(packetId, catalogTrackName, ssId) ?? false;
11706
+ }
11677
11707
  /** Re-evaluate held gaps after FEC block state changed. */
11678
11708
  pokeFecRelease(packetId, catalogTrackName) {
11679
11709
  if (!this.#fecSequencer) return;
@@ -13069,6 +13099,7 @@ var MmtpRouter = class {
13069
13099
  #onBlockFailed = null;
13070
13100
  /** Typed observer of every gap decision the release gate makes. */
13071
13101
  #onFrameGap;
13102
+ #fecRapObservers = /* @__PURE__ */ new Set();
13072
13103
  // Pokes requested while a packet is being processed are deferred to its
13073
13104
  // end: a synchronous recovery completes its block BEFORE routing the
13074
13105
  // recovered frames, and releasing a held gap in between would strand them.
@@ -14727,6 +14758,24 @@ var MmtpRouter = class {
14727
14758
  fecReleaseEarliestHeldAtMs(packetId, catalogTrackName) {
14728
14759
  return this.#parser.fecReleaseEarliestHeldAtMs(packetId, catalogTrackName);
14729
14760
  }
14761
+ /**
14762
+ * Whether a complete RAP above SS_ID `ssId` entered this stream's FEC
14763
+ * release gate (see FecReleaseSequencer.rapAbove).
14764
+ */
14765
+ fecReleaseRapAbove(packetId, catalogTrackName, ssId) {
14766
+ return this.#parser.fecReleaseRapAbove(packetId, catalogTrackName, ssId);
14767
+ }
14768
+ /**
14769
+ * Observe each complete RAP entering an FEC release gate, with the SS_ID
14770
+ * its frame completed in. Called synchronously from the frame push: an
14771
+ * observer that drives FEC state must defer that work.
14772
+ */
14773
+ addFecRapObserver(observer) {
14774
+ this.#fecRapObservers.add(observer);
14775
+ return () => {
14776
+ this.#fecRapObservers.delete(observer);
14777
+ };
14778
+ }
14730
14779
  #requestFecPoke(packetId, catalogTrackName) {
14731
14780
  if (this.#disposed) return;
14732
14781
  if (this.#fecPokeDepth > 0) {
@@ -14772,6 +14821,10 @@ var MmtpRouter = class {
14772
14821
  this.#onFrameGap?.(decision);
14773
14822
  return decision;
14774
14823
  },
14824
+ isRap: (data, meta) => this.#isRapForGap(data, meta),
14825
+ onRap: (packetId, catalogTrackName, ssId) => {
14826
+ for (const observer of this.#fecRapObservers) observer(packetId, catalogTrackName, ssId);
14827
+ },
14775
14828
  onReleased: (data, meta) => {
14776
14829
  if (meta.trackType !== "video" || meta.mpuSequenceNumber === void 0) return;
14777
14830
  const timing = meta.authoredTiming;
@@ -21138,6 +21191,8 @@ function newBlockPolicyStats(packetId, catalogTrackName, epoch) {
21138
21191
  repairsSkippedPresentationDelayUnavailable: 0,
21139
21192
  repairsSkippedRangeNoAnchor: 0,
21140
21193
  repairsSkippedGroupCannotComplete: 0,
21194
+ repairsSkippedMootRap: 0,
21195
+ repairStops: { preempted: 0, reprioritized: 0, expired: 0, resolved: 0, reset: 0, disposed: 0, moot: 0 },
21141
21196
  lastRepairSkip: null,
21142
21197
  keyframeRepairFetchesSent: 0,
21143
21198
  rangeRepairFetchesSent: 0,
@@ -21224,7 +21279,17 @@ var REPAIR_SKIP_REASONS = /* @__PURE__ */ new Set([
21224
21279
  "rtt-exceeds-budget",
21225
21280
  "presentation-delay-unavailable",
21226
21281
  "range-no-anchor",
21227
- "group-cannot-complete"
21282
+ "group-cannot-complete",
21283
+ "moot-rap"
21284
+ ]);
21285
+ var REPAIR_STOP_REASONS = /* @__PURE__ */ new Set([
21286
+ "preempted",
21287
+ "reprioritized",
21288
+ "expired",
21289
+ "resolved",
21290
+ "reset",
21291
+ "disposed",
21292
+ "moot"
21228
21293
  ]);
21229
21294
  var REPAIR_DEADLINE_BOUNDS = /* @__PURE__ */ new Set(["wait", "presentation", "keyframe", "retention"]);
21230
21295
  var GAP_REASONS = {
@@ -21283,6 +21348,8 @@ function isRepairLifecycleEvent(value) {
21283
21348
  ]) && isRepairBlockIdentity(block) && (value["priority"] === 0 || value["priority"] === 1 || value["priority"] === 2) && isFiniteNumber(value["rttMs"]) && value["rttMs"] > 0 && isFiniteNumber(value["budgetMs"]) && value["budgetMs"] > value["rttMs"] && isNullableNonNegative(value["delayMs"]) && isNullableNonNegative(value["blockAgeMs"]) && value["delayMs"] === null === (value["blockAgeMs"] === null) && REPAIR_DEADLINE_BOUNDS.has(value["bound"]);
21284
21349
  case "repair-skipped":
21285
21350
  return hasExactKeys(value, ["version", "type", "block", "reason", "rttMs", "budgetMs"]) && isRepairBlockIdentity(block) && REPAIR_SKIP_REASONS.has(value["reason"]) && isNullableNonNegative(value["rttMs"]) && isFiniteNumber(value["budgetMs"]);
21351
+ case "repair-stopped":
21352
+ return hasExactKeys(value, ["version", "type", "block", "reason"]) && isRepairBlockIdentity(block) && REPAIR_STOP_REASONS.has(value["reason"]);
21286
21353
  case "repair-priority": {
21287
21354
  const blockClass = value["blockClass"];
21288
21355
  const action = value["action"];
@@ -22873,6 +22940,7 @@ var MulticastManager = class {
22873
22940
  else if (reason === "rtt-exceeds-budget") stats.repairsSkippedRttExceedsBudget++;
22874
22941
  else if (reason === "range-no-anchor") stats.repairsSkippedRangeNoAnchor++;
22875
22942
  else if (reason === "group-cannot-complete") stats.repairsSkippedGroupCannotComplete++;
22943
+ else if (reason === "moot-rap") stats.repairsSkippedMootRap++;
22876
22944
  else stats.repairsSkippedPresentationDelayUnavailable++;
22877
22945
  stats.lastRepairSkip = {
22878
22946
  reason,
@@ -22933,6 +23001,27 @@ var MulticastManager = class {
22933
23001
  block: repairBlockIdentity(packetId, sbn, catalogTrackName)
22934
23002
  });
22935
23003
  }
23004
+ /** Record a running repair FETCH the scheduler stopped, and why. */
23005
+ noteRepairStopped(reason, sbn, packetId, catalogTrackName) {
23006
+ this.#statsFor(packetId, catalogTrackName).repairStops[reason]++;
23007
+ this.#emitRepairLifecycle({
23008
+ version: 2,
23009
+ type: "repair-stopped",
23010
+ block: repairBlockIdentity(packetId, sbn, catalogTrackName),
23011
+ reason
23012
+ });
23013
+ }
23014
+ /**
23015
+ * Whether a complete RAP above SS_ID `ssId` reached the stream's in-order
23016
+ * release gate (draft-ramadan-moq-fec 11.4.2: repair below it is moot).
23017
+ */
23018
+ rapCompleteAbove(packetId, catalogTrackName, ssId) {
23019
+ return this.#router.fecReleaseRapAbove(packetId, catalogTrackName, ssId);
23020
+ }
23021
+ /** Observe each complete RAP reaching a release gate (synchronous: defer FEC work). */
23022
+ addRapCompleteObserver(observer) {
23023
+ return this.#router.addFecRapObserver(observer);
23024
+ }
22936
23025
  /** Catalog/reset epoch of a packet's streams; gap decisions carry it. */
22937
23026
  epochFor(packetId) {
22938
23027
  return this.#fec.epochFor(packetId);
@@ -22948,6 +23037,7 @@ var MulticastManager = class {
22948
23037
  if (stats.epoch !== this.#fec.epochFor(stats.packetId)) continue;
22949
23038
  out[key] = {
22950
23039
  ...stats,
23040
+ repairStops: { ...stats.repairStops },
22951
23041
  lastRepairSkip: stats.lastRepairSkip === null ? null : { ...stats.lastRepairSkip }
22952
23042
  };
22953
23043
  }