@blockcast/mmt-container 0.3.0 → 0.4.0-main.71d61b2a53f2

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 (605) hide show
  1. package/README.md +33 -16
  2. package/dist/browser-runtime.js +14743 -14412
  3. package/dist/browser-runtime.js.map +4 -4
  4. package/dist/carp-catalog.d.ts +24 -19
  5. package/dist/carp-catalog.d.ts.map +1 -1
  6. package/dist/carp-catalog.js +29 -14
  7. package/dist/carp-catalog.js.map +4 -4
  8. package/dist/catalog-fec-params.d.ts +88 -28
  9. package/dist/catalog-fec-params.d.ts.map +1 -1
  10. package/dist/catalog-fec-params.js +60 -23
  11. package/dist/catalog-fec-params.js.map +4 -4
  12. package/dist/catalog-network-source.js +1 -7
  13. package/dist/catalog-network-source.js.map +4 -4
  14. package/dist/cmaf-block-assembler.d.ts +0 -2
  15. package/dist/cmaf-block-assembler.d.ts.map +1 -1
  16. package/dist/cmaf-block-assembler.js +0 -1
  17. package/dist/cmaf-block-assembler.js.map +2 -2
  18. package/dist/cmcd-producer.d.ts.map +1 -1
  19. package/dist/cmcd-producer.js +0 -4
  20. package/dist/cmcd-producer.js.map +2 -2
  21. package/dist/delivery-catalog.d.ts +124 -0
  22. package/dist/delivery-catalog.d.ts.map +1 -0
  23. package/dist/delivery-catalog.js +1857 -0
  24. package/dist/delivery-catalog.js.map +7 -0
  25. package/dist/delta-fallback-config.d.ts +42 -0
  26. package/dist/delta-fallback-config.d.ts.map +1 -0
  27. package/dist/delta-fallback-config.js +59 -0
  28. package/dist/delta-fallback-config.js.map +7 -0
  29. package/dist/fec-manager.d.ts +36 -30
  30. package/dist/fec-manager.d.ts.map +1 -1
  31. package/dist/fec-manager.js +303 -293
  32. package/dist/fec-manager.js.map +4 -4
  33. package/dist/fec-state.d.ts +19 -31
  34. package/dist/fec-state.d.ts.map +1 -1
  35. package/dist/fec-state.js +4 -10
  36. package/dist/fec-state.js.map +4 -4
  37. package/dist/fec-worker-setup.d.ts +18 -14
  38. package/dist/fec-worker-setup.d.ts.map +1 -1
  39. package/dist/fec-worker-setup.js +81 -96
  40. package/dist/fec-worker-setup.js.map +4 -4
  41. package/dist/index.d.ts +5 -3
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +16 -0
  44. package/dist/index.js.map +2 -2
  45. package/dist/iso-block-locator.js +1 -7
  46. package/dist/iso-block-locator.js.map +4 -4
  47. package/dist/media-router.d.ts +20 -8
  48. package/dist/media-router.d.ts.map +1 -1
  49. package/dist/media-router.js +46 -21
  50. package/dist/media-router.js.map +2 -2
  51. package/dist/mfu-reassembler.js +24 -30
  52. package/dist/mfu-reassembler.js.map +4 -4
  53. package/dist/mmtp-container-parser.d.ts +6 -11
  54. package/dist/mmtp-container-parser.d.ts.map +1 -1
  55. package/dist/mmtp-container-parser.js +56 -97
  56. package/dist/mmtp-container-parser.js.map +4 -4
  57. package/dist/mmtp-container-parser.no-modules.js +78 -105
  58. package/dist/mmtp-container-parser.no-modules.js.map +4 -4
  59. package/dist/mmtp-decode-pipeline.js +56 -97
  60. package/dist/mmtp-decode-pipeline.js.map +4 -4
  61. package/dist/mmtp-router.d.ts +37 -26
  62. package/dist/mmtp-router.d.ts.map +1 -1
  63. package/dist/mmtp-router.js +162 -313
  64. package/dist/mmtp-router.js.map +4 -4
  65. package/dist/multicast-input.js +1 -7
  66. package/dist/multicast-input.js.map +4 -4
  67. package/dist/multicast-manager.d.ts +34 -6
  68. package/dist/multicast-manager.d.ts.map +1 -1
  69. package/dist/multicast-manager.js +709 -658
  70. package/dist/multicast-manager.js.map +4 -4
  71. package/dist/multicast-transport.d.ts +1 -1
  72. package/dist/multicast-transport.d.ts.map +1 -1
  73. package/dist/multicast-transport.js +44 -26
  74. package/dist/multicast-transport.js.map +4 -4
  75. package/dist/multicast-unwrap.js +29 -35
  76. package/dist/multicast-unwrap.js.map +4 -4
  77. package/dist/no-modules.js +77 -104
  78. package/dist/no-modules.js.map +4 -4
  79. package/dist/repair-fetch.d.ts +30 -19
  80. package/dist/repair-fetch.d.ts.map +1 -1
  81. package/dist/repair-fetch.js +33 -24
  82. package/dist/repair-fetch.js.map +4 -4
  83. package/dist/repair-layers.d.ts +18 -7
  84. package/dist/repair-layers.d.ts.map +1 -1
  85. package/dist/repair-layers.js +12 -10
  86. package/dist/repair-layers.js.map +4 -4
  87. package/dist/signaling.js +2 -11
  88. package/dist/signaling.js.map +4 -4
  89. package/dist/timestamp-codec.js +24 -30
  90. package/dist/timestamp-codec.js.map +4 -4
  91. package/dist/track-session.d.ts +7 -0
  92. package/dist/track-session.d.ts.map +1 -1
  93. package/dist/track-session.js +15 -8
  94. package/dist/track-session.js.map +2 -2
  95. package/dist/wasm-mfu-reassembler.js +1 -7
  96. package/dist/wasm-mfu-reassembler.js.map +4 -4
  97. package/dist/wasm-mmtp-container-parser.js +56 -97
  98. package/dist/wasm-mmtp-container-parser.js.map +4 -4
  99. package/package.json +7 -14
  100. package/schemas/catalog.schema.json +3 -3
  101. package/src/carp-catalog.ts +46 -24
  102. package/src/catalog-fec-params.ts +173 -64
  103. package/src/cmaf-block-assembler.ts +1 -4
  104. package/src/cmcd-producer.ts +0 -6
  105. package/src/delivery-catalog.ts +498 -0
  106. package/src/delta-fallback-config.ts +72 -0
  107. package/src/fec-manager.ts +414 -334
  108. package/src/fec-state.ts +20 -32
  109. package/src/fec-worker-setup.ts +109 -90
  110. package/src/index.ts +32 -0
  111. package/src/media-router.ts +59 -21
  112. package/src/mmtp-container-parser.ts +27 -18
  113. package/src/mmtp-router.ts +146 -313
  114. package/src/multicast-manager.ts +184 -83
  115. package/src/multicast-transport.ts +16 -9
  116. package/src/repair-fetch.ts +46 -27
  117. package/src/repair-layers.ts +28 -8
  118. package/src/track-session.ts +28 -9
  119. package/test-vectors/catalog/README.md +37 -17
  120. package/test-vectors/catalog/negative/fec-block-profile-retired.json +52 -0
  121. package/test-vectors/catalog/negative/fec-enhancement-repair-removed.json +1 -1
  122. package/test-vectors/catalog/negative/fec-repair-layer-geometry.json +1 -1
  123. package/test-vectors/catalog/negative/fec-repair-layer-missing-symbols.json +1 -1
  124. package/test-vectors/catalog/negative/fec-repair-multiple-depends.json +1 -1
  125. package/test-vectors/catalog/negative/fec-repair-overlay-with-layer.json +1 -1
  126. package/test-vectors/catalog/negative/fec-repair-priority-out-of-band.json +1 -1
  127. package/test-vectors/catalog/negative/fec-repair-source-symbols-without-scope.json +1 -1
  128. package/test-vectors/catalog/negative/multicast-endpoint-relay-address.json +39 -0
  129. package/test-vectors/catalog/negative/multicast-network-source-empty.json +1 -1
  130. package/test-vectors/catalog/negative/raptorq-source-symbols-over-max.json +1 -1
  131. package/test-vectors/catalog/negative/raptorq-unaligned-symbol.json +1 -1
  132. package/test-vectors/catalog/positive/fec-layered-repair.json +2 -2
  133. package/test-vectors/catalog/positive/fec-multicast.json +2 -1
  134. package/test-vectors/catalog/positive/multicast-amt-manual-relay.json +38 -0
  135. package/test-vectors/catalog/positive/multicast-native-ssm-no-network-source.json +2 -1
  136. package/test-vectors/catalog-timing.json +356 -0
  137. package/test-vectors/catalog-validation.json +40 -5
  138. package/test-vectors/delivery-catalog/README.md +11 -0
  139. package/test-vectors/delivery-catalog/negative/missing-block-profile.json +58 -0
  140. package/test-vectors/delivery-catalog/negative/packet-id-signaling.json +59 -0
  141. package/test-vectors/delivery-catalog/negative/retired-k-padded-block-profile.json +59 -0
  142. package/test-vectors/delivery-catalog/positive/dash.json +56 -0
  143. package/test-vectors/delivery-catalog/positive/mmtp-source-only.json +43 -0
  144. package/node_modules/@blockcast/fec-worker/README.md +0 -223
  145. package/node_modules/@blockcast/fec-worker/dist/.build-stamp +0 -0
  146. package/node_modules/@blockcast/fec-worker/dist/block-order.d.ts +0 -38
  147. package/node_modules/@blockcast/fec-worker/dist/block-order.d.ts.map +0 -1
  148. package/node_modules/@blockcast/fec-worker/dist/block-order.js +0 -78
  149. package/node_modules/@blockcast/fec-worker/dist/block-order.js.map +0 -1
  150. package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.d.ts +0 -93
  151. package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.d.ts.map +0 -1
  152. package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.js +0 -346
  153. package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.js.map +0 -1
  154. package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.d.ts +0 -380
  155. package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.d.ts.map +0 -1
  156. package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.js +0 -11
  157. package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.js.map +0 -1
  158. package/node_modules/@blockcast/fec-worker/dist/fec-worker.d.ts +0 -14
  159. package/node_modules/@blockcast/fec-worker/dist/fec-worker.d.ts.map +0 -1
  160. package/node_modules/@blockcast/fec-worker/dist/fec-worker.js +0 -859
  161. package/node_modules/@blockcast/fec-worker/dist/fec-worker.js.map +0 -7
  162. package/node_modules/@blockcast/fec-worker/dist/index.d.ts +0 -10
  163. package/node_modules/@blockcast/fec-worker/dist/index.d.ts.map +0 -1
  164. package/node_modules/@blockcast/fec-worker/dist/index.js +0 -8
  165. package/node_modules/@blockcast/fec-worker/dist/index.js.map +0 -1
  166. package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.d.ts +0 -20
  167. package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.d.ts.map +0 -1
  168. package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.js +0 -370
  169. package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.js.map +0 -7
  170. package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.d.ts +0 -104
  171. package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.d.ts.map +0 -1
  172. package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.js +0 -181
  173. package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.js.map +0 -1
  174. package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.d.ts +0 -194
  175. package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.d.ts.map +0 -1
  176. package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.js +0 -62
  177. package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.js.map +0 -1
  178. package/node_modules/@blockcast/fec-worker/dist/transfer.d.ts +0 -9
  179. package/node_modules/@blockcast/fec-worker/dist/transfer.d.ts.map +0 -1
  180. package/node_modules/@blockcast/fec-worker/dist/transfer.js +0 -13
  181. package/node_modules/@blockcast/fec-worker/dist/transfer.js.map +0 -1
  182. package/node_modules/@blockcast/fec-worker/package.json +0 -59
  183. package/node_modules/@blockcast/fec-worker/src/block-order.ts +0 -93
  184. package/node_modules/@blockcast/fec-worker/src/fec-worker-client.ts +0 -392
  185. package/node_modules/@blockcast/fec-worker/src/fec-worker-types.ts +0 -399
  186. package/node_modules/@blockcast/fec-worker/src/fec-worker.ts +0 -1502
  187. package/node_modules/@blockcast/fec-worker/src/index.ts +0 -35
  188. package/node_modules/@blockcast/fec-worker/src/shred-fec-worker.ts +0 -589
  189. package/node_modules/@blockcast/fec-worker/src/shred-worker-client.ts +0 -222
  190. package/node_modules/@blockcast/fec-worker/src/shred-worker-types.ts +0 -209
  191. package/node_modules/@blockcast/fec-worker/src/transfer.ts +0 -12
  192. package/node_modules/@blockcast/mmt-alta-parse/README.md +0 -181
  193. package/node_modules/@blockcast/mmt-alta-parse/dist/.build-stamp +0 -0
  194. package/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts +0 -57
  195. package/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts.map +0 -1
  196. package/node_modules/@blockcast/mmt-alta-parse/dist/index.js +0 -115
  197. package/node_modules/@blockcast/mmt-alta-parse/dist/index.js.map +0 -1
  198. package/node_modules/@blockcast/mmt-alta-parse/package.json +0 -50
  199. package/node_modules/@blockcast/mmt-alta-parse/src/index.ts +0 -136
  200. package/node_modules/@blockcast/mmt-base/README.md +0 -134
  201. package/node_modules/@blockcast/mmt-base/dist/.build-stamp +0 -0
  202. package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts +0 -55
  203. package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts.map +0 -1
  204. package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js +0 -128
  205. package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js.map +0 -1
  206. package/node_modules/@blockcast/mmt-base/dist/index.d.ts +0 -7
  207. package/node_modules/@blockcast/mmt-base/dist/index.d.ts.map +0 -1
  208. package/node_modules/@blockcast/mmt-base/dist/index.js +0 -7
  209. package/node_modules/@blockcast/mmt-base/dist/index.js.map +0 -1
  210. package/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts +0 -292
  211. package/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts.map +0 -1
  212. package/node_modules/@blockcast/mmt-base/dist/mmtp.js +0 -612
  213. package/node_modules/@blockcast/mmt-base/dist/mmtp.js.map +0 -1
  214. package/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts +0 -18
  215. package/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts.map +0 -1
  216. package/node_modules/@blockcast/mmt-base/dist/net-constants.js +0 -18
  217. package/node_modules/@blockcast/mmt-base/dist/net-constants.js.map +0 -1
  218. package/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts +0 -47
  219. package/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts.map +0 -1
  220. package/node_modules/@blockcast/mmt-base/dist/ntp-short.js +0 -54
  221. package/node_modules/@blockcast/mmt-base/dist/ntp-short.js.map +0 -1
  222. package/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts +0 -57
  223. package/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts.map +0 -1
  224. package/node_modules/@blockcast/mmt-base/dist/serial-number.js +0 -98
  225. package/node_modules/@blockcast/mmt-base/dist/serial-number.js.map +0 -1
  226. package/node_modules/@blockcast/mmt-base/dist/signalling.d.ts +0 -312
  227. package/node_modules/@blockcast/mmt-base/dist/signalling.d.ts.map +0 -1
  228. package/node_modules/@blockcast/mmt-base/dist/signalling.js +0 -637
  229. package/node_modules/@blockcast/mmt-base/dist/signalling.js.map +0 -1
  230. package/node_modules/@blockcast/mmt-base/package.json +0 -49
  231. package/node_modules/@blockcast/mmt-base/src/fec-block-profile.ts +0 -145
  232. package/node_modules/@blockcast/mmt-base/src/index.ts +0 -6
  233. package/node_modules/@blockcast/mmt-base/src/mmtp.ts +0 -892
  234. package/node_modules/@blockcast/mmt-base/src/net-constants.ts +0 -17
  235. package/node_modules/@blockcast/mmt-base/src/ntp-short.ts +0 -67
  236. package/node_modules/@blockcast/mmt-base/src/serial-number.ts +0 -107
  237. package/node_modules/@blockcast/mmt-base/src/signalling.ts +0 -862
  238. package/node_modules/@blockcast/mmt-fec/README.md +0 -271
  239. package/node_modules/@blockcast/mmt-fec/dist/.build-stamp +0 -0
  240. package/node_modules/@blockcast/mmt-fec/dist/block-manager.d.ts +0 -82
  241. package/node_modules/@blockcast/mmt-fec/dist/block-manager.d.ts.map +0 -1
  242. package/node_modules/@blockcast/mmt-fec/dist/block-manager.js +0 -296
  243. package/node_modules/@blockcast/mmt-fec/dist/block-manager.js.map +0 -1
  244. package/node_modules/@blockcast/mmt-fec/dist/block-processor.d.ts +0 -106
  245. package/node_modules/@blockcast/mmt-fec/dist/block-processor.d.ts.map +0 -1
  246. package/node_modules/@blockcast/mmt-fec/dist/block-processor.js +0 -288
  247. package/node_modules/@blockcast/mmt-fec/dist/block-processor.js.map +0 -1
  248. package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.d.ts +0 -46
  249. package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.d.ts.map +0 -1
  250. package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.js +0 -96
  251. package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.js.map +0 -1
  252. package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.d.ts +0 -33
  253. package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.d.ts.map +0 -1
  254. package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.js +0 -57
  255. package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.js.map +0 -1
  256. package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.d.ts +0 -205
  257. package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.d.ts.map +0 -1
  258. package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.js +0 -240
  259. package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.js.map +0 -1
  260. package/node_modules/@blockcast/mmt-fec/dist/index.d.ts +0 -28
  261. package/node_modules/@blockcast/mmt-fec/dist/index.d.ts.map +0 -1
  262. package/node_modules/@blockcast/mmt-fec/dist/index.js +0 -28
  263. package/node_modules/@blockcast/mmt-fec/dist/index.js.map +0 -1
  264. package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.d.ts +0 -20
  265. package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.d.ts.map +0 -1
  266. package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.js +0 -28
  267. package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.js.map +0 -1
  268. package/node_modules/@blockcast/mmt-fec/dist/oti.d.ts +0 -258
  269. package/node_modules/@blockcast/mmt-fec/dist/oti.d.ts.map +0 -1
  270. package/node_modules/@blockcast/mmt-fec/dist/oti.js +0 -382
  271. package/node_modules/@blockcast/mmt-fec/dist/oti.js.map +0 -1
  272. package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.d.ts +0 -41
  273. package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.d.ts.map +0 -1
  274. package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.js +0 -81
  275. package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.js.map +0 -1
  276. package/node_modules/@blockcast/mmt-fec/dist/repair-group.d.ts +0 -82
  277. package/node_modules/@blockcast/mmt-fec/dist/repair-group.d.ts.map +0 -1
  278. package/node_modules/@blockcast/mmt-fec/dist/repair-group.js +0 -170
  279. package/node_modules/@blockcast/mmt-fec/dist/repair-group.js.map +0 -1
  280. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/README.md +0 -181
  281. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/.build-stamp +0 -0
  282. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts +0 -57
  283. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts.map +0 -1
  284. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.js +0 -115
  285. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.js.map +0 -1
  286. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/package.json +0 -50
  287. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/src/index.ts +0 -136
  288. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/README.md +0 -134
  289. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/.build-stamp +0 -0
  290. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts +0 -55
  291. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts.map +0 -1
  292. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js +0 -128
  293. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js.map +0 -1
  294. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.d.ts +0 -7
  295. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.d.ts.map +0 -1
  296. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.js +0 -7
  297. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.js.map +0 -1
  298. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts +0 -292
  299. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts.map +0 -1
  300. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.js +0 -612
  301. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.js.map +0 -1
  302. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts +0 -18
  303. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts.map +0 -1
  304. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.js +0 -18
  305. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.js.map +0 -1
  306. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts +0 -47
  307. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts.map +0 -1
  308. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.js +0 -54
  309. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.js.map +0 -1
  310. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts +0 -57
  311. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts.map +0 -1
  312. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.js +0 -98
  313. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.js.map +0 -1
  314. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.d.ts +0 -312
  315. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.d.ts.map +0 -1
  316. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.js +0 -637
  317. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.js.map +0 -1
  318. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/package.json +0 -49
  319. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/fec-block-profile.ts +0 -145
  320. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/index.ts +0 -6
  321. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/mmtp.ts +0 -892
  322. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/net-constants.ts +0 -17
  323. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/ntp-short.ts +0 -67
  324. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/serial-number.ts +0 -107
  325. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/signalling.ts +0 -862
  326. package/node_modules/@blockcast/mmt-fec/package.json +0 -79
  327. package/node_modules/@blockcast/mmt-fec/src/block-manager.ts +0 -371
  328. package/node_modules/@blockcast/mmt-fec/src/block-processor.ts +0 -439
  329. package/node_modules/@blockcast/mmt-fec/src/cmaf-recovery.ts +0 -127
  330. package/node_modules/@blockcast/mmt-fec/src/cmaf-symbols.ts +0 -68
  331. package/node_modules/@blockcast/mmt-fec/src/fec-block-mapper.ts +0 -310
  332. package/node_modules/@blockcast/mmt-fec/src/index.ts +0 -94
  333. package/node_modules/@blockcast/mmt-fec/src/loc-symbols.ts +0 -34
  334. package/node_modules/@blockcast/mmt-fec/src/oti.ts +0 -463
  335. package/node_modules/@blockcast/mmt-fec/src/reorder-buffer.ts +0 -101
  336. package/node_modules/@blockcast/mmt-fec/src/repair-group.ts +0 -195
  337. package/node_modules/@blockcast/mmt-manifest-verify/dist/.build-stamp +0 -0
  338. package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.d.ts +0 -28
  339. package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.d.ts.map +0 -1
  340. package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.js +0 -128
  341. package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.js.map +0 -1
  342. package/node_modules/@blockcast/mmt-manifest-verify/dist/index.d.ts +0 -4
  343. package/node_modules/@blockcast/mmt-manifest-verify/dist/index.d.ts.map +0 -1
  344. package/node_modules/@blockcast/mmt-manifest-verify/dist/index.js +0 -4
  345. package/node_modules/@blockcast/mmt-manifest-verify/dist/index.js.map +0 -1
  346. package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.d.ts +0 -37
  347. package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.d.ts.map +0 -1
  348. package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.js +0 -179
  349. package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.js.map +0 -1
  350. package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.d.ts +0 -99
  351. package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.d.ts.map +0 -1
  352. package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.js +0 -492
  353. package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.js.map +0 -1
  354. package/node_modules/@blockcast/mmt-manifest-verify/package.json +0 -45
  355. package/node_modules/@blockcast/mmt-manifest-verify/src/admission.ts +0 -171
  356. package/node_modules/@blockcast/mmt-manifest-verify/src/index.ts +0 -3
  357. package/node_modules/@blockcast/mmt-manifest-verify/src/source-auth.ts +0 -230
  358. package/node_modules/@blockcast/mmt-manifest-verify/src/verifier.ts +0 -669
  359. package/node_modules/@noble/hashes/LICENSE +0 -21
  360. package/node_modules/@noble/hashes/README.md +0 -521
  361. package/node_modules/@noble/hashes/_assert.d.ts +0 -17
  362. package/node_modules/@noble/hashes/_assert.d.ts.map +0 -1
  363. package/node_modules/@noble/hashes/_assert.js +0 -18
  364. package/node_modules/@noble/hashes/_assert.js.map +0 -1
  365. package/node_modules/@noble/hashes/_blake.d.ts +0 -14
  366. package/node_modules/@noble/hashes/_blake.d.ts.map +0 -1
  367. package/node_modules/@noble/hashes/_blake.js +0 -50
  368. package/node_modules/@noble/hashes/_blake.js.map +0 -1
  369. package/node_modules/@noble/hashes/_md.d.ts +0 -51
  370. package/node_modules/@noble/hashes/_md.d.ts.map +0 -1
  371. package/node_modules/@noble/hashes/_md.js +0 -162
  372. package/node_modules/@noble/hashes/_md.js.map +0 -1
  373. package/node_modules/@noble/hashes/_u64.d.ts +0 -55
  374. package/node_modules/@noble/hashes/_u64.d.ts.map +0 -1
  375. package/node_modules/@noble/hashes/_u64.js +0 -90
  376. package/node_modules/@noble/hashes/_u64.js.map +0 -1
  377. package/node_modules/@noble/hashes/argon2.d.ts +0 -32
  378. package/node_modules/@noble/hashes/argon2.d.ts.map +0 -1
  379. package/node_modules/@noble/hashes/argon2.js +0 -401
  380. package/node_modules/@noble/hashes/argon2.js.map +0 -1
  381. package/node_modules/@noble/hashes/blake1.d.ts +0 -106
  382. package/node_modules/@noble/hashes/blake1.d.ts.map +0 -1
  383. package/node_modules/@noble/hashes/blake1.js +0 -459
  384. package/node_modules/@noble/hashes/blake1.js.map +0 -1
  385. package/node_modules/@noble/hashes/blake2.d.ts +0 -116
  386. package/node_modules/@noble/hashes/blake2.d.ts.map +0 -1
  387. package/node_modules/@noble/hashes/blake2.js +0 -420
  388. package/node_modules/@noble/hashes/blake2.js.map +0 -1
  389. package/node_modules/@noble/hashes/blake2b.d.ts +0 -11
  390. package/node_modules/@noble/hashes/blake2b.d.ts.map +0 -1
  391. package/node_modules/@noble/hashes/blake2b.js +0 -14
  392. package/node_modules/@noble/hashes/blake2b.js.map +0 -1
  393. package/node_modules/@noble/hashes/blake2s.d.ts +0 -20
  394. package/node_modules/@noble/hashes/blake2s.d.ts.map +0 -1
  395. package/node_modules/@noble/hashes/blake2s.js +0 -24
  396. package/node_modules/@noble/hashes/blake2s.js.map +0 -1
  397. package/node_modules/@noble/hashes/blake3.d.ts +0 -54
  398. package/node_modules/@noble/hashes/blake3.d.ts.map +0 -1
  399. package/node_modules/@noble/hashes/blake3.js +0 -255
  400. package/node_modules/@noble/hashes/blake3.js.map +0 -1
  401. package/node_modules/@noble/hashes/crypto.d.ts +0 -2
  402. package/node_modules/@noble/hashes/crypto.d.ts.map +0 -1
  403. package/node_modules/@noble/hashes/crypto.js +0 -5
  404. package/node_modules/@noble/hashes/crypto.js.map +0 -1
  405. package/node_modules/@noble/hashes/cryptoNode.d.ts +0 -2
  406. package/node_modules/@noble/hashes/cryptoNode.d.ts.map +0 -1
  407. package/node_modules/@noble/hashes/cryptoNode.js +0 -18
  408. package/node_modules/@noble/hashes/cryptoNode.js.map +0 -1
  409. package/node_modules/@noble/hashes/eskdf.d.ts +0 -47
  410. package/node_modules/@noble/hashes/eskdf.d.ts.map +0 -1
  411. package/node_modules/@noble/hashes/eskdf.js +0 -166
  412. package/node_modules/@noble/hashes/eskdf.js.map +0 -1
  413. package/node_modules/@noble/hashes/esm/_assert.d.ts +0 -17
  414. package/node_modules/@noble/hashes/esm/_assert.d.ts.map +0 -1
  415. package/node_modules/@noble/hashes/esm/_assert.js +0 -15
  416. package/node_modules/@noble/hashes/esm/_assert.js.map +0 -1
  417. package/node_modules/@noble/hashes/esm/_blake.d.ts +0 -14
  418. package/node_modules/@noble/hashes/esm/_blake.d.ts.map +0 -1
  419. package/node_modules/@noble/hashes/esm/_blake.js +0 -45
  420. package/node_modules/@noble/hashes/esm/_blake.js.map +0 -1
  421. package/node_modules/@noble/hashes/esm/_md.d.ts +0 -51
  422. package/node_modules/@noble/hashes/esm/_md.d.ts.map +0 -1
  423. package/node_modules/@noble/hashes/esm/_md.js +0 -155
  424. package/node_modules/@noble/hashes/esm/_md.js.map +0 -1
  425. package/node_modules/@noble/hashes/esm/_u64.d.ts +0 -55
  426. package/node_modules/@noble/hashes/esm/_u64.d.ts.map +0 -1
  427. package/node_modules/@noble/hashes/esm/_u64.js +0 -67
  428. package/node_modules/@noble/hashes/esm/_u64.js.map +0 -1
  429. package/node_modules/@noble/hashes/esm/argon2.d.ts +0 -32
  430. package/node_modules/@noble/hashes/esm/argon2.d.ts.map +0 -1
  431. package/node_modules/@noble/hashes/esm/argon2.js +0 -392
  432. package/node_modules/@noble/hashes/esm/argon2.js.map +0 -1
  433. package/node_modules/@noble/hashes/esm/blake1.d.ts +0 -106
  434. package/node_modules/@noble/hashes/esm/blake1.d.ts.map +0 -1
  435. package/node_modules/@noble/hashes/esm/blake1.js +0 -452
  436. package/node_modules/@noble/hashes/esm/blake1.js.map +0 -1
  437. package/node_modules/@noble/hashes/esm/blake2.d.ts +0 -116
  438. package/node_modules/@noble/hashes/esm/blake2.d.ts.map +0 -1
  439. package/node_modules/@noble/hashes/esm/blake2.js +0 -413
  440. package/node_modules/@noble/hashes/esm/blake2.js.map +0 -1
  441. package/node_modules/@noble/hashes/esm/blake2b.d.ts +0 -11
  442. package/node_modules/@noble/hashes/esm/blake2b.d.ts.map +0 -1
  443. package/node_modules/@noble/hashes/esm/blake2b.js +0 -11
  444. package/node_modules/@noble/hashes/esm/blake2b.js.map +0 -1
  445. package/node_modules/@noble/hashes/esm/blake2s.d.ts +0 -20
  446. package/node_modules/@noble/hashes/esm/blake2s.d.ts.map +0 -1
  447. package/node_modules/@noble/hashes/esm/blake2s.js +0 -21
  448. package/node_modules/@noble/hashes/esm/blake2s.js.map +0 -1
  449. package/node_modules/@noble/hashes/esm/blake3.d.ts +0 -54
  450. package/node_modules/@noble/hashes/esm/blake3.d.ts.map +0 -1
  451. package/node_modules/@noble/hashes/esm/blake3.js +0 -251
  452. package/node_modules/@noble/hashes/esm/blake3.js.map +0 -1
  453. package/node_modules/@noble/hashes/esm/crypto.d.ts +0 -2
  454. package/node_modules/@noble/hashes/esm/crypto.d.ts.map +0 -1
  455. package/node_modules/@noble/hashes/esm/crypto.js +0 -2
  456. package/node_modules/@noble/hashes/esm/crypto.js.map +0 -1
  457. package/node_modules/@noble/hashes/esm/cryptoNode.d.ts +0 -2
  458. package/node_modules/@noble/hashes/esm/cryptoNode.d.ts.map +0 -1
  459. package/node_modules/@noble/hashes/esm/cryptoNode.js +0 -15
  460. package/node_modules/@noble/hashes/esm/cryptoNode.js.map +0 -1
  461. package/node_modules/@noble/hashes/esm/eskdf.d.ts +0 -47
  462. package/node_modules/@noble/hashes/esm/eskdf.d.ts.map +0 -1
  463. package/node_modules/@noble/hashes/esm/eskdf.js +0 -160
  464. package/node_modules/@noble/hashes/esm/eskdf.js.map +0 -1
  465. package/node_modules/@noble/hashes/esm/hkdf.d.ts +0 -36
  466. package/node_modules/@noble/hashes/esm/hkdf.d.ts.map +0 -1
  467. package/node_modules/@noble/hashes/esm/hkdf.js +0 -82
  468. package/node_modules/@noble/hashes/esm/hkdf.js.map +0 -1
  469. package/node_modules/@noble/hashes/esm/hmac.d.ts +0 -35
  470. package/node_modules/@noble/hashes/esm/hmac.d.ts.map +0 -1
  471. package/node_modules/@noble/hashes/esm/hmac.js +0 -86
  472. package/node_modules/@noble/hashes/esm/hmac.js.map +0 -1
  473. package/node_modules/@noble/hashes/esm/index.d.ts +0 -2
  474. package/node_modules/@noble/hashes/esm/index.d.ts.map +0 -1
  475. package/node_modules/@noble/hashes/esm/index.js +0 -33
  476. package/node_modules/@noble/hashes/esm/index.js.map +0 -1
  477. package/node_modules/@noble/hashes/esm/legacy.d.ts +0 -71
  478. package/node_modules/@noble/hashes/esm/legacy.d.ts.map +0 -1
  479. package/node_modules/@noble/hashes/esm/legacy.js +0 -281
  480. package/node_modules/@noble/hashes/esm/legacy.js.map +0 -1
  481. package/node_modules/@noble/hashes/esm/package.json +0 -10
  482. package/node_modules/@noble/hashes/esm/pbkdf2.d.ts +0 -23
  483. package/node_modules/@noble/hashes/esm/pbkdf2.d.ts.map +0 -1
  484. package/node_modules/@noble/hashes/esm/pbkdf2.js +0 -97
  485. package/node_modules/@noble/hashes/esm/pbkdf2.js.map +0 -1
  486. package/node_modules/@noble/hashes/esm/ripemd160.d.ts +0 -13
  487. package/node_modules/@noble/hashes/esm/ripemd160.d.ts.map +0 -1
  488. package/node_modules/@noble/hashes/esm/ripemd160.js +0 -13
  489. package/node_modules/@noble/hashes/esm/ripemd160.js.map +0 -1
  490. package/node_modules/@noble/hashes/esm/scrypt.d.ts +0 -34
  491. package/node_modules/@noble/hashes/esm/scrypt.d.ts.map +0 -1
  492. package/node_modules/@noble/hashes/esm/scrypt.js +0 -228
  493. package/node_modules/@noble/hashes/esm/scrypt.js.map +0 -1
  494. package/node_modules/@noble/hashes/esm/sha1.d.ts +0 -11
  495. package/node_modules/@noble/hashes/esm/sha1.d.ts.map +0 -1
  496. package/node_modules/@noble/hashes/esm/sha1.js +0 -11
  497. package/node_modules/@noble/hashes/esm/sha1.js.map +0 -1
  498. package/node_modules/@noble/hashes/esm/sha2.d.ts +0 -159
  499. package/node_modules/@noble/hashes/esm/sha2.d.ts.map +0 -1
  500. package/node_modules/@noble/hashes/esm/sha2.js +0 -375
  501. package/node_modules/@noble/hashes/esm/sha2.js.map +0 -1
  502. package/node_modules/@noble/hashes/esm/sha256.d.ts +0 -20
  503. package/node_modules/@noble/hashes/esm/sha256.d.ts.map +0 -1
  504. package/node_modules/@noble/hashes/esm/sha256.js +0 -20
  505. package/node_modules/@noble/hashes/esm/sha256.js.map +0 -1
  506. package/node_modules/@noble/hashes/esm/sha3-addons.d.ts +0 -142
  507. package/node_modules/@noble/hashes/esm/sha3-addons.d.ts.map +0 -1
  508. package/node_modules/@noble/hashes/esm/sha3-addons.js +0 -393
  509. package/node_modules/@noble/hashes/esm/sha3-addons.js.map +0 -1
  510. package/node_modules/@noble/hashes/esm/sha3.d.ts +0 -53
  511. package/node_modules/@noble/hashes/esm/sha3.d.ts.map +0 -1
  512. package/node_modules/@noble/hashes/esm/sha3.js +0 -234
  513. package/node_modules/@noble/hashes/esm/sha3.js.map +0 -1
  514. package/node_modules/@noble/hashes/esm/sha512.d.ts +0 -26
  515. package/node_modules/@noble/hashes/esm/sha512.d.ts.map +0 -1
  516. package/node_modules/@noble/hashes/esm/sha512.js +0 -26
  517. package/node_modules/@noble/hashes/esm/sha512.js.map +0 -1
  518. package/node_modules/@noble/hashes/esm/utils.d.ts +0 -161
  519. package/node_modules/@noble/hashes/esm/utils.d.ts.map +0 -1
  520. package/node_modules/@noble/hashes/esm/utils.js +0 -281
  521. package/node_modules/@noble/hashes/esm/utils.js.map +0 -1
  522. package/node_modules/@noble/hashes/hkdf.d.ts +0 -36
  523. package/node_modules/@noble/hashes/hkdf.d.ts.map +0 -1
  524. package/node_modules/@noble/hashes/hkdf.js +0 -88
  525. package/node_modules/@noble/hashes/hkdf.js.map +0 -1
  526. package/node_modules/@noble/hashes/hmac.d.ts +0 -35
  527. package/node_modules/@noble/hashes/hmac.d.ts.map +0 -1
  528. package/node_modules/@noble/hashes/hmac.js +0 -91
  529. package/node_modules/@noble/hashes/hmac.js.map +0 -1
  530. package/node_modules/@noble/hashes/index.d.ts +0 -1
  531. package/node_modules/@noble/hashes/index.d.ts.map +0 -1
  532. package/node_modules/@noble/hashes/index.js +0 -33
  533. package/node_modules/@noble/hashes/index.js.map +0 -1
  534. package/node_modules/@noble/hashes/legacy.d.ts +0 -71
  535. package/node_modules/@noble/hashes/legacy.d.ts.map +0 -1
  536. package/node_modules/@noble/hashes/legacy.js +0 -287
  537. package/node_modules/@noble/hashes/legacy.js.map +0 -1
  538. package/node_modules/@noble/hashes/package.json +0 -266
  539. package/node_modules/@noble/hashes/pbkdf2.d.ts +0 -23
  540. package/node_modules/@noble/hashes/pbkdf2.d.ts.map +0 -1
  541. package/node_modules/@noble/hashes/pbkdf2.js +0 -101
  542. package/node_modules/@noble/hashes/pbkdf2.js.map +0 -1
  543. package/node_modules/@noble/hashes/ripemd160.d.ts +0 -13
  544. package/node_modules/@noble/hashes/ripemd160.d.ts.map +0 -1
  545. package/node_modules/@noble/hashes/ripemd160.js +0 -16
  546. package/node_modules/@noble/hashes/ripemd160.js.map +0 -1
  547. package/node_modules/@noble/hashes/scrypt.d.ts +0 -34
  548. package/node_modules/@noble/hashes/scrypt.d.ts.map +0 -1
  549. package/node_modules/@noble/hashes/scrypt.js +0 -232
  550. package/node_modules/@noble/hashes/scrypt.js.map +0 -1
  551. package/node_modules/@noble/hashes/sha1.d.ts +0 -11
  552. package/node_modules/@noble/hashes/sha1.d.ts.map +0 -1
  553. package/node_modules/@noble/hashes/sha1.js +0 -14
  554. package/node_modules/@noble/hashes/sha1.js.map +0 -1
  555. package/node_modules/@noble/hashes/sha2.d.ts +0 -159
  556. package/node_modules/@noble/hashes/sha2.d.ts.map +0 -1
  557. package/node_modules/@noble/hashes/sha2.js +0 -384
  558. package/node_modules/@noble/hashes/sha2.js.map +0 -1
  559. package/node_modules/@noble/hashes/sha256.d.ts +0 -20
  560. package/node_modules/@noble/hashes/sha256.d.ts.map +0 -1
  561. package/node_modules/@noble/hashes/sha256.js +0 -23
  562. package/node_modules/@noble/hashes/sha256.js.map +0 -1
  563. package/node_modules/@noble/hashes/sha3-addons.d.ts +0 -142
  564. package/node_modules/@noble/hashes/sha3-addons.d.ts.map +0 -1
  565. package/node_modules/@noble/hashes/sha3-addons.js +0 -402
  566. package/node_modules/@noble/hashes/sha3-addons.js.map +0 -1
  567. package/node_modules/@noble/hashes/sha3.d.ts +0 -53
  568. package/node_modules/@noble/hashes/sha3.d.ts.map +0 -1
  569. package/node_modules/@noble/hashes/sha3.js +0 -239
  570. package/node_modules/@noble/hashes/sha3.js.map +0 -1
  571. package/node_modules/@noble/hashes/sha512.d.ts +0 -26
  572. package/node_modules/@noble/hashes/sha512.d.ts.map +0 -1
  573. package/node_modules/@noble/hashes/sha512.js +0 -29
  574. package/node_modules/@noble/hashes/sha512.js.map +0 -1
  575. package/node_modules/@noble/hashes/src/_assert.ts +0 -22
  576. package/node_modules/@noble/hashes/src/_blake.ts +0 -50
  577. package/node_modules/@noble/hashes/src/_md.ts +0 -176
  578. package/node_modules/@noble/hashes/src/_u64.ts +0 -91
  579. package/node_modules/@noble/hashes/src/argon2.ts +0 -497
  580. package/node_modules/@noble/hashes/src/blake1.ts +0 -534
  581. package/node_modules/@noble/hashes/src/blake2.ts +0 -486
  582. package/node_modules/@noble/hashes/src/blake2b.ts +0 -10
  583. package/node_modules/@noble/hashes/src/blake2s.ts +0 -20
  584. package/node_modules/@noble/hashes/src/blake3.ts +0 -272
  585. package/node_modules/@noble/hashes/src/crypto.ts +0 -9
  586. package/node_modules/@noble/hashes/src/cryptoNode.ts +0 -15
  587. package/node_modules/@noble/hashes/src/eskdf.ts +0 -187
  588. package/node_modules/@noble/hashes/src/hkdf.ts +0 -88
  589. package/node_modules/@noble/hashes/src/hmac.ts +0 -94
  590. package/node_modules/@noble/hashes/src/index.ts +0 -31
  591. package/node_modules/@noble/hashes/src/legacy.ts +0 -293
  592. package/node_modules/@noble/hashes/src/pbkdf2.ts +0 -122
  593. package/node_modules/@noble/hashes/src/ripemd160.ts +0 -12
  594. package/node_modules/@noble/hashes/src/scrypt.ts +0 -257
  595. package/node_modules/@noble/hashes/src/sha1.ts +0 -10
  596. package/node_modules/@noble/hashes/src/sha2.ts +0 -402
  597. package/node_modules/@noble/hashes/src/sha256.ts +0 -24
  598. package/node_modules/@noble/hashes/src/sha3-addons.ts +0 -499
  599. package/node_modules/@noble/hashes/src/sha3.ts +0 -258
  600. package/node_modules/@noble/hashes/src/sha512.ts +0 -34
  601. package/node_modules/@noble/hashes/src/utils.ts +0 -395
  602. package/node_modules/@noble/hashes/utils.d.ts +0 -161
  603. package/node_modules/@noble/hashes/utils.d.ts.map +0 -1
  604. package/node_modules/@noble/hashes/utils.js +0 -313
  605. package/node_modules/@noble/hashes/utils.js.map +0 -1
