@blockcast/mmt-container 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +524 -0
- package/dist/.build-stamp +0 -0
- package/dist/__tests__/test-utils.d.ts +71 -0
- package/dist/__tests__/test-utils.d.ts.map +1 -0
- package/dist/align.d.ts +152 -0
- package/dist/align.d.ts.map +1 -0
- package/dist/align.js +88 -0
- package/dist/align.js.map +7 -0
- package/dist/audio-init-parser.d.ts +66 -0
- package/dist/audio-init-parser.d.ts.map +1 -0
- package/dist/audio-init-parser.js +118 -0
- package/dist/audio-init-parser.js.map +7 -0
- package/dist/audio-ring-buffer.d.ts +50 -0
- package/dist/audio-ring-buffer.d.ts.map +1 -0
- package/dist/audio-ring-buffer.js +80 -0
- package/dist/audio-ring-buffer.js.map +7 -0
- package/dist/authored-timing.d.ts +32 -0
- package/dist/authored-timing.d.ts.map +1 -0
- package/dist/authored-timing.js +32 -0
- package/dist/authored-timing.js.map +7 -0
- package/dist/block-policy.d.ts +314 -0
- package/dist/block-policy.d.ts.map +1 -0
- package/dist/block-policy.js +466 -0
- package/dist/block-policy.js.map +7 -0
- package/dist/browser-runtime.js +26549 -0
- package/dist/browser-runtime.js.map +7 -0
- package/dist/carp-catalog.d.ts +429 -0
- package/dist/carp-catalog.d.ts.map +1 -0
- package/dist/carp-catalog.js +985 -0
- package/dist/carp-catalog.js.map +7 -0
- package/dist/catalog-fec-params.d.ts +275 -0
- package/dist/catalog-fec-params.d.ts.map +1 -0
- package/dist/catalog-fec-params.js +702 -0
- package/dist/catalog-fec-params.js.map +7 -0
- package/dist/catalog-network-source.d.ts +42 -0
- package/dist/catalog-network-source.d.ts.map +1 -0
- package/dist/catalog-network-source.js +47 -0
- package/dist/catalog-network-source.js.map +7 -0
- package/dist/catalog-validator.d.ts +18 -0
- package/dist/catalog-validator.d.ts.map +1 -0
- package/dist/catalog-validator.js +7747 -0
- package/dist/catalog-validator.js.map +7 -0
- package/dist/cmaf-block-assembler.d.ts +285 -0
- package/dist/cmaf-block-assembler.d.ts.map +1 -0
- package/dist/cmaf-block-assembler.js +1966 -0
- package/dist/cmaf-block-assembler.js.map +7 -0
- package/dist/cmaf-group-batcher.d.ts +38 -0
- package/dist/cmaf-group-batcher.d.ts.map +1 -0
- package/dist/cmaf-group-batcher.js +176 -0
- package/dist/cmaf-group-batcher.js.map +7 -0
- package/dist/cmcd-producer.d.ts +104 -0
- package/dist/cmcd-producer.d.ts.map +1 -0
- package/dist/cmcd-producer.js +183 -0
- package/dist/cmcd-producer.js.map +7 -0
- package/dist/codec-utils.d.ts +384 -0
- package/dist/codec-utils.d.ts.map +1 -0
- package/dist/codec-utils.js +1546 -0
- package/dist/codec-utils.js.map +7 -0
- package/dist/conceal-timeline.d.ts +146 -0
- package/dist/conceal-timeline.d.ts.map +1 -0
- package/dist/conceal-timeline.js +137 -0
- package/dist/conceal-timeline.js.map +7 -0
- package/dist/delivery-gap.d.ts +75 -0
- package/dist/delivery-gap.d.ts.map +1 -0
- package/dist/delivery-gap.js +88 -0
- package/dist/delivery-gap.js.map +7 -0
- package/dist/duplicate-ledger.d.ts +197 -0
- package/dist/duplicate-ledger.d.ts.map +1 -0
- package/dist/duplicate-ledger.js +226 -0
- package/dist/duplicate-ledger.js.map +7 -0
- package/dist/fec-codec.d.ts +32 -0
- package/dist/fec-codec.d.ts.map +1 -0
- package/dist/fec-codec.js +47 -0
- package/dist/fec-codec.js.map +7 -0
- package/dist/fec-manager.d.ts +583 -0
- package/dist/fec-manager.d.ts.map +1 -0
- package/dist/fec-manager.js +3899 -0
- package/dist/fec-manager.js.map +7 -0
- package/dist/fec-starvation-detector.d.ts +59 -0
- package/dist/fec-starvation-detector.d.ts.map +1 -0
- package/dist/fec-starvation-detector.js +60 -0
- package/dist/fec-starvation-detector.js.map +7 -0
- package/dist/fec-state.d.ts +131 -0
- package/dist/fec-state.d.ts.map +1 -0
- package/dist/fec-state.js +87 -0
- package/dist/fec-state.js.map +7 -0
- package/dist/fec-worker-setup.d.ts +94 -0
- package/dist/fec-worker-setup.d.ts.map +1 -0
- package/dist/fec-worker-setup.js +673 -0
- package/dist/fec-worker-setup.js.map +7 -0
- package/dist/fmp4-completion.d.ts +30 -0
- package/dist/fmp4-completion.d.ts.map +1 -0
- package/dist/fmp4-completion.js +21 -0
- package/dist/fmp4-completion.js.map +7 -0
- package/dist/fmp4-reader.d.ts +37 -0
- package/dist/fmp4-reader.d.ts.map +1 -0
- package/dist/fmp4-reader.js +100 -0
- package/dist/fmp4-reader.js.map +7 -0
- package/dist/index.d.ts +44 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +460 -14
- package/dist/index.js.map +7 -1
- package/dist/iso-block-locator.d.ts +118 -0
- package/dist/iso-block-locator.d.ts.map +1 -0
- package/dist/iso-block-locator.js +289 -0
- package/dist/iso-block-locator.js.map +7 -0
- package/dist/iso-bmff-timing.d.ts +78 -0
- package/dist/iso-bmff-timing.d.ts.map +1 -0
- package/dist/iso-bmff-timing.js +593 -0
- package/dist/iso-bmff-timing.js.map +7 -0
- package/dist/loc.d.ts +70 -75
- package/dist/loc.d.ts.map +1 -1
- package/dist/loc.js +106 -192
- package/dist/loc.js.map +7 -1
- package/dist/manifest-auth-plan.d.ts +30 -0
- package/dist/manifest-auth-plan.d.ts.map +1 -0
- package/dist/manifest-auth-plan.js +1266 -0
- package/dist/manifest-auth-plan.js.map +7 -0
- package/dist/media-router.d.ts +262 -0
- package/dist/media-router.d.ts.map +1 -0
- package/dist/media-router.js +584 -0
- package/dist/media-router.js.map +7 -0
- package/dist/mfu-reassembler.d.ts +313 -9
- package/dist/mfu-reassembler.d.ts.map +1 -1
- package/dist/mfu-reassembler.js +3051 -285
- package/dist/mfu-reassembler.js.map +7 -1
- package/dist/mfu-reassembly-policy.d.ts +24 -0
- package/dist/mfu-reassembly-policy.d.ts.map +1 -0
- package/dist/mfu-reassembly-policy.js +99 -0
- package/dist/mfu-reassembly-policy.js.map +7 -0
- package/dist/mmtp-container-parser.d.ts +568 -0
- package/dist/mmtp-container-parser.d.ts.map +1 -0
- package/dist/mmtp-container-parser.js +6580 -0
- package/dist/mmtp-container-parser.js.map +7 -0
- package/dist/mmtp-container-parser.no-modules.js +9616 -0
- package/dist/mmtp-container-parser.no-modules.js.map +7 -0
- package/dist/mmtp-decode-pipeline.d.ts +138 -0
- package/dist/mmtp-decode-pipeline.d.ts.map +1 -0
- package/dist/mmtp-decode-pipeline.js +6814 -0
- package/dist/mmtp-decode-pipeline.js.map +7 -0
- package/dist/mmtp-router.d.ts +679 -0
- package/dist/mmtp-router.d.ts.map +1 -0
- package/dist/mmtp-router.js +11278 -0
- package/dist/mmtp-router.js.map +7 -0
- package/dist/mmtp-to-cmaf.d.ts +187 -0
- package/dist/mmtp-to-cmaf.d.ts.map +1 -0
- package/dist/mmtp-to-cmaf.js +716 -0
- package/dist/mmtp-to-cmaf.js.map +7 -0
- package/dist/multicast-auth-catalog.d.ts +115 -0
- package/dist/multicast-auth-catalog.d.ts.map +1 -0
- package/dist/multicast-auth-catalog.js +202 -0
- package/dist/multicast-auth-catalog.js.map +7 -0
- package/dist/multicast-input.d.ts +141 -0
- package/dist/multicast-input.d.ts.map +1 -0
- package/dist/multicast-input.js +390 -0
- package/dist/multicast-input.js.map +7 -0
- package/dist/multicast-manager.d.ts +669 -0
- package/dist/multicast-manager.d.ts.map +1 -0
- package/dist/multicast-manager.js +19101 -0
- package/dist/multicast-manager.js.map +7 -0
- package/dist/multicast-transport.d.ts +271 -0
- package/dist/multicast-transport.d.ts.map +1 -0
- package/dist/multicast-transport.js +2264 -0
- package/dist/multicast-transport.js.map +7 -0
- package/dist/multicast-unwrap.d.ts +57 -0
- package/dist/multicast-unwrap.d.ts.map +1 -0
- package/dist/multicast-unwrap.js +418 -0
- package/dist/multicast-unwrap.js.map +7 -0
- package/dist/no-modules.d.ts +10 -0
- package/dist/no-modules.d.ts.map +1 -0
- package/dist/no-modules.js +9491 -0
- package/dist/no-modules.js.map +7 -0
- package/dist/phase14-catalog-override.d.ts +126 -0
- package/dist/phase14-catalog-override.d.ts.map +1 -0
- package/dist/phase14-catalog-override.js +155 -0
- package/dist/phase14-catalog-override.js.map +7 -0
- package/dist/repair-fetch.d.ts +270 -0
- package/dist/repair-fetch.d.ts.map +1 -0
- package/dist/repair-fetch.js +381 -0
- package/dist/repair-fetch.js.map +7 -0
- package/dist/repair-layers.d.ts +158 -0
- package/dist/repair-layers.d.ts.map +1 -0
- package/dist/repair-layers.js +344 -0
- package/dist/repair-layers.js.map +7 -0
- package/dist/sample-combiner.d.ts +212 -0
- package/dist/sample-combiner.d.ts.map +1 -0
- package/dist/sample-combiner.js +595 -0
- package/dist/sample-combiner.js.map +7 -0
- package/dist/signaling.d.ts +29 -0
- package/dist/signaling.d.ts.map +1 -0
- package/dist/signaling.js +572 -0
- package/dist/signaling.js.map +7 -0
- package/dist/source-auth.d.ts +2 -0
- package/dist/source-auth.d.ts.map +1 -0
- package/dist/source-auth.js +1209 -0
- package/dist/source-auth.js.map +7 -0
- package/dist/switching-set-alignment.d.ts +61 -0
- package/dist/switching-set-alignment.d.ts.map +1 -0
- package/dist/switching-set-alignment.js +70 -0
- package/dist/switching-set-alignment.js.map +7 -0
- package/dist/timestamp-codec.d.ts +34 -0
- package/dist/timestamp-codec.d.ts.map +1 -0
- package/dist/timestamp-codec.js +473 -0
- package/dist/timestamp-codec.js.map +7 -0
- package/dist/track-pipeline-setup.d.ts +83 -0
- package/dist/track-pipeline-setup.d.ts.map +1 -0
- package/dist/track-pipeline-setup.js +291 -0
- package/dist/track-pipeline-setup.js.map +7 -0
- package/dist/track-pipeline.d.ts +121 -0
- package/dist/track-pipeline.d.ts.map +1 -0
- package/dist/track-pipeline.js +209 -0
- package/dist/track-pipeline.js.map +7 -0
- package/dist/track-session.d.ts +414 -0
- package/dist/track-session.d.ts.map +1 -0
- package/dist/track-session.js +754 -0
- package/dist/track-session.js.map +7 -0
- package/dist/transport-pool.d.ts +69 -0
- package/dist/transport-pool.d.ts.map +1 -0
- package/dist/transport-pool.js +74 -0
- package/dist/transport-pool.js.map +7 -0
- package/dist/wasm-mfu-reassembler.d.ts +97 -0
- package/dist/wasm-mfu-reassembler.d.ts.map +1 -0
- package/dist/wasm-mfu-reassembler.js +2133 -0
- package/dist/wasm-mfu-reassembler.js.map +7 -0
- package/dist/wasm-mmtp-container-parser.d.ts +10 -0
- package/dist/wasm-mmtp-container-parser.d.ts.map +1 -0
- package/dist/wasm-mmtp-container-parser.js +6834 -0
- package/dist/wasm-mmtp-container-parser.js.map +7 -0
- package/node_modules/@blockcast/fec-worker/README.md +223 -0
- package/node_modules/@blockcast/fec-worker/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/fec-worker/dist/block-order.d.ts +38 -0
- package/node_modules/@blockcast/fec-worker/dist/block-order.d.ts.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/block-order.js +78 -0
- package/node_modules/@blockcast/fec-worker/dist/block-order.js.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.d.ts +93 -0
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.d.ts.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.js +346 -0
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.js.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.d.ts +380 -0
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.d.ts.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.js +11 -0
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.js.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/fec-worker.d.ts +14 -0
- package/node_modules/@blockcast/fec-worker/dist/fec-worker.d.ts.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/fec-worker.js +859 -0
- package/node_modules/@blockcast/fec-worker/dist/fec-worker.js.map +7 -0
- package/node_modules/@blockcast/fec-worker/dist/index.d.ts +10 -0
- package/node_modules/@blockcast/fec-worker/dist/index.d.ts.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/index.js +8 -0
- package/node_modules/@blockcast/fec-worker/dist/index.js.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.d.ts +20 -0
- package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.d.ts.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.js +370 -0
- package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.js.map +7 -0
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.d.ts +104 -0
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.d.ts.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.js +181 -0
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.js.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.d.ts +194 -0
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.d.ts.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.js +62 -0
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.js.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/transfer.d.ts +9 -0
- package/node_modules/@blockcast/fec-worker/dist/transfer.d.ts.map +1 -0
- package/node_modules/@blockcast/fec-worker/dist/transfer.js +13 -0
- package/node_modules/@blockcast/fec-worker/dist/transfer.js.map +1 -0
- package/node_modules/@blockcast/fec-worker/package.json +59 -0
- package/node_modules/@blockcast/fec-worker/src/block-order.ts +93 -0
- package/node_modules/@blockcast/fec-worker/src/fec-worker-client.ts +392 -0
- package/node_modules/@blockcast/fec-worker/src/fec-worker-types.ts +399 -0
- package/node_modules/@blockcast/fec-worker/src/fec-worker.ts +1502 -0
- package/node_modules/@blockcast/fec-worker/src/index.ts +35 -0
- package/node_modules/@blockcast/fec-worker/src/shred-fec-worker.ts +589 -0
- package/node_modules/@blockcast/fec-worker/src/shred-worker-client.ts +222 -0
- package/node_modules/@blockcast/fec-worker/src/shred-worker-types.ts +209 -0
- package/node_modules/@blockcast/fec-worker/src/transfer.ts +12 -0
- package/node_modules/@blockcast/mmt-alta-parse/README.md +181 -0
- package/node_modules/@blockcast/mmt-alta-parse/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts +57 -0
- package/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-alta-parse/dist/index.js +115 -0
- package/node_modules/@blockcast/mmt-alta-parse/dist/index.js.map +1 -0
- package/node_modules/@blockcast/mmt-alta-parse/package.json +50 -0
- package/node_modules/@blockcast/mmt-alta-parse/src/index.ts +136 -0
- package/node_modules/@blockcast/mmt-base/README.md +134 -0
- package/node_modules/@blockcast/mmt-base/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts +55 -0
- package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js +128 -0
- package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/index.d.ts +7 -0
- package/node_modules/@blockcast/mmt-base/dist/index.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/index.js +7 -0
- package/node_modules/@blockcast/mmt-base/dist/index.js.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts +292 -0
- package/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/mmtp.js +612 -0
- package/node_modules/@blockcast/mmt-base/dist/mmtp.js.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts +18 -0
- package/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/net-constants.js +18 -0
- package/node_modules/@blockcast/mmt-base/dist/net-constants.js.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts +47 -0
- package/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/ntp-short.js +54 -0
- package/node_modules/@blockcast/mmt-base/dist/ntp-short.js.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts +57 -0
- package/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/serial-number.js +98 -0
- package/node_modules/@blockcast/mmt-base/dist/serial-number.js.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/signalling.d.ts +312 -0
- package/node_modules/@blockcast/mmt-base/dist/signalling.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/signalling.js +637 -0
- package/node_modules/@blockcast/mmt-base/dist/signalling.js.map +1 -0
- package/node_modules/@blockcast/mmt-base/package.json +49 -0
- package/node_modules/@blockcast/mmt-base/src/fec-block-profile.ts +145 -0
- package/node_modules/@blockcast/mmt-base/src/index.ts +6 -0
- package/node_modules/@blockcast/mmt-base/src/mmtp.ts +892 -0
- package/node_modules/@blockcast/mmt-base/src/net-constants.ts +17 -0
- package/node_modules/@blockcast/mmt-base/src/ntp-short.ts +67 -0
- package/node_modules/@blockcast/mmt-base/src/serial-number.ts +107 -0
- package/node_modules/@blockcast/mmt-base/src/signalling.ts +862 -0
- package/node_modules/@blockcast/mmt-fec/README.md +271 -0
- package/node_modules/@blockcast/mmt-fec/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/mmt-fec/dist/block-manager.d.ts +82 -0
- package/node_modules/@blockcast/mmt-fec/dist/block-manager.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/block-manager.js +296 -0
- package/node_modules/@blockcast/mmt-fec/dist/block-manager.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/block-processor.d.ts +106 -0
- package/node_modules/@blockcast/mmt-fec/dist/block-processor.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/block-processor.js +288 -0
- package/node_modules/@blockcast/mmt-fec/dist/block-processor.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.d.ts +46 -0
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.js +96 -0
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.d.ts +33 -0
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.js +57 -0
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.d.ts +205 -0
- package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.js +240 -0
- package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/index.d.ts +28 -0
- package/node_modules/@blockcast/mmt-fec/dist/index.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/index.js +28 -0
- package/node_modules/@blockcast/mmt-fec/dist/index.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.d.ts +20 -0
- package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.js +28 -0
- package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/oti.d.ts +258 -0
- package/node_modules/@blockcast/mmt-fec/dist/oti.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/oti.js +382 -0
- package/node_modules/@blockcast/mmt-fec/dist/oti.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.d.ts +41 -0
- package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.js +81 -0
- package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/repair-group.d.ts +82 -0
- package/node_modules/@blockcast/mmt-fec/dist/repair-group.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/repair-group.js +170 -0
- package/node_modules/@blockcast/mmt-fec/dist/repair-group.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/README.md +181 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts +57 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.js +115 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/package.json +50 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/src/index.ts +136 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/README.md +134 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts +55 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js +128 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.d.ts +7 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.js +7 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts +292 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.js +612 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts +18 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.js +18 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts +47 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.js +54 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts +57 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.js +98 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.d.ts +312 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.js +637 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.js.map +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/package.json +49 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/fec-block-profile.ts +145 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/index.ts +6 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/mmtp.ts +892 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/net-constants.ts +17 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/ntp-short.ts +67 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/serial-number.ts +107 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/signalling.ts +862 -0
- package/node_modules/@blockcast/mmt-fec/package.json +79 -0
- package/node_modules/@blockcast/mmt-fec/src/block-manager.ts +371 -0
- package/node_modules/@blockcast/mmt-fec/src/block-processor.ts +439 -0
- package/node_modules/@blockcast/mmt-fec/src/cmaf-recovery.ts +127 -0
- package/node_modules/@blockcast/mmt-fec/src/cmaf-symbols.ts +68 -0
- package/node_modules/@blockcast/mmt-fec/src/fec-block-mapper.ts +310 -0
- package/node_modules/@blockcast/mmt-fec/src/index.ts +94 -0
- package/node_modules/@blockcast/mmt-fec/src/loc-symbols.ts +34 -0
- package/node_modules/@blockcast/mmt-fec/src/oti.ts +463 -0
- package/node_modules/@blockcast/mmt-fec/src/reorder-buffer.ts +101 -0
- package/node_modules/@blockcast/mmt-fec/src/repair-group.ts +195 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.d.ts +28 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.js +128 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.js.map +1 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/index.d.ts +4 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/index.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/index.js +4 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/index.js.map +1 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.d.ts +37 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.js +179 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.js.map +1 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.d.ts +99 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.js +492 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.js.map +1 -0
- package/node_modules/@blockcast/mmt-manifest-verify/package.json +45 -0
- package/node_modules/@blockcast/mmt-manifest-verify/src/admission.ts +171 -0
- package/node_modules/@blockcast/mmt-manifest-verify/src/index.ts +3 -0
- package/node_modules/@blockcast/mmt-manifest-verify/src/source-auth.ts +230 -0
- package/node_modules/@blockcast/mmt-manifest-verify/src/verifier.ts +669 -0
- package/node_modules/@noble/hashes/LICENSE +21 -0
- package/node_modules/@noble/hashes/README.md +521 -0
- package/node_modules/@noble/hashes/_assert.d.ts +17 -0
- package/node_modules/@noble/hashes/_assert.d.ts.map +1 -0
- package/node_modules/@noble/hashes/_assert.js +18 -0
- package/node_modules/@noble/hashes/_assert.js.map +1 -0
- package/node_modules/@noble/hashes/_blake.d.ts +14 -0
- package/node_modules/@noble/hashes/_blake.d.ts.map +1 -0
- package/node_modules/@noble/hashes/_blake.js +50 -0
- package/node_modules/@noble/hashes/_blake.js.map +1 -0
- package/node_modules/@noble/hashes/_md.d.ts +51 -0
- package/node_modules/@noble/hashes/_md.d.ts.map +1 -0
- package/node_modules/@noble/hashes/_md.js +162 -0
- package/node_modules/@noble/hashes/_md.js.map +1 -0
- package/node_modules/@noble/hashes/_u64.d.ts +55 -0
- package/node_modules/@noble/hashes/_u64.d.ts.map +1 -0
- package/node_modules/@noble/hashes/_u64.js +90 -0
- package/node_modules/@noble/hashes/_u64.js.map +1 -0
- package/node_modules/@noble/hashes/argon2.d.ts +32 -0
- package/node_modules/@noble/hashes/argon2.d.ts.map +1 -0
- package/node_modules/@noble/hashes/argon2.js +401 -0
- package/node_modules/@noble/hashes/argon2.js.map +1 -0
- package/node_modules/@noble/hashes/blake1.d.ts +106 -0
- package/node_modules/@noble/hashes/blake1.d.ts.map +1 -0
- package/node_modules/@noble/hashes/blake1.js +459 -0
- package/node_modules/@noble/hashes/blake1.js.map +1 -0
- package/node_modules/@noble/hashes/blake2.d.ts +116 -0
- package/node_modules/@noble/hashes/blake2.d.ts.map +1 -0
- package/node_modules/@noble/hashes/blake2.js +420 -0
- package/node_modules/@noble/hashes/blake2.js.map +1 -0
- package/node_modules/@noble/hashes/blake2b.d.ts +11 -0
- package/node_modules/@noble/hashes/blake2b.d.ts.map +1 -0
- package/node_modules/@noble/hashes/blake2b.js +14 -0
- package/node_modules/@noble/hashes/blake2b.js.map +1 -0
- package/node_modules/@noble/hashes/blake2s.d.ts +20 -0
- package/node_modules/@noble/hashes/blake2s.d.ts.map +1 -0
- package/node_modules/@noble/hashes/blake2s.js +24 -0
- package/node_modules/@noble/hashes/blake2s.js.map +1 -0
- package/node_modules/@noble/hashes/blake3.d.ts +54 -0
- package/node_modules/@noble/hashes/blake3.d.ts.map +1 -0
- package/node_modules/@noble/hashes/blake3.js +255 -0
- package/node_modules/@noble/hashes/blake3.js.map +1 -0
- package/node_modules/@noble/hashes/crypto.d.ts +2 -0
- package/node_modules/@noble/hashes/crypto.d.ts.map +1 -0
- package/node_modules/@noble/hashes/crypto.js +5 -0
- package/node_modules/@noble/hashes/crypto.js.map +1 -0
- package/node_modules/@noble/hashes/cryptoNode.d.ts +2 -0
- package/node_modules/@noble/hashes/cryptoNode.d.ts.map +1 -0
- package/node_modules/@noble/hashes/cryptoNode.js +18 -0
- package/node_modules/@noble/hashes/cryptoNode.js.map +1 -0
- package/node_modules/@noble/hashes/eskdf.d.ts +47 -0
- package/node_modules/@noble/hashes/eskdf.d.ts.map +1 -0
- package/node_modules/@noble/hashes/eskdf.js +166 -0
- package/node_modules/@noble/hashes/eskdf.js.map +1 -0
- package/node_modules/@noble/hashes/esm/_assert.d.ts +17 -0
- package/node_modules/@noble/hashes/esm/_assert.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/_assert.js +15 -0
- package/node_modules/@noble/hashes/esm/_assert.js.map +1 -0
- package/node_modules/@noble/hashes/esm/_blake.d.ts +14 -0
- package/node_modules/@noble/hashes/esm/_blake.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/_blake.js +45 -0
- package/node_modules/@noble/hashes/esm/_blake.js.map +1 -0
- package/node_modules/@noble/hashes/esm/_md.d.ts +51 -0
- package/node_modules/@noble/hashes/esm/_md.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/_md.js +155 -0
- package/node_modules/@noble/hashes/esm/_md.js.map +1 -0
- package/node_modules/@noble/hashes/esm/_u64.d.ts +55 -0
- package/node_modules/@noble/hashes/esm/_u64.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/_u64.js +67 -0
- package/node_modules/@noble/hashes/esm/_u64.js.map +1 -0
- package/node_modules/@noble/hashes/esm/argon2.d.ts +32 -0
- package/node_modules/@noble/hashes/esm/argon2.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/argon2.js +392 -0
- package/node_modules/@noble/hashes/esm/argon2.js.map +1 -0
- package/node_modules/@noble/hashes/esm/blake1.d.ts +106 -0
- package/node_modules/@noble/hashes/esm/blake1.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/blake1.js +452 -0
- package/node_modules/@noble/hashes/esm/blake1.js.map +1 -0
- package/node_modules/@noble/hashes/esm/blake2.d.ts +116 -0
- package/node_modules/@noble/hashes/esm/blake2.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/blake2.js +413 -0
- package/node_modules/@noble/hashes/esm/blake2.js.map +1 -0
- package/node_modules/@noble/hashes/esm/blake2b.d.ts +11 -0
- package/node_modules/@noble/hashes/esm/blake2b.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/blake2b.js +11 -0
- package/node_modules/@noble/hashes/esm/blake2b.js.map +1 -0
- package/node_modules/@noble/hashes/esm/blake2s.d.ts +20 -0
- package/node_modules/@noble/hashes/esm/blake2s.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/blake2s.js +21 -0
- package/node_modules/@noble/hashes/esm/blake2s.js.map +1 -0
- package/node_modules/@noble/hashes/esm/blake3.d.ts +54 -0
- package/node_modules/@noble/hashes/esm/blake3.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/blake3.js +251 -0
- package/node_modules/@noble/hashes/esm/blake3.js.map +1 -0
- package/node_modules/@noble/hashes/esm/crypto.d.ts +2 -0
- package/node_modules/@noble/hashes/esm/crypto.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/crypto.js +2 -0
- package/node_modules/@noble/hashes/esm/crypto.js.map +1 -0
- package/node_modules/@noble/hashes/esm/cryptoNode.d.ts +2 -0
- package/node_modules/@noble/hashes/esm/cryptoNode.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/cryptoNode.js +15 -0
- package/node_modules/@noble/hashes/esm/cryptoNode.js.map +1 -0
- package/node_modules/@noble/hashes/esm/eskdf.d.ts +47 -0
- package/node_modules/@noble/hashes/esm/eskdf.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/eskdf.js +160 -0
- package/node_modules/@noble/hashes/esm/eskdf.js.map +1 -0
- package/node_modules/@noble/hashes/esm/hkdf.d.ts +36 -0
- package/node_modules/@noble/hashes/esm/hkdf.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/hkdf.js +82 -0
- package/node_modules/@noble/hashes/esm/hkdf.js.map +1 -0
- package/node_modules/@noble/hashes/esm/hmac.d.ts +35 -0
- package/node_modules/@noble/hashes/esm/hmac.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/hmac.js +86 -0
- package/node_modules/@noble/hashes/esm/hmac.js.map +1 -0
- package/node_modules/@noble/hashes/esm/index.d.ts +2 -0
- package/node_modules/@noble/hashes/esm/index.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/index.js +33 -0
- package/node_modules/@noble/hashes/esm/index.js.map +1 -0
- package/node_modules/@noble/hashes/esm/legacy.d.ts +71 -0
- package/node_modules/@noble/hashes/esm/legacy.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/legacy.js +281 -0
- package/node_modules/@noble/hashes/esm/legacy.js.map +1 -0
- package/node_modules/@noble/hashes/esm/package.json +10 -0
- package/node_modules/@noble/hashes/esm/pbkdf2.d.ts +23 -0
- package/node_modules/@noble/hashes/esm/pbkdf2.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/pbkdf2.js +97 -0
- package/node_modules/@noble/hashes/esm/pbkdf2.js.map +1 -0
- package/node_modules/@noble/hashes/esm/ripemd160.d.ts +13 -0
- package/node_modules/@noble/hashes/esm/ripemd160.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/ripemd160.js +13 -0
- package/node_modules/@noble/hashes/esm/ripemd160.js.map +1 -0
- package/node_modules/@noble/hashes/esm/scrypt.d.ts +34 -0
- package/node_modules/@noble/hashes/esm/scrypt.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/scrypt.js +228 -0
- package/node_modules/@noble/hashes/esm/scrypt.js.map +1 -0
- package/node_modules/@noble/hashes/esm/sha1.d.ts +11 -0
- package/node_modules/@noble/hashes/esm/sha1.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/sha1.js +11 -0
- package/node_modules/@noble/hashes/esm/sha1.js.map +1 -0
- package/node_modules/@noble/hashes/esm/sha2.d.ts +159 -0
- package/node_modules/@noble/hashes/esm/sha2.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/sha2.js +375 -0
- package/node_modules/@noble/hashes/esm/sha2.js.map +1 -0
- package/node_modules/@noble/hashes/esm/sha256.d.ts +20 -0
- package/node_modules/@noble/hashes/esm/sha256.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/sha256.js +20 -0
- package/node_modules/@noble/hashes/esm/sha256.js.map +1 -0
- package/node_modules/@noble/hashes/esm/sha3-addons.d.ts +142 -0
- package/node_modules/@noble/hashes/esm/sha3-addons.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/sha3-addons.js +393 -0
- package/node_modules/@noble/hashes/esm/sha3-addons.js.map +1 -0
- package/node_modules/@noble/hashes/esm/sha3.d.ts +53 -0
- package/node_modules/@noble/hashes/esm/sha3.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/sha3.js +234 -0
- package/node_modules/@noble/hashes/esm/sha3.js.map +1 -0
- package/node_modules/@noble/hashes/esm/sha512.d.ts +26 -0
- package/node_modules/@noble/hashes/esm/sha512.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/sha512.js +26 -0
- package/node_modules/@noble/hashes/esm/sha512.js.map +1 -0
- package/node_modules/@noble/hashes/esm/utils.d.ts +161 -0
- package/node_modules/@noble/hashes/esm/utils.d.ts.map +1 -0
- package/node_modules/@noble/hashes/esm/utils.js +281 -0
- package/node_modules/@noble/hashes/esm/utils.js.map +1 -0
- package/node_modules/@noble/hashes/hkdf.d.ts +36 -0
- package/node_modules/@noble/hashes/hkdf.d.ts.map +1 -0
- package/node_modules/@noble/hashes/hkdf.js +88 -0
- package/node_modules/@noble/hashes/hkdf.js.map +1 -0
- package/node_modules/@noble/hashes/hmac.d.ts +35 -0
- package/node_modules/@noble/hashes/hmac.d.ts.map +1 -0
- package/node_modules/@noble/hashes/hmac.js +91 -0
- package/node_modules/@noble/hashes/hmac.js.map +1 -0
- package/node_modules/@noble/hashes/index.d.ts +1 -0
- package/node_modules/@noble/hashes/index.d.ts.map +1 -0
- package/node_modules/@noble/hashes/index.js +33 -0
- package/node_modules/@noble/hashes/index.js.map +1 -0
- package/node_modules/@noble/hashes/legacy.d.ts +71 -0
- package/node_modules/@noble/hashes/legacy.d.ts.map +1 -0
- package/node_modules/@noble/hashes/legacy.js +287 -0
- package/node_modules/@noble/hashes/legacy.js.map +1 -0
- package/node_modules/@noble/hashes/package.json +266 -0
- package/node_modules/@noble/hashes/pbkdf2.d.ts +23 -0
- package/node_modules/@noble/hashes/pbkdf2.d.ts.map +1 -0
- package/node_modules/@noble/hashes/pbkdf2.js +101 -0
- package/node_modules/@noble/hashes/pbkdf2.js.map +1 -0
- package/node_modules/@noble/hashes/ripemd160.d.ts +13 -0
- package/node_modules/@noble/hashes/ripemd160.d.ts.map +1 -0
- package/node_modules/@noble/hashes/ripemd160.js +16 -0
- package/node_modules/@noble/hashes/ripemd160.js.map +1 -0
- package/node_modules/@noble/hashes/scrypt.d.ts +34 -0
- package/node_modules/@noble/hashes/scrypt.d.ts.map +1 -0
- package/node_modules/@noble/hashes/scrypt.js +232 -0
- package/node_modules/@noble/hashes/scrypt.js.map +1 -0
- package/node_modules/@noble/hashes/sha1.d.ts +11 -0
- package/node_modules/@noble/hashes/sha1.d.ts.map +1 -0
- package/node_modules/@noble/hashes/sha1.js +14 -0
- package/node_modules/@noble/hashes/sha1.js.map +1 -0
- package/node_modules/@noble/hashes/sha2.d.ts +159 -0
- package/node_modules/@noble/hashes/sha2.d.ts.map +1 -0
- package/node_modules/@noble/hashes/sha2.js +384 -0
- package/node_modules/@noble/hashes/sha2.js.map +1 -0
- package/node_modules/@noble/hashes/sha256.d.ts +20 -0
- package/node_modules/@noble/hashes/sha256.d.ts.map +1 -0
- package/node_modules/@noble/hashes/sha256.js +23 -0
- package/node_modules/@noble/hashes/sha256.js.map +1 -0
- package/node_modules/@noble/hashes/sha3-addons.d.ts +142 -0
- package/node_modules/@noble/hashes/sha3-addons.d.ts.map +1 -0
- package/node_modules/@noble/hashes/sha3-addons.js +402 -0
- package/node_modules/@noble/hashes/sha3-addons.js.map +1 -0
- package/node_modules/@noble/hashes/sha3.d.ts +53 -0
- package/node_modules/@noble/hashes/sha3.d.ts.map +1 -0
- package/node_modules/@noble/hashes/sha3.js +239 -0
- package/node_modules/@noble/hashes/sha3.js.map +1 -0
- package/node_modules/@noble/hashes/sha512.d.ts +26 -0
- package/node_modules/@noble/hashes/sha512.d.ts.map +1 -0
- package/node_modules/@noble/hashes/sha512.js +29 -0
- package/node_modules/@noble/hashes/sha512.js.map +1 -0
- package/node_modules/@noble/hashes/src/_assert.ts +22 -0
- package/node_modules/@noble/hashes/src/_blake.ts +50 -0
- package/node_modules/@noble/hashes/src/_md.ts +176 -0
- package/node_modules/@noble/hashes/src/_u64.ts +91 -0
- package/node_modules/@noble/hashes/src/argon2.ts +497 -0
- package/node_modules/@noble/hashes/src/blake1.ts +534 -0
- package/node_modules/@noble/hashes/src/blake2.ts +486 -0
- package/node_modules/@noble/hashes/src/blake2b.ts +10 -0
- package/node_modules/@noble/hashes/src/blake2s.ts +20 -0
- package/node_modules/@noble/hashes/src/blake3.ts +272 -0
- package/node_modules/@noble/hashes/src/crypto.ts +9 -0
- package/node_modules/@noble/hashes/src/cryptoNode.ts +15 -0
- package/node_modules/@noble/hashes/src/eskdf.ts +187 -0
- package/node_modules/@noble/hashes/src/hkdf.ts +88 -0
- package/node_modules/@noble/hashes/src/hmac.ts +94 -0
- package/node_modules/@noble/hashes/src/index.ts +31 -0
- package/node_modules/@noble/hashes/src/legacy.ts +293 -0
- package/node_modules/@noble/hashes/src/pbkdf2.ts +122 -0
- package/node_modules/@noble/hashes/src/ripemd160.ts +12 -0
- package/node_modules/@noble/hashes/src/scrypt.ts +257 -0
- package/node_modules/@noble/hashes/src/sha1.ts +10 -0
- package/node_modules/@noble/hashes/src/sha2.ts +402 -0
- package/node_modules/@noble/hashes/src/sha256.ts +24 -0
- package/node_modules/@noble/hashes/src/sha3-addons.ts +499 -0
- package/node_modules/@noble/hashes/src/sha3.ts +258 -0
- package/node_modules/@noble/hashes/src/sha512.ts +34 -0
- package/node_modules/@noble/hashes/src/utils.ts +395 -0
- package/node_modules/@noble/hashes/utils.d.ts +161 -0
- package/node_modules/@noble/hashes/utils.d.ts.map +1 -0
- package/node_modules/@noble/hashes/utils.js +313 -0
- package/node_modules/@noble/hashes/utils.js.map +1 -0
- package/package.json +179 -8
- package/schemas/catalog.schema.json +357 -0
- package/src/align.ts +239 -0
- package/src/audio-init-parser.ts +189 -0
- package/src/audio-ring-buffer.ts +120 -0
- package/src/authored-timing.ts +63 -0
- package/src/block-policy.ts +903 -0
- package/src/carp-catalog.ts +1065 -0
- package/src/catalog-fec-params.ts +729 -0
- package/src/catalog-network-source.ts +74 -0
- package/src/catalog-validator.ts +34 -0
- package/src/cmaf-block-assembler.ts +1255 -0
- package/src/cmaf-group-batcher.ts +104 -0
- package/src/cmcd-producer.ts +329 -0
- package/src/codec-utils.ts +1984 -0
- package/src/conceal-timeline.ts +293 -0
- package/src/delivery-gap.ts +147 -0
- package/src/duplicate-ledger.ts +372 -0
- package/src/fec-codec.ts +61 -0
- package/src/fec-manager.ts +4298 -0
- package/src/fec-starvation-detector.ts +128 -0
- package/src/fec-state.ts +219 -0
- package/src/fec-worker-setup.ts +283 -0
- package/src/fmp4-completion.ts +47 -0
- package/src/fmp4-reader.ts +112 -0
- package/src/index.ts +590 -21
- package/src/iso-block-locator.ts +329 -0
- package/src/iso-bmff-timing.ts +813 -0
- package/src/loc.ts +128 -154
- package/src/manifest-auth-plan.ts +107 -0
- package/src/media-router.ts +841 -0
- package/src/mfu-reassembler.ts +3480 -155
- package/src/mfu-reassembly-policy.ts +134 -0
- package/src/mmtp-container-parser.ts +2380 -0
- package/src/mmtp-decode-pipeline.ts +406 -0
- package/src/mmtp-router.ts +4860 -0
- package/src/mmtp-to-cmaf.ts +977 -0
- package/src/multicast-auth-catalog.ts +340 -0
- package/src/multicast-input.ts +793 -0
- package/src/multicast-manager.ts +2783 -0
- package/src/multicast-transport.ts +1058 -0
- package/src/multicast-unwrap.ts +132 -0
- package/src/no-modules.ts +21 -0
- package/src/phase14-catalog-override.ts +336 -0
- package/src/repair-fetch.ts +772 -0
- package/src/repair-layers.ts +533 -0
- package/src/sample-combiner.ts +938 -0
- package/src/signaling.ts +78 -0
- package/src/source-auth.ts +1 -0
- package/src/switching-set-alignment.ts +109 -0
- package/src/timestamp-codec.ts +265 -0
- package/src/track-pipeline-setup.ts +205 -0
- package/src/track-pipeline.ts +332 -0
- package/src/track-session.ts +1010 -0
- package/src/transport-pool.ts +128 -0
- package/src/wasm-mfu-reassembler.ts +405 -0
- package/src/wasm-mmtp-container-parser.ts +23 -0
- package/test-vectors/align.json +199 -0
- package/test-vectors/catalog/README.md +106 -0
- package/test-vectors/catalog/negative/archive-origin-with-path.json +33 -0
- package/test-vectors/catalog/negative/archive-unknown-field.json +34 -0
- package/test-vectors/catalog/negative/fec-block-profile-missing.json +51 -0
- package/test-vectors/catalog/negative/fec-block-profile-unknown.json +52 -0
- package/test-vectors/catalog/negative/fec-enhancement-repair-removed.json +28 -0
- package/test-vectors/catalog/negative/fec-repair-layer-geometry.json +33 -0
- package/test-vectors/catalog/negative/fec-repair-layer-missing-symbols.json +31 -0
- package/test-vectors/catalog/negative/fec-repair-multiple-depends.json +32 -0
- package/test-vectors/catalog/negative/fec-repair-overlay-with-layer.json +34 -0
- package/test-vectors/catalog/negative/fec-repair-priority-out-of-band.json +24 -0
- package/test-vectors/catalog/negative/fec-repair-source-symbols-without-scope.json +33 -0
- package/test-vectors/catalog/negative/legacy-selection-params.json +15 -0
- package/test-vectors/catalog/negative/media-track-repair-layer.json +16 -0
- package/test-vectors/catalog/negative/missing-mmtp-fields.json +12 -0
- package/test-vectors/catalog/negative/multicast-auth-padded-key.json +37 -0
- package/test-vectors/catalog/negative/multicast-auth-reused-track-format.json +53 -0
- package/test-vectors/catalog/negative/multicast-auth-trailing-pad-bits.json +37 -0
- package/test-vectors/catalog/negative/multicast-endpoint-missing-protocol-and-source.json +24 -0
- package/test-vectors/catalog/negative/multicast-network-source-empty.json +44 -0
- package/test-vectors/catalog/negative/multicast-packet-id-signaling.json +26 -0
- package/test-vectors/catalog/negative/network-source-object.json +25 -0
- package/test-vectors/catalog/negative/raptorq-source-symbols-over-max.json +24 -0
- package/test-vectors/catalog/negative/raptorq-unaligned-symbol.json +27 -0
- package/test-vectors/catalog/negative/repair-track-legacy-shape.json +19 -0
- package/test-vectors/catalog/negative/track-role-empty.json +16 -0
- package/test-vectors/catalog/negative/track-role-non-string.json +16 -0
- package/test-vectors/catalog/positive/archive-origin.json +34 -0
- package/test-vectors/catalog/positive/fec-iso-ssbg1.json +52 -0
- package/test-vectors/catalog/positive/fec-layered-repair.json +106 -0
- package/test-vectors/catalog/positive/fec-multicast.json +52 -0
- package/test-vectors/catalog/positive/flat-av.json +30 -0
- package/test-vectors/catalog/positive/multicast-auth-rotation.json +55 -0
- package/test-vectors/catalog/positive/multicast-native-ssm-no-network-source.json +43 -0
- package/test-vectors/catalog/positive/ticks-and-mixed-timescales.json +39 -0
- package/test-vectors/catalog/positive/track-role.json +49 -0
- package/test-vectors/catalog/releases/moqcast-native-v16-v1/catalog.json +65 -0
- package/test-vectors/catalog/releases/moqcast-native-v16-v1.archive.sha256 +1 -0
- package/test-vectors/catalog-multicast-auth-v1.json +26 -0
- package/test-vectors/catalog-validation.json +732 -0
- package/test-vectors/catalog-validator-public-api.mjs +25 -0
- package/test-vectors/generate-source-auth-fixture.mjs +114 -0
- package/test-vectors/hevc-x265-repeat-headers-v1.json +40 -0
- package/test-vectors/source-auth-v1.json +61 -0
- package/test-vectors/source-contiguity-v1.json +131 -0
- package/test-vectors/subsample-placement-v1.json +230 -0
- package/dist/mmtp.d.ts +0 -73
- package/dist/mmtp.d.ts.map +0 -1
- package/dist/mmtp.js +0 -210
- package/dist/mmtp.js.map +0 -1
- package/src/mmtp.ts +0 -277
|
@@ -0,0 +1,583 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FEC Manager — codec-agnostic FEC decode service.
|
|
3
|
+
*
|
|
4
|
+
* Receives (packetId, sbn, esi, symbolData) tuples from any transport
|
|
5
|
+
* (MMTP, LOC, etc.) and manages FEC block lifecycle: source counting,
|
|
6
|
+
* WASM RaptorQ decode, block timeout, and recovery/failure notification.
|
|
7
|
+
*
|
|
8
|
+
* Extracted from MulticastManager to decouple FEC block logic from
|
|
9
|
+
* MMTP packet parsing and frame routing.
|
|
10
|
+
*/
|
|
11
|
+
import { type FecBlockProfile } from '@blockcast/mmt-base';
|
|
12
|
+
import { type IsoRepairPlacement } from './iso-block-locator.js';
|
|
13
|
+
import { MIN_INTERLEAVE_DEPTH_MS } from './fec-state.js';
|
|
14
|
+
import { type BlockClass, type BlockClassifierGeometry, type ClassifierMode, type ClassifierReason, type ReclassificationEvidence, type SourceSymbolEvidence, type TrackKind } from './block-policy.js';
|
|
15
|
+
import type { MmtpDeliveryProvenance } from './mfu-reassembler.js';
|
|
16
|
+
import type { FecWorkerClient, FecTrackStats, FrameMeta } from '@blockcast/fec-worker';
|
|
17
|
+
export { MIN_INTERLEAVE_DEPTH_MS };
|
|
18
|
+
/**
|
|
19
|
+
* Algorithm-agnostic FEC decoder backend interface.
|
|
20
|
+
*
|
|
21
|
+
* Implementations:
|
|
22
|
+
* - RaptorQ WASM (mmt_wasm.js) — RFC 6330
|
|
23
|
+
* - Reed-Solomon WASM — future
|
|
24
|
+
* - XOR — future
|
|
25
|
+
*
|
|
26
|
+
* Source/repair symbol IDs follow ISO 23008-1 §C.5.2/C.5.3:
|
|
27
|
+
* source: SS_ID (flat 32-bit symbol identifier)
|
|
28
|
+
* repair: SS_Start + SSB_length + RS_ID (block-scoped repair coords)
|
|
29
|
+
*/
|
|
30
|
+
export type WasmFecDecoder = {
|
|
31
|
+
add_source(ss_id: number, data: Uint8Array, ts: number): Uint8Array | null;
|
|
32
|
+
add_repair(ss_start: number, ssb_length: number, rs_id: number, data: Uint8Array, ts: number): Uint8Array | null;
|
|
33
|
+
configure(oti: Uint8Array): void;
|
|
34
|
+
cleanup(current_time: number): Uint8Array;
|
|
35
|
+
/** Retire the named blocks from the decoder (last-chance decode + stats). */
|
|
36
|
+
cleanup_blocks_detailed(sbns: Uint32Array): unknown;
|
|
37
|
+
/**
|
|
38
|
+
* iso-ssbg1-v1 only: retire the source symbols the decoder holds before a
|
|
39
|
+
* repair states their block, once no repair can place them any more, by the
|
|
40
|
+
* decoder's own horizon behind `current`, the newest SS_ID seen. Retires no
|
|
41
|
+
* block: the manager retires blocks itself, by their deadlines. Returns how
|
|
42
|
+
* many it retired. The manager calls it after every feed that grows the
|
|
43
|
+
* decoder and on block retirement. (`MmtFecDecoder.retire_unplaced`; the
|
|
44
|
+
* worker path uses `cleanup_by_ss_start`, which applies the same rule.)
|
|
45
|
+
*/
|
|
46
|
+
retire_unplaced(current: number): number;
|
|
47
|
+
flush?(): void;
|
|
48
|
+
reset_stats?(): void;
|
|
49
|
+
};
|
|
50
|
+
/** Algorithm-agnostic FEC stats snapshot. */
|
|
51
|
+
export interface FecStats {
|
|
52
|
+
sourcePackets: number;
|
|
53
|
+
repairPackets: number;
|
|
54
|
+
duplicateSymbols: number;
|
|
55
|
+
blocksClean: number;
|
|
56
|
+
blocksRecovered: number;
|
|
57
|
+
blocksFailed: number;
|
|
58
|
+
blocksComplete: number;
|
|
59
|
+
mixedPathBlocks: number;
|
|
60
|
+
recentBlockPathCounts: FecBlockPathCount[];
|
|
61
|
+
k: number;
|
|
62
|
+
/** Of blocks with loss, what percentage were recovered (0-100). */
|
|
63
|
+
recoveryRate: number;
|
|
64
|
+
/** What percentage of blocks had any loss (0-100). */
|
|
65
|
+
packetLossRate: number;
|
|
66
|
+
/** Per-MMTP-packet-ID counters for the synchronous WASM decoder path. */
|
|
67
|
+
tracks: FecPacketStats[];
|
|
68
|
+
/** Latest Worker/WASM snapshot for each packet ID. */
|
|
69
|
+
workers: Array<FecTrackStats & {
|
|
70
|
+
packetId: number;
|
|
71
|
+
}>;
|
|
72
|
+
/** Main-thread repair symbols rejected before dispatch because their size did not match T. */
|
|
73
|
+
repairSymbolSizeMismatches: number;
|
|
74
|
+
/** Bounded Worker error counts keyed by stable code, or message text for legacy errors. */
|
|
75
|
+
workerErrors: Record<string, number>;
|
|
76
|
+
}
|
|
77
|
+
export interface FecPacketStats {
|
|
78
|
+
packetId: number;
|
|
79
|
+
sourcePackets: number;
|
|
80
|
+
repairPackets: number;
|
|
81
|
+
duplicateSymbols: number;
|
|
82
|
+
blocksClean: number;
|
|
83
|
+
blocksRecovered: number;
|
|
84
|
+
blocksFailed: number;
|
|
85
|
+
blocksComplete: number;
|
|
86
|
+
k: number;
|
|
87
|
+
recoveryRate: number;
|
|
88
|
+
packetLossRate: number;
|
|
89
|
+
}
|
|
90
|
+
export type FecSymbolSource = 'multicast' | 'moq';
|
|
91
|
+
/**
|
|
92
|
+
* One iso-ssbg1-v1 first-arrival source symbol MmtpRouter holds until a repair
|
|
93
|
+
* symbol states its block: the exact protected packet (no SS_ID, unpadded),
|
|
94
|
+
* the transport that delivered it and its classification evidence.
|
|
95
|
+
*/
|
|
96
|
+
export interface IsoHeldSource {
|
|
97
|
+
readonly symbolData: Uint8Array;
|
|
98
|
+
readonly source: FecSymbolSource;
|
|
99
|
+
readonly evidence: SourceSymbolEvidence;
|
|
100
|
+
/** Larger than one ssbg_mode1 symbol: counted, never decoded. */
|
|
101
|
+
readonly oversized: boolean;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* How the multicast leg hands its symbols to this manager.
|
|
105
|
+
*
|
|
106
|
+
* - `'datagram'`: every symbol is an independent datagram from the receiving
|
|
107
|
+
* socket. A pause in arrivals is the only loss signal the receiver has, so a
|
|
108
|
+
* block that stays idle past the catalog-derived inactivity deadline fails.
|
|
109
|
+
* - `'ordered-relay'`: the provider relays one receiving socket over a
|
|
110
|
+
* reliable, ordered stream (the BCDS bridge's WebTransport uni stream). The
|
|
111
|
+
* delivered sequence is a subsequence of the socket's receive order, so a
|
|
112
|
+
* pause carries no loss information at all: the relay's own scheduling
|
|
113
|
+
* decides when bytes arrive. What does carry it is order. Once the stream
|
|
114
|
+
* has advanced more than the decoder's interleave horizon past a block, no
|
|
115
|
+
* symbol of that block can still be in flight, and the block's fate follows
|
|
116
|
+
* from the symbols it holds (in-band SS_ID/SS_Start and SSB_length), not
|
|
117
|
+
* from a wall clock tuned for raw datagrams.
|
|
118
|
+
*
|
|
119
|
+
* Only the provider can know which of the two it is delivering; an undeclared
|
|
120
|
+
* provider promises no ordering and keeps datagram semantics.
|
|
121
|
+
*/
|
|
122
|
+
export type MulticastSymbolDelivery = 'datagram' | 'ordered-relay';
|
|
123
|
+
export interface FecBlockPathCount {
|
|
124
|
+
packetId: number;
|
|
125
|
+
sbn: number;
|
|
126
|
+
catalogTrackName?: string;
|
|
127
|
+
multicastSymbols: number;
|
|
128
|
+
moqSymbols: number;
|
|
129
|
+
complete: boolean;
|
|
130
|
+
}
|
|
131
|
+
export interface FECManagerConfig {
|
|
132
|
+
/**
|
|
133
|
+
* The catalog `fec.blockProfile` of the track (BLO-35597). Required for every
|
|
134
|
+
* configured track: there is no default, and nothing infers it.
|
|
135
|
+
* `k-padded-v1` keeps the legacy K-stride geometry; `iso-ssbg1-v1` is
|
|
136
|
+
* ISO/IEC 23008-1 ssbg_mode1 with K' = SSB_length blocks located by
|
|
137
|
+
* `(SS_Start, SSB_length)` range membership, `k` being only their maximum.
|
|
138
|
+
*/
|
|
139
|
+
blockProfile?: FecBlockProfile;
|
|
140
|
+
k?: number;
|
|
141
|
+
/** Symbol size in bytes (T). NOT repair count. */
|
|
142
|
+
symbolSize?: number;
|
|
143
|
+
interleaveDepthMs?: number;
|
|
144
|
+
fps?: number;
|
|
145
|
+
/** Guarded block inactivity deadline derived from the full delivery geometry. */
|
|
146
|
+
timeoutMs?: number;
|
|
147
|
+
/** Media kind of the track (block class `audio` vs video classification). */
|
|
148
|
+
trackKind?: TrackKind;
|
|
149
|
+
/** Catalog codec string. */
|
|
150
|
+
codec?: string;
|
|
151
|
+
/**
|
|
152
|
+
* Block classifier geometry derived from raw catalog timing
|
|
153
|
+
* (`deriveBlockClassifierGeometry`). Absent geometry classifies every video
|
|
154
|
+
* block `unknown` (fail-closed: protected).
|
|
155
|
+
*/
|
|
156
|
+
geometry?: BlockClassifierGeometry;
|
|
157
|
+
}
|
|
158
|
+
/** Which symbol path completed a short block. */
|
|
159
|
+
export type RepairVia = 'inband' | 'quic';
|
|
160
|
+
/** Lifecycle resolution of one FEC block, for in-order frame release. */
|
|
161
|
+
export type FecBlockResolution = 'pending' | 'complete' | 'failed' | 'untracked';
|
|
162
|
+
/** Why a stream's Worker decoder stopped being routable. */
|
|
163
|
+
export type FecDecoderUnavailableReason = 'cleared' | 'disposed';
|
|
164
|
+
/**
|
|
165
|
+
* What still decodes a stream after its Worker left routing: the synchronous
|
|
166
|
+
* WASM decoder registered for the same stream (the Worker path took precedence
|
|
167
|
+
* over it while both were live), or nothing.
|
|
168
|
+
*/
|
|
169
|
+
export type FecFallbackDecoder = 'sync' | 'none';
|
|
170
|
+
export interface FecDecoderUnavailableEvent {
|
|
171
|
+
readonly packetId: number;
|
|
172
|
+
readonly catalogTrackName?: string;
|
|
173
|
+
readonly reason: FecDecoderUnavailableReason;
|
|
174
|
+
/**
|
|
175
|
+
* What decodes the stream at the moment the Worker left. A synchronous
|
|
176
|
+
* decoder discarded later (a resetTrack flush failure drops it without an
|
|
177
|
+
* event) is not reported here; a consumer that keeps a stream alive on
|
|
178
|
+
* 'sync' owns that decoder's lifecycle itself.
|
|
179
|
+
*/
|
|
180
|
+
readonly fallbackDecoder: FecFallbackDecoder;
|
|
181
|
+
}
|
|
182
|
+
export declare class FECManager {
|
|
183
|
+
#private;
|
|
184
|
+
onBlockStarted: ((sbn: number, packetId: number, catalogTrackName?: string) => void) | null;
|
|
185
|
+
onBlockComplete: ((sbn: number, packetId: number, catalogTrackName?: string) => void) | null;
|
|
186
|
+
/** A block reached its fail bound. `blockClass` is its class at failure. */
|
|
187
|
+
onBlockFailed: ((sbn: number, packetId: number, catalogTrackName: string | undefined, blockClass: BlockClass) => void) | null;
|
|
188
|
+
/**
|
|
189
|
+
* Fired once per stream when its Worker decoder stops being routable.
|
|
190
|
+
* `reason` is 'cleared' when clearFecWorker() removed it and 'disposed' when
|
|
191
|
+
* a symbol or reset found the registered client already disposed and
|
|
192
|
+
* evicted it. `fallbackDecoder` is 'sync' when a synchronous WASM decoder
|
|
193
|
+
* registered for the same stream keeps decoding its symbols, and 'none'
|
|
194
|
+
* when nothing does. Only 'none' leaves the stream unprotected: the host
|
|
195
|
+
* must then register a decoder again or leave the stream, because counting
|
|
196
|
+
* its symbols as handled would hide the loss.
|
|
197
|
+
*/
|
|
198
|
+
onDecoderUnavailable: ((event: FecDecoderUnavailableEvent) => void) | null;
|
|
199
|
+
onRepairNeeded: ((sbn: number, packetId: number, catalogTrackName: string | undefined, blockClass: BlockClass) => void) | null;
|
|
200
|
+
onRepairResolved: ((sbn: number, packetId: number, outcome: 'completed' | 'failed', catalogTrackName: string | undefined, via: RepairVia | null) => void) | null;
|
|
201
|
+
/**
|
|
202
|
+
* A block that could not complete from its first-arrival source symbols
|
|
203
|
+
* alone was completed anyway: by FEC decode (in-band or QUIC repair
|
|
204
|
+
* symbols) or, after a D-28 request, by late symbols. Fired once per block.
|
|
205
|
+
*/
|
|
206
|
+
onBlockRepaired: ((sbn: number, packetId: number, catalogTrackName: string | undefined, blockClass: BlockClass, via: RepairVia) => void) | null;
|
|
207
|
+
/** A block's class changed on new evidence or when classification was disabled. */
|
|
208
|
+
onBlockReclassified: ((sbn: number, packetId: number, catalogTrackName: string | undefined, from: BlockClass, to: BlockClass, evidence: ReclassificationEvidence) => void) | null;
|
|
209
|
+
/** A video stream's classifier mode was established or changed. */
|
|
210
|
+
onClassifierMode: ((packetId: number, catalogTrackName: string | undefined, mode: ClassifierMode, reason: ClassifierReason | null) => void) | null;
|
|
211
|
+
/** A block every symbol of which vanished was created by SBN evidence. */
|
|
212
|
+
onBlockVanished: ((sbn: number, packetId: number, catalogTrackName: string | undefined) => void) | null;
|
|
213
|
+
/** A block reached a terminal state (completed, recovered, or failed). */
|
|
214
|
+
onBlockResolved: ((sbn: number, packetId: number, catalogTrackName: string | undefined) => void) | null;
|
|
215
|
+
/** A stream's SBN went backwards (or jumped implausibly): the source restarted. */
|
|
216
|
+
onSourceDiscontinuity: ((packetId: number, catalogTrackName: string | undefined) => void) | null;
|
|
217
|
+
onBlockRecovered: ((sbn: number, packetId: number, data: ArrayBuffer, meta: FrameMeta, catalogTrackName?: string) => void) | null;
|
|
218
|
+
onFecStatsUpdate: ((packetId: number, stats: FecTrackStats) => void) | null;
|
|
219
|
+
/** Internal state for diagnostics — not part of the public stats API. */
|
|
220
|
+
get diagnostics(): {
|
|
221
|
+
timeoutMs: number;
|
|
222
|
+
activeBlocks: number;
|
|
223
|
+
completedBlocks: number;
|
|
224
|
+
cleanlyCompletedBlocks: number;
|
|
225
|
+
pendingCounts: {
|
|
226
|
+
[k: string]: number;
|
|
227
|
+
};
|
|
228
|
+
fpsDetected: boolean;
|
|
229
|
+
interleaveDepthMs: number;
|
|
230
|
+
startupAlignedPackets: number[];
|
|
231
|
+
startupPartialBlocks: number;
|
|
232
|
+
startupRepairReadyPackets: number[];
|
|
233
|
+
startupRepairFailOpenPackets: number[];
|
|
234
|
+
pendingWorkerCleanups: number;
|
|
235
|
+
decoderUnavailableEvents: number;
|
|
236
|
+
repairTrackedBlocks: number;
|
|
237
|
+
multicastSymbolDelivery: MulticastSymbolDelivery;
|
|
238
|
+
orderedFrontiers: {
|
|
239
|
+
[k: string]: number;
|
|
240
|
+
};
|
|
241
|
+
orderedPendingBlocks: number;
|
|
242
|
+
lifecycleTrace: {
|
|
243
|
+
atMs: number;
|
|
244
|
+
event: "repair-requested" | "repair-arrived" | "timeout-queued" | "horizon-settled" | "cleanup-ack" | "cleanup-ack-timeout" | "recovered" | "failed" | "decoder-unavailable";
|
|
245
|
+
packetId: number;
|
|
246
|
+
sbn: number;
|
|
247
|
+
catalogTrackName?: string;
|
|
248
|
+
sourceCount: number;
|
|
249
|
+
sourceEsis: number[];
|
|
250
|
+
repairRsIds: number[];
|
|
251
|
+
decoderPath: "worker" | "sync" | "none";
|
|
252
|
+
deadlineRemainingMs?: number;
|
|
253
|
+
pendingCleanup: boolean;
|
|
254
|
+
rsId?: number;
|
|
255
|
+
}[];
|
|
256
|
+
};
|
|
257
|
+
get fecStats(): FecStats;
|
|
258
|
+
/**
|
|
259
|
+
* Observe Worker-backed per-track snapshots without taking ownership of the
|
|
260
|
+
* legacy single-callback slot. Infrastructure diagnostics and a player may
|
|
261
|
+
* therefore consume the same source event without wrapping or replacing one
|
|
262
|
+
* another's callback.
|
|
263
|
+
*/
|
|
264
|
+
addFecStatsObserver(observer: (packetId: number, stats: FecTrackStats) => void): () => void;
|
|
265
|
+
/** Start a new multicast transport join without discarding track/decoder state. */
|
|
266
|
+
beginMulticastJoin(): void;
|
|
267
|
+
/** How the multicast leg currently delivers symbols. */
|
|
268
|
+
get multicastSymbolDelivery(): MulticastSymbolDelivery;
|
|
269
|
+
/**
|
|
270
|
+
* Declare how the multicast leg delivers symbols (see
|
|
271
|
+
* MulticastSymbolDelivery). The multicast provider owns this fact:
|
|
272
|
+
* MulticastManager applies what the window.multicast subscription declares
|
|
273
|
+
* on every join, and a consumer feeding packets itself declares its own leg.
|
|
274
|
+
*
|
|
275
|
+
* Switching to 'ordered-relay' requires every configured track to define
|
|
276
|
+
* its interleave horizon and throws otherwise. Switching back to 'datagram'
|
|
277
|
+
* gives every block awaiting ordered settlement the datagram inactivity
|
|
278
|
+
* deadline from now.
|
|
279
|
+
*/
|
|
280
|
+
setMulticastSymbolDelivery(delivery: MulticastSymbolDelivery): void;
|
|
281
|
+
/** Begin a fresh decode epoch for one physical stream. */
|
|
282
|
+
resetTrack(packetId: number, catalogTrackName: string): void;
|
|
283
|
+
/**
|
|
284
|
+
* Retire one packet ID, drop-only: forget every stream on it (block
|
|
285
|
+
* ledgers, deadlines and their timers, repair holds, terminal records,
|
|
286
|
+
* classifiers, stream geometry), its per-packet configuration and
|
|
287
|
+
* statistics, and take its decoders out of routing.
|
|
288
|
+
*
|
|
289
|
+
* This is the end of the packet ID's streams, not a new epoch of them (that
|
|
290
|
+
* is resetTrack): afterwards isTrackConfigured() is false and nothing about
|
|
291
|
+
* it remains until it is configured again. Nothing is reported, because
|
|
292
|
+
* nothing happened to the media: no block fails, recovers or resolves, no
|
|
293
|
+
* repair resolves, and no decoder becomes "unavailable" (a retired stream
|
|
294
|
+
* has no symbols left to decode, so a decoder-unavailable event would
|
|
295
|
+
* describe lost protection that no stream suffers). The epoch still
|
|
296
|
+
* advances, so a gap decision made before the retirement never matches a
|
|
297
|
+
* stream later configured on the same packet ID.
|
|
298
|
+
*
|
|
299
|
+
* Decoder and Worker clients stay caller-owned: each is flushed or reset so
|
|
300
|
+
* it holds no block of the retired streams, then released from routing;
|
|
301
|
+
* dispose it after this returns. Cumulative totals in fecStats keep what
|
|
302
|
+
* the retired streams contributed.
|
|
303
|
+
*/
|
|
304
|
+
releasePacket(packetId: number): void;
|
|
305
|
+
/** Record a transport symbol and reject later duplicates of the same packetId/SBN/ESI. */
|
|
306
|
+
feedSymbolFromSource(packetId: number, sbn: number, esi: number, _data: Uint8Array, source: FecSymbolSource, catalogTrackName?: string): boolean;
|
|
307
|
+
/** Exact catalog identity retained for async recovery, if unambiguous. */
|
|
308
|
+
catalogTrackNameForBlock(sbn: number, packetId: number, catalogTrackName?: string): string | undefined;
|
|
309
|
+
/** Per-block state snapshot for FecBlockGrid visualization.
|
|
310
|
+
* Returns the most recent blocks (active + recently completed). */
|
|
311
|
+
getBlockStates(): Array<{
|
|
312
|
+
sbn: number;
|
|
313
|
+
packetId?: number;
|
|
314
|
+
state: 'collecting' | 'complete' | 'failed';
|
|
315
|
+
sourceCount: number;
|
|
316
|
+
k: number;
|
|
317
|
+
progress: number;
|
|
318
|
+
}>;
|
|
319
|
+
/** The raw WASM decoder for stats access (first registered decoder) */
|
|
320
|
+
get wasmDecoder(): WasmFecDecoder | null;
|
|
321
|
+
get k(): number;
|
|
322
|
+
kForPacket(packetId: number): number;
|
|
323
|
+
/** FEC symbol size in bytes. */
|
|
324
|
+
get symbolSize(): number;
|
|
325
|
+
symbolSizeForPacket(packetId: number): number;
|
|
326
|
+
/** FEC block span in milliseconds (0 = no interleaving). */
|
|
327
|
+
get interleaveDepthMs(): number;
|
|
328
|
+
interleaveDepthMsForPacket(packetId: number): number;
|
|
329
|
+
/**
|
|
330
|
+
* Record one multicast MMTP packet arrival (every packet of the leg, FEC
|
|
331
|
+
* symbol or not) for the delivery-gap measurement. `packetSequenceNumber`
|
|
332
|
+
* is the MMTP packet_sequence_number, which increments by one per packet of
|
|
333
|
+
* a packet_id: it is what separates a stall from a loss (see
|
|
334
|
+
* DeliveryGapEstimator). Datagram delivery only.
|
|
335
|
+
*/
|
|
336
|
+
noteMulticastArrival(packetId: number, packetSequenceNumber: number): void;
|
|
337
|
+
/**
|
|
338
|
+
* Resolved per-track multicast late-symbol wait in milliseconds: the span
|
|
339
|
+
* plus the larger of the catalog tolerance and the measured delivery gap.
|
|
340
|
+
*/
|
|
341
|
+
timeoutMsForPacket(packetId: number): number;
|
|
342
|
+
/**
|
|
343
|
+
* Largest multicast delivery gap measured over the current window (ms), and
|
|
344
|
+
* that window (undefined: held since the last reset). Diagnostics.
|
|
345
|
+
*/
|
|
346
|
+
multicastDeliveryGap(): {
|
|
347
|
+
peakGapMs: number;
|
|
348
|
+
windowMs: number | undefined;
|
|
349
|
+
};
|
|
350
|
+
/**
|
|
351
|
+
* Receiver-local time of a block's first accepted symbol, or undefined for
|
|
352
|
+
* a block no symbol reached (one materialized because a later SBN arrived).
|
|
353
|
+
*/
|
|
354
|
+
blockAnchorAtMs(sbn: number, packetId: number, catalogTrackName?: string): number | undefined;
|
|
355
|
+
/** Absolute fail deadline of a still-open block, or undefined. */
|
|
356
|
+
blockDeadlineAtMs(sbn: number, packetId: number, catalogTrackName?: string): number | undefined;
|
|
357
|
+
/**
|
|
358
|
+
* Keep a block open until `untilAtMs` while a repair FETCH the scheduler
|
|
359
|
+
* admitted is in flight. Never shortens the multicast wait already armed;
|
|
360
|
+
* while set, the hold is the block's whole deadline, so no later symbol
|
|
361
|
+
* extends it. Returns false when the block is no longer open (resolved, or
|
|
362
|
+
* not yet tracked).
|
|
363
|
+
*/
|
|
364
|
+
holdBlockForRepair(sbn: number, packetId: number, catalogTrackName: string | undefined, untilAtMs: number): boolean;
|
|
365
|
+
/**
|
|
366
|
+
* Drop a block's repair hold: its FETCH ended without delivering. The block
|
|
367
|
+
* falls back to its multicast wait, which may already have passed.
|
|
368
|
+
*/
|
|
369
|
+
releaseRepairHold(sbn: number, packetId: number, catalogTrackName?: string): void;
|
|
370
|
+
/** Resolved per-track D-28 repair request deadline in milliseconds. */
|
|
371
|
+
repairDeadlineMsForPacket(packetId: number): number;
|
|
372
|
+
/**
|
|
373
|
+
* One block lifetime: the longest a block stays open after its last symbol
|
|
374
|
+
* (inactivity fail bound plus D-28 repair grace).
|
|
375
|
+
*/
|
|
376
|
+
blockLifetimeMsForPacket(packetId: number): number;
|
|
377
|
+
/**
|
|
378
|
+
* How long a terminal (clean, recovered or failed) block stays authoritative,
|
|
379
|
+
* for late symbols and for the in-order release gate. It is also the gate's
|
|
380
|
+
* hold ceiling (MmtpRouter's holdLimitMs): a retired block reads back as
|
|
381
|
+
* untracked, which the gate counts as lost, so no frame may still be waiting
|
|
382
|
+
* on a block that can retire. The window is one interleave depth for a gap's
|
|
383
|
+
* last block to finish arriving, one block lifetime to fail it, and one more
|
|
384
|
+
* for an owed Worker cleanup that can keep a failing block pending. Every
|
|
385
|
+
* term comes from the track's catalog geometry; there is no separate cap.
|
|
386
|
+
*/
|
|
387
|
+
terminalRetentionMsForPacket(packetId: number): number;
|
|
388
|
+
/** Remaining fetch budget for a specific repair-requested block. */
|
|
389
|
+
repairFetchTimeoutMsForBlock(sbn: number, packetId: number, catalogTrackName?: string): number;
|
|
390
|
+
/** True once configureTrack/setFecDecoder/setFecWorker configured this packetId. */
|
|
391
|
+
/** The configured `fec.blockProfile` of a packetId (undefined until configured). */
|
|
392
|
+
blockProfileForPacket(packetId: number): FecBlockProfile | undefined;
|
|
393
|
+
/** Whether an iso-ssbg1-v1 protected packet fits one ssbg_mode1 symbol (len + 2 <= T). */
|
|
394
|
+
isoSourceFits(packetId: number, packetLength: number): boolean;
|
|
395
|
+
/**
|
|
396
|
+
* Locate an iso-ssbg1-v1 source by range membership in a block a repair
|
|
397
|
+
* already stated. Null while its block is unknown: hold it (holdIsoSource).
|
|
398
|
+
*/
|
|
399
|
+
locateIsoSource(packetId: number, catalogTrackName: string | undefined, ssId: number): {
|
|
400
|
+
sbn: number;
|
|
401
|
+
esi: number;
|
|
402
|
+
} | null;
|
|
403
|
+
/**
|
|
404
|
+
* Hold a first-arrival iso-ssbg1-v1 source whose block no repair has stated
|
|
405
|
+
* yet. Returns false for a later copy of an SS_ID already held.
|
|
406
|
+
*/
|
|
407
|
+
holdIsoSource(packetId: number, catalogTrackName: string | undefined, ssId: number, source: IsoHeldSource): boolean;
|
|
408
|
+
/**
|
|
409
|
+
* Apply an iso-ssbg1-v1 repair symbol's `(SS_Start, SSB_length)`: states the
|
|
410
|
+
* block, and hands back the held sources it (and any repair-less span in
|
|
411
|
+
* front of it) now places. The caller feeds them as first-arrival sources,
|
|
412
|
+
* then the repair symbol, the order they had on the wire. A repair that
|
|
413
|
+
* contradicts a known block is refused (counted) and must be dropped.
|
|
414
|
+
*/
|
|
415
|
+
placeIsoRepair(packetId: number, catalogTrackName: string | undefined, ssStart: number, ssbLength: number): IsoRepairPlacement<IsoHeldSource>;
|
|
416
|
+
/**
|
|
417
|
+
* Resolution of the SS_IDs strictly between two released frames' SS_IDs on
|
|
418
|
+
* an iso-ssbg1-v1 stream, for in-order frame release: null while a block
|
|
419
|
+
* that could hold them is pending or not yet stated by a repair, else the
|
|
420
|
+
* starts of the blocks that failed or vanished.
|
|
421
|
+
*
|
|
422
|
+
* `untracked` reads exactly as in the k-padded-v1 release gate
|
|
423
|
+
* (MmtpRouter #createFecReleaseGate): a block holding either released
|
|
424
|
+
* frame's SS_ID (`fromSsId` or `toSsId`) delivered that frame, so untracked
|
|
425
|
+
* there means it resolved and retired; a block starting after the stream's frontier (`highestSbn`,
|
|
426
|
+
* an SS_Start here) may still be heard from; a block at or behind the
|
|
427
|
+
* frontier that no symbol of this manager ever reached vanished, and its
|
|
428
|
+
* media is lost.
|
|
429
|
+
*/
|
|
430
|
+
isoSpanResolution(packetId: number, catalogTrackName: string | undefined, fromSsId: number, toSsId: number): readonly number[] | null;
|
|
431
|
+
/**
|
|
432
|
+
* iso-ssbg1-v1 block location: repair symbols it refused, oversize sources,
|
|
433
|
+
* the sources held now for a block no repair has stated yet, and the held
|
|
434
|
+
* sources the capacity cap evicted (cumulative), and the sources a
|
|
435
|
+
* synchronous decoder held unplaced and retired at its horizon (cumulative).
|
|
436
|
+
*/
|
|
437
|
+
get isoDiagnostics(): {
|
|
438
|
+
repairRefused: number;
|
|
439
|
+
sourceOversize: number;
|
|
440
|
+
heldSources: number;
|
|
441
|
+
heldEvicted: number;
|
|
442
|
+
decoderUnplacedRetired: number;
|
|
443
|
+
decoderUnplacedRetireFailed: number;
|
|
444
|
+
};
|
|
445
|
+
isTrackConfigured(packetId: number): boolean;
|
|
446
|
+
/** Catalog/reset epoch of a packet's streams; gap decisions carry it. */
|
|
447
|
+
epochFor(packetId: number): number;
|
|
448
|
+
/** Configured media kind of a packetId, when known. */
|
|
449
|
+
trackKindFor(packetId: number): TrackKind | undefined;
|
|
450
|
+
/** Configured codec of a packetId, when known. */
|
|
451
|
+
codecFor(packetId: number): string | undefined;
|
|
452
|
+
/**
|
|
453
|
+
* Block classifier geometry of one stream: its own stream-scoped geometry,
|
|
454
|
+
* else the packet's (fail-closed when absent, or when a sibling stream of
|
|
455
|
+
* the packet has its own geometry and this one has none).
|
|
456
|
+
*/
|
|
457
|
+
geometryFor(packetId: number, catalogTrackName?: string): BlockClassifierGeometry;
|
|
458
|
+
/** Current classifier mode of a stream. */
|
|
459
|
+
classifierModeFor(packetId: number, catalogTrackName?: string): {
|
|
460
|
+
mode: ClassifierMode;
|
|
461
|
+
reason: ClassifierReason | null;
|
|
462
|
+
};
|
|
463
|
+
/**
|
|
464
|
+
* Whether an MPU boundary still bounds this stream's RAPs (see
|
|
465
|
+
* `BlockClassifier.mpuBoundsRaps`). Gap decisions drop MPU evidence once
|
|
466
|
+
* it does not. A stream with no classifier yet has shown nothing against it.
|
|
467
|
+
*/
|
|
468
|
+
mpuBoundsRapsFor(packetId: number, catalogTrackName?: string): boolean;
|
|
469
|
+
/** A block's class now, or frozen at its resolution. */
|
|
470
|
+
blockClassFor(sbn: number, packetId: number, catalogTrackName?: string): BlockClass;
|
|
471
|
+
/**
|
|
472
|
+
* Lifecycle resolution of one block for in-order frame release: `pending`
|
|
473
|
+
* while it can still complete, `complete`/`failed` once terminal, and
|
|
474
|
+
* `untracked` when no symbol of it was ever accepted.
|
|
475
|
+
*/
|
|
476
|
+
blockResolution(sbn: number, packetId: number, catalogTrackName?: string): FecBlockResolution;
|
|
477
|
+
/** Highest SBN any symbol of this stream carried in the current epoch. */
|
|
478
|
+
highestSbn(packetId: number, catalogTrackName?: string): number | undefined;
|
|
479
|
+
/**
|
|
480
|
+
* Record a RAP frame released in order, for the classifier's RAP-spacing
|
|
481
|
+
* invariant (consecutive MPUs exactly one keyframe interval apart).
|
|
482
|
+
*/
|
|
483
|
+
noteReleasedRap(packetId: number, catalogTrackName: string | undefined, mpu: number, presentationTime: bigint, mediaTimescale: number): void;
|
|
484
|
+
/** Configure FEC parameters. */
|
|
485
|
+
configure(config: FECManagerConfig): void;
|
|
486
|
+
/**
|
|
487
|
+
* Configure FEC parameters for one packetId without changing legacy
|
|
488
|
+
* defaults. With `catalogTrackName`, `config.geometry` is that stream's
|
|
489
|
+
* own classifier geometry (ABR rungs that share a packetId each get
|
|
490
|
+
* theirs); K, T, timing, kind and codec stay per packetId.
|
|
491
|
+
*/
|
|
492
|
+
configureTrack(packetId: number, config: FECManagerConfig, catalogTrackName?: string): void;
|
|
493
|
+
/** Register a FEC decoder for a specific packetId (track). */
|
|
494
|
+
setFecDecoder(packetId: number, client: WasmFecDecoder, k: number, config?: FECManagerConfig, catalogTrackName?: string): void;
|
|
495
|
+
/**
|
|
496
|
+
* Register a Worker-backed FEC decoder for a specific packetId (track).
|
|
497
|
+
*
|
|
498
|
+
* Worker-backed tracks decode asynchronously — feedSourceSymbol/feedRepairSymbol
|
|
499
|
+
* return null immediately, and recovered frames arrive via the onBlockRecovered callback.
|
|
500
|
+
*
|
|
501
|
+
* Takes precedence over sync WASM decoders for the same packetId.
|
|
502
|
+
*/
|
|
503
|
+
setFecWorker(packetId: number, client: FecWorkerClient, config: FECManagerConfig, catalogTrackName?: string): void;
|
|
504
|
+
/**
|
|
505
|
+
* Remove a stream's Worker decoder from routing.
|
|
506
|
+
*
|
|
507
|
+
* Returns false when no Worker is registered under that exact stream key.
|
|
508
|
+
* On success every cleanup acknowledgement still owed by the client is
|
|
509
|
+
* resolved by failing its block now (a Worker that is going away cannot
|
|
510
|
+
* post it), the client's block ownership is released, and
|
|
511
|
+
* onDecoderUnavailable fires once with reason 'cleared' and the decoder
|
|
512
|
+
* that remains for the stream ('sync' or 'none'). Call this before
|
|
513
|
+
* disposing the client; a client disposed while still registered is
|
|
514
|
+
* evicted on its next symbol or reset with reason 'disposed'.
|
|
515
|
+
*/
|
|
516
|
+
clearFecWorker(packetId: number, catalogTrackName?: string): boolean;
|
|
517
|
+
/** Called by player when framerate is known (from decoder output). Refines FEC block timeout. */
|
|
518
|
+
setFramerate(fps: number): void;
|
|
519
|
+
/**
|
|
520
|
+
* Feed a source symbol to the WASM FEC decoder.
|
|
521
|
+
*
|
|
522
|
+
* Does NOT track block source counts or fire lifecycle events — call
|
|
523
|
+
* `trackBlock()` separately BEFORE this method (MmtpRouter does this).
|
|
524
|
+
*
|
|
525
|
+
* @returns Recovered block data if WASM completed the block, else null.
|
|
526
|
+
* Caller is responsible for routing recovered data and updating
|
|
527
|
+
* block completion state via `markBlockCompleted()`.
|
|
528
|
+
*/
|
|
529
|
+
feedSourceSymbol(packetId: number, ssId: number, symbolData: Uint8Array, alta?: {
|
|
530
|
+
auth: Uint8Array;
|
|
531
|
+
payloadEnd: number;
|
|
532
|
+
}, catalogTrackName?: string): Uint8Array | null;
|
|
533
|
+
/**
|
|
534
|
+
* Feed a repair symbol to the WASM FEC decoder.
|
|
535
|
+
*
|
|
536
|
+
* @returns Recovered block data if repair completed the block, else null.
|
|
537
|
+
* Caller is responsible for routing recovered data and updating
|
|
538
|
+
* block completion state via `markBlockCompleted()`.
|
|
539
|
+
*/
|
|
540
|
+
feedRepairSymbol(packetId: number, ssStart: number, ssbLength: number, rsId: number, repairData: Uint8Array, catalogTrackName?: string): Uint8Array | null;
|
|
541
|
+
/**
|
|
542
|
+
* Track a first-arrival network source symbol for an FEC block. Refreshes
|
|
543
|
+
* the inactivity deadline on each symbol, records the symbol's in-band
|
|
544
|
+
* classification evidence, and marks the block clean when all of its
|
|
545
|
+
* authored source symbols arrived: the SSB_length a repair symbol declared,
|
|
546
|
+
* otherwise K.
|
|
547
|
+
*
|
|
548
|
+
* Throws for a packetId that was never configured, so a classified block
|
|
549
|
+
* never reads the manager-global K or timeout.
|
|
550
|
+
*/
|
|
551
|
+
trackBlock(sbn: number, packetId: number, catalogTrackName: string | undefined, esi: number, evidence: SourceSymbolEvidence): void;
|
|
552
|
+
/** Refresh deadlines after accepted block activity. */
|
|
553
|
+
noteBlockActivity(sbn: number, packetId: number, catalogTrackName?: string, sourceProgress?: boolean): void;
|
|
554
|
+
/** Check whether a block has already been completed (clean or recovered). */
|
|
555
|
+
isBlockCompleted(sbn: number, packetId?: number, catalogTrackName?: string): boolean;
|
|
556
|
+
/** Mark a block as completed externally (e.g., after routing recovered data). */
|
|
557
|
+
markBlockCompleted(sbn: number, packetId?: number, catalogTrackName?: string): void;
|
|
558
|
+
/**
|
|
559
|
+
* Increment blocksRecovered (called by MmtpRouter after routing a
|
|
560
|
+
* synchronous recovery). With the block's coordinates the recovery is also
|
|
561
|
+
* reported through onBlockRepaired, once per block.
|
|
562
|
+
*/
|
|
563
|
+
countRecovery(packetId?: number, sbn?: number, catalogTrackName?: string): void;
|
|
564
|
+
/**
|
|
565
|
+
* Strict delivery provenance for one FEC block.
|
|
566
|
+
*
|
|
567
|
+
* A recovered symbol is a function of every symbol that entered its block,
|
|
568
|
+
* so it can only be attributed to multicast when NO symbol in that block
|
|
569
|
+
* arrived over MoQ. Repair symbols routinely arrive over reliable QUIC
|
|
570
|
+
* (`MmtpRouter.feedRepairPacket`), so a block that recovered with MoQ help
|
|
571
|
+
* produced bytes that never crossed a multicast socket.
|
|
572
|
+
*
|
|
573
|
+
* An untracked block returns 'unknown' rather than a guess: absence of
|
|
574
|
+
* evidence is not evidence of multicast.
|
|
575
|
+
*/
|
|
576
|
+
blockDeliveryProvenance(sbn: number, packetId: number, catalogTrackName?: string): MmtpDeliveryProvenance;
|
|
577
|
+
/** Per-path symbol counts for one block (D-28 gate logging), if tracked. */
|
|
578
|
+
blockPathCount(sbn: number, packetId: number, catalogTrackName?: string): FecBlockPathCount | null;
|
|
579
|
+
/** Cancel block timeout (block completed via clean reception or FEC recovery). */
|
|
580
|
+
cancelBlockTimeout(sbn: number, packetId?: number, catalogTrackName?: string): void;
|
|
581
|
+
dispose(): void;
|
|
582
|
+
}
|
|
583
|
+
//# sourceMappingURL=fec-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fec-manager.d.ts","sourceRoot":"","sources":["../src/fec-manager.ts"],"names":[],"mappings":"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"}
|