@blockcast/mmt-container 0.1.0-main.0399efef1f07

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 (694) hide show
  1. package/README.md +432 -0
  2. package/dist/.build-stamp +0 -0
  3. package/dist/__tests__/test-utils.d.ts +71 -0
  4. package/dist/__tests__/test-utils.d.ts.map +1 -0
  5. package/dist/align.d.ts +152 -0
  6. package/dist/align.d.ts.map +1 -0
  7. package/dist/align.js +88 -0
  8. package/dist/align.js.map +7 -0
  9. package/dist/audio-init-parser.d.ts +66 -0
  10. package/dist/audio-init-parser.d.ts.map +1 -0
  11. package/dist/audio-init-parser.js +118 -0
  12. package/dist/audio-init-parser.js.map +7 -0
  13. package/dist/audio-ring-buffer.d.ts +50 -0
  14. package/dist/audio-ring-buffer.d.ts.map +1 -0
  15. package/dist/audio-ring-buffer.js +93 -0
  16. package/dist/audio-ring-buffer.js.map +7 -0
  17. package/dist/authored-timing.d.ts +32 -0
  18. package/dist/authored-timing.d.ts.map +1 -0
  19. package/dist/authored-timing.js +32 -0
  20. package/dist/authored-timing.js.map +7 -0
  21. package/dist/browser-runtime.js +20087 -0
  22. package/dist/browser-runtime.js.map +7 -0
  23. package/dist/carp-catalog.d.ts +318 -0
  24. package/dist/carp-catalog.d.ts.map +1 -0
  25. package/dist/carp-catalog.js +873 -0
  26. package/dist/carp-catalog.js.map +7 -0
  27. package/dist/catalog-fec-params.d.ts +202 -0
  28. package/dist/catalog-fec-params.d.ts.map +1 -0
  29. package/dist/catalog-fec-params.js +568 -0
  30. package/dist/catalog-fec-params.js.map +7 -0
  31. package/dist/catalog-network-source.d.ts +19 -0
  32. package/dist/catalog-network-source.d.ts.map +1 -0
  33. package/dist/catalog-network-source.js +22 -0
  34. package/dist/catalog-network-source.js.map +7 -0
  35. package/dist/catalog-validator.d.ts +18 -0
  36. package/dist/catalog-validator.d.ts.map +1 -0
  37. package/dist/catalog-validator.js +7747 -0
  38. package/dist/catalog-validator.js.map +7 -0
  39. package/dist/cmaf-block-assembler.d.ts +217 -0
  40. package/dist/cmaf-block-assembler.d.ts.map +1 -0
  41. package/dist/cmaf-block-assembler.js +1769 -0
  42. package/dist/cmaf-block-assembler.js.map +7 -0
  43. package/dist/cmaf-group-batcher.d.ts +38 -0
  44. package/dist/cmaf-group-batcher.d.ts.map +1 -0
  45. package/dist/cmaf-group-batcher.js +195 -0
  46. package/dist/cmaf-group-batcher.js.map +7 -0
  47. package/dist/cmcd-producer.d.ts +104 -0
  48. package/dist/cmcd-producer.d.ts.map +1 -0
  49. package/dist/cmcd-producer.js +207 -0
  50. package/dist/cmcd-producer.js.map +7 -0
  51. package/dist/codec-utils.d.ts +248 -0
  52. package/dist/codec-utils.d.ts.map +1 -0
  53. package/dist/codec-utils.js +1268 -0
  54. package/dist/codec-utils.js.map +7 -0
  55. package/dist/fec-codec.d.ts +32 -0
  56. package/dist/fec-codec.d.ts.map +1 -0
  57. package/dist/fec-codec.js +47 -0
  58. package/dist/fec-codec.js.map +7 -0
  59. package/dist/fec-manager.d.ts +307 -0
  60. package/dist/fec-manager.d.ts.map +1 -0
  61. package/dist/fec-manager.js +1530 -0
  62. package/dist/fec-manager.js.map +7 -0
  63. package/dist/fec-starvation-detector.d.ts +59 -0
  64. package/dist/fec-starvation-detector.d.ts.map +1 -0
  65. package/dist/fec-starvation-detector.js +75 -0
  66. package/dist/fec-starvation-detector.js.map +7 -0
  67. package/dist/fec-worker-setup.d.ts +88 -0
  68. package/dist/fec-worker-setup.d.ts.map +1 -0
  69. package/dist/fec-worker-setup.js +614 -0
  70. package/dist/fec-worker-setup.js.map +7 -0
  71. package/dist/fmp4-completion.d.ts +30 -0
  72. package/dist/fmp4-completion.d.ts.map +1 -0
  73. package/dist/fmp4-completion.js +21 -0
  74. package/dist/fmp4-completion.js.map +7 -0
  75. package/dist/fmp4-reader.d.ts +37 -0
  76. package/dist/fmp4-reader.d.ts.map +1 -0
  77. package/dist/fmp4-reader.js +100 -0
  78. package/dist/fmp4-reader.js.map +7 -0
  79. package/dist/index.d.ts +47 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +380 -0
  82. package/dist/index.js.map +7 -0
  83. package/dist/iso-bmff-timing.d.ts +78 -0
  84. package/dist/iso-bmff-timing.d.ts.map +1 -0
  85. package/dist/iso-bmff-timing.js +618 -0
  86. package/dist/iso-bmff-timing.js.map +7 -0
  87. package/dist/loc.d.ts +68 -0
  88. package/dist/loc.d.ts.map +1 -0
  89. package/dist/loc.js +143 -0
  90. package/dist/loc.js.map +7 -0
  91. package/dist/manifest-auth-plan.d.ts +30 -0
  92. package/dist/manifest-auth-plan.d.ts.map +1 -0
  93. package/dist/manifest-auth-plan.js +1285 -0
  94. package/dist/manifest-auth-plan.js.map +7 -0
  95. package/dist/media-router.d.ts +251 -0
  96. package/dist/media-router.d.ts.map +1 -0
  97. package/dist/media-router.js +624 -0
  98. package/dist/media-router.js.map +7 -0
  99. package/dist/mfu-reassembler.d.ts +396 -0
  100. package/dist/mfu-reassembler.d.ts.map +1 -0
  101. package/dist/mfu-reassembler.js +3085 -0
  102. package/dist/mfu-reassembler.js.map +7 -0
  103. package/dist/mfu-reassembly-policy.d.ts +24 -0
  104. package/dist/mfu-reassembly-policy.d.ts.map +1 -0
  105. package/dist/mfu-reassembly-policy.js +99 -0
  106. package/dist/mfu-reassembly-policy.js.map +7 -0
  107. package/dist/mmtp-container-parser.d.ts +434 -0
  108. package/dist/mmtp-container-parser.d.ts.map +1 -0
  109. package/dist/mmtp-container-parser.js +6164 -0
  110. package/dist/mmtp-container-parser.js.map +7 -0
  111. package/dist/mmtp-container-parser.no-modules.js +8999 -0
  112. package/dist/mmtp-container-parser.no-modules.js.map +7 -0
  113. package/dist/mmtp-decode-pipeline.d.ts +132 -0
  114. package/dist/mmtp-decode-pipeline.d.ts.map +1 -0
  115. package/dist/mmtp-decode-pipeline.js +6413 -0
  116. package/dist/mmtp-decode-pipeline.js.map +7 -0
  117. package/dist/mmtp-router.d.ts +390 -0
  118. package/dist/mmtp-router.d.ts.map +1 -0
  119. package/dist/mmtp-router.js +9242 -0
  120. package/dist/mmtp-router.js.map +7 -0
  121. package/dist/mmtp-to-cmaf.d.ts +181 -0
  122. package/dist/mmtp-to-cmaf.d.ts.map +1 -0
  123. package/dist/mmtp-to-cmaf.js +802 -0
  124. package/dist/mmtp-to-cmaf.js.map +7 -0
  125. package/dist/multicast-auth-catalog.d.ts +115 -0
  126. package/dist/multicast-auth-catalog.d.ts.map +1 -0
  127. package/dist/multicast-auth-catalog.js +202 -0
  128. package/dist/multicast-auth-catalog.js.map +7 -0
  129. package/dist/multicast-input.d.ts +107 -0
  130. package/dist/multicast-input.d.ts.map +1 -0
  131. package/dist/multicast-input.js +256 -0
  132. package/dist/multicast-input.js.map +7 -0
  133. package/dist/multicast-manager.d.ts +369 -0
  134. package/dist/multicast-manager.d.ts.map +1 -0
  135. package/dist/multicast-manager.js +13400 -0
  136. package/dist/multicast-manager.js.map +7 -0
  137. package/dist/multicast-transport.d.ts +61 -0
  138. package/dist/multicast-transport.d.ts.map +1 -0
  139. package/dist/multicast-transport.js +1665 -0
  140. package/dist/multicast-transport.js.map +7 -0
  141. package/dist/multicast-unwrap.d.ts +57 -0
  142. package/dist/multicast-unwrap.d.ts.map +1 -0
  143. package/dist/multicast-unwrap.js +384 -0
  144. package/dist/multicast-unwrap.js.map +7 -0
  145. package/dist/no-modules.d.ts +9 -0
  146. package/dist/no-modules.d.ts.map +1 -0
  147. package/dist/no-modules.js +8965 -0
  148. package/dist/no-modules.js.map +7 -0
  149. package/dist/phase14-catalog-override.d.ts +126 -0
  150. package/dist/phase14-catalog-override.d.ts.map +1 -0
  151. package/dist/phase14-catalog-override.js +155 -0
  152. package/dist/phase14-catalog-override.js.map +7 -0
  153. package/dist/repair-fetch.d.ts +58 -0
  154. package/dist/repair-fetch.d.ts.map +1 -0
  155. package/dist/repair-fetch.js +127 -0
  156. package/dist/repair-fetch.js.map +7 -0
  157. package/dist/repair-layers.d.ts +141 -0
  158. package/dist/repair-layers.d.ts.map +1 -0
  159. package/dist/repair-layers.js +303 -0
  160. package/dist/repair-layers.js.map +7 -0
  161. package/dist/sample-combiner.d.ts +212 -0
  162. package/dist/sample-combiner.d.ts.map +1 -0
  163. package/dist/sample-combiner.js +616 -0
  164. package/dist/sample-combiner.js.map +7 -0
  165. package/dist/signaling.d.ts +29 -0
  166. package/dist/signaling.d.ts.map +1 -0
  167. package/dist/signaling.js +232 -0
  168. package/dist/signaling.js.map +7 -0
  169. package/dist/source-auth.d.ts +2 -0
  170. package/dist/source-auth.d.ts.map +1 -0
  171. package/dist/source-auth.js +1238 -0
  172. package/dist/source-auth.js.map +7 -0
  173. package/dist/switching-set-alignment.d.ts +61 -0
  174. package/dist/switching-set-alignment.d.ts.map +1 -0
  175. package/dist/switching-set-alignment.js +85 -0
  176. package/dist/switching-set-alignment.js.map +7 -0
  177. package/dist/timestamp-codec.d.ts +34 -0
  178. package/dist/timestamp-codec.d.ts.map +1 -0
  179. package/dist/timestamp-codec.js +456 -0
  180. package/dist/timestamp-codec.js.map +7 -0
  181. package/dist/track-pipeline-setup.d.ts +72 -0
  182. package/dist/track-pipeline-setup.d.ts.map +1 -0
  183. package/dist/track-pipeline-setup.js +306 -0
  184. package/dist/track-pipeline-setup.js.map +7 -0
  185. package/dist/track-pipeline.d.ts +121 -0
  186. package/dist/track-pipeline.d.ts.map +1 -0
  187. package/dist/track-pipeline.js +229 -0
  188. package/dist/track-pipeline.js.map +7 -0
  189. package/dist/track-session.d.ts +398 -0
  190. package/dist/track-session.d.ts.map +1 -0
  191. package/dist/track-session.js +767 -0
  192. package/dist/track-session.js.map +7 -0
  193. package/dist/transport-pool.d.ts +69 -0
  194. package/dist/transport-pool.d.ts.map +1 -0
  195. package/dist/transport-pool.js +88 -0
  196. package/dist/transport-pool.js.map +7 -0
  197. package/dist/wasm-mfu-reassembler.d.ts +92 -0
  198. package/dist/wasm-mfu-reassembler.d.ts.map +1 -0
  199. package/dist/wasm-mfu-reassembler.js +2139 -0
  200. package/dist/wasm-mfu-reassembler.js.map +7 -0
  201. package/dist/wasm-mmtp-container-parser.d.ts +10 -0
  202. package/dist/wasm-mmtp-container-parser.d.ts.map +1 -0
  203. package/dist/wasm-mmtp-container-parser.js +6418 -0
  204. package/dist/wasm-mmtp-container-parser.js.map +7 -0
  205. package/node_modules/@blockcast/fec-worker/README.md +213 -0
  206. package/node_modules/@blockcast/fec-worker/dist/.build-stamp +0 -0
  207. package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.d.ts +87 -0
  208. package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.d.ts.map +1 -0
  209. package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.js +279 -0
  210. package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.js.map +1 -0
  211. package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.d.ts +252 -0
  212. package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.d.ts.map +1 -0
  213. package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.js +11 -0
  214. package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.js.map +1 -0
  215. package/node_modules/@blockcast/fec-worker/dist/fec-worker.d.ts +14 -0
  216. package/node_modules/@blockcast/fec-worker/dist/fec-worker.d.ts.map +1 -0
  217. package/node_modules/@blockcast/fec-worker/dist/fec-worker.js +565 -0
  218. package/node_modules/@blockcast/fec-worker/dist/fec-worker.js.map +7 -0
  219. package/node_modules/@blockcast/fec-worker/dist/index.d.ts +10 -0
  220. package/node_modules/@blockcast/fec-worker/dist/index.d.ts.map +1 -0
  221. package/node_modules/@blockcast/fec-worker/dist/index.js +8 -0
  222. package/node_modules/@blockcast/fec-worker/dist/index.js.map +1 -0
  223. package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.d.ts +20 -0
  224. package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.d.ts.map +1 -0
  225. package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.js +349 -0
  226. package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.js.map +7 -0
  227. package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.d.ts +104 -0
  228. package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.d.ts.map +1 -0
  229. package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.js +181 -0
  230. package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.js.map +1 -0
  231. package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.d.ts +179 -0
  232. package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.d.ts.map +1 -0
  233. package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.js +47 -0
  234. package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.js.map +1 -0
  235. package/node_modules/@blockcast/fec-worker/dist/transfer.d.ts +9 -0
  236. package/node_modules/@blockcast/fec-worker/dist/transfer.d.ts.map +1 -0
  237. package/node_modules/@blockcast/fec-worker/dist/transfer.js +13 -0
  238. package/node_modules/@blockcast/fec-worker/dist/transfer.js.map +1 -0
  239. package/node_modules/@blockcast/fec-worker/package.json +59 -0
  240. package/node_modules/@blockcast/fec-worker/src/fec-worker-client.ts +319 -0
  241. package/node_modules/@blockcast/fec-worker/src/fec-worker-types.ts +268 -0
  242. package/node_modules/@blockcast/fec-worker/src/fec-worker.ts +1048 -0
  243. package/node_modules/@blockcast/fec-worker/src/index.ts +32 -0
  244. package/node_modules/@blockcast/fec-worker/src/shred-fec-worker.ts +558 -0
  245. package/node_modules/@blockcast/fec-worker/src/shred-worker-client.ts +222 -0
  246. package/node_modules/@blockcast/fec-worker/src/shred-worker-types.ts +194 -0
  247. package/node_modules/@blockcast/fec-worker/src/transfer.ts +12 -0
  248. package/node_modules/@blockcast/mmt-alta-parse/README.md +181 -0
  249. package/node_modules/@blockcast/mmt-alta-parse/dist/.build-stamp +0 -0
  250. package/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts +57 -0
  251. package/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts.map +1 -0
  252. package/node_modules/@blockcast/mmt-alta-parse/dist/index.js +115 -0
  253. package/node_modules/@blockcast/mmt-alta-parse/dist/index.js.map +1 -0
  254. package/node_modules/@blockcast/mmt-alta-parse/package.json +50 -0
  255. package/node_modules/@blockcast/mmt-alta-parse/src/index.ts +136 -0
  256. package/node_modules/@blockcast/mmt-base/README.md +120 -0
  257. package/node_modules/@blockcast/mmt-base/dist/.build-stamp +0 -0
  258. package/node_modules/@blockcast/mmt-base/dist/index.d.ts +2 -0
  259. package/node_modules/@blockcast/mmt-base/dist/index.d.ts.map +1 -0
  260. package/node_modules/@blockcast/mmt-base/dist/index.js +2 -0
  261. package/node_modules/@blockcast/mmt-base/dist/index.js.map +1 -0
  262. package/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts +276 -0
  263. package/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts.map +1 -0
  264. package/node_modules/@blockcast/mmt-base/dist/mmtp.js +645 -0
  265. package/node_modules/@blockcast/mmt-base/dist/mmtp.js.map +1 -0
  266. package/node_modules/@blockcast/mmt-base/package.json +49 -0
  267. package/node_modules/@blockcast/mmt-base/src/index.ts +1 -0
  268. package/node_modules/@blockcast/mmt-base/src/mmtp.ts +899 -0
  269. package/node_modules/@blockcast/mmt-fec/README.md +270 -0
  270. package/node_modules/@blockcast/mmt-fec/dist/.build-stamp +0 -0
  271. package/node_modules/@blockcast/mmt-fec/dist/block-manager.d.ts +82 -0
  272. package/node_modules/@blockcast/mmt-fec/dist/block-manager.d.ts.map +1 -0
  273. package/node_modules/@blockcast/mmt-fec/dist/block-manager.js +296 -0
  274. package/node_modules/@blockcast/mmt-fec/dist/block-manager.js.map +1 -0
  275. package/node_modules/@blockcast/mmt-fec/dist/block-processor.d.ts +72 -0
  276. package/node_modules/@blockcast/mmt-fec/dist/block-processor.d.ts.map +1 -0
  277. package/node_modules/@blockcast/mmt-fec/dist/block-processor.js +192 -0
  278. package/node_modules/@blockcast/mmt-fec/dist/block-processor.js.map +1 -0
  279. package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.d.ts +46 -0
  280. package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.d.ts.map +1 -0
  281. package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.js +96 -0
  282. package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.js.map +1 -0
  283. package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.d.ts +33 -0
  284. package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.d.ts.map +1 -0
  285. package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.js +57 -0
  286. package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.js.map +1 -0
  287. package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.d.ts +185 -0
  288. package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.d.ts.map +1 -0
  289. package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.js +273 -0
  290. package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.js.map +1 -0
  291. package/node_modules/@blockcast/mmt-fec/dist/index.d.ts +22 -0
  292. package/node_modules/@blockcast/mmt-fec/dist/index.d.ts.map +1 -0
  293. package/node_modules/@blockcast/mmt-fec/dist/index.js +22 -0
  294. package/node_modules/@blockcast/mmt-fec/dist/index.js.map +1 -0
  295. package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.d.ts +20 -0
  296. package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.d.ts.map +1 -0
  297. package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.js +28 -0
  298. package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.js.map +1 -0
  299. package/node_modules/@blockcast/mmt-fec/dist/oti.d.ts +172 -0
  300. package/node_modules/@blockcast/mmt-fec/dist/oti.d.ts.map +1 -0
  301. package/node_modules/@blockcast/mmt-fec/dist/oti.js +254 -0
  302. package/node_modules/@blockcast/mmt-fec/dist/oti.js.map +1 -0
  303. package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.d.ts +41 -0
  304. package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.d.ts.map +1 -0
  305. package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.js +81 -0
  306. package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.js.map +1 -0
  307. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/README.md +181 -0
  308. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/.build-stamp +0 -0
  309. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts +57 -0
  310. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts.map +1 -0
  311. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.js +115 -0
  312. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.js.map +1 -0
  313. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/package.json +50 -0
  314. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/src/index.ts +136 -0
  315. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/README.md +120 -0
  316. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/.build-stamp +0 -0
  317. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.d.ts +2 -0
  318. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.d.ts.map +1 -0
  319. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.js +2 -0
  320. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.js.map +1 -0
  321. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts +276 -0
  322. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts.map +1 -0
  323. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.js +645 -0
  324. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.js.map +1 -0
  325. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/package.json +49 -0
  326. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/index.ts +1 -0
  327. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/mmtp.ts +899 -0
  328. package/node_modules/@blockcast/mmt-fec/package.json +79 -0
  329. package/node_modules/@blockcast/mmt-fec/src/block-manager.ts +371 -0
  330. package/node_modules/@blockcast/mmt-fec/src/block-processor.ts +277 -0
  331. package/node_modules/@blockcast/mmt-fec/src/cmaf-recovery.ts +127 -0
  332. package/node_modules/@blockcast/mmt-fec/src/cmaf-symbols.ts +68 -0
  333. package/node_modules/@blockcast/mmt-fec/src/fec-block-mapper.ts +332 -0
  334. package/node_modules/@blockcast/mmt-fec/src/index.ts +77 -0
  335. package/node_modules/@blockcast/mmt-fec/src/loc-symbols.ts +34 -0
  336. package/node_modules/@blockcast/mmt-fec/src/oti.ts +317 -0
  337. package/node_modules/@blockcast/mmt-fec/src/reorder-buffer.ts +101 -0
  338. package/node_modules/@blockcast/mmt-manifest-verify/dist/.build-stamp +0 -0
  339. package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.d.ts +28 -0
  340. package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.d.ts.map +1 -0
  341. package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.js +128 -0
  342. package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.js.map +1 -0
  343. package/node_modules/@blockcast/mmt-manifest-verify/dist/index.d.ts +4 -0
  344. package/node_modules/@blockcast/mmt-manifest-verify/dist/index.d.ts.map +1 -0
  345. package/node_modules/@blockcast/mmt-manifest-verify/dist/index.js +4 -0
  346. package/node_modules/@blockcast/mmt-manifest-verify/dist/index.js.map +1 -0
  347. package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.d.ts +37 -0
  348. package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.d.ts.map +1 -0
  349. package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.js +179 -0
  350. package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.js.map +1 -0
  351. package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.d.ts +99 -0
  352. package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.d.ts.map +1 -0
  353. package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.js +492 -0
  354. package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.js.map +1 -0
  355. package/node_modules/@blockcast/mmt-manifest-verify/package.json +45 -0
  356. package/node_modules/@blockcast/mmt-manifest-verify/src/admission.ts +171 -0
  357. package/node_modules/@blockcast/mmt-manifest-verify/src/index.ts +3 -0
  358. package/node_modules/@blockcast/mmt-manifest-verify/src/source-auth.ts +230 -0
  359. package/node_modules/@blockcast/mmt-manifest-verify/src/verifier.ts +669 -0
  360. package/node_modules/@noble/hashes/LICENSE +21 -0
  361. package/node_modules/@noble/hashes/README.md +521 -0
  362. package/node_modules/@noble/hashes/_assert.d.ts +17 -0
  363. package/node_modules/@noble/hashes/_assert.d.ts.map +1 -0
  364. package/node_modules/@noble/hashes/_assert.js +18 -0
  365. package/node_modules/@noble/hashes/_assert.js.map +1 -0
  366. package/node_modules/@noble/hashes/_blake.d.ts +14 -0
  367. package/node_modules/@noble/hashes/_blake.d.ts.map +1 -0
  368. package/node_modules/@noble/hashes/_blake.js +50 -0
  369. package/node_modules/@noble/hashes/_blake.js.map +1 -0
  370. package/node_modules/@noble/hashes/_md.d.ts +51 -0
  371. package/node_modules/@noble/hashes/_md.d.ts.map +1 -0
  372. package/node_modules/@noble/hashes/_md.js +162 -0
  373. package/node_modules/@noble/hashes/_md.js.map +1 -0
  374. package/node_modules/@noble/hashes/_u64.d.ts +55 -0
  375. package/node_modules/@noble/hashes/_u64.d.ts.map +1 -0
  376. package/node_modules/@noble/hashes/_u64.js +90 -0
  377. package/node_modules/@noble/hashes/_u64.js.map +1 -0
  378. package/node_modules/@noble/hashes/argon2.d.ts +32 -0
  379. package/node_modules/@noble/hashes/argon2.d.ts.map +1 -0
  380. package/node_modules/@noble/hashes/argon2.js +401 -0
  381. package/node_modules/@noble/hashes/argon2.js.map +1 -0
  382. package/node_modules/@noble/hashes/blake1.d.ts +106 -0
  383. package/node_modules/@noble/hashes/blake1.d.ts.map +1 -0
  384. package/node_modules/@noble/hashes/blake1.js +459 -0
  385. package/node_modules/@noble/hashes/blake1.js.map +1 -0
  386. package/node_modules/@noble/hashes/blake2.d.ts +116 -0
  387. package/node_modules/@noble/hashes/blake2.d.ts.map +1 -0
  388. package/node_modules/@noble/hashes/blake2.js +420 -0
  389. package/node_modules/@noble/hashes/blake2.js.map +1 -0
  390. package/node_modules/@noble/hashes/blake2b.d.ts +11 -0
  391. package/node_modules/@noble/hashes/blake2b.d.ts.map +1 -0
  392. package/node_modules/@noble/hashes/blake2b.js +14 -0
  393. package/node_modules/@noble/hashes/blake2b.js.map +1 -0
  394. package/node_modules/@noble/hashes/blake2s.d.ts +20 -0
  395. package/node_modules/@noble/hashes/blake2s.d.ts.map +1 -0
  396. package/node_modules/@noble/hashes/blake2s.js +24 -0
  397. package/node_modules/@noble/hashes/blake2s.js.map +1 -0
  398. package/node_modules/@noble/hashes/blake3.d.ts +54 -0
  399. package/node_modules/@noble/hashes/blake3.d.ts.map +1 -0
  400. package/node_modules/@noble/hashes/blake3.js +255 -0
  401. package/node_modules/@noble/hashes/blake3.js.map +1 -0
  402. package/node_modules/@noble/hashes/crypto.d.ts +2 -0
  403. package/node_modules/@noble/hashes/crypto.d.ts.map +1 -0
  404. package/node_modules/@noble/hashes/crypto.js +5 -0
  405. package/node_modules/@noble/hashes/crypto.js.map +1 -0
  406. package/node_modules/@noble/hashes/cryptoNode.d.ts +2 -0
  407. package/node_modules/@noble/hashes/cryptoNode.d.ts.map +1 -0
  408. package/node_modules/@noble/hashes/cryptoNode.js +18 -0
  409. package/node_modules/@noble/hashes/cryptoNode.js.map +1 -0
  410. package/node_modules/@noble/hashes/eskdf.d.ts +47 -0
  411. package/node_modules/@noble/hashes/eskdf.d.ts.map +1 -0
  412. package/node_modules/@noble/hashes/eskdf.js +166 -0
  413. package/node_modules/@noble/hashes/eskdf.js.map +1 -0
  414. package/node_modules/@noble/hashes/esm/_assert.d.ts +17 -0
  415. package/node_modules/@noble/hashes/esm/_assert.d.ts.map +1 -0
  416. package/node_modules/@noble/hashes/esm/_assert.js +15 -0
  417. package/node_modules/@noble/hashes/esm/_assert.js.map +1 -0
  418. package/node_modules/@noble/hashes/esm/_blake.d.ts +14 -0
  419. package/node_modules/@noble/hashes/esm/_blake.d.ts.map +1 -0
  420. package/node_modules/@noble/hashes/esm/_blake.js +45 -0
  421. package/node_modules/@noble/hashes/esm/_blake.js.map +1 -0
  422. package/node_modules/@noble/hashes/esm/_md.d.ts +51 -0
  423. package/node_modules/@noble/hashes/esm/_md.d.ts.map +1 -0
  424. package/node_modules/@noble/hashes/esm/_md.js +155 -0
  425. package/node_modules/@noble/hashes/esm/_md.js.map +1 -0
  426. package/node_modules/@noble/hashes/esm/_u64.d.ts +55 -0
  427. package/node_modules/@noble/hashes/esm/_u64.d.ts.map +1 -0
  428. package/node_modules/@noble/hashes/esm/_u64.js +67 -0
  429. package/node_modules/@noble/hashes/esm/_u64.js.map +1 -0
  430. package/node_modules/@noble/hashes/esm/argon2.d.ts +32 -0
  431. package/node_modules/@noble/hashes/esm/argon2.d.ts.map +1 -0
  432. package/node_modules/@noble/hashes/esm/argon2.js +392 -0
  433. package/node_modules/@noble/hashes/esm/argon2.js.map +1 -0
  434. package/node_modules/@noble/hashes/esm/blake1.d.ts +106 -0
  435. package/node_modules/@noble/hashes/esm/blake1.d.ts.map +1 -0
  436. package/node_modules/@noble/hashes/esm/blake1.js +452 -0
  437. package/node_modules/@noble/hashes/esm/blake1.js.map +1 -0
  438. package/node_modules/@noble/hashes/esm/blake2.d.ts +116 -0
  439. package/node_modules/@noble/hashes/esm/blake2.d.ts.map +1 -0
  440. package/node_modules/@noble/hashes/esm/blake2.js +413 -0
  441. package/node_modules/@noble/hashes/esm/blake2.js.map +1 -0
  442. package/node_modules/@noble/hashes/esm/blake2b.d.ts +11 -0
  443. package/node_modules/@noble/hashes/esm/blake2b.d.ts.map +1 -0
  444. package/node_modules/@noble/hashes/esm/blake2b.js +11 -0
  445. package/node_modules/@noble/hashes/esm/blake2b.js.map +1 -0
  446. package/node_modules/@noble/hashes/esm/blake2s.d.ts +20 -0
  447. package/node_modules/@noble/hashes/esm/blake2s.d.ts.map +1 -0
  448. package/node_modules/@noble/hashes/esm/blake2s.js +21 -0
  449. package/node_modules/@noble/hashes/esm/blake2s.js.map +1 -0
  450. package/node_modules/@noble/hashes/esm/blake3.d.ts +54 -0
  451. package/node_modules/@noble/hashes/esm/blake3.d.ts.map +1 -0
  452. package/node_modules/@noble/hashes/esm/blake3.js +251 -0
  453. package/node_modules/@noble/hashes/esm/blake3.js.map +1 -0
  454. package/node_modules/@noble/hashes/esm/crypto.d.ts +2 -0
  455. package/node_modules/@noble/hashes/esm/crypto.d.ts.map +1 -0
  456. package/node_modules/@noble/hashes/esm/crypto.js +2 -0
  457. package/node_modules/@noble/hashes/esm/crypto.js.map +1 -0
  458. package/node_modules/@noble/hashes/esm/cryptoNode.d.ts +2 -0
  459. package/node_modules/@noble/hashes/esm/cryptoNode.d.ts.map +1 -0
  460. package/node_modules/@noble/hashes/esm/cryptoNode.js +15 -0
  461. package/node_modules/@noble/hashes/esm/cryptoNode.js.map +1 -0
  462. package/node_modules/@noble/hashes/esm/eskdf.d.ts +47 -0
  463. package/node_modules/@noble/hashes/esm/eskdf.d.ts.map +1 -0
  464. package/node_modules/@noble/hashes/esm/eskdf.js +160 -0
  465. package/node_modules/@noble/hashes/esm/eskdf.js.map +1 -0
  466. package/node_modules/@noble/hashes/esm/hkdf.d.ts +36 -0
  467. package/node_modules/@noble/hashes/esm/hkdf.d.ts.map +1 -0
  468. package/node_modules/@noble/hashes/esm/hkdf.js +82 -0
  469. package/node_modules/@noble/hashes/esm/hkdf.js.map +1 -0
  470. package/node_modules/@noble/hashes/esm/hmac.d.ts +35 -0
  471. package/node_modules/@noble/hashes/esm/hmac.d.ts.map +1 -0
  472. package/node_modules/@noble/hashes/esm/hmac.js +86 -0
  473. package/node_modules/@noble/hashes/esm/hmac.js.map +1 -0
  474. package/node_modules/@noble/hashes/esm/index.d.ts +2 -0
  475. package/node_modules/@noble/hashes/esm/index.d.ts.map +1 -0
  476. package/node_modules/@noble/hashes/esm/index.js +33 -0
  477. package/node_modules/@noble/hashes/esm/index.js.map +1 -0
  478. package/node_modules/@noble/hashes/esm/legacy.d.ts +71 -0
  479. package/node_modules/@noble/hashes/esm/legacy.d.ts.map +1 -0
  480. package/node_modules/@noble/hashes/esm/legacy.js +281 -0
  481. package/node_modules/@noble/hashes/esm/legacy.js.map +1 -0
  482. package/node_modules/@noble/hashes/esm/package.json +10 -0
  483. package/node_modules/@noble/hashes/esm/pbkdf2.d.ts +23 -0
  484. package/node_modules/@noble/hashes/esm/pbkdf2.d.ts.map +1 -0
  485. package/node_modules/@noble/hashes/esm/pbkdf2.js +97 -0
  486. package/node_modules/@noble/hashes/esm/pbkdf2.js.map +1 -0
  487. package/node_modules/@noble/hashes/esm/ripemd160.d.ts +13 -0
  488. package/node_modules/@noble/hashes/esm/ripemd160.d.ts.map +1 -0
  489. package/node_modules/@noble/hashes/esm/ripemd160.js +13 -0
  490. package/node_modules/@noble/hashes/esm/ripemd160.js.map +1 -0
  491. package/node_modules/@noble/hashes/esm/scrypt.d.ts +34 -0
  492. package/node_modules/@noble/hashes/esm/scrypt.d.ts.map +1 -0
  493. package/node_modules/@noble/hashes/esm/scrypt.js +228 -0
  494. package/node_modules/@noble/hashes/esm/scrypt.js.map +1 -0
  495. package/node_modules/@noble/hashes/esm/sha1.d.ts +11 -0
  496. package/node_modules/@noble/hashes/esm/sha1.d.ts.map +1 -0
  497. package/node_modules/@noble/hashes/esm/sha1.js +11 -0
  498. package/node_modules/@noble/hashes/esm/sha1.js.map +1 -0
  499. package/node_modules/@noble/hashes/esm/sha2.d.ts +159 -0
  500. package/node_modules/@noble/hashes/esm/sha2.d.ts.map +1 -0
  501. package/node_modules/@noble/hashes/esm/sha2.js +375 -0
  502. package/node_modules/@noble/hashes/esm/sha2.js.map +1 -0
  503. package/node_modules/@noble/hashes/esm/sha256.d.ts +20 -0
  504. package/node_modules/@noble/hashes/esm/sha256.d.ts.map +1 -0
  505. package/node_modules/@noble/hashes/esm/sha256.js +20 -0
  506. package/node_modules/@noble/hashes/esm/sha256.js.map +1 -0
  507. package/node_modules/@noble/hashes/esm/sha3-addons.d.ts +142 -0
  508. package/node_modules/@noble/hashes/esm/sha3-addons.d.ts.map +1 -0
  509. package/node_modules/@noble/hashes/esm/sha3-addons.js +393 -0
  510. package/node_modules/@noble/hashes/esm/sha3-addons.js.map +1 -0
  511. package/node_modules/@noble/hashes/esm/sha3.d.ts +53 -0
  512. package/node_modules/@noble/hashes/esm/sha3.d.ts.map +1 -0
  513. package/node_modules/@noble/hashes/esm/sha3.js +234 -0
  514. package/node_modules/@noble/hashes/esm/sha3.js.map +1 -0
  515. package/node_modules/@noble/hashes/esm/sha512.d.ts +26 -0
  516. package/node_modules/@noble/hashes/esm/sha512.d.ts.map +1 -0
  517. package/node_modules/@noble/hashes/esm/sha512.js +26 -0
  518. package/node_modules/@noble/hashes/esm/sha512.js.map +1 -0
  519. package/node_modules/@noble/hashes/esm/utils.d.ts +161 -0
  520. package/node_modules/@noble/hashes/esm/utils.d.ts.map +1 -0
  521. package/node_modules/@noble/hashes/esm/utils.js +281 -0
  522. package/node_modules/@noble/hashes/esm/utils.js.map +1 -0
  523. package/node_modules/@noble/hashes/hkdf.d.ts +36 -0
  524. package/node_modules/@noble/hashes/hkdf.d.ts.map +1 -0
  525. package/node_modules/@noble/hashes/hkdf.js +88 -0
  526. package/node_modules/@noble/hashes/hkdf.js.map +1 -0
  527. package/node_modules/@noble/hashes/hmac.d.ts +35 -0
  528. package/node_modules/@noble/hashes/hmac.d.ts.map +1 -0
  529. package/node_modules/@noble/hashes/hmac.js +91 -0
  530. package/node_modules/@noble/hashes/hmac.js.map +1 -0
  531. package/node_modules/@noble/hashes/index.d.ts +1 -0
  532. package/node_modules/@noble/hashes/index.d.ts.map +1 -0
  533. package/node_modules/@noble/hashes/index.js +33 -0
  534. package/node_modules/@noble/hashes/index.js.map +1 -0
  535. package/node_modules/@noble/hashes/legacy.d.ts +71 -0
  536. package/node_modules/@noble/hashes/legacy.d.ts.map +1 -0
  537. package/node_modules/@noble/hashes/legacy.js +287 -0
  538. package/node_modules/@noble/hashes/legacy.js.map +1 -0
  539. package/node_modules/@noble/hashes/package.json +266 -0
  540. package/node_modules/@noble/hashes/pbkdf2.d.ts +23 -0
  541. package/node_modules/@noble/hashes/pbkdf2.d.ts.map +1 -0
  542. package/node_modules/@noble/hashes/pbkdf2.js +101 -0
  543. package/node_modules/@noble/hashes/pbkdf2.js.map +1 -0
  544. package/node_modules/@noble/hashes/ripemd160.d.ts +13 -0
  545. package/node_modules/@noble/hashes/ripemd160.d.ts.map +1 -0
  546. package/node_modules/@noble/hashes/ripemd160.js +16 -0
  547. package/node_modules/@noble/hashes/ripemd160.js.map +1 -0
  548. package/node_modules/@noble/hashes/scrypt.d.ts +34 -0
  549. package/node_modules/@noble/hashes/scrypt.d.ts.map +1 -0
  550. package/node_modules/@noble/hashes/scrypt.js +232 -0
  551. package/node_modules/@noble/hashes/scrypt.js.map +1 -0
  552. package/node_modules/@noble/hashes/sha1.d.ts +11 -0
  553. package/node_modules/@noble/hashes/sha1.d.ts.map +1 -0
  554. package/node_modules/@noble/hashes/sha1.js +14 -0
  555. package/node_modules/@noble/hashes/sha1.js.map +1 -0
  556. package/node_modules/@noble/hashes/sha2.d.ts +159 -0
  557. package/node_modules/@noble/hashes/sha2.d.ts.map +1 -0
  558. package/node_modules/@noble/hashes/sha2.js +384 -0
  559. package/node_modules/@noble/hashes/sha2.js.map +1 -0
  560. package/node_modules/@noble/hashes/sha256.d.ts +20 -0
  561. package/node_modules/@noble/hashes/sha256.d.ts.map +1 -0
  562. package/node_modules/@noble/hashes/sha256.js +23 -0
  563. package/node_modules/@noble/hashes/sha256.js.map +1 -0
  564. package/node_modules/@noble/hashes/sha3-addons.d.ts +142 -0
  565. package/node_modules/@noble/hashes/sha3-addons.d.ts.map +1 -0
  566. package/node_modules/@noble/hashes/sha3-addons.js +402 -0
  567. package/node_modules/@noble/hashes/sha3-addons.js.map +1 -0
  568. package/node_modules/@noble/hashes/sha3.d.ts +53 -0
  569. package/node_modules/@noble/hashes/sha3.d.ts.map +1 -0
  570. package/node_modules/@noble/hashes/sha3.js +239 -0
  571. package/node_modules/@noble/hashes/sha3.js.map +1 -0
  572. package/node_modules/@noble/hashes/sha512.d.ts +26 -0
  573. package/node_modules/@noble/hashes/sha512.d.ts.map +1 -0
  574. package/node_modules/@noble/hashes/sha512.js +29 -0
  575. package/node_modules/@noble/hashes/sha512.js.map +1 -0
  576. package/node_modules/@noble/hashes/src/_assert.ts +22 -0
  577. package/node_modules/@noble/hashes/src/_blake.ts +50 -0
  578. package/node_modules/@noble/hashes/src/_md.ts +176 -0
  579. package/node_modules/@noble/hashes/src/_u64.ts +91 -0
  580. package/node_modules/@noble/hashes/src/argon2.ts +497 -0
  581. package/node_modules/@noble/hashes/src/blake1.ts +534 -0
  582. package/node_modules/@noble/hashes/src/blake2.ts +486 -0
  583. package/node_modules/@noble/hashes/src/blake2b.ts +10 -0
  584. package/node_modules/@noble/hashes/src/blake2s.ts +20 -0
  585. package/node_modules/@noble/hashes/src/blake3.ts +272 -0
  586. package/node_modules/@noble/hashes/src/crypto.ts +9 -0
  587. package/node_modules/@noble/hashes/src/cryptoNode.ts +15 -0
  588. package/node_modules/@noble/hashes/src/eskdf.ts +187 -0
  589. package/node_modules/@noble/hashes/src/hkdf.ts +88 -0
  590. package/node_modules/@noble/hashes/src/hmac.ts +94 -0
  591. package/node_modules/@noble/hashes/src/index.ts +31 -0
  592. package/node_modules/@noble/hashes/src/legacy.ts +293 -0
  593. package/node_modules/@noble/hashes/src/pbkdf2.ts +122 -0
  594. package/node_modules/@noble/hashes/src/ripemd160.ts +12 -0
  595. package/node_modules/@noble/hashes/src/scrypt.ts +257 -0
  596. package/node_modules/@noble/hashes/src/sha1.ts +10 -0
  597. package/node_modules/@noble/hashes/src/sha2.ts +402 -0
  598. package/node_modules/@noble/hashes/src/sha256.ts +24 -0
  599. package/node_modules/@noble/hashes/src/sha3-addons.ts +499 -0
  600. package/node_modules/@noble/hashes/src/sha3.ts +258 -0
  601. package/node_modules/@noble/hashes/src/sha512.ts +34 -0
  602. package/node_modules/@noble/hashes/src/utils.ts +395 -0
  603. package/node_modules/@noble/hashes/utils.d.ts +161 -0
  604. package/node_modules/@noble/hashes/utils.d.ts.map +1 -0
  605. package/node_modules/@noble/hashes/utils.js +313 -0
  606. package/node_modules/@noble/hashes/utils.js.map +1 -0
  607. package/package.json +203 -0
  608. package/schemas/catalog.schema.json +360 -0
  609. package/src/align.ts +239 -0
  610. package/src/audio-init-parser.ts +189 -0
  611. package/src/audio-ring-buffer.ts +120 -0
  612. package/src/authored-timing.ts +63 -0
  613. package/src/carp-catalog.ts +845 -0
  614. package/src/catalog-fec-params.ts +535 -0
  615. package/src/catalog-network-source.ts +49 -0
  616. package/src/catalog-validator.ts +34 -0
  617. package/src/cmaf-block-assembler.ts +1167 -0
  618. package/src/cmaf-group-batcher.ts +104 -0
  619. package/src/cmcd-producer.ts +334 -0
  620. package/src/codec-utils.ts +1611 -0
  621. package/src/fec-codec.ts +61 -0
  622. package/src/fec-manager.ts +2081 -0
  623. package/src/fec-starvation-detector.ts +128 -0
  624. package/src/fec-worker-setup.ts +213 -0
  625. package/src/fmp4-completion.ts +47 -0
  626. package/src/fmp4-reader.ts +112 -0
  627. package/src/index.ts +486 -0
  628. package/src/iso-bmff-timing.ts +813 -0
  629. package/src/loc.ts +181 -0
  630. package/src/manifest-auth-plan.ts +107 -0
  631. package/src/media-router.ts +795 -0
  632. package/src/mfu-reassembler.ts +3741 -0
  633. package/src/mfu-reassembly-policy.ts +134 -0
  634. package/src/mmtp-container-parser.ts +1836 -0
  635. package/src/mmtp-decode-pipeline.ts +389 -0
  636. package/src/mmtp-router.ts +3136 -0
  637. package/src/mmtp-to-cmaf.ts +1024 -0
  638. package/src/multicast-auth-catalog.ts +340 -0
  639. package/src/multicast-input.ts +439 -0
  640. package/src/multicast-manager.ts +1720 -0
  641. package/src/multicast-transport.ts +321 -0
  642. package/src/multicast-unwrap.ts +132 -0
  643. package/src/no-modules.ts +20 -0
  644. package/src/phase14-catalog-override.ts +336 -0
  645. package/src/repair-fetch.ts +238 -0
  646. package/src/repair-layers.ts +490 -0
  647. package/src/sample-combiner.ts +938 -0
  648. package/src/signaling.ts +78 -0
  649. package/src/source-auth.ts +1 -0
  650. package/src/switching-set-alignment.ts +109 -0
  651. package/src/timestamp-codec.ts +265 -0
  652. package/src/track-pipeline-setup.ts +189 -0
  653. package/src/track-pipeline.ts +332 -0
  654. package/src/track-session.ts +994 -0
  655. package/src/transport-pool.ts +128 -0
  656. package/src/wasm-mfu-reassembler.ts +389 -0
  657. package/src/wasm-mmtp-container-parser.ts +23 -0
  658. package/test-vectors/align.json +199 -0
  659. package/test-vectors/catalog/README.md +40 -0
  660. package/test-vectors/catalog/negative/fec-enhancement-repair-removed.json +27 -0
  661. package/test-vectors/catalog/negative/fec-repair-layer-geometry.json +32 -0
  662. package/test-vectors/catalog/negative/fec-repair-layer-missing-symbols.json +30 -0
  663. package/test-vectors/catalog/negative/fec-repair-multiple-depends.json +31 -0
  664. package/test-vectors/catalog/negative/fec-repair-overlay-with-layer.json +33 -0
  665. package/test-vectors/catalog/negative/fec-repair-priority-out-of-band.json +23 -0
  666. package/test-vectors/catalog/negative/fec-repair-source-symbols-without-scope.json +32 -0
  667. package/test-vectors/catalog/negative/legacy-selection-params.json +15 -0
  668. package/test-vectors/catalog/negative/media-track-repair-layer.json +16 -0
  669. package/test-vectors/catalog/negative/missing-mmtp-fields.json +12 -0
  670. package/test-vectors/catalog/negative/multicast-auth-padded-key.json +37 -0
  671. package/test-vectors/catalog/negative/multicast-auth-reused-track-format.json +53 -0
  672. package/test-vectors/catalog/negative/multicast-auth-trailing-pad-bits.json +37 -0
  673. package/test-vectors/catalog/negative/multicast-endpoint-missing-protocol-and-source.json +24 -0
  674. package/test-vectors/catalog/negative/network-source-object.json +25 -0
  675. package/test-vectors/catalog/negative/raptorq-source-symbols-over-max.json +23 -0
  676. package/test-vectors/catalog/negative/raptorq-unaligned-symbol.json +26 -0
  677. package/test-vectors/catalog/negative/repair-track-legacy-shape.json +19 -0
  678. package/test-vectors/catalog/negative/track-role-empty.json +16 -0
  679. package/test-vectors/catalog/negative/track-role-non-string.json +16 -0
  680. package/test-vectors/catalog/positive/fec-layered-repair.json +104 -0
  681. package/test-vectors/catalog/positive/fec-multicast.json +51 -0
  682. package/test-vectors/catalog/positive/flat-av.json +30 -0
  683. package/test-vectors/catalog/positive/multicast-auth-rotation.json +55 -0
  684. package/test-vectors/catalog/positive/ticks-and-mixed-timescales.json +39 -0
  685. package/test-vectors/catalog/positive/track-role.json +49 -0
  686. package/test-vectors/catalog/releases/moqcast-native-v16-v1/catalog.json +65 -0
  687. package/test-vectors/catalog/releases/moqcast-native-v16-v1.archive.sha256 +1 -0
  688. package/test-vectors/catalog-multicast-auth-v1.json +26 -0
  689. package/test-vectors/catalog-validation.json +148 -0
  690. package/test-vectors/catalog-validator-public-api.mjs +25 -0
  691. package/test-vectors/generate-source-auth-fixture.mjs +114 -0
  692. package/test-vectors/source-auth-v1.json +61 -0
  693. package/test-vectors/source-contiguity-v1.json +131 -0
  694. package/test-vectors/subsample-placement-v1.json +230 -0
