@blockcast/mmt-container 2.1.0 → 2.2.0-main.20c61ec37932

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 (73) hide show
  1. package/dist/browser-runtime.js +636 -77
  2. package/dist/browser-runtime.js.map +4 -4
  3. package/dist/carp-catalog.js.map +1 -1
  4. package/dist/catalog-fec-params.d.ts +16 -0
  5. package/dist/catalog-fec-params.d.ts.map +1 -1
  6. package/dist/catalog-fec-params.js +15 -0
  7. package/dist/catalog-fec-params.js.map +2 -2
  8. package/dist/catalog-network-source.js.map +1 -1
  9. package/dist/cmcd-producer.d.ts +5 -0
  10. package/dist/cmcd-producer.d.ts.map +1 -1
  11. package/dist/cmcd-producer.js.map +2 -2
  12. package/dist/delivery-catalog.js.map +1 -1
  13. package/dist/delta-fallback-config.js.map +1 -1
  14. package/dist/fec-manager.js.map +2 -2
  15. package/dist/fec-state.js.map +1 -1
  16. package/dist/fec-worker-setup.js.map +1 -1
  17. package/dist/held-layer-admission.js.map +1 -1
  18. package/dist/index.d.ts +3 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +6 -0
  21. package/dist/index.js.map +2 -2
  22. package/dist/iso-block-locator.js.map +1 -1
  23. package/dist/mfu-reassembler.js +12 -19
  24. package/dist/mfu-reassembler.js.map +2 -2
  25. package/dist/mmtp-container-parser.js +12 -19
  26. package/dist/mmtp-container-parser.js.map +2 -2
  27. package/dist/mmtp-container-parser.no-modules.js +133 -34
  28. package/dist/mmtp-container-parser.no-modules.js.map +3 -3
  29. package/dist/mmtp-decode-pipeline.js +12 -19
  30. package/dist/mmtp-decode-pipeline.js.map +2 -2
  31. package/dist/mmtp-fec-session.d.ts +41 -3
  32. package/dist/mmtp-fec-session.d.ts.map +1 -1
  33. package/dist/mmtp-fec-session.js +118 -13
  34. package/dist/mmtp-fec-session.js.map +3 -3
  35. package/dist/mmtp-router.d.ts +9 -1
  36. package/dist/mmtp-router.d.ts.map +1 -1
  37. package/dist/mmtp-router.js +1468 -33
  38. package/dist/mmtp-router.js.map +4 -4
  39. package/dist/multicast-auth-catalog.js.map +1 -1
  40. package/dist/multicast-input.js.map +1 -1
  41. package/dist/multicast-manager.d.ts +15 -2
  42. package/dist/multicast-manager.d.ts.map +1 -1
  43. package/dist/multicast-manager.js +15246 -14969
  44. package/dist/multicast-manager.js.map +4 -4
  45. package/dist/multicast-transport.d.ts +11 -3
  46. package/dist/multicast-transport.d.ts.map +1 -1
  47. package/dist/multicast-transport.js +255 -19
  48. package/dist/multicast-transport.js.map +4 -4
  49. package/dist/multicast-unwrap.js +12 -19
  50. package/dist/multicast-unwrap.js.map +2 -2
  51. package/dist/no-modules.js +130 -33
  52. package/dist/no-modules.js.map +3 -3
  53. package/dist/repair-fetch.js.map +1 -1
  54. package/dist/repair-layer-subscriptions.d.ts +82 -0
  55. package/dist/repair-layer-subscriptions.d.ts.map +1 -0
  56. package/dist/repair-layer-subscriptions.js +192 -0
  57. package/dist/repair-layer-subscriptions.js.map +7 -0
  58. package/dist/signaling.js.map +2 -2
  59. package/dist/timestamp-codec.js +12 -19
  60. package/dist/timestamp-codec.js.map +2 -2
  61. package/dist/wasm-mfu-reassembler.js.map +1 -1
  62. package/dist/wasm-mmtp-container-parser.js +12 -19
  63. package/dist/wasm-mmtp-container-parser.js.map +2 -2
  64. package/package.json +5 -5
  65. package/schemas/catalog.schema.json +4 -0
  66. package/src/catalog-fec-params.ts +35 -0
  67. package/src/cmcd-producer.ts +5 -0
  68. package/src/index.ts +12 -0
  69. package/src/mmtp-fec-session.ts +115 -15
  70. package/src/mmtp-router.ts +81 -16
  71. package/src/multicast-manager.ts +26 -5
  72. package/src/multicast-transport.ts +44 -20
  73. package/src/repair-layer-subscriptions.ts +261 -0