@@ -1,14 +1,19 @@
1
1
  /**
2
2
  * D-28 shared repair-fetch scheduler.
3
3
  *
4
- * Player-agnostic orchestration for per-SBN on-demand MoQ FEC repair
4
+ * Player-agnostic orchestration for per-block on-demand MoQ FEC repair
5
5
  * backfill. Each player (moqtail client, hang watch, Shaka MSF bridge)
6
- * supplies only its protocol verb via {@link RepairFetchTransport}:
6
+ * supplies only its protocol verb via {@link RepairFetchTransport}, fetching
7
+ * one block's repair group. Blocks are `iso-ssbg1-v1` (ISO/IEC 23008-1
8
+ * ssbg_mode1, the only FEC block profile), so that group's MoQ id is the
9
+ * 62-bit wrap-epoch-extended SS_Start, `extSsStart(wrapEpoch, ssStart)` from
10
+ * `@blockcast/mmt-fec` -- never the 32-bit block key itself (see
11
+ * `RepairFetchRequest.sbn`):
7
12
  *
8
- * - moqtail: standalone FETCH (FetchType.Standalone) for group [sbn, sbn+1)
9
- * - moq-lite/hang: Subscribe with startGroup=sbn, endGroup=sbn (the relay
10
- * propagates startGroup upstream to pull the past group from the origin's
11
- * producer cache)
13
+ * - moqtail: standalone FETCH (FetchType.Standalone) of that one group
14
+ * - moq-lite/hang: Subscribe with startGroup = endGroup = that group (the
15
+ * relay propagates startGroup upstream to pull the past group from the
16
+ * origin's producer cache)
12
17
  *
13
18
  * Everything else — registration, fire-time repair-track resolution,
14
19
  * keyframe-first admission, preemption, feeding symbols, and in-flight slot
@@ -58,7 +63,7 @@
58
63
  * that deadline), on track reset, or on dispose.
59
64
  */
