@blockcast/mmt-container 0.1.0-main.149f78a4adae
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 +432 -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 +148 -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 +93 -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/browser-runtime.js +17109 -0
- package/dist/browser-runtime.js.map +7 -0
- package/dist/carp-catalog.d.ts +318 -0
- package/dist/carp-catalog.d.ts.map +1 -0
- package/dist/carp-catalog.js +549 -0
- package/dist/carp-catalog.js.map +7 -0
- package/dist/catalog-fec-params.d.ts +82 -0
- package/dist/catalog-fec-params.d.ts.map +1 -0
- package/dist/catalog-fec-params.js +66 -0
- package/dist/catalog-fec-params.js.map +7 -0
- package/dist/catalog-network-source.d.ts +19 -0
- package/dist/catalog-network-source.d.ts.map +1 -0
- package/dist/catalog-network-source.js +22 -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 +168 -0
- package/dist/cmaf-block-assembler.d.ts.map +1 -0
- package/dist/cmaf-block-assembler.js +1755 -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 +195 -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 +207 -0
- package/dist/cmcd-producer.js.map +7 -0
- package/dist/codec-utils.d.ts +235 -0
- package/dist/codec-utils.d.ts.map +1 -0
- package/dist/codec-utils.js +1225 -0
- package/dist/codec-utils.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 +266 -0
- package/dist/fec-manager.d.ts.map +1 -0
- package/dist/fec-manager.js +1447 -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 +75 -0
- package/dist/fec-starvation-detector.js.map +7 -0
- package/dist/fec-worker-setup.d.ts +76 -0
- package/dist/fec-worker-setup.d.ts.map +1 -0
- package/dist/fec-worker-setup.js +603 -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 +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +330 -0
- package/dist/index.js.map +7 -0
- package/dist/iso-bmff-timing.d.ts +47 -0
- package/dist/iso-bmff-timing.d.ts.map +1 -0
- package/dist/iso-bmff-timing.js +526 -0
- package/dist/iso-bmff-timing.js.map +7 -0
- package/dist/loc.d.ts +68 -0
- package/dist/loc.d.ts.map +1 -0
- package/dist/loc.js +143 -0
- package/dist/loc.js.map +7 -0
- 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 +1267 -0
- package/dist/manifest-auth-plan.js.map +7 -0
- package/dist/media-router.d.ts +338 -0
- package/dist/media-router.d.ts.map +1 -0
- package/dist/media-router.js +802 -0
- package/dist/media-router.js.map +7 -0
- package/dist/mfu-reassembler.d.ts +264 -0
- package/dist/mfu-reassembler.d.ts.map +1 -0
- package/dist/mfu-reassembler.js +2668 -0
- package/dist/mfu-reassembler.js.map +7 -0
- 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 +304 -0
- package/dist/mmtp-container-parser.d.ts.map +1 -0
- package/dist/mmtp-container-parser.js +5378 -0
- package/dist/mmtp-container-parser.js.map +7 -0
- package/dist/mmtp-container-parser.no-modules.js +7853 -0
- package/dist/mmtp-container-parser.no-modules.js.map +7 -0
- package/dist/mmtp-decode-pipeline.d.ts +96 -0
- package/dist/mmtp-decode-pipeline.d.ts.map +1 -0
- package/dist/mmtp-decode-pipeline.js +5589 -0
- package/dist/mmtp-decode-pipeline.js.map +7 -0
- package/dist/mmtp-router.d.ts +383 -0
- package/dist/mmtp-router.d.ts.map +1 -0
- package/dist/mmtp-router.js +8384 -0
- package/dist/mmtp-router.js.map +7 -0
- package/dist/mmtp-to-cmaf.d.ts +166 -0
- package/dist/mmtp-to-cmaf.d.ts.map +1 -0
- package/dist/mmtp-to-cmaf.js +781 -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 +107 -0
- package/dist/multicast-input.d.ts.map +1 -0
- package/dist/multicast-input.js +256 -0
- package/dist/multicast-input.js.map +7 -0
- package/dist/multicast-manager.d.ts +330 -0
- package/dist/multicast-manager.d.ts.map +1 -0
- package/dist/multicast-manager.js +11032 -0
- package/dist/multicast-manager.js.map +7 -0
- package/dist/multicast-transport.d.ts +62 -0
- package/dist/multicast-transport.d.ts.map +1 -0
- package/dist/multicast-transport.js +338 -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 +384 -0
- package/dist/multicast-unwrap.js.map +7 -0
- package/dist/no-modules.d.ts +9 -0
- package/dist/no-modules.d.ts.map +1 -0
- package/dist/no-modules.js +7819 -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 +58 -0
- package/dist/repair-fetch.d.ts.map +1 -0
- package/dist/repair-fetch.js +117 -0
- package/dist/repair-fetch.js.map +7 -0
- package/dist/sample-combiner.d.ts +182 -0
- package/dist/sample-combiner.d.ts.map +1 -0
- package/dist/sample-combiner.js +571 -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 +232 -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 +1220 -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 +85 -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 +456 -0
- package/dist/timestamp-codec.js.map +7 -0
- package/dist/track-pipeline-setup.d.ts +72 -0
- package/dist/track-pipeline-setup.d.ts.map +1 -0
- package/dist/track-pipeline-setup.js +306 -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 +229 -0
- package/dist/track-pipeline.js.map +7 -0
- package/dist/track-session.d.ts +269 -0
- package/dist/track-session.d.ts.map +1 -0
- package/dist/track-session.js +597 -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 +88 -0
- package/dist/transport-pool.js.map +7 -0
- package/dist/wasm-mfu-reassembler.d.ts +81 -0
- package/dist/wasm-mfu-reassembler.d.ts.map +1 -0
- package/dist/wasm-mfu-reassembler.js +1915 -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 +5635 -0
- package/dist/wasm-mmtp-container-parser.js.map +7 -0
- package/node_modules/@blockcast/fec-worker/README.md +213 -0
- package/node_modules/@blockcast/fec-worker/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.d.ts +80 -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 +270 -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 +252 -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 +565 -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 +349 -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 +179 -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 +47 -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/fec-worker-client.ts +309 -0
- package/node_modules/@blockcast/fec-worker/src/fec-worker-types.ts +268 -0
- package/node_modules/@blockcast/fec-worker/src/fec-worker.ts +1048 -0
- package/node_modules/@blockcast/fec-worker/src/index.ts +32 -0
- package/node_modules/@blockcast/fec-worker/src/shred-fec-worker.ts +558 -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 +194 -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 +120 -0
- package/node_modules/@blockcast/mmt-base/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/mmt-base/dist/index.d.ts +2 -0
- package/node_modules/@blockcast/mmt-base/dist/index.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/index.js +2 -0
- package/node_modules/@blockcast/mmt-base/dist/index.js.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts +275 -0
- package/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-base/dist/mmtp.js +644 -0
- package/node_modules/@blockcast/mmt-base/dist/mmtp.js.map +1 -0
- package/node_modules/@blockcast/mmt-base/package.json +49 -0
- package/node_modules/@blockcast/mmt-base/src/index.ts +1 -0
- package/node_modules/@blockcast/mmt-base/src/mmtp.ts +898 -0
- package/node_modules/@blockcast/mmt-fec/README.md +270 -0
- package/node_modules/@blockcast/mmt-fec/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/mmt-fec/dist/block-manager.d.ts +80 -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 +294 -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 +72 -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 +192 -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 +185 -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 +273 -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 +22 -0
- package/node_modules/@blockcast/mmt-fec/dist/index.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/index.js +22 -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 +174 -0
- package/node_modules/@blockcast/mmt-fec/dist/oti.d.ts.map +1 -0
- package/node_modules/@blockcast/mmt-fec/dist/oti.js +256 -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/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 +120 -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/index.d.ts +2 -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 +2 -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 +275 -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 +644 -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/package.json +49 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/index.ts +1 -0
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/mmtp.ts +898 -0
- package/node_modules/@blockcast/mmt-fec/package.json +79 -0
- package/node_modules/@blockcast/mmt-fec/src/block-manager.ts +369 -0
- package/node_modules/@blockcast/mmt-fec/src/block-processor.ts +277 -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 +332 -0
- package/node_modules/@blockcast/mmt-fec/src/index.ts +77 -0
- package/node_modules/@blockcast/mmt-fec/src/loc-symbols.ts +34 -0
- package/node_modules/@blockcast/mmt-fec/src/oti.ts +319 -0
- package/node_modules/@blockcast/mmt-fec/src/reorder-buffer.ts +101 -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 +90 -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 +462 -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 +636 -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 +203 -0
- package/schemas/catalog.schema.json +283 -0
- package/src/align.ts +235 -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/carp-catalog.ts +776 -0
- package/src/catalog-fec-params.ts +167 -0
- package/src/catalog-network-source.ts +49 -0
- package/src/catalog-validator.ts +34 -0
- package/src/cmaf-block-assembler.ts +1058 -0
- package/src/cmaf-group-batcher.ts +104 -0
- package/src/cmcd-producer.ts +329 -0
- package/src/codec-utils.ts +1539 -0
- package/src/fec-codec.ts +61 -0
- package/src/fec-manager.ts +1939 -0
- package/src/fec-starvation-detector.ts +128 -0
- package/src/fec-worker-setup.ts +177 -0
- package/src/fmp4-completion.ts +47 -0
- package/src/fmp4-reader.ts +112 -0
- package/src/index.ts +443 -0
- package/src/iso-bmff-timing.ts +688 -0
- package/src/loc.ts +181 -0
- package/src/manifest-auth-plan.ts +107 -0
- package/src/media-router.ts +1185 -0
- package/src/mfu-reassembler.ts +2842 -0
- package/src/mfu-reassembly-policy.ts +134 -0
- package/src/mmtp-container-parser.ts +1498 -0
- package/src/mmtp-decode-pipeline.ts +315 -0
- package/src/mmtp-router.ts +3027 -0
- package/src/mmtp-to-cmaf.ts +956 -0
- package/src/multicast-auth-catalog.ts +340 -0
- package/src/multicast-input.ts +439 -0
- package/src/multicast-manager.ts +1503 -0
- package/src/multicast-transport.ts +320 -0
- package/src/multicast-unwrap.ts +132 -0
- package/src/no-modules.ts +20 -0
- package/src/phase14-catalog-override.ts +336 -0
- package/src/repair-fetch.ts +217 -0
- package/src/sample-combiner.ts +846 -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 +189 -0
- package/src/track-pipeline.ts +332 -0
- package/src/track-session.ts +778 -0
- package/src/transport-pool.ts +128 -0
- package/src/wasm-mfu-reassembler.ts +372 -0
- package/src/wasm-mmtp-container-parser.ts +23 -0
- package/test-vectors/align.json +199 -0
- package/test-vectors/catalog/README.md +25 -0
- package/test-vectors/catalog/negative/legacy-selection-params.json +15 -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/network-source-object.json +25 -0
- package/test-vectors/catalog/negative/raptorq-unaligned-symbol.json +26 -0
- package/test-vectors/catalog/negative/repair-track-legacy-shape.json +18 -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/fec-multicast.json +51 -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/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 +148 -0
- package/test-vectors/catalog-validator-public-api.mjs +25 -0
- package/test-vectors/generate-source-auth-fixture.mjs +114 -0
- package/test-vectors/source-auth-v1.json +61 -0
- package/test-vectors/subsample-placement-v1.json +230 -0
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MediaRouter — source arbitration for MoQ ↔ multicast switching.
|
|
3
|
+
*
|
|
4
|
+
* Both moq-lib and moqtail wire their MoQ and multicast frame outputs
|
|
5
|
+
* through this router. The router decides which source reaches the decoder:
|
|
6
|
+
*
|
|
7
|
+
* - MoQ frames pass through while multicast is inactive.
|
|
8
|
+
* - Multicast video frames are suppressed until the first keyframe.
|
|
9
|
+
* - Once multicast has both a video keyframe and audio, takeover is requested.
|
|
10
|
+
* - MoQ is suppressed only after the source-switch callback completes.
|
|
11
|
+
* - failbackToMoq() reverses the switch immediately.
|
|
12
|
+
*
|
|
13
|
+
* Per-track setTrackSource() allows individual tracks to be wired to a
|
|
14
|
+
* specific transport source (video=multicast, audio=moq, overlay=amt) without
|
|
15
|
+
* changing the binary MoQ↔multicast switching for other tracks.
|
|
16
|
+
*
|
|
17
|
+
* notifyGroupBoundary() is an observer hook: callers report the
|
|
18
|
+
* packet-stamped groupId + media time for each group, and the router
|
|
19
|
+
* cross-checks against the shared `align.ts` formula. Drift is emitted via
|
|
20
|
+
* onGroupDrift so the player can bump the CMCD `x-bc-switch-drift-us` /
|
|
21
|
+
* `x-bc-switch-miscount` counters. Observation only — does NOT alter routing.
|
|
22
|
+
*/
|
|
23
|
+
export type FrameMeta = {
|
|
24
|
+
timestamp: number;
|
|
25
|
+
keyframe: boolean;
|
|
26
|
+
packetId?: number;
|
|
27
|
+
packetSequenceNumber?: number;
|
|
28
|
+
source?: 'moq' | 'multicast' | 'repair';
|
|
29
|
+
recovered?: boolean;
|
|
30
|
+
sourceDiscontinuity?: boolean;
|
|
31
|
+
};
|
|
32
|
+
export type FrameKind = 'video' | 'audio';
|
|
33
|
+
export type SourceKind = 'moq' | 'multicast';
|
|
34
|
+
/**
|
|
35
|
+
* Tick-space timing for one group boundary — the exact, authoritative form.
|
|
36
|
+
*
|
|
37
|
+
* These are the integers the catalog already carries (`groupDurationTicks`,
|
|
38
|
+
* `timescale`) plus the packet's raw timestamp in the same units. Passing
|
|
39
|
+
* them straight through keeps the whole drift check in integer math.
|
|
40
|
+
*
|
|
41
|
+
* Prefer this over the seconds overload: `groupDurationTicks / timescale`
|
|
42
|
+
* is not exactly representable for the common non-integer-second cadences
|
|
43
|
+
* (33333@90k, 1001@30k, 1024@44.1k), and the seconds path has to quantize
|
|
44
|
+
* to whole nanoseconds — which shifts `expected` by a whole group from the
|
|
45
|
+
* second boundary onward and reports drift on a perfectly aligned stream.
|
|
46
|
+
*/
|
|
47
|
+
export interface GroupBoundaryTicks {
|
|
48
|
+
/** Packet media timestamp in `timescale` units. Integer; negatives clamp to 0. */
|
|
49
|
+
readonly mediaTimeTicks: number;
|
|
50
|
+
/** Group duration in `timescale` units. Positive integer. */
|
|
51
|
+
readonly groupDurationTicks: number;
|
|
52
|
+
/**
|
|
53
|
+
* Catalog timescale in Hz. Positive integer — **validated, and a hard gate**:
|
|
54
|
+
* a non-integer or non-positive value skips the drift check entirely rather
|
|
55
|
+
* than reporting against it. It does not feed the groupId computation (that
|
|
56
|
+
* is `mediaTimeTicks / groupDurationTicks` alone), but it does derive the
|
|
57
|
+
* `mediaTimeSec` / `groupDurationSec` on every GroupDriftEvent — so letting a
|
|
58
|
+
* bad value through would push NaN/Infinity into CMCD `x-bc-switch-drift-us`,
|
|
59
|
+
* which is worse than skipping.
|
|
60
|
+
*/
|
|
61
|
+
readonly timescale: number;
|
|
62
|
+
}
|
|
63
|
+
/** Payload emitted by MediaRouter.onGroupDrift when a packet-stamped groupId
|
|
64
|
+
* disagrees with the shared `align.ts` formula. */
|
|
65
|
+
export interface GroupDriftEvent {
|
|
66
|
+
trackName: string;
|
|
67
|
+
expectedGroupId: number;
|
|
68
|
+
actualGroupId: number;
|
|
69
|
+
/** `actual - expected` (positive = ahead, negative = behind). */
|
|
70
|
+
deltaGroups: number;
|
|
71
|
+
/** Seconds view, kept for CMCD consumers. Derived when the caller used ticks. */
|
|
72
|
+
mediaTimeSec: number;
|
|
73
|
+
groupDurationSec: number;
|
|
74
|
+
/** Exact tick-space inputs. Present only when the caller used the ticks form. */
|
|
75
|
+
timing?: GroupBoundaryTicks;
|
|
76
|
+
}
|
|
77
|
+
type FrameCb = (data: Uint8Array, meta: FrameMeta) => void;
|
|
78
|
+
type SwitchCb = (source: SourceKind) => void | Promise<void>;
|
|
79
|
+
export interface MediaRouterOptions {
|
|
80
|
+
/** Set false for video-only streams. Default: true. */
|
|
81
|
+
requireAudio?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Audio fallback timeout (ms): force multicast activation if video keyframe
|
|
84
|
+
* arrived but audio hasn't within this window. Catalog-derived via
|
|
85
|
+
* computeFecDeliveryWindowMs (the single FEC recovery-window source of truth).
|
|
86
|
+
* Omit to disable the independent audio-fallback timer (no magic default).
|
|
87
|
+
*/
|
|
88
|
+
audioFallbackMs?: number;
|
|
89
|
+
/**
|
|
90
|
+
* Number of binary-path frames to allow through during a crossfade transition.
|
|
91
|
+
* Derive from FEC block size (e.g., ceil(K / groupsPerBlock)). Default: 10.
|
|
92
|
+
*/
|
|
93
|
+
crossfadeFrames?: number;
|
|
94
|
+
/**
|
|
95
|
+
* Max pre-boundary overlay frames to buffer before dropping.
|
|
96
|
+
* Derive from FEC config (e.g., ceil(K * 1.5)). Default: 128.
|
|
97
|
+
*/
|
|
98
|
+
maxOverlayBuffer?: number;
|
|
99
|
+
/**
|
|
100
|
+
* Max concurrent in-flight repairs. Prevents relay SUBSCRIBE flood (T-13-01 mitigation).
|
|
101
|
+
* Default: 2.
|
|
102
|
+
*/
|
|
103
|
+
maxRepairInFlight?: number;
|
|
104
|
+
/**
|
|
105
|
+
* Allow multicast takeover from a delta frame after the player has confirmed
|
|
106
|
+
* that MoQ already seeded the same decoder timeline with a video keyframe.
|
|
107
|
+
* Default false: decoder-reset paths still need multicast to provide a RAP.
|
|
108
|
+
*/
|
|
109
|
+
allowDeltaMulticastTakeoverAfterMoqKeyframe?: boolean;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* A per-track source that emits frames independently of the binary MoQ/multicast path.
|
|
113
|
+
* Used by setTrackSource() to wire specific tracks to specific transport sources.
|
|
114
|
+
*/
|
|
115
|
+
export interface TrackSource {
|
|
116
|
+
name: string;
|
|
117
|
+
/**
|
|
118
|
+
* Register a frame callback. Returns an unsubscribe function.
|
|
119
|
+
* MediaRouter calls unsubscribe() when clearTrackSource() is called.
|
|
120
|
+
*/
|
|
121
|
+
onFrame(cb: (data: Uint8Array, meta: FrameMeta) => void): () => void;
|
|
122
|
+
/**
|
|
123
|
+
* Optional error callback for when the source fails.
|
|
124
|
+
* MediaRouter uses this to trigger failback to binary switching for this track.
|
|
125
|
+
*/
|
|
126
|
+
onError?(cb: () => void): () => void;
|
|
127
|
+
/** Optional dispose hook called when clearTrackSource() is called. */
|
|
128
|
+
dispose?(): void;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Thrown when setTrackSource() is called for a track that already has a source
|
|
132
|
+
* without an intervening clearTrackSource(). Prevents silent concurrent-assignment
|
|
133
|
+
* races (T-02-16 mitigation).
|
|
134
|
+
*/
|
|
135
|
+
export declare class TrackSourceConflictError extends Error {
|
|
136
|
+
readonly trackName: string;
|
|
137
|
+
constructor(trackName: string);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Migration policy for setTrackSource() transport switching.
|
|
141
|
+
*
|
|
142
|
+
* - 'crossfade': Overlap old (binary) and new source briefly (CROSSFADE_WINDOW_FRAMES),
|
|
143
|
+
* then suppress the binary path. Default for audio.
|
|
144
|
+
* - 'drop': Cut to new source immediately. Binary path suppressed at once.
|
|
145
|
+
* Suitable for latency-critical tracks.
|
|
146
|
+
* - 'wait': Defer migration until first FEC block boundary (same as overlay=true).
|
|
147
|
+
* Default for video — avoids decoder reset mid-block.
|
|
148
|
+
*/
|
|
149
|
+
export type MigrationPolicy = 'crossfade' | 'drop' | 'wait';
|
|
150
|
+
/** Options passed to setTrackSource(). */
|
|
151
|
+
export interface SetTrackSourceOptions {
|
|
152
|
+
/**
|
|
153
|
+
* If true, this source is an overlay track that must wait for the first FEC
|
|
154
|
+
* block boundary signal (via notifyFecBlockBoundary()) before emitting frames.
|
|
155
|
+
* Frames arriving before the first boundary are buffered up to MAX_OVERLAY_BUFFER.
|
|
156
|
+
*
|
|
157
|
+
* Backwards compat: equivalent to policy: 'wait'.
|
|
158
|
+
*/
|
|
159
|
+
overlay?: boolean;
|
|
160
|
+
/**
|
|
161
|
+
* Migration policy for the transport switch. Overrides `overlay` when provided.
|
|
162
|
+
* See MigrationPolicy for semantics.
|
|
163
|
+
*/
|
|
164
|
+
policy?: MigrationPolicy;
|
|
165
|
+
}
|
|
166
|
+
export declare class MediaRouter {
|
|
167
|
+
#private;
|
|
168
|
+
constructor(options?: MediaRouterOptions);
|
|
169
|
+
onVideoFrame(cb: FrameCb): void;
|
|
170
|
+
onAudioFrame(cb: FrameCb): void;
|
|
171
|
+
onOverlayFrame(cb: FrameCb): void;
|
|
172
|
+
onSourceSwitch(cb: SwitchCb): void;
|
|
173
|
+
onGroupDrift(cb: (evt: GroupDriftEvent) => void): void;
|
|
174
|
+
/**
|
|
175
|
+
* Report a group boundary observed on an incoming track. Cross-checks the
|
|
176
|
+
* packet-stamped groupId against the shared `align.ts` formula and fires
|
|
177
|
+
* the onGroupDrift callback when they disagree.
|
|
178
|
+
*
|
|
179
|
+
* Two input forms:
|
|
180
|
+
* - **Ticks (preferred).** `notifyGroupBoundary(track, id, { mediaTimeTicks,
|
|
181
|
+
* groupDurationTicks, timescale })` — pure integer math via
|
|
182
|
+
* `align.groupIdForTicks`, no rounding anywhere.
|
|
183
|
+
* - **Seconds (deprecated).** The 4-argument form. Quantizes both operands
|
|
184
|
+
* to whole nanoseconds, which is exact only when `groupDurationSec` is a
|
|
185
|
+
* whole number of nanoseconds. It is not for 33333@90k, 1001@30k or
|
|
186
|
+
* 1024@44.1k, and there `expected` diverges by a whole group from the
|
|
187
|
+
* second boundary onward — a false drift event on every subsequent
|
|
188
|
+
* group, and a systematically wrong CMCD `x-bc-switch-drift-us`.
|
|
189
|
+
*
|
|
190
|
+
* No-op when no onGroupDrift callback is registered (avoid unnecessary work
|
|
191
|
+
* on hot paths).
|
|
192
|
+
*
|
|
193
|
+
* Hot-path robustness (does NOT throw on bad inputs — the ingest stream
|
|
194
|
+
* must not be torn down by a malformed catalog or a disposed producer):
|
|
195
|
+
* - Invalid duration (NaN / <=0) or non-finite media time → warn + early
|
|
196
|
+
* return (same convention as audioFallbackMs).
|
|
197
|
+
* - Any throw out of the align formula (e.g. the safe-integer overflow
|
|
198
|
+
* guard at ~104 days of media time on the seconds path) is caught +
|
|
199
|
+
* logged so an unusually long-running stream cannot tear down ingest.
|
|
200
|
+
* - Callback throws are caught + logged; ingest continues.
|
|
201
|
+
* - Skip warnings are coalesced **per failure mode** for the lifetime
|
|
202
|
+
* of the router (never reset, including across `dispose()`), so a hot
|
|
203
|
+
* path cannot flood the log while a genuinely new failure mode still
|
|
204
|
+
* gets heard. Deterministic modes get one line; a throwing consumer
|
|
205
|
+
* callback gets a small budget because its error varies. See
|
|
206
|
+
* `#skipWithWarning` and `GROUP_ALIGN_WARN_BUDGET`.
|
|
207
|
+
*
|
|
208
|
+
* Init-track filter: media time === 0 with a non-zero stamped groupId is
|
|
209
|
+
* treated as an init/ambient track emitting pre-PTS-zero packets and is
|
|
210
|
+
* skipped (matches Go's base-clamp intent without producing spurious
|
|
211
|
+
* drift).
|
|
212
|
+
*
|
|
213
|
+
* NOTE: do NOT call from the repair path (feedRepair). Repair frames carry
|
|
214
|
+
* the groupId they are recovering for, not a freshly-stamped one.
|
|
215
|
+
*/
|
|
216
|
+
notifyGroupBoundary(trackName: string, packetGroupId: number, timing: GroupBoundaryTicks): void;
|
|
217
|
+
/**
|
|
218
|
+
* @deprecated Pass a {@link GroupBoundaryTicks} instead. The seconds form
|
|
219
|
+
* rounds to whole nanoseconds and reports phantom drift on catalogs whose
|
|
220
|
+
* `groupDurationTicks / timescale` is not ns-exact.
|
|
221
|
+
*/
|
|
222
|
+
notifyGroupBoundary(trackName: string, packetGroupId: number, mediaTimeSec: number, groupDurationSec: number): void;
|
|
223
|
+
get activeSource(): SourceKind;
|
|
224
|
+
/** Register callback for keyframe repair requests. Player wires this to issue MoQ SUBSCRIBE. */
|
|
225
|
+
onRepairRequest(cb: (expectedGroupId: number, trackName: string) => void): void;
|
|
226
|
+
/**
|
|
227
|
+
* Request repair for a lost keyframe group. Only fires when activeSource is 'multicast'.
|
|
228
|
+
* Idempotent per groupId — duplicate calls for the same group are suppressed.
|
|
229
|
+
* @param expectedGroupId - The group ID expected but not received
|
|
230
|
+
* @param trackName - Track name for the SUBSCRIBE (e.g. 'video'). Default: 'video'.
|
|
231
|
+
*/
|
|
232
|
+
repairLostGroup(expectedGroupId: number, trackName?: string): void;
|
|
233
|
+
/**
|
|
234
|
+
* Feed a recovered keyframe frame from the repair path.
|
|
235
|
+
* Bypasses source arbitration entirely — goes directly to decoder callbacks.
|
|
236
|
+
* Does NOT change activeSource. Does NOT trigger failbackToMoq.
|
|
237
|
+
*/
|
|
238
|
+
feedRepair(data: Uint8Array, meta: FrameMeta, kind: FrameKind): void;
|
|
239
|
+
/**
|
|
240
|
+
* Clear repair-in-flight state for a group (called after repair completes or times out).
|
|
241
|
+
*/
|
|
242
|
+
clearRepairInFlight(groupId: number): void;
|
|
243
|
+
/**
|
|
244
|
+
* Configure the delta-track fallback state machine from catalog parameters.
|
|
245
|
+
*
|
|
246
|
+
* D-11: Thresholds derive from fec.sourceSymbols, fec.repairSymbols, framerate.
|
|
247
|
+
* D-13: Probe interval derives from deltaProbeIntervalMs or interleaveDepthMs*2.
|
|
248
|
+
* CLAUDE.md: error on bad init — throws if required inputs are absent.
|
|
249
|
+
*
|
|
250
|
+
* Calling again resets deltaActive=true and clears the window buffer (stream restart).
|
|
251
|
+
*/
|
|
252
|
+
configureDelta(cfg: {
|
|
253
|
+
framerate: number;
|
|
254
|
+
sourceSymbols: number;
|
|
255
|
+
repairSymbols: number;
|
|
256
|
+
deltaFailWindowBlocks?: number;
|
|
257
|
+
deltaProbeIntervalMs?: number;
|
|
258
|
+
interleaveDepthMs?: number;
|
|
259
|
+
}): void;
|
|
260
|
+
/**
|
|
261
|
+
* Notify the state machine of a completed FEC block for the delta track.
|
|
262
|
+
*
|
|
263
|
+
* @param failed - true if the block was unrecoverable (FEC failure)
|
|
264
|
+
* @param nowMs - caller-injected monotonic ms (no internal timer — D-13, CLAUDE.md)
|
|
265
|
+
*
|
|
266
|
+
* If configureDelta() has not been called, this is a silent no-op (pre-catalog state).
|
|
267
|
+
*/
|
|
268
|
+
notifyDeltaBlock(failed: boolean, nowMs: number): void;
|
|
269
|
+
/** Register callback fired when delta track degrades past threshold (D-12). */
|
|
270
|
+
onDeltaFallback(cb: () => void): void;
|
|
271
|
+
/** Register callback fired when delta track recovers below recovery threshold (D-13). */
|
|
272
|
+
onDeltaRecover(cb: () => void): void;
|
|
273
|
+
/** Whether the delta track is currently considered healthy (true = active). */
|
|
274
|
+
get deltaActive(): boolean;
|
|
275
|
+
/** Derived window size — exposed for test assertions (Test 3, 4). */
|
|
276
|
+
get deltaWindowSize(): number;
|
|
277
|
+
/** Derived fail threshold ratio (P/K) — exposed for test assertions (Test 6). */
|
|
278
|
+
get deltaFailThresholdRatio(): number;
|
|
279
|
+
/** Derived recovery threshold ratio ((P/K)/2) — exposed for test assertions (Test 7). */
|
|
280
|
+
get deltaRecoverThresholdRatio(): number;
|
|
281
|
+
/** Derived probe interval ms — exposed for test assertions (Test 5a). */
|
|
282
|
+
get deltaProbeIntervalMs(): number;
|
|
283
|
+
/**
|
|
284
|
+
* Register a track name → type mapping from catalog.
|
|
285
|
+
* Catalog is the default authority. Init data / inline signaling
|
|
286
|
+
* takes precedence until the next catalog update.
|
|
287
|
+
*/
|
|
288
|
+
registerTrackType(trackName: string, type: FrameKind): void;
|
|
289
|
+
/**
|
|
290
|
+
* Register a track name → type from init data / inline signaling (MMTP FT=0).
|
|
291
|
+
* Authoritative until the next catalog update per §5.3.
|
|
292
|
+
* Does NOT overwrite an existing catalog registration.
|
|
293
|
+
*/
|
|
294
|
+
registerTrackTypeFromInit(trackName: string, type: FrameKind): void;
|
|
295
|
+
/**
|
|
296
|
+
* Assign a per-track source. Frames from this source bypass the binary
|
|
297
|
+
* MoQ↔multicast switching for this track only.
|
|
298
|
+
*
|
|
299
|
+
* Throws TrackSourceConflictError if a source is already assigned for this
|
|
300
|
+
* track without a clearTrackSource() in between.
|
|
301
|
+
*/
|
|
302
|
+
setTrackSource(trackName: string, source: TrackSource, opts?: SetTrackSourceOptions): void;
|
|
303
|
+
/**
|
|
304
|
+
* Remove the per-track source for the given track.
|
|
305
|
+
* Binary switching resumes for this track after this call.
|
|
306
|
+
*/
|
|
307
|
+
clearTrackSource(trackName: string): void;
|
|
308
|
+
/**
|
|
309
|
+
* Signal that a FEC block boundary has been reached on the base track.
|
|
310
|
+
* Overlay tracks waiting for alignment flush their buffered frames now.
|
|
311
|
+
*/
|
|
312
|
+
notifyFecBlockBoundary(): void;
|
|
313
|
+
/**
|
|
314
|
+
* Return the number of frames emitted from the per-track source for a given
|
|
315
|
+
* track. Used in test-mode to verify per-track routing histogram.
|
|
316
|
+
* Returns 0 if no per-track source is active for the track.
|
|
317
|
+
*/
|
|
318
|
+
trackSourceEmitCount(trackName: string): number;
|
|
319
|
+
/** Feed a frame from the MoQ path. Suppressed when multicast is active OR a per-track source owns this track. */
|
|
320
|
+
feedMoq(data: Uint8Array, meta: FrameMeta, kind: FrameKind): void;
|
|
321
|
+
/** Feed a frame from the multicast path. Video waits for keyframe before activating. */
|
|
322
|
+
feedMulticast(data: Uint8Array, meta: FrameMeta, kind: FrameKind): void;
|
|
323
|
+
/** Called by the player when the MoQ unicast audio decoder emits first frame. */
|
|
324
|
+
notifyMoqAudioEmit(): void;
|
|
325
|
+
/**
|
|
326
|
+
* Called by the player after a MoQ video keyframe has reached the active
|
|
327
|
+
* decoder path. Used only by MSE/MMTP continuity switching; decoder-reset
|
|
328
|
+
* paths leave allowDeltaMulticastTakeoverAfterMoqKeyframe disabled.
|
|
329
|
+
*/
|
|
330
|
+
notifyMoqVideoKeyframeEmit(): void;
|
|
331
|
+
/** Switch back to MoQ immediately (called on multicast failback). */
|
|
332
|
+
failbackToMoq(): void;
|
|
333
|
+
/** Dispose timers and per-track sources. Call on teardown to prevent
|
|
334
|
+
* stale timer callbacks firing into garbage-collected closures (WR-03). */
|
|
335
|
+
dispose(): void;
|
|
336
|
+
}
|
|
337
|
+
export {};
|
|
338
|
+
//# sourceMappingURL=media-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-router.d.ts","sourceRoot":"","sources":["../src/media-router.ts"],"names":[],"mappings":"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"}
|