@@ -2,6 +2,7 @@ import { FEC_BLOCK_PROFILES, isFecBlockProfile, parseFecBlockProfile, type FecBi
2
2
  import { catalogFecInterleaveMs, type FecInterleaveCatalog } from "@blockcast/mmt-fec";
3
3
  import type { RepairLayerParams, RepairLayersResolution, RepairOverlayParams } from "./repair-layers.js";
4
4
  import type { RepairTarget } from "./repair-fetch.js";
5
+ import type { MoqRepairDelivery } from "./repair-layer-subscriptions.js";
5
6
  export { catalogFecInterleaveMs, type FecInterleaveCatalog };
6
7
  export { FEC_BLOCK_PROFILES, isFecBlockProfile, parseFecBlockProfile, type FecBlockProfile };
7
8
  export { validateFecCatalog, type FecCatalogCode, type FecCatalogInstance, type FecCatalogIssue, type FecCatalogOutcome, type FecCatalogReceiver, type FecCatalogReport, } from "@blockcast/mmt-base";
@@ -160,6 +161,9 @@ export type TrackFecParams = {
160
161
  /** Keyframe overlay instances declared for this track. Present (possibly
161
162
  * empty) whenever repairLayers is. */
162
163
  repairOverlays?: readonly RepairOverlayParams[];
164
+ /** The publisher's MoQ delivery mode (`catalogTrackDeliveryMode`).
165
+ * Present whenever repairLayers is; `RepairLayerSubscriptions` reads it. */
166
+ deliveryMode?: MoqRepairDelivery;
163
167
  fps?: number;
164
168
  sampleRate?: number;
165
169
  };
@@ -191,6 +195,18 @@ export declare function catalogTrackFecUnavailable(catalog: RepairLayerCatalog |
191
195
  * receiver then joins none of its repair tracks. Never throws.
192
196
  */
193
197
  export declare function resolveRepairLayers(catalog: RepairLayerCatalog | undefined, source: string | CatalogTrackRef): RepairLayersResolution | undefined;
198
+ /**
199
+ * The publisher's MoQ delivery mode for one source track: `deliveryMode` on
200
+ * its base track entry (the hang rendition or MSF `tracks[]` entry its FEC
201
+ * binds to). `stream` means QUIC retransmits, so the receiver subscribes no
202
+ * repair track. Absent or any other value is `datagram`, FFmpeg's
203
+ * `moq_delivery_mode` default: a receiver never silently drops repair on a
204
+ * lossy path. When a track is declared both as a hang rendition and as an
205
+ * MSF `tracks[]` entry, the rendition is authoritative: a `deliveryMode` on
206
+ * the shadowed `tracks[]` entry is not read (fails safe to `datagram`).
207
+ * Never throws.
208
+ */
209
+ export declare function catalogTrackDeliveryMode(catalog: RepairLayerCatalog | undefined, source: string | CatalogTrackRef): MoqRepairDelivery;
194
210
  /**
195
211
  * The on-demand repair target of one source track: its base layer 0 repair
196
212
  * track and the two catalog priorities draft-ramadan-moq-fec §11.4.5 derives
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-fec-params.d.ts","sourceRoot":"","sources":["../src/catalog-fec-params.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-fec-params.d.ts","sourceRoot":"","sources":["../src/catalog-fec-params.ts"],"names":[],"mappings":"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"}
@@ -688,6 +688,19 @@ function resolveRepairLayers(catalog, source) {
688
688
  totalBaseRepairSymbols: binding.totalBaseRepairSymbols
689
689
  };
690
690
  }
691
+ function valueAt(catalog, pointer) {
692
+ let node = catalog;
693
+ for (const segment of pointer.split("/").slice(1)) {
694
+ if (typeof node !== "object" || node === null) return void 0;
695
+ node = node[segment.replace(/~1/g, "/").replace(/~0/g, "~")];
696
+ }
697
+ return node;
698
+ }
699
+ function catalogTrackDeliveryMode(catalog, source) {
700
+ const binding = bindingOf(catalog, source);
701
+ const entry = binding ? valueAt(catalog, binding.pointer) : void 0;
702
+ return entry?.deliveryMode === "stream" ? "stream" : "datagram";
703
+ }
691
704
  function moqtPriority(value) {
692
705
  return Number.isSafeInteger(value) && value >= 0 && value <= 255 ? value : null;
693
706
  }
@@ -731,6 +744,7 @@ function fecParams(catalog, track, fps, sampleRate) {
731
744
  repairTrackName: base.repairTrack,
732
745
  repairLayers: repair.baseLayers,
733
746
  repairOverlays: repair.overlays,
747
+ deliveryMode: catalogTrackDeliveryMode(catalog, track),
734
748
  ...mediaRate
735
749
  };
736
750
  }
@@ -789,6 +803,7 @@ export {
789
803
  catalogGroupDurationMs,
790
804
  catalogKeyframeCadenceMs,
791
805
  catalogRepairTarget,
806
+ catalogTrackDeliveryMode,
792
807
  catalogTrackFecUnavailable,
793
808
  isFecBlockProfile,
794
809
  joinedRepairSymbolCount,