60
65
 
61
- import type { FecBlockProfile } from '@blockcast/mmt-base'
66
+ import { parseFecBlockProfile, type FecBlockProfile } from '@blockcast/mmt-base'
62
67
  import { repairPriorityForClass, type BlockClass, type RepairPriority } from './block-policy.js'
63
68
  import type { RepairLifecycleObserver } from './multicast-manager.js'
64
69
  import { REPAIR_PRIORITY_MIN } from './repair-layers.js'
@@ -112,18 +117,24 @@ export interface RepairFetchRequest {
112
117
  /** Repair track whose block `sbn` is fetched. */
113
118
  readonly repairTrack: string
114
119
  /**
115
- * The block's key, by `blockProfile` (BLO-35597 D2a):
116
- * - `k-padded-v1`: the source block number, which IS the repair-track MoQ
117
- * group id (fetch `[sbn, sbn]`).
118
- * - `iso-ssbg1-v1`: the block's 32-bit SS_Start. The MoQ group id is the
119
- * 62-bit `extSsStart(wrapEpoch, sbn)`; a receiver that knows only a lost
120
- * SS_ID fetches `repairFetchRange(lostSsId, kMax, anchor)`, where `anchor`
121
- * is `{ previousBlockStart }` (the extended start of the last block
122
- * delimited before it) or `{ reference }` (an epoch reference). Never use
123
- * it as a group id directly.
120
+ * The block's key: its 32-bit SS_Start (ISO/IEC 23008-1 C.5.3). The field
121
+ * keeps its historical name, but ssbg_mode1 blocks have no source block
122
+ * number (BLO-35597 D2a). The repair group's MoQ id is the 62-bit
123
+ * `extSsStart(wrapEpoch, sbn)`; a receiver that knows only a lost SS_ID
124
+ * fetches `repairFetchRange(lostSsId, kMax, anchor)`, where `anchor` is
125
+ * `{ previousBlockStart }` (the extended start of the last block delimited
126
+ * before it) or `{ reference }` (an epoch reference). Never use it as a
127
+ * group id directly: SS_Start wraps at 2^32, a MoQ group id never goes
128
+ * backwards.
124
129
  */
125
130
  readonly sbn: number
126
- /** The block profile `sbn` is keyed by (the catalog `fec.blockProfile`). */
131
+ /**
132
+ * The block profile `sbn` is keyed by: the catalog `fec.blockProfile`,
133
+ * which is always `iso-ssbg1-v1`. Required, and validated with
134
+ * `parseFecBlockProfile` when the request is queued, so a stream configured
135
+ * with any other token (the retired `k-padded-v1` included) never reaches
136
+ * the transport.
137
+ */
127
138
  readonly blockProfile: FecBlockProfile
128
139
  /** The source packetId the block belongs to. */
129
140
  readonly packetId: number
@@ -273,11 +284,11 @@ export type RepairSkipReason =
273
284
  export interface RepairFetchHost {
274
285
  readonly fecManager: {
275
286
  blockProfileForPacket(packetId: number): FecBlockProfile | undefined
276
- repairFetchTimeoutMsForBlock(sbn: number, packetId: number, catalogTrackName?: string): number
287
+ repairFetchTimeoutMsForBlock(sbn: number, packetId: number, catalogTrackName?: string): number | undefined
277
288
  /** Receiver-local time of the block's first accepted symbol, if any. */
278
289
  blockAnchorAtMs(sbn: number, packetId: number, catalogTrackName?: string): number | undefined
279
290
  /** How long a terminal block stays authoritative: the release-gate hold ceiling. */
280
- terminalRetentionMsForPacket(packetId: number): number
291
+ terminalRetentionMsForPacket(packetId: number): number | undefined
281
292
  /** Keep the block open to `untilAtMs` for an admitted FETCH. */
282
293
  holdBlockForRepair(
283
294
  sbn: number,
@@ -568,15 +579,18 @@ export function wireRepairFetch(mc: RepairFetchHost, opts: WireRepairFetchOption
568
579
 
569
580
  // The profile the block key is in; a stream reaching repair was configured
570
581
  // from its catalog, so an absent profile is a wiring fault, not a default.
571
- // Resolved when the request arrives (onRepairSubscribe below), never inside
572
- // execute: there its throw would read as an ordinary fetch failure, warned
573
- // once per block while the stream silently lost unicast repair.
582
+ // Any token other than `iso-ssbg1-v1` (the retired `k-padded-v1` included)
583
+ // is one too: `parseFecBlockProfile` refuses it, whatever an untyped host
584
+ // returns. Resolved when the request arrives (onRepairSubscribe below),
585
+ // never inside execute: there its throw would read as an ordinary fetch
586
+ // failure, warned once per block while the stream silently lost unicast
587
+ // repair.
574
588
  const blockProfileOf = (packetId: number): FecBlockProfile => {
575
- const profile = mc.fecManager.blockProfileForPacket(packetId)
589
+ const profile: unknown = mc.fecManager.blockProfileForPacket(packetId)
576
590
  if (profile === undefined) {
577
591
  throw new Error(`[RepairFetch] packetId=${packetId} has no configured fec.blockProfile`)
578
592
  }
579
- return profile
593
+ return parseFecBlockProfile(profile, `[RepairFetch] packetId=${packetId} fec.blockProfile`)
580
594
  }
581
595
 
582
596
  const execute = async (entry: RepairEntry, run: FetchRun): Promise<void> => {
@@ -667,8 +681,11 @@ export function wireRepairFetch(mc: RepairFetchHost, opts: WireRepairFetchOption
667
681
  catalogTrackName: string | undefined,
668
682
  now: number,
669
683
  ): number | null => {
670
- const waitDeadlineAt =
671
- now + mc.fecManager.repairFetchTimeoutMsForBlock(sbn, packetId, catalogTrackName)
684
+ // Undefined: the packetId is no longer configured (released), so it has
685
+ // no repair budget.
686
+ const waitMs = mc.fecManager.repairFetchTimeoutMsForBlock(sbn, packetId, catalogTrackName)
687
+ if (waitMs === undefined) return null
688
+ const waitDeadlineAt = now + waitMs
672
689
  const anchor = mc.fecManager.blockAnchorAtMs(sbn, packetId, catalogTrackName)
673
690
  if (anchor === undefined) return waitDeadlineAt
674
691
  let delayMs: number
@@ -678,7 +695,9 @@ export function wireRepairFetch(mc: RepairFetchHost, opts: WireRepairFetchOption
678
695
  return null
679
696
  }
680
697
  if (!(Number.isFinite(delayMs) && delayMs > 0)) return null
681
- const ceilingAt = anchor + mc.fecManager.terminalRetentionMsForPacket(packetId)
698
+ const retentionMs = mc.fecManager.terminalRetentionMsForPacket(packetId)
699
+ if (retentionMs === undefined) return null
700
+ const ceilingAt = anchor + retentionMs
682
701
  return Math.max(waitDeadlineAt, Math.min(anchor + delayMs, ceilingAt))
683
702
  }
684
703
 
@@ -20,7 +20,7 @@
20
20
  // rendition's `fec.repairTrack` and needs no `repair.renditions` entry; an
21
21
  // entry there is optional and, when present, must agree with the source.
22
22
 
23
- import { parseFecBlockProfile, type FecBlockProfile } from "@blockcast/mmt-base";
23
+ import { isFecBlockProfile, parseFecBlockProfile, type FecBlockProfile } from "@blockcast/mmt-base";
24
24
 
25
25
  /** Lowest MoQT-scale priority a repair track may declare. */
26
26
  export const REPAIR_PRIORITY_MIN = 192;
@@ -44,7 +44,8 @@ export type RepairContractCode =
44
44
  | "track_repair_overlay"
45
45
  | "track_repair_geometry"
46
46
  | "track_fec_bounds"
47
- | "track_fec_block_profile";
47
+ | "track_fec_block_profile"
48
+ | "track_fec_block_profile_unimplemented";
48
49
 
49
50
  /** Reports one contract violation and never returns. */
50
51
  export type RepairContractFail = (code: RepairContractCode, path: string, message: string) => never;
@@ -69,12 +70,23 @@ export const throwRepairContractError: RepairContractFail = (code, path, message
69
70
  * the one rule both catalog dialects, the CMSF validator and the per-track
70
71
  * resolver apply.
71
72
  *
72
- * A `fec` block that declares an FEC instance (any `algorithm` other than
73
- * `"none"`) MUST name its block profile, so an absent or unknown token fails
74
- * with `track_fec_block_profile` at `path`. A block declaring no FEC instance
75
- * may omit it (returns undefined), but a token it does carry must be known.
76
- * The token is never defaulted and never inferred: `k-padded-v1` and
77
- * `iso-ssbg1-v1` carry identical wire tuples whose repair math differs.
73
+ * draft-ramadan-moq-fec §5.1 defines exactly one profile, `iso-ssbg1-v1`, and
74
+ * it is the only one this library implements. A `fec` block that declares an
75
+ * FEC instance (any `algorithm` other than `"none"`) MUST name it; a block
76
+ * declaring no FEC instance may omit the token (returns undefined), but a token
77
+ * it does carry must be implemented. Failures are reported at `path`:
78
+ *
79
+ * - `track_fec_block_profile_unimplemented`: a non-empty string that names no
80
+ * implemented profile. The retired Blockcast-private `k-padded-v1` is one
81
+ * such token; a near-miss such as `"iso-ssbg1"` is another, never
82
+ * normalized.
83
+ * - `track_fec_block_profile`: no token on a declared FEC instance, or a value
84
+ * that is not a non-empty string.
85
+ *
86
+ * The token is never defaulted and never inferred from the wire. A receiver
87
+ * treats either failure as "FEC unavailable" for that track alone (it consumes
88
+ * the source without FEC and joins none of its repair tracks); a conformance
89
+ * validator rejects the catalog.
78
90
  *
79
91
  * @param path JSON path of the `blockProfile` field, for the error.
80
92
  */
@@ -97,6 +109,14 @@ export function readFecBlockProfile(
97
109
  fail: RepairContractFail,
98
110
  ): FecBlockProfile | undefined {
99
111
  if (value === undefined && !declaresFecInstance) return undefined;
112
+ if (isFecBlockProfile(value)) return value;
113
+ if (typeof value === "string" && value.length > 0) {
114
+ return fail(
115
+ "track_fec_block_profile_unimplemented",
116
+ path,
117
+ `${JSON.stringify(value)} is not an implemented FEC block profile; only "iso-ssbg1-v1" is implemented`,
118
+ );
119
+ }
100
120
  try {
101
121
  return parseFecBlockProfile(value, "blockProfile");
102
122
  } catch (error) {
@@ -172,24 +172,32 @@ export interface FecDeliveryWindowConfig {
172
172
  export function computeFecDeliveryWindowMs(
173
173
  config: FecDeliveryWindowConfig,
174
174
  ): number {
175
- const fecInterleaveMs = config.interleaveDepthMs
176
175
  const fecK = config.sourceSymbols
177
- if (!Number.isFinite(fecInterleaveMs) || fecInterleaveMs <= 0) {
178
- throw new Error(
179
- `[TrackSession] fecInterleaveMs=${fecInterleaveMs}. ` +
180
- `Derive a positive FEC interleave window from the stream catalog.`
181
- )
182
- }
183
176
  if (!Number.isFinite(fecK) || fecK <= 0) {
184
177
  throw new Error(
185
178
  `[TrackSession] fecK=${fecK}. ` +
186
179
  `Derive a positive FEC source-symbol count from the stream catalog.`
187
180
  )
188
181
  }
182
+ return fecSpanDeliveryWindowMs(config.interleaveDepthMs, config.jitterBufferMs)
183
+ }
189
184
 
185
+ /**
186
+ * The delivery window of a §5.1 span alone. Every window is this; K only
187
+ * validates a track's geometry in computeFecDeliveryWindowMs, so a caller
188
+ * with a span and no K (FECManager's stream-global envelope) uses this
189
+ * rather than invent one.
190
+ */
191
+ export function fecSpanDeliveryWindowMs(interleaveDepthMs: number, jitterBufferMs?: number): number {
192
+ if (!Number.isFinite(interleaveDepthMs) || interleaveDepthMs <= 0) {
193
+ throw new Error(
194
+ `[TrackSession] fecInterleaveMs=${interleaveDepthMs}. ` +
195
+ `Derive a positive FEC interleave window from the stream catalog.`
196
+ )
197
+ }
190
198
  // Absence stays absent; it does not authorize a synthesized reorder budget.
191
- if (config.jitterBufferMs === undefined) return Math.ceil(fecInterleaveMs)
192
- return fecBlockBudgetMs(fecInterleaveMs, config.jitterBufferMs)
199
+ if (jitterBufferMs === undefined) return Math.ceil(interleaveDepthMs)
200
+ return fecBlockBudgetMs(interleaveDepthMs, jitterBufferMs)
193
201
  }
194
202
 
195
203
  /** Convert the shared FEC delivery deadline into an integer media timescale. */
@@ -377,6 +385,17 @@ export class TrackSession {
377
385
  /** multicast/amt → failing: loss detected, start hysteresis timer (Claim 9f). */
378
386
  lossDetected(): void {
379
387
  if (this.#state !== 'multicast' && this.#state !== 'amt') return
388
+
389
+ // A zero/absent catalog span carries no elapsed FEC deadline. The stall
390
+ // detector that calls this method already supplied the generic loss
391
+ // evidence, so there is no FEC hysteresis window to derive here. Follow
392
+ // the existing transport-failure edge immediately instead of inventing a
393
+ // local timeout for a catalog value that explicitly supplied none.
394
+ if (this.config.fecInterleaveMs === 0 || this.config.fecInterleaveMs === undefined) {
395
+ this.transportFailed()
396
+ return
397
+ }
398
+
380
399
  this.#previousPrimary = this.#state as SubscriptionMode
381
400
  this.#transition('failing')
382
401
 
@@ -15,6 +15,9 @@ Negative fixtures are the migration worklist and MUST fail:
15
15
  - `multicast-packet-id-signaling.json`: an endpoint track's `packetId` is
16
16
  1..65535; `packetId` 0 is the MMTP signaling flow and is never a track's.
17
17
  - `network-source-object.json`: `networkSource` is always an array.
18
+ - `multicast-endpoint-relay-address.json`: the AMT relay is catalog-level
19
+ `networkSource[{type:"amt",relay}]`; an endpoint `relayAddress` is retired
20
+ and rejected (`multicast_relay_address`), not ignored.
18
21
  - `multicast-network-source-empty.json`: `networkSource` is optional, but an
19
22
  empty array is not a way to say "absent" — omit the key instead.
20
23
  - `repair-track-legacy-shape.json`: repair tracks use `packaging: "fec-repair"`.
@@ -28,9 +31,13 @@ Negative fixtures are the migration worklist and MUST fail:
28
31
  and `scope` are `fec-repair` track fields only.
29
32
  - `raptorq-source-symbols-over-max.json`: RaptorQ K is at most 56403 (RFC 6330).
30
33
  - `fec-block-profile-missing.json`: an FEC instance must name its block
31
- profile; there is no default.
32
- - `fec-block-profile-unknown.json`: `fec.blockProfile` is one of the two known
33
- tokens; a near-miss such as `"iso-ssbg1"` is rejected, not normalized.
34
+ profile; there is no default (`track_fec_block_profile`).
35
+ - `fec-block-profile-unknown.json`: `fec.blockProfile` is `"iso-ssbg1-v1"`; a
36
+ near-miss such as `"iso-ssbg1"` is rejected, not normalized
37
+ (`track_fec_block_profile_unimplemented`).
38
+ - `fec-block-profile-retired.json`: the retired Blockcast-private
39
+ `"k-padded-v1"` is not a block profile
40
+ (`track_fec_block_profile_unimplemented`).
34
41
  - `archive-origin-with-path.json`: `archive.origin` is scheme and authority
35
42
  only. A path would make the derived object URL ambiguous above a codec that
36
43
  refuses percent-encoding precisely so each identity has one URL path.
@@ -49,21 +56,33 @@ exercised: `{ns}` is the track's own `namespace`, or the MoQ subscription's
49
56
  Track Namespace tuple when the track declares none.
50
57
 
51
58
  Every `fec` object that declares an FEC instance (any `algorithm` other than
52
- `"none"`) carries `fec.blockProfile` (BLO-35597, ISO/IEC 23008-1 Annex C), the
53
- one per-stream discriminator between the two block profiles. It is never
54
- defaulted and never inferred from the wire, because both profiles carry
55
- identical wire tuples whose repair math differs:
59
+ `"none"`) carries `fec.blockProfile` (BLO-35597, ISO/IEC 23008-1 Annex C).
60
+ draft-ramadan-moq-fec §5.1 defines exactly one value, `"iso-ssbg1-v1"`
61
+ (ssbg_mode1, `K' = SSB_length`, consecutive SS_IDs), and it is never defaulted
62
+ and never inferred from the wire. Any other token, the retired
63
+ Blockcast-private `"k-padded-v1"` included, fails validation with
64
+ `track_fec_block_profile_unimplemented`; an absent token on an FEC instance
65
+ fails with `track_fec_block_profile`. A receiver consumes such a track without
66
+ FEC and joins none of its repair tracks, without failing the session or any
67
+ other track's FEC.
56
68
 
57
- - `"k-padded-v1"` (legacy): zero-padded K-symbol blocks, `SS_Start = SBN*K`.
58
- Every fixture that predates the token carries this value, which is the wire
59
- it always described.
60
- - `"iso-ssbg1-v1"`: ssbg_mode1, `K' = SSB_length`, consecutive SS_IDs.
61
- `fec-iso-ssbg1.json` is `fec-multicast.json` under this profile.
69
+ `"iso-ssbg1-v1"` bounds a block's location by its span, so a receiver applies
70
+ FEC only when `fec.interleaveDepthMs` is at least 33 ms; without it the track
71
+ resolves to no FEC (`track_fec_block_span` on `interleaveDepthMs`; a declared
72
+ span below the floor is `track_fec`). The schema and the
73
+ CMSF validator do not require the field. Every fixture that carried
74
+ `"k-padded-v1"` now names `"iso-ssbg1-v1"`. The FEC-carrying positives that
75
+ omitted the span (`fec-multicast.json`,
76
+ `multicast-native-ssm-no-network-source.json`) now declare the one-group span
77
+ their omitted field used to mean (`interleaveDepthMs` equal to
78
+ `groupDurationMs`, 1000). `fec-iso-ssbg1.json` is `fec-multicast.json` without
79
+ that span: a valid catalog whose FEC a receiver cannot apply.
62
80
 
63
81
  On `algorithm: "none"` the field is optional, but a present token must still be
64
- known. Repair tracks carry no `fec`, so they carry no profile; a repair layer or
65
- overlay inherits its source's. Every negative fixture with an FEC source names
66
- `"k-padded-v1"`, so each still fails for exactly the reason listed above.
82
+ implemented. Repair tracks carry no `fec`, so they carry no profile; a repair
83
+ layer or overlay inherits its source's. Every negative fixture with an FEC
84
+ source names `"iso-ssbg1-v1"` unless the profile is what it tests, so each still
85
+ fails for exactly the reason listed above.
67
86
 
68
87
  `fec-layered-repair.json` carries base layers 0..2 and a keyframe overlay for one
69
88
  source (draft-ramadan-moq-fec 6.3): layer 0 is `fec.repairTrack`, every further
@@ -71,8 +90,9 @@ repair track names its source in `depends`, and the second endpoint carries only
71
90
  repair tracks. Priority is on the MoQT scale (lower first); `audio-repair`
72
91
  declares none and so is layer 0 at the default 240.
73
92
 
74
- An omitted `fec.interleaveDepthMs` means one group (`D=1`); it does not disable
75
- FEC. When present, `groupDurationTicks` overrides the integer millisecond field.
93
+ An omitted `fec.interleaveDepthMs` is valid catalog shape, but under
94
+ `"iso-ssbg1-v1"` it leaves the track without FEC at a receiver (see above).
95
+ When present, `groupDurationTicks` overrides the integer millisecond field.
76
96
  Switching sets compare `ticks / timescale`, so equal wall-clock durations at
77
97
  different timescales are valid.
78
98
 
@@ -0,0 +1,52 @@
1
+ {
2
+ "version": 1,
3
+ "streamingFormat": "mmtp",
4
+ "streamingFormatVersion": "draft-ramadan-moq-mmt-00",
5
+ "tracks": [
6
+ {
7
+ "name": "video",
8
+ "packaging": "mmtp",
9
+ "codec": "avc1.640028",
10
+ "mmtpMode": "mfu",
11
+ "timescale": 90000,
12
+ "groupDurationMs": 1000,
13
+ "fec": {
14
+ "algorithm": "raptorq",
15
+ "blockProfile": "k-padded-v1",
16
+ "sourceSymbols": 768,
17
+ "repairSymbols": 384,
18
+ "symbolSize": 1312,
19
+ "repairTrack": "video-repair",
20
+ "mode": "interleaved"
21
+ }
22
+ },
23
+ {
24
+ "name": "video-repair",
25
+ "packaging": "fec-repair",
26
+ "priority": 240
27
+ }
28
+ ],
29
+ "multicast": {
30
+ "endpoints": [
31
+ {
32
+ "sourceAddress": "192.0.2.10",
33
+ "groupAddress": "232.1.1.1",
34
+ "port": 5000,
35
+ "tracks": [
36
+ { "name": "video", "packetId": 1 },
37
+ { "name": "video-repair", "packetId": 2 }
38
+ ]
39
+ }
40
+ ],
41
+ "networkSource": [
42
+ { "type": "amt", "discovery": "driad" },
43
+ {
44
+ "type": "atsc3",
45
+ "frequency": 587000000,
46
+ "plpId": 0,
47
+ "serviceId": 101,
48
+ "slsUri": "https://example.test/atsc3/service/101/sls.xml"
49
+ }
50
+ ]
51
+ }
52
+ }
@@ -12,7 +12,7 @@
12
12
  "groupDurationMs": 1000,
13
13
  "fec": {
14
14
  "algorithm": "raptorq",
15
- "blockProfile": "k-padded-v1",
15
+ "blockProfile": "iso-ssbg1-v1",
16
16
  "sourceSymbols": 64,
17
17
  "repairSymbols": 8,
18
18
  "symbolSize": 1312,
@@ -12,7 +12,7 @@
12
12
  "groupDurationMs": 1000,
13
13
  "fec": {
14
14
  "algorithm": "raptorq",
15
- "blockProfile": "k-padded-v1",
15
+ "blockProfile": "iso-ssbg1-v1",
16
16
  "sourceSymbols": 64,
17
17
  "repairSymbols": 8,
18
18
  "symbolSize": 1312,
@@ -12,7 +12,7 @@
12
12
  "groupDurationMs": 1000,
13
13
  "fec": {
14
14
  "algorithm": "raptorq",
15
- "blockProfile": "k-padded-v1",
15
+ "blockProfile": "iso-ssbg1-v1",
16
16
  "sourceSymbols": 64,
17
17
  "repairSymbols": 8,
18
18
  "symbolSize": 1312,
@@ -12,7 +12,7 @@
12
12
  "groupDurationMs": 1000,
13
13
  "fec": {
14
14
  "algorithm": "raptorq",
15
- "blockProfile": "k-padded-v1",
15
+ "blockProfile": "iso-ssbg1-v1",
16
16
  "sourceSymbols": 64,
17
17
  "repairSymbols": 8,
18
18
  "symbolSize": 1312,
@@ -12,7 +12,7 @@
12
12
  "groupDurationMs": 1000,
13
13
  "fec": {
14
14
  "algorithm": "raptorq",
15
- "blockProfile": "k-padded-v1",
15
+ "blockProfile": "iso-ssbg1-v1",
16
16
  "sourceSymbols": 64,
17
17
  "repairSymbols": 8,
18
18
  "symbolSize": 1312,
@@ -12,7 +12,7 @@
12
12
  "groupDurationMs": 1000,
13
13
  "fec": {
14
14
  "algorithm": "raptorq",
15
- "blockProfile": "k-padded-v1",
15
+ "blockProfile": "iso-ssbg1-v1",
16
16
  "sourceSymbols": 64,
17
17
  "repairSymbols": 8,
18
18
  "symbolSize": 1312,
@@ -12,7 +12,7 @@
12
12
  "groupDurationMs": 1000,
13
13
  "fec": {
14
14
  "algorithm": "raptorq",
15
- "blockProfile": "k-padded-v1",
15
+ "blockProfile": "iso-ssbg1-v1",
16
16
  "sourceSymbols": 64,
17
17
  "repairSymbols": 8,
18
18
  "symbolSize": 1312,
@@ -0,0 +1,39 @@
1
+ {
2
+ "version": 1,
3
+ "streamingFormat": "mmtp",
4
+ "streamingFormatVersion": "draft-ramadan-moq-mmt-00",
5
+ "tracks": [
6
+ {
7
+ "name": "video",
8
+ "packaging": "mmtp",
9
+ "codec": "avc1.640028",
10
+ "mmtpMode": "mfu",
11
+ "timescale": 90000,
12
+ "groupDurationMs": 1000
13
+ }
14
+ ],
15
+ "multicast": {
16
+ "endpoints": [
17
+ {
18
+ "protocol": "amt",
19
+ "sourceAddress": "192.0.2.10",
20
+ "groupAddress": "232.1.1.1",
21
+ "port": 5000,
22
+ "relayAddress": "amt-relay.example.test",
23
+ "tracks": [
24
+ {
25
+ "name": "video",
26
+ "packetId": 1
27
+ }
28
+ ]
29
+ }
30
+ ],
31
+ "networkSource": [
32
+ {
33
+ "type": "amt",
34
+ "discovery": "manual",
35
+ "relay": "amt-relay.example.test"
36
+ }
37
+ ]
38
+ }
39
+ }
@@ -12,7 +12,7 @@
12
12
  "groupDurationMs": 1000,
13
13
  "fec": {
14
14
  "algorithm": "raptorq",
15
- "blockProfile": "k-padded-v1",
15
+ "blockProfile": "iso-ssbg1-v1",
16
16
  "sourceSymbols": 768,
17
17
  "repairSymbols": 384,
18
18
  "symbolSize": 1312,
@@ -12,7 +12,7 @@
12
12
  "groupDurationMs": 1000,
13
13
  "fec": {
14
14
  "algorithm": "raptorq",
15
- "blockProfile": "k-padded-v1",
15
+ "blockProfile": "iso-ssbg1-v1",
16
16
  "sourceSymbols": 56404,
17
17
  "repairSymbols": 8,
18
18
  "symbolSize": 1312,
@@ -11,7 +11,7 @@
11
11
  "groupDurationMs": 1000,
12
12
  "fec": {
13
13
  "algorithm": "raptorq",
14
- "blockProfile": "k-padded-v1",
14
+ "blockProfile": "iso-ssbg1-v1",
15
15
  "sourceSymbols": 32,
16
16
  "repairSymbols": 8,
17
17
  "symbolSize": 1310,
@@ -12,7 +12,7 @@
12
12
  "groupDurationMs": 1000,
13
13
  "fec": {
14
14
  "algorithm": "raptorq",
15
- "blockProfile": "k-padded-v1",
15
+ "blockProfile": "iso-ssbg1-v1",
16
16
  "sourceSymbols": 64,
17
17
  "repairSymbols": 8,
18
18
  "symbolSize": 1312,
@@ -62,7 +62,7 @@
62
62
  "groupDurationMs": 1000,
63
63
  "fec": {
64
64
  "algorithm": "raptorq",
65
- "blockProfile": "k-padded-v1",
65
+ "blockProfile": "iso-ssbg1-v1",
66
66
  "sourceSymbols": 47,
67
67
  "repairSymbols": 4,
68
68
  "symbolSize": 1312,
@@ -12,10 +12,11 @@
12
12
  "groupDurationMs": 1000,
13
13
  "fec": {
14
14
  "algorithm": "raptorq",
15
- "blockProfile": "k-padded-v1",
15
+ "blockProfile": "iso-ssbg1-v1",
16
16
  "sourceSymbols": 768,
17
17
  "repairSymbols": 384,
18
18
  "symbolSize": 1312,
19
+ "interleaveDepthMs": 1000,
19
20
  "repairTrack": "video-repair",
20
21
  "mode": "interleaved"
21
22
  }
@@ -0,0 +1,38 @@
1
+ {
2
+ "version": 1,
3
+ "streamingFormat": "mmtp",
4
+ "streamingFormatVersion": "draft-ramadan-moq-mmt-00",
5
+ "tracks": [
6
+ {
7
+ "name": "video",
8
+ "packaging": "mmtp",
9
+ "codec": "avc1.640028",
10
+ "mmtpMode": "mfu",
11
+ "timescale": 90000,
12
+ "groupDurationMs": 1000
13
+ }
14
+ ],
15
+ "multicast": {
16
+ "endpoints": [
17
+ {
18
+ "protocol": "amt",
19
+ "sourceAddress": "192.0.2.10",
20
+ "groupAddress": "232.1.1.1",
21
+ "port": 5000,
22
+ "tracks": [
23
+ {
24
+ "name": "video",
25
+ "packetId": 1
26
+ }
27
+ ]
28
+ }
29
+ ],
30
+ "networkSource": [
31
+ {
32
+ "type": "amt",
33
+ "discovery": "manual",
34
+ "relay": "amt-relay.example.test"
35
+ }
36
+ ]
37
+ }
38
+ }
@@ -12,10 +12,11 @@
12
12
  "groupDurationMs": 1000,
13
13
  "fec": {
14
14
  "algorithm": "raptorq",
15
- "blockProfile": "k-padded-v1",
15
+ "blockProfile": "iso-ssbg1-v1",
16
16
  "sourceSymbols": 768,
17
17
  "repairSymbols": 384,
18
18
  "symbolSize": 1312,
19
+ "interleaveDepthMs": 1000,
19
20
  "repairTrack": "video-repair",
20
21
  "mode": "interleaved"
21
22
  }