@blockcast/mmt-container 0.3.0 → 0.4.0-main.1e94b11199ea
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 +33 -16
- package/dist/browser-runtime.js +14816 -14254
- package/dist/browser-runtime.js.map +4 -4
- package/dist/carp-catalog.d.ts +24 -19
- package/dist/carp-catalog.d.ts.map +1 -1
- package/dist/carp-catalog.js +32 -14
- package/dist/carp-catalog.js.map +4 -4
- package/dist/catalog-fec-params.d.ts +88 -28
- package/dist/catalog-fec-params.d.ts.map +1 -1
- package/dist/catalog-fec-params.js +60 -23
- package/dist/catalog-fec-params.js.map +4 -4
- package/dist/catalog-network-source.js +1 -7
- package/dist/catalog-network-source.js.map +4 -4
- package/dist/cmaf-block-assembler.d.ts +0 -2
- package/dist/cmaf-block-assembler.d.ts.map +1 -1
- package/dist/cmaf-block-assembler.js +0 -1
- package/dist/cmaf-block-assembler.js.map +2 -2
- package/dist/cmcd-producer.d.ts.map +1 -1
- package/dist/cmcd-producer.js +0 -4
- package/dist/cmcd-producer.js.map +2 -2
- package/dist/delivery-catalog.d.ts +124 -0
- package/dist/delivery-catalog.d.ts.map +1 -0
- package/dist/delivery-catalog.js +1857 -0
- package/dist/delivery-catalog.js.map +7 -0
- package/dist/delta-fallback-config.d.ts +42 -0
- package/dist/delta-fallback-config.d.ts.map +1 -0
- package/dist/delta-fallback-config.js +59 -0
- package/dist/delta-fallback-config.js.map +7 -0
- package/dist/fec-manager.d.ts +52 -30
- package/dist/fec-manager.d.ts.map +1 -1
- package/dist/fec-manager.js +338 -293
- package/dist/fec-manager.js.map +4 -4
- package/dist/fec-state.d.ts +19 -31
- package/dist/fec-state.d.ts.map +1 -1
- package/dist/fec-state.js +4 -10
- package/dist/fec-state.js.map +4 -4
- package/dist/fec-worker-setup.d.ts +18 -14
- package/dist/fec-worker-setup.d.ts.map +1 -1
- package/dist/fec-worker-setup.js +81 -96
- package/dist/fec-worker-setup.js.map +4 -4
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +2 -2
- package/dist/iso-block-locator.js +1 -7
- package/dist/iso-block-locator.js.map +4 -4
- package/dist/media-router.d.ts +20 -8
- package/dist/media-router.d.ts.map +1 -1
- package/dist/media-router.js +46 -21
- package/dist/media-router.js.map +2 -2
- package/dist/mfu-reassembler.js +24 -30
- package/dist/mfu-reassembler.js.map +4 -4
- package/dist/mmtp-container-parser.d.ts +14 -11
- package/dist/mmtp-container-parser.d.ts.map +1 -1
- package/dist/mmtp-container-parser.js +126 -99
- package/dist/mmtp-container-parser.js.map +4 -4
- package/dist/mmtp-container-parser.no-modules.js +154 -108
- package/dist/mmtp-container-parser.no-modules.js.map +4 -4
- package/dist/mmtp-decode-pipeline.js +126 -99
- package/dist/mmtp-decode-pipeline.js.map +4 -4
- package/dist/mmtp-router.d.ts +51 -29
- package/dist/mmtp-router.d.ts.map +1 -1
- package/dist/mmtp-router.js +260 -326
- package/dist/mmtp-router.js.map +4 -4
- package/dist/multicast-input.js +1 -7
- package/dist/multicast-input.js.map +4 -4
- package/dist/multicast-manager.d.ts +72 -6
- package/dist/multicast-manager.d.ts.map +1 -1
- package/dist/multicast-manager.js +882 -673
- package/dist/multicast-manager.js.map +4 -4
- package/dist/multicast-transport.d.ts +1 -1
- package/dist/multicast-transport.d.ts.map +1 -1
- package/dist/multicast-transport.js +44 -26
- package/dist/multicast-transport.js.map +4 -4
- package/dist/multicast-unwrap.js +29 -35
- package/dist/multicast-unwrap.js.map +4 -4
- package/dist/no-modules.js +150 -106
- package/dist/no-modules.js.map +4 -4
- package/dist/repair-fetch.d.ts +116 -21
- package/dist/repair-fetch.d.ts.map +1 -1
- package/dist/repair-fetch.js +114 -34
- package/dist/repair-fetch.js.map +4 -4
- package/dist/repair-layers.d.ts +18 -7
- package/dist/repair-layers.d.ts.map +1 -1
- package/dist/repair-layers.js +12 -10
- package/dist/repair-layers.js.map +4 -4
- package/dist/signaling.js +2 -11
- package/dist/signaling.js.map +4 -4
- package/dist/timestamp-codec.js +24 -30
- package/dist/timestamp-codec.js.map +4 -4
- package/dist/track-session.d.ts +7 -0
- package/dist/track-session.d.ts.map +1 -1
- package/dist/track-session.js +15 -8
- package/dist/track-session.js.map +2 -2
- package/dist/wasm-mfu-reassembler.js +1 -7
- package/dist/wasm-mfu-reassembler.js.map +4 -4
- package/dist/wasm-mmtp-container-parser.js +126 -99
- package/dist/wasm-mmtp-container-parser.js.map +4 -4
- package/package.json +7 -14
- package/schemas/catalog.schema.json +3 -3
- package/src/carp-catalog.ts +51 -24
- package/src/catalog-fec-params.ts +173 -64
- package/src/cmaf-block-assembler.ts +1 -4
- package/src/cmcd-producer.ts +0 -6
- package/src/delivery-catalog.ts +498 -0
- package/src/delta-fallback-config.ts +72 -0
- package/src/fec-manager.ts +457 -334
- package/src/fec-state.ts +20 -32
- package/src/fec-worker-setup.ts +109 -90
- package/src/index.ts +32 -0
- package/src/media-router.ts +59 -21
- package/src/mmtp-container-parser.ts +106 -20
- package/src/mmtp-router.ts +189 -330
- package/src/multicast-manager.ts +265 -86
- package/src/multicast-transport.ts +16 -9
- package/src/repair-fetch.ts +273 -43
- package/src/repair-layers.ts +28 -8
- package/src/track-session.ts +28 -9
- package/test-vectors/catalog/README.md +44 -18
- package/test-vectors/catalog/negative/fec-block-profile-retired.json +52 -0
- package/test-vectors/catalog/negative/fec-enhancement-repair-removed.json +1 -1
- package/test-vectors/catalog/negative/fec-repair-layer-geometry.json +1 -1
- package/test-vectors/catalog/negative/fec-repair-layer-missing-symbols.json +1 -1
- package/test-vectors/catalog/negative/fec-repair-multiple-depends.json +1 -1
- package/test-vectors/catalog/negative/fec-repair-overlay-with-layer.json +1 -1
- package/test-vectors/catalog/negative/fec-repair-priority-out-of-band.json +1 -1
- package/test-vectors/catalog/negative/fec-repair-source-symbols-without-scope.json +1 -1
- package/test-vectors/catalog/negative/multicast-endpoint-relay-address.json +39 -0
- package/test-vectors/catalog/negative/multicast-network-source-empty.json +1 -1
- package/test-vectors/catalog/negative/raptorq-source-symbols-over-max.json +1 -1
- package/test-vectors/catalog/negative/raptorq-unaligned-symbol.json +2 -1
- package/test-vectors/catalog/positive/fec-layered-repair.json +2 -2
- package/test-vectors/catalog/positive/fec-multicast.json +2 -1
- package/test-vectors/catalog/positive/multicast-amt-manual-relay.json +38 -0
- package/test-vectors/catalog/positive/multicast-native-ssm-no-network-source.json +2 -1
- package/test-vectors/catalog/section-codes.json +33 -0
- package/test-vectors/catalog-timing.json +356 -0
- package/test-vectors/catalog-validation.json +40 -5
- package/test-vectors/delivery-catalog/README.md +11 -0
- package/test-vectors/delivery-catalog/negative/missing-block-profile.json +58 -0
- package/test-vectors/delivery-catalog/negative/packet-id-signaling.json +59 -0
- package/test-vectors/delivery-catalog/negative/retired-k-padded-block-profile.json +59 -0
- package/test-vectors/delivery-catalog/positive/dash.json +56 -0
- package/test-vectors/delivery-catalog/positive/mmtp-source-only.json +43 -0
- package/node_modules/@blockcast/fec-worker/README.md +0 -223
- package/node_modules/@blockcast/fec-worker/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/fec-worker/dist/block-order.d.ts +0 -38
- package/node_modules/@blockcast/fec-worker/dist/block-order.d.ts.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/block-order.js +0 -78
- package/node_modules/@blockcast/fec-worker/dist/block-order.js.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.d.ts +0 -93
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.d.ts.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.js +0 -346
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.js.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.d.ts +0 -380
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.d.ts.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.js +0 -11
- package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.js.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/fec-worker.d.ts +0 -14
- package/node_modules/@blockcast/fec-worker/dist/fec-worker.d.ts.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/fec-worker.js +0 -859
- package/node_modules/@blockcast/fec-worker/dist/fec-worker.js.map +0 -7
- package/node_modules/@blockcast/fec-worker/dist/index.d.ts +0 -10
- package/node_modules/@blockcast/fec-worker/dist/index.d.ts.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/index.js +0 -8
- package/node_modules/@blockcast/fec-worker/dist/index.js.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.d.ts +0 -20
- package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.d.ts.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.js +0 -370
- package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.js.map +0 -7
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.d.ts +0 -104
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.d.ts.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.js +0 -181
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.js.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.d.ts +0 -194
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.d.ts.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.js +0 -62
- package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.js.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/transfer.d.ts +0 -9
- package/node_modules/@blockcast/fec-worker/dist/transfer.d.ts.map +0 -1
- package/node_modules/@blockcast/fec-worker/dist/transfer.js +0 -13
- package/node_modules/@blockcast/fec-worker/dist/transfer.js.map +0 -1
- package/node_modules/@blockcast/fec-worker/package.json +0 -59
- package/node_modules/@blockcast/fec-worker/src/block-order.ts +0 -93
- package/node_modules/@blockcast/fec-worker/src/fec-worker-client.ts +0 -392
- package/node_modules/@blockcast/fec-worker/src/fec-worker-types.ts +0 -399
- package/node_modules/@blockcast/fec-worker/src/fec-worker.ts +0 -1502
- package/node_modules/@blockcast/fec-worker/src/index.ts +0 -35
- package/node_modules/@blockcast/fec-worker/src/shred-fec-worker.ts +0 -589
- package/node_modules/@blockcast/fec-worker/src/shred-worker-client.ts +0 -222
- package/node_modules/@blockcast/fec-worker/src/shred-worker-types.ts +0 -209
- package/node_modules/@blockcast/fec-worker/src/transfer.ts +0 -12
- package/node_modules/@blockcast/mmt-alta-parse/README.md +0 -181
- package/node_modules/@blockcast/mmt-alta-parse/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts +0 -57
- package/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-alta-parse/dist/index.js +0 -115
- package/node_modules/@blockcast/mmt-alta-parse/dist/index.js.map +0 -1
- package/node_modules/@blockcast/mmt-alta-parse/package.json +0 -50
- package/node_modules/@blockcast/mmt-alta-parse/src/index.ts +0 -136
- package/node_modules/@blockcast/mmt-base/README.md +0 -134
- package/node_modules/@blockcast/mmt-base/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts +0 -55
- package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js +0 -128
- package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js.map +0 -1
- package/node_modules/@blockcast/mmt-base/dist/index.d.ts +0 -7
- package/node_modules/@blockcast/mmt-base/dist/index.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-base/dist/index.js +0 -7
- package/node_modules/@blockcast/mmt-base/dist/index.js.map +0 -1
- package/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts +0 -292
- package/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-base/dist/mmtp.js +0 -612
- package/node_modules/@blockcast/mmt-base/dist/mmtp.js.map +0 -1
- package/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts +0 -18
- package/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-base/dist/net-constants.js +0 -18
- package/node_modules/@blockcast/mmt-base/dist/net-constants.js.map +0 -1
- package/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts +0 -47
- package/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-base/dist/ntp-short.js +0 -54
- package/node_modules/@blockcast/mmt-base/dist/ntp-short.js.map +0 -1
- package/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts +0 -57
- package/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-base/dist/serial-number.js +0 -98
- package/node_modules/@blockcast/mmt-base/dist/serial-number.js.map +0 -1
- package/node_modules/@blockcast/mmt-base/dist/signalling.d.ts +0 -312
- package/node_modules/@blockcast/mmt-base/dist/signalling.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-base/dist/signalling.js +0 -637
- package/node_modules/@blockcast/mmt-base/dist/signalling.js.map +0 -1
- package/node_modules/@blockcast/mmt-base/package.json +0 -49
- package/node_modules/@blockcast/mmt-base/src/fec-block-profile.ts +0 -145
- package/node_modules/@blockcast/mmt-base/src/index.ts +0 -6
- package/node_modules/@blockcast/mmt-base/src/mmtp.ts +0 -892
- package/node_modules/@blockcast/mmt-base/src/net-constants.ts +0 -17
- package/node_modules/@blockcast/mmt-base/src/ntp-short.ts +0 -67
- package/node_modules/@blockcast/mmt-base/src/serial-number.ts +0 -107
- package/node_modules/@blockcast/mmt-base/src/signalling.ts +0 -862
- package/node_modules/@blockcast/mmt-fec/README.md +0 -271
- package/node_modules/@blockcast/mmt-fec/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/mmt-fec/dist/block-manager.d.ts +0 -82
- package/node_modules/@blockcast/mmt-fec/dist/block-manager.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/block-manager.js +0 -296
- package/node_modules/@blockcast/mmt-fec/dist/block-manager.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/block-processor.d.ts +0 -106
- package/node_modules/@blockcast/mmt-fec/dist/block-processor.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/block-processor.js +0 -288
- package/node_modules/@blockcast/mmt-fec/dist/block-processor.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.d.ts +0 -46
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.js +0 -96
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.d.ts +0 -33
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.js +0 -57
- package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.d.ts +0 -205
- package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.js +0 -240
- package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/index.d.ts +0 -28
- package/node_modules/@blockcast/mmt-fec/dist/index.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/index.js +0 -28
- package/node_modules/@blockcast/mmt-fec/dist/index.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.d.ts +0 -20
- package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.js +0 -28
- package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/oti.d.ts +0 -258
- package/node_modules/@blockcast/mmt-fec/dist/oti.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/oti.js +0 -382
- package/node_modules/@blockcast/mmt-fec/dist/oti.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.d.ts +0 -41
- package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.js +0 -81
- package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/repair-group.d.ts +0 -82
- package/node_modules/@blockcast/mmt-fec/dist/repair-group.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/dist/repair-group.js +0 -170
- package/node_modules/@blockcast/mmt-fec/dist/repair-group.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/README.md +0 -181
- 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 +0 -57
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.js +0 -115
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/package.json +0 -50
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/src/index.ts +0 -136
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/README.md +0 -134
- 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 +0 -55
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js +0 -128
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.d.ts +0 -7
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.js +0 -7
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts +0 -292
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.js +0 -612
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts +0 -18
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.js +0 -18
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts +0 -47
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.js +0 -54
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts +0 -57
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.js +0 -98
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.d.ts +0 -312
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.js +0 -637
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.js.map +0 -1
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/package.json +0 -49
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/fec-block-profile.ts +0 -145
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/index.ts +0 -6
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/mmtp.ts +0 -892
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/net-constants.ts +0 -17
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/ntp-short.ts +0 -67
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/serial-number.ts +0 -107
- package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/signalling.ts +0 -862
- package/node_modules/@blockcast/mmt-fec/package.json +0 -79
- package/node_modules/@blockcast/mmt-fec/src/block-manager.ts +0 -371
- package/node_modules/@blockcast/mmt-fec/src/block-processor.ts +0 -439
- package/node_modules/@blockcast/mmt-fec/src/cmaf-recovery.ts +0 -127
- package/node_modules/@blockcast/mmt-fec/src/cmaf-symbols.ts +0 -68
- package/node_modules/@blockcast/mmt-fec/src/fec-block-mapper.ts +0 -310
- package/node_modules/@blockcast/mmt-fec/src/index.ts +0 -94
- package/node_modules/@blockcast/mmt-fec/src/loc-symbols.ts +0 -34
- package/node_modules/@blockcast/mmt-fec/src/oti.ts +0 -463
- package/node_modules/@blockcast/mmt-fec/src/reorder-buffer.ts +0 -101
- package/node_modules/@blockcast/mmt-fec/src/repair-group.ts +0 -195
- package/node_modules/@blockcast/mmt-manifest-verify/dist/.build-stamp +0 -0
- package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.d.ts +0 -28
- package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.js +0 -128
- package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.js.map +0 -1
- package/node_modules/@blockcast/mmt-manifest-verify/dist/index.d.ts +0 -4
- package/node_modules/@blockcast/mmt-manifest-verify/dist/index.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-manifest-verify/dist/index.js +0 -4
- package/node_modules/@blockcast/mmt-manifest-verify/dist/index.js.map +0 -1
- package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.d.ts +0 -37
- package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.js +0 -179
- package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.js.map +0 -1
- package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.d.ts +0 -99
- package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.d.ts.map +0 -1
- package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.js +0 -492
- package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.js.map +0 -1
- package/node_modules/@blockcast/mmt-manifest-verify/package.json +0 -45
- package/node_modules/@blockcast/mmt-manifest-verify/src/admission.ts +0 -171
- package/node_modules/@blockcast/mmt-manifest-verify/src/index.ts +0 -3
- package/node_modules/@blockcast/mmt-manifest-verify/src/source-auth.ts +0 -230
- package/node_modules/@blockcast/mmt-manifest-verify/src/verifier.ts +0 -669
- package/node_modules/@noble/hashes/LICENSE +0 -21
- package/node_modules/@noble/hashes/README.md +0 -521
- package/node_modules/@noble/hashes/_assert.d.ts +0 -17
- package/node_modules/@noble/hashes/_assert.d.ts.map +0 -1
- package/node_modules/@noble/hashes/_assert.js +0 -18
- package/node_modules/@noble/hashes/_assert.js.map +0 -1
- package/node_modules/@noble/hashes/_blake.d.ts +0 -14
- package/node_modules/@noble/hashes/_blake.d.ts.map +0 -1
- package/node_modules/@noble/hashes/_blake.js +0 -50
- package/node_modules/@noble/hashes/_blake.js.map +0 -1
- package/node_modules/@noble/hashes/_md.d.ts +0 -51
- package/node_modules/@noble/hashes/_md.d.ts.map +0 -1
- package/node_modules/@noble/hashes/_md.js +0 -162
- package/node_modules/@noble/hashes/_md.js.map +0 -1
- package/node_modules/@noble/hashes/_u64.d.ts +0 -55
- package/node_modules/@noble/hashes/_u64.d.ts.map +0 -1
- package/node_modules/@noble/hashes/_u64.js +0 -90
- package/node_modules/@noble/hashes/_u64.js.map +0 -1
- package/node_modules/@noble/hashes/argon2.d.ts +0 -32
- package/node_modules/@noble/hashes/argon2.d.ts.map +0 -1
- package/node_modules/@noble/hashes/argon2.js +0 -401
- package/node_modules/@noble/hashes/argon2.js.map +0 -1
- package/node_modules/@noble/hashes/blake1.d.ts +0 -106
- package/node_modules/@noble/hashes/blake1.d.ts.map +0 -1
- package/node_modules/@noble/hashes/blake1.js +0 -459
- package/node_modules/@noble/hashes/blake1.js.map +0 -1
- package/node_modules/@noble/hashes/blake2.d.ts +0 -116
- package/node_modules/@noble/hashes/blake2.d.ts.map +0 -1
- package/node_modules/@noble/hashes/blake2.js +0 -420
- package/node_modules/@noble/hashes/blake2.js.map +0 -1
- package/node_modules/@noble/hashes/blake2b.d.ts +0 -11
- package/node_modules/@noble/hashes/blake2b.d.ts.map +0 -1
- package/node_modules/@noble/hashes/blake2b.js +0 -14
- package/node_modules/@noble/hashes/blake2b.js.map +0 -1
- package/node_modules/@noble/hashes/blake2s.d.ts +0 -20
- package/node_modules/@noble/hashes/blake2s.d.ts.map +0 -1
- package/node_modules/@noble/hashes/blake2s.js +0 -24
- package/node_modules/@noble/hashes/blake2s.js.map +0 -1
- package/node_modules/@noble/hashes/blake3.d.ts +0 -54
- package/node_modules/@noble/hashes/blake3.d.ts.map +0 -1
- package/node_modules/@noble/hashes/blake3.js +0 -255
- package/node_modules/@noble/hashes/blake3.js.map +0 -1
- package/node_modules/@noble/hashes/crypto.d.ts +0 -2
- package/node_modules/@noble/hashes/crypto.d.ts.map +0 -1
- package/node_modules/@noble/hashes/crypto.js +0 -5
- package/node_modules/@noble/hashes/crypto.js.map +0 -1
- package/node_modules/@noble/hashes/cryptoNode.d.ts +0 -2
- package/node_modules/@noble/hashes/cryptoNode.d.ts.map +0 -1
- package/node_modules/@noble/hashes/cryptoNode.js +0 -18
- package/node_modules/@noble/hashes/cryptoNode.js.map +0 -1
- package/node_modules/@noble/hashes/eskdf.d.ts +0 -47
- package/node_modules/@noble/hashes/eskdf.d.ts.map +0 -1
- package/node_modules/@noble/hashes/eskdf.js +0 -166
- package/node_modules/@noble/hashes/eskdf.js.map +0 -1
- package/node_modules/@noble/hashes/esm/_assert.d.ts +0 -17
- package/node_modules/@noble/hashes/esm/_assert.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/_assert.js +0 -15
- package/node_modules/@noble/hashes/esm/_assert.js.map +0 -1
- package/node_modules/@noble/hashes/esm/_blake.d.ts +0 -14
- package/node_modules/@noble/hashes/esm/_blake.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/_blake.js +0 -45
- package/node_modules/@noble/hashes/esm/_blake.js.map +0 -1
- package/node_modules/@noble/hashes/esm/_md.d.ts +0 -51
- package/node_modules/@noble/hashes/esm/_md.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/_md.js +0 -155
- package/node_modules/@noble/hashes/esm/_md.js.map +0 -1
- package/node_modules/@noble/hashes/esm/_u64.d.ts +0 -55
- package/node_modules/@noble/hashes/esm/_u64.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/_u64.js +0 -67
- package/node_modules/@noble/hashes/esm/_u64.js.map +0 -1
- package/node_modules/@noble/hashes/esm/argon2.d.ts +0 -32
- package/node_modules/@noble/hashes/esm/argon2.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/argon2.js +0 -392
- package/node_modules/@noble/hashes/esm/argon2.js.map +0 -1
- package/node_modules/@noble/hashes/esm/blake1.d.ts +0 -106
- package/node_modules/@noble/hashes/esm/blake1.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/blake1.js +0 -452
- package/node_modules/@noble/hashes/esm/blake1.js.map +0 -1
- package/node_modules/@noble/hashes/esm/blake2.d.ts +0 -116
- package/node_modules/@noble/hashes/esm/blake2.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/blake2.js +0 -413
- package/node_modules/@noble/hashes/esm/blake2.js.map +0 -1
- package/node_modules/@noble/hashes/esm/blake2b.d.ts +0 -11
- package/node_modules/@noble/hashes/esm/blake2b.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/blake2b.js +0 -11
- package/node_modules/@noble/hashes/esm/blake2b.js.map +0 -1
- package/node_modules/@noble/hashes/esm/blake2s.d.ts +0 -20
- package/node_modules/@noble/hashes/esm/blake2s.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/blake2s.js +0 -21
- package/node_modules/@noble/hashes/esm/blake2s.js.map +0 -1
- package/node_modules/@noble/hashes/esm/blake3.d.ts +0 -54
- package/node_modules/@noble/hashes/esm/blake3.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/blake3.js +0 -251
- package/node_modules/@noble/hashes/esm/blake3.js.map +0 -1
- package/node_modules/@noble/hashes/esm/crypto.d.ts +0 -2
- package/node_modules/@noble/hashes/esm/crypto.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/crypto.js +0 -2
- package/node_modules/@noble/hashes/esm/crypto.js.map +0 -1
- package/node_modules/@noble/hashes/esm/cryptoNode.d.ts +0 -2
- package/node_modules/@noble/hashes/esm/cryptoNode.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/cryptoNode.js +0 -15
- package/node_modules/@noble/hashes/esm/cryptoNode.js.map +0 -1
- package/node_modules/@noble/hashes/esm/eskdf.d.ts +0 -47
- package/node_modules/@noble/hashes/esm/eskdf.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/eskdf.js +0 -160
- package/node_modules/@noble/hashes/esm/eskdf.js.map +0 -1
- package/node_modules/@noble/hashes/esm/hkdf.d.ts +0 -36
- package/node_modules/@noble/hashes/esm/hkdf.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/hkdf.js +0 -82
- package/node_modules/@noble/hashes/esm/hkdf.js.map +0 -1
- package/node_modules/@noble/hashes/esm/hmac.d.ts +0 -35
- package/node_modules/@noble/hashes/esm/hmac.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/hmac.js +0 -86
- package/node_modules/@noble/hashes/esm/hmac.js.map +0 -1
- package/node_modules/@noble/hashes/esm/index.d.ts +0 -2
- package/node_modules/@noble/hashes/esm/index.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/index.js +0 -33
- package/node_modules/@noble/hashes/esm/index.js.map +0 -1
- package/node_modules/@noble/hashes/esm/legacy.d.ts +0 -71
- package/node_modules/@noble/hashes/esm/legacy.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/legacy.js +0 -281
- package/node_modules/@noble/hashes/esm/legacy.js.map +0 -1
- package/node_modules/@noble/hashes/esm/package.json +0 -10
- package/node_modules/@noble/hashes/esm/pbkdf2.d.ts +0 -23
- package/node_modules/@noble/hashes/esm/pbkdf2.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/pbkdf2.js +0 -97
- package/node_modules/@noble/hashes/esm/pbkdf2.js.map +0 -1
- package/node_modules/@noble/hashes/esm/ripemd160.d.ts +0 -13
- package/node_modules/@noble/hashes/esm/ripemd160.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/ripemd160.js +0 -13
- package/node_modules/@noble/hashes/esm/ripemd160.js.map +0 -1
- package/node_modules/@noble/hashes/esm/scrypt.d.ts +0 -34
- package/node_modules/@noble/hashes/esm/scrypt.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/scrypt.js +0 -228
- package/node_modules/@noble/hashes/esm/scrypt.js.map +0 -1
- package/node_modules/@noble/hashes/esm/sha1.d.ts +0 -11
- package/node_modules/@noble/hashes/esm/sha1.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/sha1.js +0 -11
- package/node_modules/@noble/hashes/esm/sha1.js.map +0 -1
- package/node_modules/@noble/hashes/esm/sha2.d.ts +0 -159
- package/node_modules/@noble/hashes/esm/sha2.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/sha2.js +0 -375
- package/node_modules/@noble/hashes/esm/sha2.js.map +0 -1
- package/node_modules/@noble/hashes/esm/sha256.d.ts +0 -20
- package/node_modules/@noble/hashes/esm/sha256.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/sha256.js +0 -20
- package/node_modules/@noble/hashes/esm/sha256.js.map +0 -1
- package/node_modules/@noble/hashes/esm/sha3-addons.d.ts +0 -142
- package/node_modules/@noble/hashes/esm/sha3-addons.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/sha3-addons.js +0 -393
- package/node_modules/@noble/hashes/esm/sha3-addons.js.map +0 -1
- package/node_modules/@noble/hashes/esm/sha3.d.ts +0 -53
- package/node_modules/@noble/hashes/esm/sha3.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/sha3.js +0 -234
- package/node_modules/@noble/hashes/esm/sha3.js.map +0 -1
- package/node_modules/@noble/hashes/esm/sha512.d.ts +0 -26
- package/node_modules/@noble/hashes/esm/sha512.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/sha512.js +0 -26
- package/node_modules/@noble/hashes/esm/sha512.js.map +0 -1
- package/node_modules/@noble/hashes/esm/utils.d.ts +0 -161
- package/node_modules/@noble/hashes/esm/utils.d.ts.map +0 -1
- package/node_modules/@noble/hashes/esm/utils.js +0 -281
- package/node_modules/@noble/hashes/esm/utils.js.map +0 -1
- package/node_modules/@noble/hashes/hkdf.d.ts +0 -36
- package/node_modules/@noble/hashes/hkdf.d.ts.map +0 -1
- package/node_modules/@noble/hashes/hkdf.js +0 -88
- package/node_modules/@noble/hashes/hkdf.js.map +0 -1
- package/node_modules/@noble/hashes/hmac.d.ts +0 -35
- package/node_modules/@noble/hashes/hmac.d.ts.map +0 -1
- package/node_modules/@noble/hashes/hmac.js +0 -91
- package/node_modules/@noble/hashes/hmac.js.map +0 -1
- package/node_modules/@noble/hashes/index.d.ts +0 -1
- package/node_modules/@noble/hashes/index.d.ts.map +0 -1
- package/node_modules/@noble/hashes/index.js +0 -33
- package/node_modules/@noble/hashes/index.js.map +0 -1
- package/node_modules/@noble/hashes/legacy.d.ts +0 -71
- package/node_modules/@noble/hashes/legacy.d.ts.map +0 -1
- package/node_modules/@noble/hashes/legacy.js +0 -287
- package/node_modules/@noble/hashes/legacy.js.map +0 -1
- package/node_modules/@noble/hashes/package.json +0 -266
- package/node_modules/@noble/hashes/pbkdf2.d.ts +0 -23
- package/node_modules/@noble/hashes/pbkdf2.d.ts.map +0 -1
- package/node_modules/@noble/hashes/pbkdf2.js +0 -101
- package/node_modules/@noble/hashes/pbkdf2.js.map +0 -1
- package/node_modules/@noble/hashes/ripemd160.d.ts +0 -13
- package/node_modules/@noble/hashes/ripemd160.d.ts.map +0 -1
- package/node_modules/@noble/hashes/ripemd160.js +0 -16
- package/node_modules/@noble/hashes/ripemd160.js.map +0 -1
- package/node_modules/@noble/hashes/scrypt.d.ts +0 -34
- package/node_modules/@noble/hashes/scrypt.d.ts.map +0 -1
- package/node_modules/@noble/hashes/scrypt.js +0 -232
- package/node_modules/@noble/hashes/scrypt.js.map +0 -1
- package/node_modules/@noble/hashes/sha1.d.ts +0 -11
- package/node_modules/@noble/hashes/sha1.d.ts.map +0 -1
- package/node_modules/@noble/hashes/sha1.js +0 -14
- package/node_modules/@noble/hashes/sha1.js.map +0 -1
- package/node_modules/@noble/hashes/sha2.d.ts +0 -159
- package/node_modules/@noble/hashes/sha2.d.ts.map +0 -1
- package/node_modules/@noble/hashes/sha2.js +0 -384
- package/node_modules/@noble/hashes/sha2.js.map +0 -1
- package/node_modules/@noble/hashes/sha256.d.ts +0 -20
- package/node_modules/@noble/hashes/sha256.d.ts.map +0 -1
- package/node_modules/@noble/hashes/sha256.js +0 -23
- package/node_modules/@noble/hashes/sha256.js.map +0 -1
- package/node_modules/@noble/hashes/sha3-addons.d.ts +0 -142
- package/node_modules/@noble/hashes/sha3-addons.d.ts.map +0 -1
- package/node_modules/@noble/hashes/sha3-addons.js +0 -402
- package/node_modules/@noble/hashes/sha3-addons.js.map +0 -1
- package/node_modules/@noble/hashes/sha3.d.ts +0 -53
- package/node_modules/@noble/hashes/sha3.d.ts.map +0 -1
- package/node_modules/@noble/hashes/sha3.js +0 -239
- package/node_modules/@noble/hashes/sha3.js.map +0 -1
- package/node_modules/@noble/hashes/sha512.d.ts +0 -26
- package/node_modules/@noble/hashes/sha512.d.ts.map +0 -1
- package/node_modules/@noble/hashes/sha512.js +0 -29
- package/node_modules/@noble/hashes/sha512.js.map +0 -1
- package/node_modules/@noble/hashes/src/_assert.ts +0 -22
- package/node_modules/@noble/hashes/src/_blake.ts +0 -50
- package/node_modules/@noble/hashes/src/_md.ts +0 -176
- package/node_modules/@noble/hashes/src/_u64.ts +0 -91
- package/node_modules/@noble/hashes/src/argon2.ts +0 -497
- package/node_modules/@noble/hashes/src/blake1.ts +0 -534
- package/node_modules/@noble/hashes/src/blake2.ts +0 -486
- package/node_modules/@noble/hashes/src/blake2b.ts +0 -10
- package/node_modules/@noble/hashes/src/blake2s.ts +0 -20
- package/node_modules/@noble/hashes/src/blake3.ts +0 -272
- package/node_modules/@noble/hashes/src/crypto.ts +0 -9
- package/node_modules/@noble/hashes/src/cryptoNode.ts +0 -15
- package/node_modules/@noble/hashes/src/eskdf.ts +0 -187
- package/node_modules/@noble/hashes/src/hkdf.ts +0 -88
- package/node_modules/@noble/hashes/src/hmac.ts +0 -94
- package/node_modules/@noble/hashes/src/index.ts +0 -31
- package/node_modules/@noble/hashes/src/legacy.ts +0 -293
- package/node_modules/@noble/hashes/src/pbkdf2.ts +0 -122
- package/node_modules/@noble/hashes/src/ripemd160.ts +0 -12
- package/node_modules/@noble/hashes/src/scrypt.ts +0 -257
- package/node_modules/@noble/hashes/src/sha1.ts +0 -10
- package/node_modules/@noble/hashes/src/sha2.ts +0 -402
- package/node_modules/@noble/hashes/src/sha256.ts +0 -24
- package/node_modules/@noble/hashes/src/sha3-addons.ts +0 -499
- package/node_modules/@noble/hashes/src/sha3.ts +0 -258
- package/node_modules/@noble/hashes/src/sha512.ts +0 -34
- package/node_modules/@noble/hashes/src/utils.ts +0 -395
- package/node_modules/@noble/hashes/utils.d.ts +0 -161
- package/node_modules/@noble/hashes/utils.d.ts.map +0 -1
- package/node_modules/@noble/hashes/utils.js +0 -313
- package/node_modules/@noble/hashes/utils.js.map +0 -1
|
@@ -57,81 +57,20 @@ var BlockcastMmt = (() => {
|
|
|
57
57
|
validateCmsfMmtpCatalog: () => validateCmsfMmtpCatalog
|
|
58
58
|
});
|
|
59
59
|
|
|
60
|
-
// ../mmt-
|
|
60
|
+
// ../mmt-base/dist/mmtp.js
|
|
61
61
|
var MMTP_HEADER_SIZE = 12;
|
|
62
62
|
var MPU_HEADER_SIZE = 8;
|
|
63
|
-
var MPU_LENGTH_FIELD_SIZE = 2;
|
|
64
|
-
var MPU_HEADER_REMAINDER_SIZE = MPU_HEADER_SIZE - MPU_LENGTH_FIELD_SIZE;
|
|
65
|
-
var TIMED_MFU_DU_HEADER_SIZE = 14;
|
|
66
|
-
var NONTIMED_MFU_DU_HEADER_SIZE = 4;
|
|
67
|
-
var PACKET_TYPE_MPU = 0;
|
|
68
|
-
var MMTP_EXT_TYPE_ALTA_AUTH = 61601;
|
|
69
|
-
var MMTP_EXT_TRAILER_HEADER_SIZE = 4;
|
|
70
|
-
function extractAltaTrailer(mmtpPacket, options) {
|
|
71
|
-
if (mmtpPacket.length < MMTP_HEADER_SIZE + MPU_HEADER_SIZE)
|
|
72
|
-
return null;
|
|
73
|
-
const packetType = mmtpPacket[1] & 63;
|
|
74
|
-
if (packetType !== PACKET_TYPE_MPU)
|
|
75
|
-
return null;
|
|
76
|
-
const fecType = mmtpPacket[0] >> 3 & 3;
|
|
77
|
-
let headerLength = MMTP_HEADER_SIZE;
|
|
78
|
-
if (fecType < 2 && (mmtpPacket[0] & 32) !== 0)
|
|
79
|
-
headerLength += 4;
|
|
80
|
-
if (fecType < 2 && (mmtpPacket[0] & 2) !== 0) {
|
|
81
|
-
if (headerLength + 4 > mmtpPacket.length)
|
|
82
|
-
return null;
|
|
83
|
-
const extensionLength = new DataView(mmtpPacket.buffer, mmtpPacket.byteOffset + headerLength + 2, 2).getUint16(0, false);
|
|
84
|
-
headerLength += 4 + extensionLength;
|
|
85
|
-
}
|
|
86
|
-
if (headerLength + MPU_HEADER_SIZE > mmtpPacket.length)
|
|
87
|
-
return null;
|
|
88
|
-
const payload = mmtpPacket.subarray(headerLength);
|
|
89
|
-
const payloadLength = payload[0] << 8 | payload[1];
|
|
90
|
-
const flagsByte = payload[2];
|
|
91
|
-
const fragmentType = flagsByte >> 4 & 15;
|
|
92
|
-
const timed = (flagsByte >> 3 & 1) === 1;
|
|
93
|
-
const fragmentationIndicator = flagsByte >> 1 & 3;
|
|
94
|
-
if (fragmentType !== 2)
|
|
95
|
-
return null;
|
|
96
|
-
const dataUnitHeaderSize = fragmentationIndicator <= 1 ? timed ? TIMED_MFU_DU_HEADER_SIZE : NONTIMED_MFU_DU_HEADER_SIZE : 0;
|
|
97
|
-
if (payloadLength <= MPU_HEADER_REMAINDER_SIZE + dataUnitHeaderSize)
|
|
98
|
-
return null;
|
|
99
|
-
if (fecType > 1)
|
|
100
|
-
return null;
|
|
101
|
-
const hasFecId = !options?.skipFecId && fecType === 1;
|
|
102
|
-
const payloadEnd = hasFecId ? payload.length - 4 : payload.length;
|
|
103
|
-
const declaredEnd = MPU_LENGTH_FIELD_SIZE + payloadLength;
|
|
104
|
-
if (declaredEnd > payloadEnd)
|
|
105
|
-
return null;
|
|
106
|
-
if (declaredEnd + MMTP_EXT_TRAILER_HEADER_SIZE > payloadEnd)
|
|
107
|
-
return null;
|
|
108
|
-
const extType = payload[declaredEnd] << 8 | payload[declaredEnd + 1];
|
|
109
|
-
if (extType !== MMTP_EXT_TYPE_ALTA_AUTH)
|
|
110
|
-
return null;
|
|
111
|
-
const extLen = payload[declaredEnd + 2] << 8 | payload[declaredEnd + 3];
|
|
112
|
-
const authStart = declaredEnd + MMTP_EXT_TRAILER_HEADER_SIZE;
|
|
113
|
-
if (authStart + extLen !== payloadEnd)
|
|
114
|
-
return null;
|
|
115
|
-
return {
|
|
116
|
-
auth: payload.subarray(authStart, payloadEnd),
|
|
117
|
-
signedEnd: headerLength + declaredEnd
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// ../mmt-base/dist/mmtp.js
|
|
122
|
-
var MMTP_HEADER_SIZE2 = 12;
|
|
123
|
-
var MPU_HEADER_SIZE2 = 8;
|
|
124
63
|
var MFU_DU_HEADER_SIZE_TIMED = 14;
|
|
125
64
|
var MFU_DU_HEADER_SIZE_NONTIMED = 4;
|
|
126
|
-
var
|
|
127
|
-
var
|
|
65
|
+
var MPU_LENGTH_FIELD_SIZE = 2;
|
|
66
|
+
var MPU_HEADER_REMAINDER_SIZE = MPU_HEADER_SIZE - MPU_LENGTH_FIELD_SIZE;
|
|
128
67
|
var SOURCE_FEC_PAYLOAD_ID_SIZE = 4;
|
|
129
|
-
var
|
|
68
|
+
var PACKET_TYPE_MPU = 0;
|
|
130
69
|
var PACKET_TYPE_REPAIR = 3;
|
|
131
70
|
var MMTP_SIGNALING_PACKET_ID = 0;
|
|
132
71
|
var MMTP_PACKET_ID_MAX = 65535;
|
|
133
72
|
function parseMMTPHeader(buffer) {
|
|
134
|
-
if (buffer.length <
|
|
73
|
+
if (buffer.length < MMTP_HEADER_SIZE) {
|
|
135
74
|
throw new Error(`MMTP packet too small: ${buffer.length} bytes`);
|
|
136
75
|
}
|
|
137
76
|
const view2 = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
@@ -187,7 +126,7 @@ var BlockcastMmt = (() => {
|
|
|
187
126
|
};
|
|
188
127
|
}
|
|
189
128
|
function parseMPUHeader(payload) {
|
|
190
|
-
if (payload.length <
|
|
129
|
+
if (payload.length < MPU_HEADER_SIZE) {
|
|
191
130
|
throw new Error(`Payload too small for MPU header: ${payload.length} bytes`);
|
|
192
131
|
}
|
|
193
132
|
const view2 = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);
|
|
@@ -220,15 +159,15 @@ var BlockcastMmt = (() => {
|
|
|
220
159
|
};
|
|
221
160
|
}
|
|
222
161
|
function resolveMfuPayloadLayout(mpu, fragmentType, payload) {
|
|
223
|
-
if (mpu.payloadLength <
|
|
162
|
+
if (mpu.payloadLength < MPU_HEADER_REMAINDER_SIZE) {
|
|
224
163
|
return {
|
|
225
164
|
rejection: {
|
|
226
165
|
gate: "mpu-payload-length-below-header-remainder",
|
|
227
|
-
detail: `payload_length=${mpu.payloadLength} < ${
|
|
166
|
+
detail: `payload_length=${mpu.payloadLength} < ${MPU_HEADER_REMAINDER_SIZE}`
|
|
228
167
|
}
|
|
229
168
|
};
|
|
230
169
|
}
|
|
231
|
-
const declaredEnd =
|
|
170
|
+
const declaredEnd = MPU_LENGTH_FIELD_SIZE + mpu.payloadLength;
|
|
232
171
|
if (declaredEnd > payload.length) {
|
|
233
172
|
return {
|
|
234
173
|
rejection: {
|
|
@@ -239,7 +178,7 @@ var BlockcastMmt = (() => {
|
|
|
239
178
|
}
|
|
240
179
|
const hasHeader = fragmentType === 2 && mpu.fragmentationIndicator <= 1;
|
|
241
180
|
const mfuHeaderSize = mpu.timedFlag ? MFU_DU_HEADER_SIZE_TIMED : MFU_DU_HEADER_SIZE_NONTIMED;
|
|
242
|
-
const mfuOffset =
|
|
181
|
+
const mfuOffset = MPU_HEADER_SIZE + (hasHeader ? mfuHeaderSize : 0);
|
|
243
182
|
if (mfuOffset >= declaredEnd) {
|
|
244
183
|
return {
|
|
245
184
|
rejection: {
|
|
@@ -256,44 +195,46 @@ var BlockcastMmt = (() => {
|
|
|
256
195
|
}
|
|
257
196
|
};
|
|
258
197
|
}
|
|
259
|
-
|
|
198
|
+
var LEGACY_TRAILER_EXT_TYPE = 61601;
|
|
199
|
+
var LEGACY_TRAILER_HEADER_SIZE = 4;
|
|
200
|
+
function isEmptyOrExactLegacyTrailer(payload, start, end) {
|
|
260
201
|
if (start === end)
|
|
261
202
|
return true;
|
|
262
|
-
if (start < 0 || end > payload.length || start +
|
|
203
|
+
if (start < 0 || end > payload.length || start + LEGACY_TRAILER_HEADER_SIZE > end) {
|
|
263
204
|
return false;
|
|
264
205
|
}
|
|
265
206
|
const view2 = new DataView(payload.buffer, payload.byteOffset + start, end - start);
|
|
266
|
-
if (view2.getUint16(0, false) !==
|
|
207
|
+
if (view2.getUint16(0, false) !== LEGACY_TRAILER_EXT_TYPE)
|
|
267
208
|
return false;
|
|
268
209
|
const authLength = view2.getUint16(2, false);
|
|
269
|
-
return start +
|
|
210
|
+
return start + LEGACY_TRAILER_HEADER_SIZE + authLength === end;
|
|
270
211
|
}
|
|
271
212
|
function resolveDeclaredTrailers(payload, declaredEnd, fecType, options) {
|
|
272
213
|
if (declaredEnd > payload.length)
|
|
273
214
|
return null;
|
|
274
215
|
if (options?.skipFecId) {
|
|
275
|
-
return
|
|
216
|
+
return isEmptyOrExactLegacyTrailer(payload, declaredEnd, payload.length) ? { hasFecId: false } : null;
|
|
276
217
|
}
|
|
277
218
|
if (fecType === 1) {
|
|
278
219
|
const fecStart = payload.length - SOURCE_FEC_PAYLOAD_ID_SIZE;
|
|
279
|
-
if (fecStart < declaredEnd || !
|
|
220
|
+
if (fecStart < declaredEnd || !isEmptyOrExactLegacyTrailer(payload, declaredEnd, fecStart)) {
|
|
280
221
|
return null;
|
|
281
222
|
}
|
|
282
223
|
return { hasFecId: true };
|
|
283
224
|
}
|
|
284
225
|
if (fecType !== 0)
|
|
285
226
|
return null;
|
|
286
|
-
if (
|
|
227
|
+
if (isEmptyOrExactLegacyTrailer(payload, declaredEnd, payload.length)) {
|
|
287
228
|
return { hasFecId: false };
|
|
288
229
|
}
|
|
289
230
|
return null;
|
|
290
231
|
}
|
|
291
232
|
function planMfuExtraction(mmtpPacket, options, parsedHeader) {
|
|
292
|
-
if (mmtpPacket.length <
|
|
233
|
+
if (mmtpPacket.length < MMTP_HEADER_SIZE + MPU_HEADER_SIZE) {
|
|
293
234
|
return {
|
|
294
235
|
rejection: {
|
|
295
236
|
gate: "packet-shorter-than-mmtp-plus-mpu-header",
|
|
296
|
-
detail: `${mmtpPacket.length} bytes < ${
|
|
237
|
+
detail: `${mmtpPacket.length} bytes < ${MMTP_HEADER_SIZE + MPU_HEADER_SIZE}`
|
|
297
238
|
}
|
|
298
239
|
};
|
|
299
240
|
}
|
|
@@ -312,7 +253,7 @@ var BlockcastMmt = (() => {
|
|
|
312
253
|
};
|
|
313
254
|
}
|
|
314
255
|
}
|
|
315
|
-
if (header.packetType !==
|
|
256
|
+
if (header.packetType !== PACKET_TYPE_MPU) {
|
|
316
257
|
return {
|
|
317
258
|
rejection: {
|
|
318
259
|
gate: "not-an-mpu-packet",
|
|
@@ -321,11 +262,11 @@ var BlockcastMmt = (() => {
|
|
|
321
262
|
};
|
|
322
263
|
}
|
|
323
264
|
const payload = mmtpPacket.subarray(header.headerLength);
|
|
324
|
-
if (payload.length <
|
|
265
|
+
if (payload.length < MPU_HEADER_SIZE) {
|
|
325
266
|
return {
|
|
326
267
|
rejection: {
|
|
327
268
|
gate: "payload-shorter-than-mpu-header",
|
|
328
|
-
detail: `${payload.length} bytes < ${
|
|
269
|
+
detail: `${payload.length} bytes < ${MPU_HEADER_SIZE}`
|
|
329
270
|
}
|
|
330
271
|
};
|
|
331
272
|
}
|
|
@@ -356,7 +297,7 @@ var BlockcastMmt = (() => {
|
|
|
356
297
|
return {
|
|
357
298
|
rejection: {
|
|
358
299
|
gate: "declared-trailers-unresolved",
|
|
359
|
-
detail: `trailer bytes [${layout.dataEnd}, ${payload.length}) are neither empty nor an exact
|
|
300
|
+
detail: `trailer bytes [${layout.dataEnd}, ${payload.length}) are neither empty nor an exact legacy authenticator trailer (fecType=${header.fecType})`
|
|
360
301
|
}
|
|
361
302
|
};
|
|
362
303
|
}
|
|
@@ -372,8 +313,8 @@ var BlockcastMmt = (() => {
|
|
|
372
313
|
const mfuDuHeaderPresent = layout.hasMfuDuHeader;
|
|
373
314
|
const mfuOffset = layout.mfuOffset;
|
|
374
315
|
const dataEnd = layout.dataEnd;
|
|
375
|
-
const mfuDuHeader = mfuDuHeaderPresent && mpu.timedFlag === 1 ? parseTimedMfuDuHeader(payload,
|
|
376
|
-
const itemId = mfuDuHeaderPresent && mpu.timedFlag === 0 ? new DataView(payload.buffer, payload.byteOffset +
|
|
316
|
+
const mfuDuHeader = mfuDuHeaderPresent && mpu.timedFlag === 1 ? parseTimedMfuDuHeader(payload, MPU_HEADER_SIZE) : null;
|
|
317
|
+
const itemId = mfuDuHeaderPresent && mpu.timedFlag === 0 ? new DataView(payload.buffer, payload.byteOffset + MPU_HEADER_SIZE, 4).getUint32(0, false) : null;
|
|
377
318
|
const data = payload.subarray(mfuOffset, dataEnd);
|
|
378
319
|
const fecPayloadId = trailerLayout.hasFecId ? {
|
|
379
320
|
ssId: new DataView(mmtpPacket.buffer, mmtpPacket.byteOffset + mmtpPacket.length - SOURCE_FEC_PAYLOAD_ID_SIZE, SOURCE_FEC_PAYLOAD_ID_SIZE).getUint32(0, false)
|
|
@@ -381,17 +322,17 @@ var BlockcastMmt = (() => {
|
|
|
381
322
|
return { header, mpu, fragmentType, data, mfuDuHeader, itemId, fecPayloadId };
|
|
382
323
|
}
|
|
383
324
|
function sourceFecPayloadIdOf(mmtpPacket, header) {
|
|
384
|
-
if (mmtpPacket.length <
|
|
325
|
+
if (mmtpPacket.length < MMTP_HEADER_SIZE + MPU_HEADER_SIZE)
|
|
385
326
|
return null;
|
|
386
|
-
if (header.packetType !==
|
|
327
|
+
if (header.packetType !== PACKET_TYPE_MPU)
|
|
387
328
|
return null;
|
|
388
329
|
const payload = mmtpPacket.subarray(header.headerLength);
|
|
389
|
-
if (payload.length <
|
|
330
|
+
if (payload.length < MPU_HEADER_SIZE)
|
|
390
331
|
return null;
|
|
391
332
|
const payloadLength = payload[0] << 8 | payload[1];
|
|
392
|
-
if (payloadLength <
|
|
333
|
+
if (payloadLength < MPU_HEADER_REMAINDER_SIZE)
|
|
393
334
|
return null;
|
|
394
|
-
const declaredEnd =
|
|
335
|
+
const declaredEnd = MPU_LENGTH_FIELD_SIZE + payloadLength;
|
|
395
336
|
if (!resolveDeclaredTrailers(payload, declaredEnd, header.fecType)?.hasFecId)
|
|
396
337
|
return null;
|
|
397
338
|
const off = mmtpPacket.length - SOURCE_FEC_PAYLOAD_ID_SIZE;
|
|
@@ -399,7 +340,6 @@ var BlockcastMmt = (() => {
|
|
|
399
340
|
ssId: (mmtpPacket[off] << 24 | mmtpPacket[off + 1] << 16 | mmtpPacket[off + 2] << 8 | mmtpPacket[off + 3]) >>> 0
|
|
400
341
|
};
|
|
401
342
|
}
|
|
402
|
-
var extractAltaTrailer2 = extractAltaTrailer;
|
|
403
343
|
|
|
404
344
|
// ../mmt-base/dist/ntp-short.js
|
|
405
345
|
var NTP_SHORT_BITS = 32;
|
|
@@ -411,19 +351,18 @@ var BlockcastMmt = (() => {
|
|
|
411
351
|
|
|
412
352
|
// ../mmt-base/dist/fec-block-profile.js
|
|
413
353
|
var FEC_BLOCK_PROFILES = Object.freeze([
|
|
414
|
-
"k-padded-v1",
|
|
415
354
|
"iso-ssbg1-v1"
|
|
416
355
|
]);
|
|
417
356
|
function isFecBlockProfile(value) {
|
|
418
|
-
return value === "
|
|
357
|
+
return value === "iso-ssbg1-v1";
|
|
419
358
|
}
|
|
420
359
|
function parseFecBlockProfile(value, where) {
|
|
421
360
|
if (isFecBlockProfile(value))
|
|
422
361
|
return value;
|
|
423
362
|
if (value === void 0) {
|
|
424
|
-
throw new Error(`${where} is required: name the FEC block profile ("
|
|
363
|
+
throw new Error(`${where} is required: name the FEC block profile ("iso-ssbg1-v1")`);
|
|
425
364
|
}
|
|
426
|
-
throw new Error(`${where} must be "
|
|
365
|
+
throw new Error(`${where} must be "iso-ssbg1-v1" (got ${JSON.stringify(value)})`);
|
|
427
366
|
}
|
|
428
367
|
|
|
429
368
|
// src/mfu-reassembler.ts
|
|
@@ -5318,7 +5257,7 @@ var BlockcastMmt = (() => {
|
|
|
5318
5257
|
if (!a || !b || a.mediaTimescale !== b.mediaTimescale) return false;
|
|
5319
5258
|
return b.decodeTime > a.decodeTime + BigInt(a.durationTicks);
|
|
5320
5259
|
}
|
|
5321
|
-
var _streams2, _gate, _emit2, _recordStat2, _FecReleaseSequencer_instances, streamFor_fn2, drain_fn, release_fn;
|
|
5260
|
+
var _streams2, _gate, _emit2, _recordStat2, _deferDepth, _deferredStreams, _FecReleaseSequencer_instances, drainUnlessDeferred_fn, streamFor_fn2, drain_fn, release_fn;
|
|
5322
5261
|
var FecReleaseSequencer = class {
|
|
5323
5262
|
constructor(gate, emit, recordStat) {
|
|
5324
5263
|
__privateAdd(this, _FecReleaseSequencer_instances);
|
|
@@ -5326,6 +5265,8 @@ var BlockcastMmt = (() => {
|
|
|
5326
5265
|
__privateAdd(this, _gate);
|
|
5327
5266
|
__privateAdd(this, _emit2);
|
|
5328
5267
|
__privateAdd(this, _recordStat2);
|
|
5268
|
+
__privateAdd(this, _deferDepth, 0);
|
|
5269
|
+
__privateAdd(this, _deferredStreams, /* @__PURE__ */ new Set());
|
|
5329
5270
|
__privateSet(this, _gate, gate);
|
|
5330
5271
|
__privateSet(this, _emit2, emit);
|
|
5331
5272
|
__privateSet(this, _recordStat2, recordStat);
|
|
@@ -5335,6 +5276,36 @@ var BlockcastMmt = (() => {
|
|
|
5335
5276
|
for (const stream of __privateGet(this, _streams2).values()) total += stream.buf.length;
|
|
5336
5277
|
return total;
|
|
5337
5278
|
}
|
|
5279
|
+
/**
|
|
5280
|
+
* Run `work` with the drains its pushes would run deferred to its end. A
|
|
5281
|
+
* recovered FEC block is routed one frame at a time, and its block is
|
|
5282
|
+
* already resolved when the first frame is pushed: draining on that push
|
|
5283
|
+
* would release past the gap before the block's other recovered frames
|
|
5284
|
+
* arrive (deciding a conceal or stall for media that is about to land),
|
|
5285
|
+
* and those frames would then be dropped as stale. Nests.
|
|
5286
|
+
*/
|
|
5287
|
+
defer(work) {
|
|
5288
|
+
__privateWrapper(this, _deferDepth)._++;
|
|
5289
|
+
let threw = true;
|
|
5290
|
+
try {
|
|
5291
|
+
work();
|
|
5292
|
+
threw = false;
|
|
5293
|
+
} finally {
|
|
5294
|
+
__privateWrapper(this, _deferDepth)._--;
|
|
5295
|
+
if (__privateGet(this, _deferDepth) === 0 && __privateGet(this, _deferredStreams).size > 0) {
|
|
5296
|
+
const streams = [...__privateGet(this, _deferredStreams)];
|
|
5297
|
+
__privateGet(this, _deferredStreams).clear();
|
|
5298
|
+
if (!threw) {
|
|
5299
|
+
for (const stream of streams) __privateMethod(this, _FecReleaseSequencer_instances, drain_fn).call(this, stream);
|
|
5300
|
+
} else {
|
|
5301
|
+
try {
|
|
5302
|
+
for (const stream of streams) __privateMethod(this, _FecReleaseSequencer_instances, drain_fn).call(this, stream);
|
|
5303
|
+
} catch {
|
|
5304
|
+
}
|
|
5305
|
+
}
|
|
5306
|
+
}
|
|
5307
|
+
}
|
|
5308
|
+
}
|
|
5338
5309
|
push(streamKey, data, meta, seq) {
|
|
5339
5310
|
const frame = { data, meta: { ...meta }, seq, arrivedAtMs: performance.now() };
|
|
5340
5311
|
const stream = __privateMethod(this, _FecReleaseSequencer_instances, streamFor_fn2).call(this, streamKey, meta);
|
|
@@ -5356,7 +5327,7 @@ var BlockcastMmt = (() => {
|
|
|
5356
5327
|
return;
|
|
5357
5328
|
}
|
|
5358
5329
|
__privateMethod(this, _FecReleaseSequencer_instances, release_fn).call(this, stream, frame, void 0);
|
|
5359
|
-
__privateMethod(this, _FecReleaseSequencer_instances,
|
|
5330
|
+
__privateMethod(this, _FecReleaseSequencer_instances, drainUnlessDeferred_fn).call(this, stream);
|
|
5360
5331
|
return;
|
|
5361
5332
|
}
|
|
5362
5333
|
let lo = 0;
|
|
@@ -5367,7 +5338,23 @@ var BlockcastMmt = (() => {
|
|
|
5367
5338
|
else hi = mid;
|
|
5368
5339
|
}
|
|
5369
5340
|
stream.buf.splice(lo, 0, frame);
|
|
5370
|
-
__privateMethod(this, _FecReleaseSequencer_instances,
|
|
5341
|
+
__privateMethod(this, _FecReleaseSequencer_instances, drainUnlessDeferred_fn).call(this, stream);
|
|
5342
|
+
}
|
|
5343
|
+
/**
|
|
5344
|
+
* Arrival time of the earliest frame a stream of `packetId` holds behind a
|
|
5345
|
+
* gap (the gate forces it out `holdLimitMs` after that), or undefined when
|
|
5346
|
+
* none is held. Without `catalogTrackName`, every stream of the packetId.
|
|
5347
|
+
*/
|
|
5348
|
+
earliestHeldArrivalMs(packetId, catalogTrackName) {
|
|
5349
|
+
let earliest;
|
|
5350
|
+
for (const stream of __privateGet(this, _streams2).values()) {
|
|
5351
|
+
if (stream.packetId !== packetId) continue;
|
|
5352
|
+
if (catalogTrackName !== void 0 && stream.catalogTrackName !== catalogTrackName) continue;
|
|
5353
|
+
for (const frame of stream.buf) {
|
|
5354
|
+
if (earliest === void 0 || frame.arrivedAtMs < earliest) earliest = frame.arrivedAtMs;
|
|
5355
|
+
}
|
|
5356
|
+
}
|
|
5357
|
+
return earliest;
|
|
5371
5358
|
}
|
|
5372
5359
|
/** Re-evaluate held gaps after FEC state changed. */
|
|
5373
5360
|
poke(streamKey) {
|
|
@@ -5420,6 +5407,21 @@ var BlockcastMmt = (() => {
|
|
|
5420
5407
|
__privateGet(this, _streams2).delete(key);
|
|
5421
5408
|
}
|
|
5422
5409
|
}
|
|
5410
|
+
/**
|
|
5411
|
+
* The packet's FEC ended, so no block will resolve a held gap: release its
|
|
5412
|
+
* frames in order, each gap stalled as a discontinuity, and forget its
|
|
5413
|
+
* streams, so FEC configured on it again starts from a fresh one.
|
|
5414
|
+
*/
|
|
5415
|
+
endPacket(packetId) {
|
|
5416
|
+
for (const [key, stream] of __privateGet(this, _streams2)) {
|
|
5417
|
+
if (stream.packetId !== packetId) continue;
|
|
5418
|
+
while (stream.buf.length > 0 && stream.last !== null) {
|
|
5419
|
+
stream.discontinuity = true;
|
|
5420
|
+
__privateMethod(this, _FecReleaseSequencer_instances, drain_fn).call(this, stream);
|
|
5421
|
+
}
|
|
5422
|
+
__privateGet(this, _streams2).delete(key);
|
|
5423
|
+
}
|
|
5424
|
+
}
|
|
5423
5425
|
discardPacket(packetId) {
|
|
5424
5426
|
for (const [key, stream] of __privateGet(this, _streams2)) {
|
|
5425
5427
|
if (stream.packetId !== packetId) continue;
|
|
@@ -5440,7 +5442,13 @@ var BlockcastMmt = (() => {
|
|
|
5440
5442
|
_gate = new WeakMap();
|
|
5441
5443
|
_emit2 = new WeakMap();
|
|
5442
5444
|
_recordStat2 = new WeakMap();
|
|
5445
|
+
_deferDepth = new WeakMap();
|
|
5446
|
+
_deferredStreams = new WeakMap();
|
|
5443
5447
|
_FecReleaseSequencer_instances = new WeakSet();
|
|
5448
|
+
drainUnlessDeferred_fn = function(stream) {
|
|
5449
|
+
if (__privateGet(this, _deferDepth) > 0) __privateGet(this, _deferredStreams).add(stream);
|
|
5450
|
+
else __privateMethod(this, _FecReleaseSequencer_instances, drain_fn).call(this, stream);
|
|
5451
|
+
};
|
|
5444
5452
|
streamFor_fn2 = function(streamKey, meta) {
|
|
5445
5453
|
let stream = __privateGet(this, _streams2).get(streamKey);
|
|
5446
5454
|
if (!stream) {
|
|
@@ -5709,6 +5717,22 @@ var BlockcastMmt = (() => {
|
|
|
5709
5717
|
}
|
|
5710
5718
|
) : null);
|
|
5711
5719
|
}
|
|
5720
|
+
/**
|
|
5721
|
+
* Run `work` with the FEC release gate's drains deferred to its end, so
|
|
5722
|
+
* every frame it pushes is in place before any held gap is decided (see
|
|
5723
|
+
* FecReleaseSequencer.defer).
|
|
5724
|
+
*/
|
|
5725
|
+
deferFecRelease(work) {
|
|
5726
|
+
if (!__privateGet(this, _fecSequencer)) {
|
|
5727
|
+
work();
|
|
5728
|
+
return;
|
|
5729
|
+
}
|
|
5730
|
+
__privateGet(this, _fecSequencer).defer(work);
|
|
5731
|
+
}
|
|
5732
|
+
/** See FecReleaseSequencer.earliestHeldArrivalMs. */
|
|
5733
|
+
fecReleaseEarliestHeldAtMs(packetId, catalogTrackName) {
|
|
5734
|
+
return __privateGet(this, _fecSequencer)?.earliestHeldArrivalMs(packetId, catalogTrackName);
|
|
5735
|
+
}
|
|
5712
5736
|
/** Re-evaluate held gaps after FEC block state changed. */
|
|
5713
5737
|
pokeFecRelease(packetId, catalogTrackName) {
|
|
5714
5738
|
if (!__privateGet(this, _fecSequencer)) return;
|
|
@@ -5723,6 +5747,13 @@ var BlockcastMmt = (() => {
|
|
|
5723
5747
|
markFecDiscontinuity(packetId, catalogTrackName) {
|
|
5724
5748
|
__privateGet(this, _fecSequencer)?.markDiscontinuity(__privateMethod(this, _MmtpContainerParser_instances, streamKey_fn).call(this, packetId, catalogTrackName));
|
|
5725
5749
|
}
|
|
5750
|
+
/**
|
|
5751
|
+
* The FEC of a packet ID ended: release the frames the FEC release gate
|
|
5752
|
+
* holds for it in order, each gap stalled, and forget its gated streams.
|
|
5753
|
+
*/
|
|
5754
|
+
endFecRelease(packetId) {
|
|
5755
|
+
__privateGet(this, _fecSequencer)?.endPacket(packetId);
|
|
5756
|
+
}
|
|
5726
5757
|
/**
|
|
5727
5758
|
* MPU and data-unit identity of one MMTP packet, parsed in place (no copy,
|
|
5728
5759
|
* no reassembly). Null for non-MPU packets and packets that do not parse.
|
|
@@ -6197,7 +6228,7 @@ var BlockcastMmt = (() => {
|
|
|
6197
6228
|
const parsed = preParsed !== void 0 && preParsed.skipFecPayloadId === (options?.skipFecPayloadId === true) ? preParsed : this.parsePacket(packet, options);
|
|
6198
6229
|
if (!parsed) return __privateMethod(this, _MmtpContainerParser_instances, drop_fn).call(this, "header-parse-failed");
|
|
6199
6230
|
const info = parsed.info;
|
|
6200
|
-
if (info.packetType !==
|
|
6231
|
+
if (info.packetType !== PACKET_TYPE_MPU) {
|
|
6201
6232
|
return {
|
|
6202
6233
|
kind: info.isRepair ? "repair" : "non-media",
|
|
6203
6234
|
packet: info,
|
|
@@ -6206,10 +6237,8 @@ var BlockcastMmt = (() => {
|
|
|
6206
6237
|
}
|
|
6207
6238
|
if (info.fecPayloadId !== null && __privateGet(this, _sourceSymbolCb)) {
|
|
6208
6239
|
const rawSymbol = packet.subarray(0, packet.length - 4);
|
|
6209
|
-
const altaTrailer = extractAltaTrailer2(packet);
|
|
6210
|
-
const alta = altaTrailer ? { auth: altaTrailer.auth, payloadEnd: altaTrailer.signedEnd } : void 0;
|
|
6211
6240
|
try {
|
|
6212
|
-
__privateGet(this, _sourceSymbolCb).call(this, info.packetId, info.fecPayloadId.ssId, rawSymbol
|
|
6241
|
+
__privateGet(this, _sourceSymbolCb).call(this, info.packetId, info.fecPayloadId.ssId, rawSymbol);
|
|
6213
6242
|
} catch {
|
|
6214
6243
|
}
|
|
6215
6244
|
}
|
|
@@ -7165,6 +7194,14 @@ var BlockcastMmt = (() => {
|
|
|
7165
7194
|
};
|
|
7166
7195
|
function readFecBlockProfile(value, path, declaresFecInstance, fail) {
|
|
7167
7196
|
if (value === void 0 && !declaresFecInstance) return void 0;
|
|
7197
|
+
if (isFecBlockProfile(value)) return value;
|
|
7198
|
+
if (typeof value === "string" && value.length > 0) {
|
|
7199
|
+
return fail(
|
|
7200
|
+
"track_fec_block_profile_unimplemented",
|
|
7201
|
+
path,
|
|
7202
|
+
`${JSON.stringify(value)} is not an implemented FEC block profile; only "iso-ssbg1-v1" is implemented`
|
|
7203
|
+
);
|
|
7204
|
+
}
|
|
7168
7205
|
try {
|
|
7169
7206
|
return parseFecBlockProfile(value, "blockProfile");
|
|
7170
7207
|
} catch (error) {
|
|
@@ -7637,8 +7674,8 @@ var BlockcastMmt = (() => {
|
|
|
7637
7674
|
"repair layers are self-describing fec-repair tracks (depends, repairLayer); fec.enhancementRepair is not supported"
|
|
7638
7675
|
);
|
|
7639
7676
|
}
|
|
7640
|
-
if (config["interleaveDepthMs"] !== void 0 && !
|
|
7641
|
-
catalogError("track_fec", `${path}.fec.interleaveDepthMs`, "must be a
|
|
7677
|
+
if (config["interleaveDepthMs"] !== void 0 && (!Number.isSafeInteger(config["interleaveDepthMs"]) || config["interleaveDepthMs"] < 0)) {
|
|
7678
|
+
catalogError("track_fec", `${path}.fec.interleaveDepthMs`, "must be a non-negative safe integer");
|
|
7642
7679
|
}
|
|
7643
7680
|
if (algorithm !== "none") {
|
|
7644
7681
|
for (const field of ["sourceSymbols", "repairSymbols", "symbolSize"]) {
|
|
@@ -7646,6 +7683,9 @@ var BlockcastMmt = (() => {
|
|
|
7646
7683
|
catalogError("track_fec", `${path}.fec.${field}`, "must be a positive integer");
|
|
7647
7684
|
}
|
|
7648
7685
|
}
|
|
7686
|
+
if (algorithm === "raptorq" && config["symbolSize"] % 8 !== 0) {
|
|
7687
|
+
catalogError("track_fec", `${path}.fec.symbolSize`, "RaptorQ symbolSize must be a multiple of 8");
|
|
7688
|
+
}
|
|
7649
7689
|
if (typeof config["repairTrack"] !== "string" || config["repairTrack"].length === 0) {
|
|
7650
7690
|
catalogError("track_fec", `${path}.fec.repairTrack`, "must be a non-empty string");
|
|
7651
7691
|
}
|
|
@@ -7713,6 +7753,13 @@ var BlockcastMmt = (() => {
|
|
|
7713
7753
|
for (let endpointIndex = 0; endpointIndex < endpoints.length; endpointIndex++) {
|
|
7714
7754
|
const endpoint = endpoints[endpointIndex];
|
|
7715
7755
|
if (typeof endpoint !== "object" || endpoint === null || Array.isArray(endpoint)) continue;
|
|
7756
|
+
if ("relayAddress" in endpoint) {
|
|
7757
|
+
catalogError(
|
|
7758
|
+
"multicast_relay_address",
|
|
7759
|
+
`$.multicast.endpoints[${endpointIndex}].relayAddress`,
|
|
7760
|
+
'relayAddress is retired; publish the relay as multicast.networkSource[{type:"amt",relay}]'
|
|
7761
|
+
);
|
|
7762
|
+
}
|
|
7716
7763
|
const refs = endpoint["tracks"];
|
|
7717
7764
|
if (!Array.isArray(refs)) continue;
|
|
7718
7765
|
const packetIds = /* @__PURE__ */ new Map();
|
|
@@ -7761,7 +7808,7 @@ var BlockcastMmt = (() => {
|
|
|
7761
7808
|
// ../fec/dist/oti.js
|
|
7762
7809
|
function catalogFecInterleaveMs(fec) {
|
|
7763
7810
|
const ms = fec?.interleaveDepthMs;
|
|
7764
|
-
return typeof ms === "number" &&
|
|
7811
|
+
return typeof ms === "number" && Number.isSafeInteger(ms) && ms >= 0 ? ms : void 0;
|
|
7765
7812
|
}
|
|
7766
7813
|
function computeFecTimeout(interleaveDepthMs, safetyFactor = 3) {
|
|
7767
7814
|
if (!Number.isFinite(interleaveDepthMs) || interleaveDepthMs <= 0) {
|
|
@@ -7780,7 +7827,6 @@ var BlockcastMmt = (() => {
|
|
|
7780
7827
|
var MOQ_GROUP_ID_SPAN = WRAP_EPOCH_SPAN * SS_ID_SPAN;
|
|
7781
7828
|
|
|
7782
7829
|
// src/fec-state.ts
|
|
7783
|
-
var MIN_INTERLEAVE_DEPTH_MS = 33;
|
|
7784
7830
|
var FEC_INACTIVE_REASONS = Object.freeze([
|
|
7785
7831
|
"no-catalog-fec",
|
|
7786
7832
|
"reliable-moq",
|
|
@@ -7807,7 +7853,7 @@ var BlockcastMmt = (() => {
|
|
|
7807
7853
|
const block = recordOf(fec);
|
|
7808
7854
|
if (block === void 0 || block["blockProfile"] !== "iso-ssbg1-v1") return true;
|
|
7809
7855
|
const ms = block["interleaveDepthMs"];
|
|
7810
|
-
return typeof ms === "number" && Number.
|
|
7856
|
+
return ms === void 0 || typeof ms === "number" && Number.isSafeInteger(ms) && ms >= 0;
|
|
7811
7857
|
}
|
|
7812
7858
|
function requireBoolean(value, field) {
|
|
7813
7859
|
if (typeof value !== "boolean") {
|