@@ -0,0 +1,369 @@
1
+ /**
2
+ * Facade composing FECManager + MmtpRouter + MulticastTransport.
3
+ *
4
+ * Public methods delegate to the decomposed components. Applications that
5
+ * need individual layers can use them directly:
6
+ * - FECManager — codec-agnostic FEC decode
7
+ * - MmtpRouter — MMTP packet parsing + frame routing
8
+ * - MulticastTransport — SSM join/socket/watchdog
9
+ */
10
+ import { FECManager, type FECManagerConfig, type WasmFecDecoder, type FecDecoderUnavailableReason, type FecFallbackDecoder } from "./fec-manager.js";
11
+ import { MmtpRouter, type FrameCallback, type ManifestIdentityResolver, type MmtpIngressContext, type TrackPacketCallback } from "./mmtp-router.js";
12
+ import { MulticastTransport } from "./multicast-transport.js";
13
+ import type { FecTrackStats, FecWorkerClient } from "@blockcast/fec-worker";
14
+ import type { MfuReassemblerBackend } from "./mfu-reassembler.js";
15
+ import type { MfuReassemblyPolicy } from "./mfu-reassembly-policy.js";
16
+ import type { ManifestObjectIdentity, ManifestVerifier } from "@blockcast/mmt-manifest-verify";
17
+ import type { BlockAssemblerConfig, CmafBlockSample } from "./cmaf-block-assembler.js";
18
+ export interface MulticastEndpointConfig {
19
+ sourceAddress: string;
20
+ groupAddress: string;
21
+ port: number;
22
+ /** Explicit gateway transport policy. Omitted means gateway-selected auto mode. */
23
+ mode?: 'auto' | 'native' | 'tunnel';
24
+ /** AMT relay hostname/IP from catalog endpoint. */
25
+ relayAddress?: string;
26
+ /** AMT relay port from catalog endpoint. */
27
+ relayPort?: number;
28
+ /** AMT relay hostname/IP from player/UI overrides. */
29
+ amtRelay?: string;
30
+ amtRelayPort?: number;
31
+ /** MMTP packet IDs to forward before data enters the page transport queue. */
32
+ packetIds?: number[];
33
+ /** Exact catalog tracks carried by this physical multicast endpoint. */
34
+ tracks?: MmtpIngressContext["tracks"];
35
+ fecK?: number;
36
+ /** Number of repair symbols per FEC block (P). Used to size recovery reorder latency. */
37
+ fecRepairSymbols?: number;
38
+ /** Symbol size in bytes (T). NOT repair count. */
39
+ fecSymbolSize?: number;
40
+ /** Catalog fec.reorderToleranceMs — signaled jitter/reorder allowance, ADDED
41
+ * to the derived delivery window. Never a multiplier on the span, so one
42
+ * network yields the same slack on a wide video span and a narrow audio one.
43
+ *
44
+ * Absence widens the window by zero rather than throwing, unlike the datagram
45
+ * MFU deadline in hang-mmt-fec. The distinction is which way absence fails:
46
+ * there the tolerance IS the deadline's slack term and guessing one invents
47
+ * a reorder budget, so it must fail loud; here the window is already fully
48
+ * derived from other catalog values and the tolerance only widens it, so
49
+ * adding nothing is the identity and errs toward earlier failback. Do not
50
+ * "harmonize" this into a throw, and do not turn the zero into a default. */
51
+ fecReorderToleranceMs?: number;
52
+ fecInterleaveDepthMs?: number;
53
+ /** Aggregate endpoint bandwidth in bits per second from the multicast catalog. */
54
+ bandwidth?: number;
55
+ fps?: number;
56
+ /** Catalog-derived lower bound for packet-silence failback (for example, keyframe repair cadence). */
57
+ minimumFailbackWindowMs?: number;
58
+ }
59
+ export interface MulticastManagerOptions {
60
+ /**
61
+ * MFU reassembly timeout (ms). Threaded to the inner MmtpRouter (and its
62
+ * MmtpContainerParser). Caller derives from catalog `fec.interleaveDepthMs`,
63
+ * which is already in milliseconds — `moqenc_mmt.c` converts
64
+ * `depth_ms = fec_depth * (1000/fps)` before populating the catalog.
65
+ * Defaults to 1000ms (with parser warning) when omitted.
66
+ */
67
+ mfuTimeoutMs?: number;
68
+ reassemblyPolicy?: MfuReassemblyPolicy;
69
+ reassembler?: MfuReassemblerBackend;
70
+ maxBufferedMfus?: number;
71
+ manifestVerifier?: ManifestVerifier;
72
+ manifestVerifierOwnership?: "caller" | "router";
73
+ resolveManifestIdentity?: (packetId: number, sbn: number, esi: number, catalogTrackName?: string) => ManifestObjectIdentity | null;
74
+ resolveManifestIdentityForRoute?: ManifestIdentityResolver;
75
+ }
76
+ export interface RepairStreamIdentity {
77
+ readonly packetId: number;
78
+ /** Non-empty catalog identity, or null when the producer has no track name. */
79
+ readonly catalogTrackName: string | null;
80
+ }
81
+ export interface RepairBlockIdentity extends RepairStreamIdentity {
82
+ readonly sbn: number;
83
+ }
84
+ export type RepairLifecycleEvent = {
85
+ readonly version: 1;
86
+ readonly type: "requested";
87
+ readonly block: RepairBlockIdentity;
88
+ } | {
89
+ readonly version: 1;
90
+ readonly type: "recovered" | "failed";
91
+ readonly block: RepairBlockIdentity;
92
+ readonly symbols: {
93
+ readonly multicast: number;
94
+ readonly moq: number;
95
+ };
96
+ } | {
97
+ readonly version: 1;
98
+ /**
99
+ * The stream's Worker decoder left routing (FECManager.clearFecWorker,
100
+ * or a disposed client evicted on its next symbol). `fallbackDecoder`
101
+ * says what still decodes the stream: 'sync' when a synchronous WASM
102
+ * decoder registered for the same stream keeps serving it, 'none' when
103
+ * nothing does. Only 'none' means the stream's symbols reach no decoder
104
+ * until a host registers one again; consumers fail closed on that
105
+ * instead of reading the following silence as a clean stream.
106
+ */
107
+ readonly type: "decoder-unavailable";
108
+ readonly stream: RepairStreamIdentity;
109
+ readonly reason: FecDecoderUnavailableReason;
110
+ readonly fallbackDecoder: FecFallbackDecoder;
111
+ };
112
+ export type RepairLifecycleObserver = (event: RepairLifecycleEvent) => void;
113
+ export interface RepairLifecycleSource {
114
+ addRepairLifecycleObserver(observer: RepairLifecycleObserver): () => void;
115
+ }
116
+ /** Minimal event shape accepted by application-owned event targets. */
117
+ export interface RepairLifecycleApplicationEvent {
118
+ readonly type: string;
119
+ readonly detail: RepairLifecycleEvent;
120
+ }
121
+ /** DOM EventTarget event shape, including the Node 18 Event fallback. */
122
+ export interface RepairLifecycleDomEvent extends Event {
123
+ readonly detail: RepairLifecycleEvent;
124
+ }
125
+ /** Structural target contract shared by DOM and Closure-style event targets. */
126
+ export interface RepairLifecycleEventTarget<TEvent extends RepairLifecycleApplicationEvent> {
127
+ dispatchEvent(event: TEvent): unknown;
128
+ }
129
+ export interface RepairLifecycleEventOptions<TEvent extends RepairLifecycleApplicationEvent = RepairLifecycleDomEvent> {
130
+ bubbles?: boolean;
131
+ composed?: boolean;
132
+ createEvent?: RepairLifecycleEventFactory<TEvent>;
133
+ }
134
+ export type RepairLifecycleEventFactory<TEvent extends RepairLifecycleApplicationEvent = RepairLifecycleDomEvent> = (type: typeof REPAIR_LIFECYCLE_EVENT_TYPE, detail: RepairLifecycleEvent, options: Readonly<{
135
+ bubbles: boolean;
136
+ composed: boolean;
137
+ }>) => TEvent;
138
+ /** Public EventTarget event carrying an immutable RepairLifecycleEvent detail. */
139
+ export declare const REPAIR_LIFECYCLE_EVENT_TYPE = "repairlifecycle";
140
+ /** Diagnostic JSON-lines prefix. Never consume logs as a lifecycle API. */
141
+ export declare const REPAIR_LIFECYCLE_LOG_PREFIX = "[MulticastManager] repair-lifecycle ";
142
+ /** Runtime guard for observer, DOM-event, and cross-realm consumers. */
143
+ export declare function isRepairLifecycleEvent(value: unknown): value is RepairLifecycleEvent;
144
+ /**
145
+ * Forward typed repair lifecycle observations through an application-owned
146
+ * EventTarget. The adapter retains no history; the returned function detaches
147
+ * the observer.
148
+ */
149
+ export declare function forwardRepairLifecycleEvents<TEvent extends RepairLifecycleApplicationEvent>(source: RepairLifecycleSource, target: RepairLifecycleEventTarget<TEvent>, options: RepairLifecycleEventOptions<TEvent> & {
150
+ createEvent: RepairLifecycleEventFactory<TEvent>;
151
+ }): () => void;
152
+ export declare function forwardRepairLifecycleEvents(source: RepairLifecycleSource, target: EventTarget, options?: RepairLifecycleEventOptions): () => void;
153
+ /** Catalog track descriptor for configureMultiTrack(). */
154
+ export interface MultiTrackCatalogTrack {
155
+ name: string;
156
+ altGroup?: number;
157
+ framerate?: number;
158
+ fec?: unknown;
159
+ /** PacketId for testability — in production, learned at subscribe time (Plan 03). */
160
+ packetId?: number;
161
+ /** `"fec-repair"` marks a self-describing repair track (draft-ramadan-moq-fec
162
+ * §6.3). Absent on media tracks and on naming-era catalogs. */
163
+ packaging?: string;
164
+ /** The one source track this repair track carries repair symbols for. Layers
165
+ * 1..n and a keyframe overlay are reachable only through `depends`; layer 0
166
+ * is additionally named by the source's `fec.repairTrack`. */
167
+ depends?: string[];
168
+ /** Base layer index. Absent on a keyframe overlay, which is a separate FEC
169
+ * instance rather than a member of the layer chain. */
170
+ repairLayer?: number;
171
+ /** `"keyframe"` on an overlay track. */
172
+ scope?: string;
173
+ }
174
+ /** Multi-track catalog shape accepted by configureMultiTrack(). */
175
+ export interface MultiTrackCatalog {
176
+ tracks: MultiTrackCatalogTrack[];
177
+ }
178
+ /** Creates one stateful synchronous FEC decoder per physical catalog stream. */
179
+ export type WasmFecDecoderFactory = (track: Readonly<MultiTrackCatalogTrack>) => WasmFecDecoder;
180
+ export declare class MulticastManager {
181
+ #private;
182
+ constructor(options?: MulticastManagerOptions);
183
+ get fecManager(): FECManager;
184
+ get router(): MmtpRouter;
185
+ get transport(): MulticastTransport;
186
+ get reassembler(): MfuReassemblerBackend;
187
+ get diagnostics(): {
188
+ _fec: {
189
+ timeoutMs: number;
190
+ activeBlocks: number;
191
+ completedBlocks: number;
192
+ pendingCounts: {
193
+ [k: string]: number;
194
+ };
195
+ fpsDetected: boolean;
196
+ interleaveDepthMs: number;
197
+ startupAlignedPackets: number[];
198
+ startupPartialBlocks: number;
199
+ startupRepairReadyPackets: number[];
200
+ startupRepairFailOpenPackets: number[];
201
+ pendingWorkerCleanups: number;
202
+ decoderUnavailableEvents: number;
203
+ repairTrackedBlocks: number;
204
+ lifecycleTrace: {
205
+ atMs: number;
206
+ event: "repair-requested" | "repair-arrived" | "timeout-queued" | "cleanup-ack" | "recovered" | "failed" | "decoder-unavailable";
207
+ packetId: number;
208
+ sbn: number;
209
+ catalogTrackName?: string;
210
+ sourceCount: number;
211
+ sourceEsis: number[];
212
+ repairRsIds: number[];
213
+ decoderPath: "worker" | "sync" | "none";
214
+ deadlineRemainingMs?: number;
215
+ pendingCleanup: boolean;
216
+ rsId?: number;
217
+ }[];
218
+ };
219
+ };
220
+ get stats(): import("./multicast-transport.js").MulticastTransportStats;
221
+ get fecStats(): import("./fec-manager.js").FecStats;
222
+ /** The raw WASM decoder for stats access */
223
+ get wasmDecoder(): WasmFecDecoder | null;
224
+ setFecDecoder(packetId: number, client: WasmFecDecoder, k: number, trackType?: "video" | "audio", config?: FECManagerConfig, catalogTrackName?: string): void;
225
+ /**
226
+ * Register a Worker-backed FEC decoder for a specific packetId (track).
227
+ * Worker-backed tracks decode asynchronously — recovered frames arrive via
228
+ * FECManager.onBlockRecovered callback instead of feedSourceSymbol return value.
229
+ */
230
+ setFecWorker(packetId: number, client: FecWorkerClient, trackType: "video" | "audio", config: FECManagerConfig, catalogTrackName?: string): void;
231
+ /**
232
+ * Stop routing a stream's symbols to its Worker decoder. Returns false when
233
+ * none is registered; on success one `decoder-unavailable` repair lifecycle
234
+ * event with reason 'cleared' reaches every observer, carrying whether a
235
+ * synchronous WASM decoder still serves the stream. The packet mapping and
236
+ * track type are untouched: the track still exists, it just has no Worker
237
+ * decoder. Call this before disposing the client.
238
+ */
239
+ clearFecWorker(packetId: number, catalogTrackName?: string): boolean;
240
+ /** Register callback for Worker-level FecTrackStats updates. */
241
+ setOnFecStatsUpdate(cb: (packetId: number, stats: FecTrackStats) => void): void;
242
+ setFramerate(fps: number): void;
243
+ /**
244
+ * Configure one track's FEC geometry, block mapper, and block-inactivity
245
+ * deadline from that track's own catalog values, then re-reduce the
246
+ * stream-global deadlines across every registered track.
247
+ *
248
+ * This is the packet-specific replacement for the global `configureFec`
249
+ * side effects: per-track concerns stay per-track, and the genuinely
250
+ * stream-global ones (transport failback, router MFU timeout, router reorder
251
+ * window) become an explicit max reduction instead of a last-caller-wins race
252
+ * in which whichever track configured last silently set the whole stream's
253
+ * timing.
254
+ */
255
+ configureTrackFec(packetId: number, config: Pick<MulticastEndpointConfig, "fecK" | "fecRepairSymbols" | "fecSymbolSize" | "fecInterleaveDepthMs" | "fecReorderToleranceMs" | "fps" | "bandwidth" | "minimumFailbackWindowMs">): void;
256
+ configureFec(config: Pick<MulticastEndpointConfig, "fecK" | "fecRepairSymbols" | "fecSymbolSize" | "fecInterleaveDepthMs" | "fecReorderToleranceMs" | "fps" | "bandwidth" | "minimumFailbackWindowMs">): void;
257
+ /** Register callback for track type discovery (from init data / inline signaling). */
258
+ onTrackTypeDiscovered(cb: (packetId: number, trackType: "video" | "audio") => void): void;
259
+ setPacketIdType(packetId: number, trackType: "video" | "audio"): void;
260
+ /**
261
+ * Set the keyframe loss timeout on the inner MmtpRouter.
262
+ * Must be called BEFORE setPacketIdType('video').
263
+ * Derive from explicit keyframe/group duration:
264
+ * Math.ceil(groupDurationMs * KEYFRAME_LOST_TIMEOUT_SLACK).
265
+ */
266
+ setKeyframeLostTimeoutMs(ms: number): void;
267
+ setMfuTimeoutMs(ms: number): void;
268
+ setTrackCodec(packetId: number, codec: string): void;
269
+ onVideoFrame(cb: FrameCallback): void;
270
+ onAudioFrame(cb: FrameCallback): void;
271
+ onTrackFrame(packetId: number, cb: FrameCallback): void;
272
+ onTrackPacket(packetId: number, cb: TrackPacketCallback): void;
273
+ onInitSegment(cb: (data: Uint8Array) => void): void;
274
+ onTrackInit(packetId: number, cb: (data: Uint8Array) => void): void;
275
+ onFecBlockStarted(cb: (sbn: number, packetId: number) => void): void;
276
+ /** Unrecoverable-FEC-block signal. Players drive decoder recovery from this
277
+ * (a starved decoder cannot resync on its own once the block is abandoned). */
278
+ onFecBlockFailed(cb: (sbn: number, packetId: number, catalogTrackName?: string) => void): void;
279
+ enableMseAssembler(packetId: number, config: Omit<BlockAssemblerConfig, "k">, catalogTrackName?: string): import("./cmaf-block-assembler.js").CmafBlockAssembler;
280
+ onMseSegment(packetId: number, cb: (segment: Uint8Array) => void, catalogTrackName?: string): void;
281
+ onMseSample(packetId: number, cb: (sample: CmafBlockSample) => void, catalogTrackName?: string): void;
282
+ onMseInitSegment(packetId: number, cb: (init: Uint8Array) => void, catalogTrackName?: string): void;
283
+ emitMseInit(packetId: number, catalogTrackName?: string): void;
284
+ markExternalVideoSync(packetId?: number, catalogTrackName?: string): void;
285
+ onTakeover(cb: () => void): void;
286
+ onFailback(cb: () => void): void;
287
+ confirmVideo(): void;
288
+ confirmAudio(): void;
289
+ static isAvailable(): boolean;
290
+ join(config: MulticastEndpointConfig): Promise<boolean>;
291
+ /** Feed a raw packet from an external source (AMT tunnel, ASM subscription).
292
+ *
293
+ * For MoQ-unicast-fallback mode (no SSM bridge), call
294
+ * `manager.router.feedPacket(packet, "moq")` directly to bypass
295
+ * MulticastTransport's takeover/watchdog/failback gates while preserving
296
+ * transport attribution in FEC path counters.
297
+ * The `router` accessor above is already public.
298
+ */
299
+ feedPacket(data: ArrayBuffer | Uint8Array, ingress?: MmtpIngressContext): void;
300
+ /** Process a repair packet from MoQ (reliable QUIC). */
301
+ processRepairFromMoQ(packet: Uint8Array, ownerPacketId?: number, catalogTrackName?: string): void;
302
+ /** Route a Worker-recovered FEC block through the MMTP parser + dedup pipeline. */
303
+ routeRecoveredBlock(blockId: number, data: Uint8Array, packetId: number, catalogTrackName?: string): void;
304
+ /** Route one Worker-recovered source symbol through the MMTP parser + dedup pipeline. */
305
+ routeRecoveredSymbol(blockId: number, data: Uint8Array, packetId: number, esi?: number, catalogTrackName?: string): void;
306
+ /**
307
+ * Configure the manager for a multi-track (base/delta/repair) CMAF switching set.
308
+ *
309
+ * D-04: Validates completeness via validateSwitchingSet — throws if incomplete.
310
+ * D-07: Applies per-track FEC configs (base+delta get decoders; repair does not).
311
+ * D-17: Builds altGroup → track-name index for getSwitchingSet().
312
+ * D-26: Registers packetId → TrackRole on MmtpRouter for block-complete fanout.
313
+ *
314
+ * @param catalog - Multi-track catalog (tracks array with name, altGroup, fec, packetId).
315
+ * @param wasmDecoderSource - One WASM FEC decoder for a single FEC stream, or
316
+ * a factory returning a distinct decoder per stream.
317
+ */
318
+ configureMultiTrack(catalog: MultiTrackCatalog, wasmDecoderSource?: WasmFecDecoder | WasmFecDecoderFactory): void;
319
+ /**
320
+ * Return the track names belonging to the given altGroup switching set.
321
+ * D-17: altGroup groups base+delta+repair into one switching set.
322
+ *
323
+ * @param altGroup - The altGroup number to look up.
324
+ * @returns Array of track names in that switching set (empty if none).
325
+ */
326
+ getSwitchingSet(altGroup: number): string[];
327
+ /**
328
+ * Register callback fired when a repair fetch should be issued for an FEC block.
329
+ *
330
+ * D-28: At most one outstanding repair fetch per (packetId, sbn) block.
331
+ * clearRepairForBlock fires automatically when the block resolves (via
332
+ * FECManager.onRepairResolved); call it manually only on fetch failure
333
+ * paths the FEC layer cannot observe (fetch error, range not retained,
334
+ * transport timeout) so a stuck fetch cannot wedge the block's slot.
335
+ *
336
+ * Registering also arms the FEC repair deadline: each block gets a one-shot
337
+ * timer for the derived K-symbol source-production horizon; a block still
338
+ * short of K when it fires requests repair here. Failure accounting timing
339
+ * is unchanged.
340
+ */
341
+ onRepairSubscribe(cb: (sbn: number, packetId: number, catalogTrackName?: string) => void): void;
342
+ /**
343
+ * Observe causal repair lifecycle events without retaining snapshots in the
344
+ * transport. Returns an unsubscribe function.
345
+ */
346
+ addRepairLifecycleObserver(observer: RepairLifecycleObserver): () => void;
347
+ /** Observe per-stream epoch resets (used by repair transports to abort I/O). */
348
+ addTrackResetObserver(observer: (packetId: number, catalogTrackName: string) => void): () => void;
349
+ /** Begin a fresh retained-replay epoch for one physical media stream. */
350
+ resetTrack(packetId: number, catalogTrackName: string): void;
351
+ /**
352
+ * Request a repair-track fetch for the given FEC block.
353
+ *
354
+ * D-28: duplicate requests for the same (packetId, sbn) are suppressed
355
+ * until clearRepairForBlock is called.
356
+ *
357
+ * @param sbn - Source Block Number identifying the FEC block needing repair.
358
+ * @param packetId - MMTP packet_id owning the block (video/audio tracks have
359
+ * independent SBN spaces, so the in-flight key must be composite).
360
+ */
361
+ requestRepairForBlock(sbn: number, packetId: number, catalogTrackName?: string): void;
362
+ /**
363
+ * Clear in-flight repair state for the given block.
364
+ * Fired automatically when the block resolves; safe to call redundantly.
365
+ */
366
+ clearRepairForBlock(sbn: number, packetId: number, catalogTrackName?: string): void;
367
+ dispose(): void;
368
+ }
369
+ //# sourceMappingURL=multicast-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multicast-manager.d.ts","sourceRoot":"","sources":["../src/multicast-manager.ts"],"names":[],"mappings":"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"}