mattebox 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +106 -0
- package/dist/cdn/mattebox.dash-drm.min.js +2 -0
- package/dist/cdn/mattebox.dash.min.js +2 -0
- package/dist/cdn/mattebox.dual-drm.min.js +2 -0
- package/dist/cdn/mattebox.dual-ts-drm.min.js +3 -0
- package/dist/cdn/mattebox.dual-ts.min.js +3 -0
- package/dist/cdn/mattebox.dual.min.js +2 -0
- package/dist/cdn/mattebox.hls-drm.min.js +2 -0
- package/dist/cdn/mattebox.hls-ts-drm.min.js +3 -0
- package/dist/cdn/mattebox.hls-ts.min.js +3 -0
- package/dist/cdn/mattebox.hls.min.js +2 -0
- package/dist/cdn/mattebox.kernel.min.js +1 -0
- package/dist/cdn/mattebox.min.js +6 -0
- package/dist/cdn/transmux.worker.js +1 -0
- package/dist/containers/adts.d.ts +33 -0
- package/dist/containers/adts.d.ts.map +1 -0
- package/dist/containers/adts.js +66 -0
- package/dist/containers/adts.js.map +1 -0
- package/dist/containers/captions.d.ts +27 -0
- package/dist/containers/captions.d.ts.map +1 -0
- package/dist/containers/captions.js +36 -0
- package/dist/containers/captions.js.map +1 -0
- package/dist/containers/codec-probe/index.d.ts +35 -0
- package/dist/containers/codec-probe/index.d.ts.map +1 -0
- package/dist/containers/codec-probe/index.js +222 -0
- package/dist/containers/codec-probe/index.js.map +1 -0
- package/dist/containers/fmp4/writer.d.ts +62 -0
- package/dist/containers/fmp4/writer.d.ts.map +1 -0
- package/dist/containers/fmp4/writer.js +201 -0
- package/dist/containers/fmp4/writer.js.map +1 -0
- package/dist/containers/id3.d.ts +25 -0
- package/dist/containers/id3.d.ts.map +1 -0
- package/dist/containers/id3.js +75 -0
- package/dist/containers/id3.js.map +1 -0
- package/dist/containers/mp4-box/index.d.ts +79 -0
- package/dist/containers/mp4-box/index.d.ts.map +1 -0
- package/dist/containers/mp4-box/index.js +231 -0
- package/dist/containers/mp4-box/index.js.map +1 -0
- package/dist/containers/packed-audio/index.d.ts +7 -0
- package/dist/containers/packed-audio/index.d.ts.map +1 -0
- package/dist/containers/packed-audio/index.js +63 -0
- package/dist/containers/packed-audio/index.js.map +1 -0
- package/dist/containers/sei.d.ts +26 -0
- package/dist/containers/sei.d.ts.map +1 -0
- package/dist/containers/sei.js +100 -0
- package/dist/containers/sei.js.map +1 -0
- package/dist/containers/ts-transmux/demux.d.ts +49 -0
- package/dist/containers/ts-transmux/demux.d.ts.map +1 -0
- package/dist/containers/ts-transmux/demux.js +222 -0
- package/dist/containers/ts-transmux/demux.js.map +1 -0
- package/dist/containers/ts-transmux/h264.d.ts +48 -0
- package/dist/containers/ts-transmux/h264.d.ts.map +1 -0
- package/dist/containers/ts-transmux/h264.js +211 -0
- package/dist/containers/ts-transmux/h264.js.map +1 -0
- package/dist/containers/ts-transmux/index.d.ts +17 -0
- package/dist/containers/ts-transmux/index.d.ts.map +1 -0
- package/dist/containers/ts-transmux/index.js +34 -0
- package/dist/containers/ts-transmux/index.js.map +1 -0
- package/dist/containers/ts-transmux/runner.d.ts +23 -0
- package/dist/containers/ts-transmux/runner.d.ts.map +1 -0
- package/dist/containers/ts-transmux/runner.js +99 -0
- package/dist/containers/ts-transmux/runner.js.map +1 -0
- package/dist/containers/ts-transmux/transmux.d.ts +24 -0
- package/dist/containers/ts-transmux/transmux.d.ts.map +1 -0
- package/dist/containers/ts-transmux/transmux.js +212 -0
- package/dist/containers/ts-transmux/transmux.js.map +1 -0
- package/dist/containers/ts-transmux/transmux.worker.d.ts +2 -0
- package/dist/containers/ts-transmux/transmux.worker.d.ts.map +1 -0
- package/dist/containers/ts-transmux/transmux.worker.js +19 -0
- package/dist/containers/ts-transmux/transmux.worker.js.map +1 -0
- package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/asyncToGenerator.js +27 -0
- package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/defineProperty.js +12 -0
- package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/objectSpread2.js +25 -0
- package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/objectWithoutProperties.js +13 -0
- package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/objectWithoutPropertiesLoose.js +12 -0
- package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/toPrimitive.js +14 -0
- package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/toPropertyKey.js +9 -0
- package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/typeof.js +11 -0
- package/dist/es2015/containers/adts.js +77 -0
- package/dist/es2015/containers/captions.js +36 -0
- package/dist/es2015/containers/codec-probe/index.js +220 -0
- package/dist/es2015/containers/fmp4/writer.js +165 -0
- package/dist/es2015/containers/id3.js +72 -0
- package/dist/es2015/containers/mp4-box/index.js +209 -0
- package/dist/es2015/containers/packed-audio/index.js +67 -0
- package/dist/es2015/containers/sei.js +79 -0
- package/dist/es2015/containers/ts-transmux/demux.js +211 -0
- package/dist/es2015/containers/ts-transmux/h264.js +204 -0
- package/dist/es2015/containers/ts-transmux/index.js +37 -0
- package/dist/es2015/containers/ts-transmux/runner.js +95 -0
- package/dist/es2015/containers/ts-transmux/transmux.js +210 -0
- package/dist/es2015/containers/ts-transmux/transmux.worker.js +26 -0
- package/dist/es2015/index.js +356 -0
- package/dist/es2015/kernel/append-queue.js +148 -0
- package/dist/es2015/kernel/bus.js +134 -0
- package/dist/es2015/kernel/context.js +92 -0
- package/dist/es2015/kernel/effects.js +62 -0
- package/dist/es2015/kernel/evictor.js +67 -0
- package/dist/es2015/kernel/lifecycle.js +122 -0
- package/dist/es2015/kernel/loader.js +108 -0
- package/dist/es2015/kernel/mime.js +20 -0
- package/dist/es2015/kernel/mse.js +426 -0
- package/dist/es2015/kernel/reducer.js +1051 -0
- package/dist/es2015/kernel/rendition-select.js +263 -0
- package/dist/es2015/kernel/scheduler.js +82 -0
- package/dist/es2015/kernel/sinks/metadata-sink.js +7 -0
- package/dist/es2015/kernel/sinks/mse-sink.js +31 -0
- package/dist/es2015/kernel/sinks/text-track-sink.js +167 -0
- package/dist/es2015/kernel/timeline.js +127 -0
- package/dist/es2015/kernel/trace.js +134 -0
- package/dist/es2015/kernel/track-registry.js +47 -0
- package/dist/es2015/kernel/transport.js +242 -0
- package/dist/es2015/kernel/watchdog.js +38 -0
- package/dist/es2015/presets/dash/index.js +9 -0
- package/dist/es2015/presets/dash-drm/index.js +13 -0
- package/dist/es2015/presets/define.js +45 -0
- package/dist/es2015/presets/dual/index.js +14 -0
- package/dist/es2015/presets/dual-drm/index.js +14 -0
- package/dist/es2015/presets/dual-ts/index.js +14 -0
- package/dist/es2015/presets/dual-ts-drm/index.js +15 -0
- package/dist/es2015/presets/full/index.js +28 -0
- package/dist/es2015/presets/hls/index.js +9 -0
- package/dist/es2015/presets/hls-drm/index.js +13 -0
- package/dist/es2015/presets/hls-ts/index.js +13 -0
- package/dist/es2015/presets/hls-ts-drm/index.js +14 -0
- package/dist/es2015/presets/kernel/index.js +10 -0
- package/dist/es2015/presets/storage.js +24 -0
- package/dist/es2015/presets/tiers.js +93 -0
- package/dist/es2015/protocols/dash-cmaf/index.js +161 -0
- package/dist/es2015/protocols/dash-cmaf/parse.js +491 -0
- package/dist/es2015/protocols/dash-live/index.js +192 -0
- package/dist/es2015/protocols/hls-cmaf/index.js +168 -0
- package/dist/es2015/protocols/hls-cmaf/lexer.js +72 -0
- package/dist/es2015/protocols/hls-cmaf/parse.js +457 -0
- package/dist/es2015/protocols/hls-live/index.js +296 -0
- package/dist/es2015/protocols/live-shared.js +29 -0
- package/dist/es2015/stages/abr/index.js +126 -0
- package/dist/es2015/stages/abr-cap-size/index.js +22 -0
- package/dist/es2015/stages/abr-persist/index.js +52 -0
- package/dist/es2015/stages/aes-128/index.js +76 -0
- package/dist/es2015/stages/alt-audio/index.js +80 -0
- package/dist/es2015/stages/cmaf-timing/index.js +55 -0
- package/dist/es2015/stages/cmcd/index.js +70 -0
- package/dist/es2015/stages/codec-probe/index.js +65 -0
- package/dist/es2015/stages/codec-switch/index.js +48 -0
- package/dist/es2015/stages/content-steering/index.js +179 -0
- package/dist/es2015/stages/drm-shared.js +18 -0
- package/dist/es2015/stages/eme-cenc/index.js +46 -0
- package/dist/es2015/stages/eme-core/index.js +237 -0
- package/dist/es2015/stages/eme-fairplay/index.js +52 -0
- package/dist/es2015/stages/meta-id3/index.js +37 -0
- package/dist/es2015/stages/mp4-box/index.js +27 -0
- package/dist/es2015/stages/nal-scan/index.js +121 -0
- package/dist/es2015/stages/pdt/index.js +34 -0
- package/dist/es2015/stages/recovery/index.js +283 -0
- package/dist/es2015/stages/text-cea608/decode.js +201 -0
- package/dist/es2015/stages/text-cea608/index.js +71 -0
- package/dist/es2015/stages/text-webvtt/index.js +82 -0
- package/dist/es2015/stages/text-webvtt/parse.js +60 -0
- package/dist/es2015/stages/text-webvtt-segmented/index.js +57 -0
- package/dist/es2015/stages/thumbnails/index.js +73 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +423 -0
- package/dist/index.js.map +1 -0
- package/dist/kernel/append-queue.d.ts +47 -0
- package/dist/kernel/append-queue.d.ts.map +1 -0
- package/dist/kernel/append-queue.js +180 -0
- package/dist/kernel/append-queue.js.map +1 -0
- package/dist/kernel/bus.d.ts +50 -0
- package/dist/kernel/bus.d.ts.map +1 -0
- package/dist/kernel/bus.js +147 -0
- package/dist/kernel/bus.js.map +1 -0
- package/dist/kernel/context.d.ts +45 -0
- package/dist/kernel/context.d.ts.map +1 -0
- package/dist/kernel/context.js +116 -0
- package/dist/kernel/context.js.map +1 -0
- package/dist/kernel/effects.d.ts +33 -0
- package/dist/kernel/effects.d.ts.map +1 -0
- package/dist/kernel/effects.js +65 -0
- package/dist/kernel/effects.js.map +1 -0
- package/dist/kernel/evictor.d.ts +46 -0
- package/dist/kernel/evictor.d.ts.map +1 -0
- package/dist/kernel/evictor.js +92 -0
- package/dist/kernel/evictor.js.map +1 -0
- package/dist/kernel/lifecycle.d.ts +41 -0
- package/dist/kernel/lifecycle.d.ts.map +1 -0
- package/dist/kernel/lifecycle.js +129 -0
- package/dist/kernel/lifecycle.js.map +1 -0
- package/dist/kernel/loader.d.ts +28 -0
- package/dist/kernel/loader.d.ts.map +1 -0
- package/dist/kernel/loader.js +126 -0
- package/dist/kernel/loader.js.map +1 -0
- package/dist/kernel/mime.d.ts +13 -0
- package/dist/kernel/mime.d.ts.map +1 -0
- package/dist/kernel/mime.js +18 -0
- package/dist/kernel/mime.js.map +1 -0
- package/dist/kernel/mse.d.ts +62 -0
- package/dist/kernel/mse.d.ts.map +1 -0
- package/dist/kernel/mse.js +490 -0
- package/dist/kernel/mse.js.map +1 -0
- package/dist/kernel/reducer.d.ts +39 -0
- package/dist/kernel/reducer.d.ts.map +1 -0
- package/dist/kernel/reducer.js +1316 -0
- package/dist/kernel/reducer.js.map +1 -0
- package/dist/kernel/rendition-select.d.ts +102 -0
- package/dist/kernel/rendition-select.d.ts.map +1 -0
- package/dist/kernel/rendition-select.js +295 -0
- package/dist/kernel/rendition-select.js.map +1 -0
- package/dist/kernel/scheduler.d.ts +57 -0
- package/dist/kernel/scheduler.d.ts.map +1 -0
- package/dist/kernel/scheduler.js +98 -0
- package/dist/kernel/scheduler.js.map +1 -0
- package/dist/kernel/sinks/metadata-sink.d.ts +7 -0
- package/dist/kernel/sinks/metadata-sink.d.ts.map +1 -0
- package/dist/kernel/sinks/metadata-sink.js +5 -0
- package/dist/kernel/sinks/metadata-sink.js.map +1 -0
- package/dist/kernel/sinks/mse-sink.d.ts +17 -0
- package/dist/kernel/sinks/mse-sink.d.ts.map +1 -0
- package/dist/kernel/sinks/mse-sink.js +20 -0
- package/dist/kernel/sinks/mse-sink.js.map +1 -0
- package/dist/kernel/sinks/text-track-sink.d.ts +45 -0
- package/dist/kernel/sinks/text-track-sink.d.ts.map +1 -0
- package/dist/kernel/sinks/text-track-sink.js +184 -0
- package/dist/kernel/sinks/text-track-sink.js.map +1 -0
- package/dist/kernel/timeline.d.ts +57 -0
- package/dist/kernel/timeline.d.ts.map +1 -0
- package/dist/kernel/timeline.js +203 -0
- package/dist/kernel/timeline.js.map +1 -0
- package/dist/kernel/trace.d.ts +42 -0
- package/dist/kernel/trace.d.ts.map +1 -0
- package/dist/kernel/trace.js +165 -0
- package/dist/kernel/trace.js.map +1 -0
- package/dist/kernel/track-registry.d.ts +22 -0
- package/dist/kernel/track-registry.d.ts.map +1 -0
- package/dist/kernel/track-registry.js +42 -0
- package/dist/kernel/track-registry.js.map +1 -0
- package/dist/kernel/transport.d.ts +90 -0
- package/dist/kernel/transport.d.ts.map +1 -0
- package/dist/kernel/transport.js +256 -0
- package/dist/kernel/transport.js.map +1 -0
- package/dist/kernel/watchdog.d.ts +35 -0
- package/dist/kernel/watchdog.d.ts.map +1 -0
- package/dist/kernel/watchdog.js +43 -0
- package/dist/kernel/watchdog.js.map +1 -0
- package/dist/presets/dash/index.d.ts +4 -0
- package/dist/presets/dash/index.d.ts.map +1 -0
- package/dist/presets/dash/index.js +8 -0
- package/dist/presets/dash/index.js.map +1 -0
- package/dist/presets/dash-drm/index.d.ts +4 -0
- package/dist/presets/dash-drm/index.d.ts.map +1 -0
- package/dist/presets/dash-drm/index.js +8 -0
- package/dist/presets/dash-drm/index.js.map +1 -0
- package/dist/presets/define.d.ts +36 -0
- package/dist/presets/define.d.ts.map +1 -0
- package/dist/presets/define.js +39 -0
- package/dist/presets/define.js.map +1 -0
- package/dist/presets/dual/index.d.ts +4 -0
- package/dist/presets/dual/index.d.ts.map +1 -0
- package/dist/presets/dual/index.js +9 -0
- package/dist/presets/dual/index.js.map +1 -0
- package/dist/presets/dual-drm/index.d.ts +4 -0
- package/dist/presets/dual-drm/index.d.ts.map +1 -0
- package/dist/presets/dual-drm/index.js +13 -0
- package/dist/presets/dual-drm/index.js.map +1 -0
- package/dist/presets/dual-ts/index.d.ts +4 -0
- package/dist/presets/dual-ts/index.d.ts.map +1 -0
- package/dist/presets/dual-ts/index.js +8 -0
- package/dist/presets/dual-ts/index.js.map +1 -0
- package/dist/presets/dual-ts-drm/index.d.ts +4 -0
- package/dist/presets/dual-ts-drm/index.d.ts.map +1 -0
- package/dist/presets/dual-ts-drm/index.js +14 -0
- package/dist/presets/dual-ts-drm/index.js.map +1 -0
- package/dist/presets/full/index.d.ts +4 -0
- package/dist/presets/full/index.d.ts.map +1 -0
- package/dist/presets/full/index.js +27 -0
- package/dist/presets/full/index.js.map +1 -0
- package/dist/presets/hls/index.d.ts +4 -0
- package/dist/presets/hls/index.d.ts.map +1 -0
- package/dist/presets/hls/index.js +8 -0
- package/dist/presets/hls/index.js.map +1 -0
- package/dist/presets/hls-drm/index.d.ts +4 -0
- package/dist/presets/hls-drm/index.d.ts.map +1 -0
- package/dist/presets/hls-drm/index.js +8 -0
- package/dist/presets/hls-drm/index.js.map +1 -0
- package/dist/presets/hls-ts/index.d.ts +4 -0
- package/dist/presets/hls-ts/index.d.ts.map +1 -0
- package/dist/presets/hls-ts/index.js +8 -0
- package/dist/presets/hls-ts/index.js.map +1 -0
- package/dist/presets/hls-ts-drm/index.d.ts +4 -0
- package/dist/presets/hls-ts-drm/index.d.ts.map +1 -0
- package/dist/presets/hls-ts-drm/index.js +13 -0
- package/dist/presets/hls-ts-drm/index.js.map +1 -0
- package/dist/presets/kernel/index.d.ts +4 -0
- package/dist/presets/kernel/index.d.ts.map +1 -0
- package/dist/presets/kernel/index.js +9 -0
- package/dist/presets/kernel/index.js.map +1 -0
- package/dist/presets/storage.d.ts +9 -0
- package/dist/presets/storage.d.ts.map +1 -0
- package/dist/presets/storage.js +24 -0
- package/dist/presets/storage.js.map +1 -0
- package/dist/presets/tiers.d.ts +22 -0
- package/dist/presets/tiers.d.ts.map +1 -0
- package/dist/presets/tiers.js +78 -0
- package/dist/presets/tiers.js.map +1 -0
- package/dist/protocols/dash-cmaf/index.d.ts +20 -0
- package/dist/protocols/dash-cmaf/index.d.ts.map +1 -0
- package/dist/protocols/dash-cmaf/index.js +176 -0
- package/dist/protocols/dash-cmaf/index.js.map +1 -0
- package/dist/protocols/dash-cmaf/parse.d.ts +24 -0
- package/dist/protocols/dash-cmaf/parse.d.ts.map +1 -0
- package/dist/protocols/dash-cmaf/parse.js +586 -0
- package/dist/protocols/dash-cmaf/parse.js.map +1 -0
- package/dist/protocols/dash-live/index.d.ts +4 -0
- package/dist/protocols/dash-live/index.d.ts.map +1 -0
- package/dist/protocols/dash-live/index.js +188 -0
- package/dist/protocols/dash-live/index.js.map +1 -0
- package/dist/protocols/hls-cmaf/index.d.ts +17 -0
- package/dist/protocols/hls-cmaf/index.d.ts.map +1 -0
- package/dist/protocols/hls-cmaf/index.js +189 -0
- package/dist/protocols/hls-cmaf/index.js.map +1 -0
- package/dist/protocols/hls-cmaf/lexer.d.ts +25 -0
- package/dist/protocols/hls-cmaf/lexer.d.ts.map +1 -0
- package/dist/protocols/hls-cmaf/lexer.js +81 -0
- package/dist/protocols/hls-cmaf/lexer.js.map +1 -0
- package/dist/protocols/hls-cmaf/parse.d.ts +57 -0
- package/dist/protocols/hls-cmaf/parse.d.ts.map +1 -0
- package/dist/protocols/hls-cmaf/parse.js +572 -0
- package/dist/protocols/hls-cmaf/parse.js.map +1 -0
- package/dist/protocols/hls-live/index.d.ts +4 -0
- package/dist/protocols/hls-live/index.d.ts.map +1 -0
- package/dist/protocols/hls-live/index.js +309 -0
- package/dist/protocols/hls-live/index.js.map +1 -0
- package/dist/protocols/live-shared.d.ts +21 -0
- package/dist/protocols/live-shared.d.ts.map +1 -0
- package/dist/protocols/live-shared.js +32 -0
- package/dist/protocols/live-shared.js.map +1 -0
- package/dist/stages/abr/index.d.ts +16 -0
- package/dist/stages/abr/index.d.ts.map +1 -0
- package/dist/stages/abr/index.js +176 -0
- package/dist/stages/abr/index.js.map +1 -0
- package/dist/stages/abr-cap-size/index.d.ts +8 -0
- package/dist/stages/abr-cap-size/index.d.ts.map +1 -0
- package/dist/stages/abr-cap-size/index.js +21 -0
- package/dist/stages/abr-cap-size/index.js.map +1 -0
- package/dist/stages/abr-persist/index.d.ts +8 -0
- package/dist/stages/abr-persist/index.d.ts.map +1 -0
- package/dist/stages/abr-persist/index.js +44 -0
- package/dist/stages/abr-persist/index.js.map +1 -0
- package/dist/stages/aes-128/index.d.ts +15 -0
- package/dist/stages/aes-128/index.d.ts.map +1 -0
- package/dist/stages/aes-128/index.js +78 -0
- package/dist/stages/aes-128/index.js.map +1 -0
- package/dist/stages/alt-audio/index.d.ts +4 -0
- package/dist/stages/alt-audio/index.d.ts.map +1 -0
- package/dist/stages/alt-audio/index.js +90 -0
- package/dist/stages/alt-audio/index.js.map +1 -0
- package/dist/stages/cmaf-timing/index.d.ts +3 -0
- package/dist/stages/cmaf-timing/index.d.ts.map +1 -0
- package/dist/stages/cmaf-timing/index.js +56 -0
- package/dist/stages/cmaf-timing/index.js.map +1 -0
- package/dist/stages/cmcd/index.d.ts +22 -0
- package/dist/stages/cmcd/index.d.ts.map +1 -0
- package/dist/stages/cmcd/index.js +92 -0
- package/dist/stages/cmcd/index.js.map +1 -0
- package/dist/stages/codec-probe/index.d.ts +9 -0
- package/dist/stages/codec-probe/index.d.ts.map +1 -0
- package/dist/stages/codec-probe/index.js +68 -0
- package/dist/stages/codec-probe/index.js.map +1 -0
- package/dist/stages/codec-switch/index.d.ts +6 -0
- package/dist/stages/codec-switch/index.d.ts.map +1 -0
- package/dist/stages/codec-switch/index.js +59 -0
- package/dist/stages/codec-switch/index.js.map +1 -0
- package/dist/stages/content-steering/index.d.ts +4 -0
- package/dist/stages/content-steering/index.d.ts.map +1 -0
- package/dist/stages/content-steering/index.js +174 -0
- package/dist/stages/content-steering/index.js.map +1 -0
- package/dist/stages/drm-shared.d.ts +46 -0
- package/dist/stages/drm-shared.d.ts.map +1 -0
- package/dist/stages/drm-shared.js +28 -0
- package/dist/stages/drm-shared.js.map +1 -0
- package/dist/stages/eme-cenc/index.d.ts +12 -0
- package/dist/stages/eme-cenc/index.d.ts.map +1 -0
- package/dist/stages/eme-cenc/index.js +53 -0
- package/dist/stages/eme-cenc/index.js.map +1 -0
- package/dist/stages/eme-core/index.d.ts +29 -0
- package/dist/stages/eme-core/index.d.ts.map +1 -0
- package/dist/stages/eme-core/index.js +244 -0
- package/dist/stages/eme-core/index.js.map +1 -0
- package/dist/stages/eme-fairplay/index.d.ts +20 -0
- package/dist/stages/eme-fairplay/index.d.ts.map +1 -0
- package/dist/stages/eme-fairplay/index.js +59 -0
- package/dist/stages/eme-fairplay/index.js.map +1 -0
- package/dist/stages/meta-id3/index.d.ts +14 -0
- package/dist/stages/meta-id3/index.d.ts.map +1 -0
- package/dist/stages/meta-id3/index.js +30 -0
- package/dist/stages/meta-id3/index.js.map +1 -0
- package/dist/stages/mp4-box/index.d.ts +3 -0
- package/dist/stages/mp4-box/index.d.ts.map +1 -0
- package/dist/stages/mp4-box/index.js +19 -0
- package/dist/stages/mp4-box/index.js.map +1 -0
- package/dist/stages/nal-scan/index.d.ts +3 -0
- package/dist/stages/nal-scan/index.d.ts.map +1 -0
- package/dist/stages/nal-scan/index.js +123 -0
- package/dist/stages/nal-scan/index.js.map +1 -0
- package/dist/stages/pdt/index.d.ts +14 -0
- package/dist/stages/pdt/index.d.ts.map +1 -0
- package/dist/stages/pdt/index.js +34 -0
- package/dist/stages/pdt/index.js.map +1 -0
- package/dist/stages/recovery/index.d.ts +16 -0
- package/dist/stages/recovery/index.d.ts.map +1 -0
- package/dist/stages/recovery/index.js +270 -0
- package/dist/stages/recovery/index.js.map +1 -0
- package/dist/stages/text-cea608/decode.d.ts +44 -0
- package/dist/stages/text-cea608/decode.d.ts.map +1 -0
- package/dist/stages/text-cea608/decode.js +225 -0
- package/dist/stages/text-cea608/decode.js.map +1 -0
- package/dist/stages/text-cea608/index.d.ts +3 -0
- package/dist/stages/text-cea608/index.d.ts.map +1 -0
- package/dist/stages/text-cea608/index.js +84 -0
- package/dist/stages/text-cea608/index.js.map +1 -0
- package/dist/stages/text-webvtt/index.d.ts +3 -0
- package/dist/stages/text-webvtt/index.d.ts.map +1 -0
- package/dist/stages/text-webvtt/index.js +82 -0
- package/dist/stages/text-webvtt/index.js.map +1 -0
- package/dist/stages/text-webvtt/parse.d.ts +19 -0
- package/dist/stages/text-webvtt/parse.d.ts.map +1 -0
- package/dist/stages/text-webvtt/parse.js +62 -0
- package/dist/stages/text-webvtt/parse.js.map +1 -0
- package/dist/stages/text-webvtt-segmented/index.d.ts +5 -0
- package/dist/stages/text-webvtt-segmented/index.d.ts.map +1 -0
- package/dist/stages/text-webvtt-segmented/index.js +63 -0
- package/dist/stages/text-webvtt-segmented/index.js.map +1 -0
- package/dist/stages/thumbnails/index.d.ts +34 -0
- package/dist/stages/thumbnails/index.d.ts.map +1 -0
- package/dist/stages/thumbnails/index.js +58 -0
- package/dist/stages/thumbnails/index.js.map +1 -0
- package/dist/types/error.d.ts +33 -0
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/error.js +7 -0
- package/dist/types/error.js.map +1 -0
- package/dist/types/facade.d.ts +104 -0
- package/dist/types/facade.d.ts.map +1 -0
- package/dist/types/facade.js +2 -0
- package/dist/types/facade.js.map +1 -0
- package/dist/types/ir.d.ts +238 -0
- package/dist/types/ir.d.ts.map +1 -0
- package/dist/types/ir.js +7 -0
- package/dist/types/ir.js.map +1 -0
- package/dist/types/kernel.d.ts +217 -0
- package/dist/types/kernel.d.ts.map +1 -0
- package/dist/types/kernel.js +2 -0
- package/dist/types/kernel.js.map +1 -0
- package/dist/types/messages.d.ts +288 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/messages.js +2 -0
- package/dist/types/messages.js.map +1 -0
- package/dist/types/quality.d.ts +108 -0
- package/dist/types/quality.d.ts.map +1 -0
- package/dist/types/quality.js +2 -0
- package/dist/types/quality.js.map +1 -0
- package/dist/types/sink.d.ts +27 -0
- package/dist/types/sink.d.ts.map +1 -0
- package/dist/types/sink.js +2 -0
- package/dist/types/sink.js.map +1 -0
- package/dist/types/stage.d.ts +139 -0
- package/dist/types/stage.d.ts.map +1 -0
- package/dist/types/stage.js +2 -0
- package/dist/types/stage.js.map +1 -0
- package/package.json +132 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/presets/full/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,IAAI,MAAM,4BAA4B,CAAC;AAC9C,OAAO,UAAU,MAAM,mCAAmC,CAAC;AAC3D,OAAO,MAAM,MAAM,+BAA+B,CAAC;AACnD,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;IACxC,GAAG,OAAO,EAAE;IACZ,GAAG,QAAQ,EAAE;IACb,GAAG,IAAI,EAAE;IACT,GAAG,MAAM,EAAE;IACX,GAAG,OAAO,EAAE;IACZ,MAAM,EAAE;IACR,UAAU,EAAE;IACZ,IAAI,EAAE;IACN,UAAU,EAAE;CACb,CAAC,CAAC;AACH,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presets/hls/index.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,MAAM,6BAAuD,CAAC;AACpE,eAAe,MAAM,CAAC;AACtB,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `hls` preset: HLS on demand and live, CMAF segments, the base.
|
|
3
|
+
*/
|
|
4
|
+
import { definePreset } from '../define.js';
|
|
5
|
+
import { base, hlsLine } from '../tiers.js';
|
|
6
|
+
const preset = definePreset('hls', () => [...hlsLine(), ...base()]);
|
|
7
|
+
export default preset;
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/presets/hls/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AACpE,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presets/hls-drm/index.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,MAAM,6BAAyE,CAAC;AACtF,eAAe,MAAM,CAAC;AACtB,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `hls-drm` preset: `hls` plus the EME stages, for protected HLS.
|
|
3
|
+
*/
|
|
4
|
+
import { definePreset } from '../define.js';
|
|
5
|
+
import { base, drmTier, hlsLine } from '../tiers.js';
|
|
6
|
+
const preset = definePreset('hls-drm', () => [...hlsLine(), ...base(), ...drmTier()]);
|
|
7
|
+
export default preset;
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/presets/hls-drm/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;AACtF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presets/hls-ts/index.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,MAAM,6BAAuE,CAAC;AACpF,eAAe,MAAM,CAAC;AACtB,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `hls-ts` preset: `hls` plus the MPEG-TS family, for a backend that still emits transport streams.
|
|
3
|
+
*/
|
|
4
|
+
import { definePreset } from '../define.js';
|
|
5
|
+
import { base, hlsLine, tsTier } from '../tiers.js';
|
|
6
|
+
const preset = definePreset('hls-ts', () => [...hlsLine(), ...base(), ...tsTier()]);
|
|
7
|
+
export default preset;
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/presets/hls-ts/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;AACpF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presets/hls-ts-drm/index.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,MAAM,6BAKV,CAAC;AACH,eAAe,MAAM,CAAC;AACtB,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `hls-ts-drm` preset: `hls-ts` plus the EME stages.
|
|
3
|
+
*/
|
|
4
|
+
import { definePreset } from '../define.js';
|
|
5
|
+
import { base, drmTier, hlsLine, tsTier } from '../tiers.js';
|
|
6
|
+
const preset = definePreset('hls-ts-drm', () => [
|
|
7
|
+
...hlsLine(),
|
|
8
|
+
...base(),
|
|
9
|
+
...tsTier(),
|
|
10
|
+
...drmTier(),
|
|
11
|
+
]);
|
|
12
|
+
export default preset;
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/presets/hls-ts-drm/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC;IAC9C,GAAG,OAAO,EAAE;IACZ,GAAG,IAAI,EAAE;IACT,GAAG,MAAM,EAAE;IACX,GAAG,OAAO,EAAE;CACb,CAAC,CAAC;AACH,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presets/kernel/index.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,MAAM,6BAAmC,CAAC;AAChD,eAAe,MAAM,CAAC;AACtB,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `kernel` preset: the engine with zero stages. It attaches and manages
|
|
3
|
+
* buffers but parses nothing; it is the floor the size budget measures and
|
|
4
|
+
* the base to build a fully custom stack on with `stages`.
|
|
5
|
+
*/
|
|
6
|
+
import { definePreset } from '../define.js';
|
|
7
|
+
const preset = definePreset('kernel', () => []);
|
|
8
|
+
export default preset;
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/presets/kernel/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The abr-persist storage the presets inject: localStorage, guarded. The
|
|
3
|
+
* stage itself never assumes a storage exists (TV runtimes and privacy
|
|
4
|
+
* modes throw on access); a preset has to pick one, and a throwing or
|
|
5
|
+
* absent localStorage degrades to remembering nothing.
|
|
6
|
+
*/
|
|
7
|
+
import type { AbrPersistStorage } from '../stages/abr-persist/index.js';
|
|
8
|
+
export declare function localThroughputStorage(key?: string): AbrPersistStorage;
|
|
9
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/presets/storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAIxE,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAY,GAAG,iBAAiB,CAmB3E"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const KEY = 'mattebox:throughput';
|
|
2
|
+
export function localThroughputStorage(key = KEY) {
|
|
3
|
+
return {
|
|
4
|
+
get() {
|
|
5
|
+
try {
|
|
6
|
+
const value = globalThis.localStorage?.getItem(key);
|
|
7
|
+
const bps = value === null || value === undefined ? Number.NaN : Number(value);
|
|
8
|
+
return Number.isFinite(bps) && bps > 0 ? bps : null;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
set(bps) {
|
|
15
|
+
try {
|
|
16
|
+
globalThis.localStorage?.setItem(key, String(Math.round(bps)));
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
// Quota, privacy mode, or no storage: forgetting is the documented fallback.
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/presets/storage.ts"],"names":[],"mappings":"AAQA,MAAM,GAAG,GAAG,qBAAqB,CAAC;AAElC,MAAM,UAAU,sBAAsB,CAAC,MAAc,GAAG;IACtD,OAAO;QACL,GAAG;YACD,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/E,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,GAAG,CAAC,GAAG;YACL,IAAI,CAAC;gBACH,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;YAAC,MAAM,CAAC;gBACP,6EAA6E;YAC/E,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Stage } from '../types/stage.js';
|
|
2
|
+
/** HLS on demand and live, with program date time. */
|
|
3
|
+
export declare function hlsLine(): Stage[];
|
|
4
|
+
/** DASH on demand and live. */
|
|
5
|
+
export declare function dashLine(): Stage[];
|
|
6
|
+
/**
|
|
7
|
+
* What every preset carries: adaptive quality with a size cap and bandwidth
|
|
8
|
+
* memory, recovery, content steering (inert until a manifest asks for it),
|
|
9
|
+
* alternate audio with codec switching, WebVTT subtitles, and CMAF live
|
|
10
|
+
* timing, which corrects the broadcast-clock tfdt some live packagers write
|
|
11
|
+
* and leaves VOD untouched.
|
|
12
|
+
*/
|
|
13
|
+
export declare function base(): Stage[];
|
|
14
|
+
/**
|
|
15
|
+
* Legacy MPEG-TS: the transmuxer and packed audio, plus what rides on the
|
|
16
|
+
* transport stream, CEA-608 captions and ID3 metadata. nal-scan is included
|
|
17
|
+
* so a mixed backend gets the same captions from its CMAF renditions.
|
|
18
|
+
*/
|
|
19
|
+
export declare function tsTier(): Stage[];
|
|
20
|
+
/** The EME stages: sessions, CENC (Widevine, PlayReady, ClearKey), FairPlay. */
|
|
21
|
+
export declare function drmTier(): Stage[];
|
|
22
|
+
//# sourceMappingURL=tiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tiers.d.ts","sourceRoot":"","sources":["../../src/presets/tiers.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C,sDAAsD;AACtD,wBAAgB,OAAO,IAAI,KAAK,EAAE,CAIjC;AAED,+BAA+B;AAC/B,wBAAgB,QAAQ,IAAI,KAAK,EAAE,CAElC;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,IAAI,KAAK,EAAE,CAa9B;AAED;;;;GAIG;AACH,wBAAgB,MAAM,IAAI,KAAK,EAAE,CAEhC;AAED,gFAAgF;AAChF,wBAAgB,OAAO,IAAI,KAAK,EAAE,CAEjC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The building blocks of the preset matrix. Three axes answer a technical
|
|
3
|
+
* requirement, each set by the packaging backend or the rights situation:
|
|
4
|
+
* the protocol line (HLS, DASH, both), the container tier (CMAF only, or
|
|
5
|
+
* legacy MPEG-TS as well, an HLS-side axis), and the DRM tier. Every preset
|
|
6
|
+
* carries the same base on top of its line. Each group is a function so a
|
|
7
|
+
* preset gets fresh stage instances, and a group a preset never calls
|
|
8
|
+
* tree-shakes out of it with the stages it imports.
|
|
9
|
+
*/
|
|
10
|
+
import packedAudio from '../containers/packed-audio/index.js';
|
|
11
|
+
import tsTransmux from '../containers/ts-transmux/index.js';
|
|
12
|
+
import dashCmaf from '../protocols/dash-cmaf/index.js';
|
|
13
|
+
import dashLive from '../protocols/dash-live/index.js';
|
|
14
|
+
import hlsCmaf from '../protocols/hls-cmaf/index.js';
|
|
15
|
+
import hlsLive from '../protocols/hls-live/index.js';
|
|
16
|
+
import abr from '../stages/abr/index.js';
|
|
17
|
+
import abrCapSize from '../stages/abr-cap-size/index.js';
|
|
18
|
+
import abrPersist from '../stages/abr-persist/index.js';
|
|
19
|
+
import aes128 from '../stages/aes-128/index.js';
|
|
20
|
+
import altAudio from '../stages/alt-audio/index.js';
|
|
21
|
+
import cmafTiming from '../stages/cmaf-timing/index.js';
|
|
22
|
+
import codecSwitch from '../stages/codec-switch/index.js';
|
|
23
|
+
import contentSteering from '../stages/content-steering/index.js';
|
|
24
|
+
import emeCenc from '../stages/eme-cenc/index.js';
|
|
25
|
+
import emeCore from '../stages/eme-core/index.js';
|
|
26
|
+
import emeFairplay from '../stages/eme-fairplay/index.js';
|
|
27
|
+
import metaId3 from '../stages/meta-id3/index.js';
|
|
28
|
+
import nalScan from '../stages/nal-scan/index.js';
|
|
29
|
+
import pdt from '../stages/pdt/index.js';
|
|
30
|
+
import recovery from '../stages/recovery/index.js';
|
|
31
|
+
import textCea608 from '../stages/text-cea608/index.js';
|
|
32
|
+
import textWebvtt from '../stages/text-webvtt/index.js';
|
|
33
|
+
import textWebvttSegmented from '../stages/text-webvtt-segmented/index.js';
|
|
34
|
+
import { localThroughputStorage } from './storage.js';
|
|
35
|
+
/** HLS on demand and live, with program date time. */
|
|
36
|
+
export function hlsLine() {
|
|
37
|
+
// AES-128 rides with HLS: full-segment keys are common enough on HLS, and
|
|
38
|
+
// the stage is a kilobyte, so no HLS deployment should meet one unprepared.
|
|
39
|
+
return [hlsCmaf(), hlsLive(), pdt(), aes128()];
|
|
40
|
+
}
|
|
41
|
+
/** DASH on demand and live. */
|
|
42
|
+
export function dashLine() {
|
|
43
|
+
return [dashCmaf(), dashLive()];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* What every preset carries: adaptive quality with a size cap and bandwidth
|
|
47
|
+
* memory, recovery, content steering (inert until a manifest asks for it),
|
|
48
|
+
* alternate audio with codec switching, WebVTT subtitles, and CMAF live
|
|
49
|
+
* timing, which corrects the broadcast-clock tfdt some live packagers write
|
|
50
|
+
* and leaves VOD untouched.
|
|
51
|
+
*/
|
|
52
|
+
export function base() {
|
|
53
|
+
return [
|
|
54
|
+
abr(),
|
|
55
|
+
abrCapSize(),
|
|
56
|
+
abrPersist(localThroughputStorage()),
|
|
57
|
+
recovery(),
|
|
58
|
+
contentSteering(),
|
|
59
|
+
codecSwitch(),
|
|
60
|
+
altAudio(),
|
|
61
|
+
textWebvtt(),
|
|
62
|
+
textWebvttSegmented(),
|
|
63
|
+
cmafTiming(),
|
|
64
|
+
];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Legacy MPEG-TS: the transmuxer and packed audio, plus what rides on the
|
|
68
|
+
* transport stream, CEA-608 captions and ID3 metadata. nal-scan is included
|
|
69
|
+
* so a mixed backend gets the same captions from its CMAF renditions.
|
|
70
|
+
*/
|
|
71
|
+
export function tsTier() {
|
|
72
|
+
return [tsTransmux(), packedAudio(), nalScan(), textCea608(), metaId3()];
|
|
73
|
+
}
|
|
74
|
+
/** The EME stages: sessions, CENC (Widevine, PlayReady, ClearKey), FairPlay. */
|
|
75
|
+
export function drmTier() {
|
|
76
|
+
return [emeCore(), emeCenc(), emeFairplay()];
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=tiers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tiers.js","sourceRoot":"","sources":["../../src/presets/tiers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,WAAW,MAAM,qCAAqC,CAAC;AAC9D,OAAO,UAAU,MAAM,oCAAoC,CAAC;AAC5D,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,OAAO,MAAM,gCAAgC,CAAC;AACrD,OAAO,OAAO,MAAM,gCAAgC,CAAC;AACrD,OAAO,GAAG,MAAM,wBAAwB,CAAC;AACzC,OAAO,UAAU,MAAM,iCAAiC,CAAC;AACzD,OAAO,UAAU,MAAM,gCAAgC,CAAC;AACxD,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AACpD,OAAO,UAAU,MAAM,gCAAgC,CAAC;AACxD,OAAO,WAAW,MAAM,iCAAiC,CAAC;AAC1D,OAAO,eAAe,MAAM,qCAAqC,CAAC;AAClE,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,WAAW,MAAM,iCAAiC,CAAC;AAC1D,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,GAAG,MAAM,wBAAwB,CAAC;AACzC,OAAO,QAAQ,MAAM,6BAA6B,CAAC;AACnD,OAAO,UAAU,MAAM,gCAAgC,CAAC;AACxD,OAAO,UAAU,MAAM,gCAAgC,CAAC;AACxD,OAAO,mBAAmB,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,sDAAsD;AACtD,MAAM,UAAU,OAAO;IACrB,0EAA0E;IAC1E,4EAA4E;IAC5E,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO;QACL,GAAG,EAAE;QACL,UAAU,EAAE;QACZ,UAAU,CAAC,sBAAsB,EAAE,CAAC;QACpC,QAAQ,EAAE;QACV,eAAe,EAAE;QACjB,WAAW,EAAE;QACb,QAAQ,EAAE;QACV,UAAU,EAAE;QACZ,mBAAmB,EAAE;QACrB,UAAU,EAAE;KACb,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,OAAO;IACrB,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The dash-cmaf protocol adapter as a stage. Inert module: exports a
|
|
3
|
+
* factory, registers nothing at import time.
|
|
4
|
+
*
|
|
5
|
+
* A templated MPD (SegmentTemplate) is self-contained: one manifest fetch
|
|
6
|
+
* parses straight into a complete Presentation with lazy indexed addressing.
|
|
7
|
+
* The on-demand profile (SegmentBase) is not: each Representation is one file
|
|
8
|
+
* indexed by a `sidx` box, so the concrete segments are unknown until that box
|
|
9
|
+
* is fetched. That second phase mirrors HLS's media-playlist fetch: the parse
|
|
10
|
+
* emits `sidx` addressing, this slice fetches the index byte range under a
|
|
11
|
+
* `dash:idx:` token the transport correlates back, parses it, and merges the
|
|
12
|
+
* resolved segments into the presentation.
|
|
13
|
+
*/
|
|
14
|
+
import type { Stage } from '../../types/stage.js';
|
|
15
|
+
/**
|
|
16
|
+
* The stage factory. `mattebox({ stages: [dashCmaf()] })` is all a consumer
|
|
17
|
+
* needs for DASH-CMAF VOD, templated or on-demand.
|
|
18
|
+
*/
|
|
19
|
+
export default function dashCmaf(): Stage;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/protocols/dash-cmaf/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAqKlD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,IAAI,KAAK,CAQxC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The dash-cmaf protocol adapter as a stage. Inert module: exports a
|
|
3
|
+
* factory, registers nothing at import time.
|
|
4
|
+
*
|
|
5
|
+
* A templated MPD (SegmentTemplate) is self-contained: one manifest fetch
|
|
6
|
+
* parses straight into a complete Presentation with lazy indexed addressing.
|
|
7
|
+
* The on-demand profile (SegmentBase) is not: each Representation is one file
|
|
8
|
+
* indexed by a `sidx` box, so the concrete segments are unknown until that box
|
|
9
|
+
* is fetched. That second phase mirrors HLS's media-playlist fetch: the parse
|
|
10
|
+
* emits `sidx` addressing, this slice fetches the index byte range under a
|
|
11
|
+
* `dash:idx:` token the transport correlates back, parses it, and merges the
|
|
12
|
+
* resolved segments into the presentation.
|
|
13
|
+
*/
|
|
14
|
+
import { normalizeMimeType } from '../../kernel/mime.js';
|
|
15
|
+
import { mergeSidx, parse, sidxToSegments } from './parse.js';
|
|
16
|
+
const INDEX_TOKEN = 'dash:idx:';
|
|
17
|
+
/** The MPD MIME type, ISO 23009-1 §C.2. */
|
|
18
|
+
const MANIFEST_TYPES = ['application/dash+xml'];
|
|
19
|
+
/** Unresolved on-demand addressing, or null for an explicit list or template. */
|
|
20
|
+
function asSidx(addressing) {
|
|
21
|
+
if (addressing === undefined || Array.isArray(addressing))
|
|
22
|
+
return null;
|
|
23
|
+
const candidate = addressing;
|
|
24
|
+
return candidate.kind === 'sidx' ? candidate : null;
|
|
25
|
+
}
|
|
26
|
+
const INITIAL = { manifestUrl: null, mimeType: null, pending: {} };
|
|
27
|
+
/**
|
|
28
|
+
* Whether this adapter owns the manifest bytes. An explicit mimeType
|
|
29
|
+
* decides alone; without one, an MPD is an XML document and starts with
|
|
30
|
+
* '<'. The parser reports a wrong root element as a parse failure.
|
|
31
|
+
*/
|
|
32
|
+
function claims(state, text) {
|
|
33
|
+
if (state.mimeType !== null)
|
|
34
|
+
return MANIFEST_TYPES.includes(state.mimeType);
|
|
35
|
+
return text.trimStart().startsWith('<');
|
|
36
|
+
}
|
|
37
|
+
function findRendition(presentation, renditionId) {
|
|
38
|
+
for (const period of presentation.periods) {
|
|
39
|
+
for (const track of period.tracks) {
|
|
40
|
+
for (const rendition of track.renditions) {
|
|
41
|
+
if (rendition.id === renditionId)
|
|
42
|
+
return rendition;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The renditions whose sidx index still needs fetching: every rendition of
|
|
50
|
+
* every active track. Resolving only the "chosen" one is not enough, because
|
|
51
|
+
* the kernel selects the audio rendition independently (an audio adaptation
|
|
52
|
+
* set often has several bitrates) and may pick a different one than this slice
|
|
53
|
+
* would; its segments would then stay unresolved and the audio buffer would
|
|
54
|
+
* never fill, stalling playback since the element's buffered range is the
|
|
55
|
+
* intersection across all source buffers. Resolving them all also means an ABR
|
|
56
|
+
* switch finds its target already indexed. The fetches are one small range
|
|
57
|
+
* each, so the cost is negligible.
|
|
58
|
+
*/
|
|
59
|
+
function neededIndexes(kernel) {
|
|
60
|
+
const presentation = kernel.presentation;
|
|
61
|
+
if (presentation === null)
|
|
62
|
+
return [];
|
|
63
|
+
const activeIds = new Set(['video', 'audio', 'text']
|
|
64
|
+
.map((contentType) => kernel.tracks.active.get(contentType))
|
|
65
|
+
.filter((id) => id !== undefined));
|
|
66
|
+
const needed = [];
|
|
67
|
+
for (const period of presentation.periods) {
|
|
68
|
+
for (const track of period.tracks) {
|
|
69
|
+
if (!activeIds.has(track.id))
|
|
70
|
+
continue;
|
|
71
|
+
for (const rendition of track.renditions) {
|
|
72
|
+
if (asSidx(rendition.segments) !== null)
|
|
73
|
+
needed.push(rendition);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return needed;
|
|
78
|
+
}
|
|
79
|
+
/** Loops a message back into the bus through a zero-delay schedule effect. */
|
|
80
|
+
function feed(message) {
|
|
81
|
+
// biome-ignore lint/suspicious/noThenProperty: `then` is the schedule effect's field name from the message taxonomy
|
|
82
|
+
return { kind: 'schedule', token: 'dash:loopback', delayMs: 0, then: message };
|
|
83
|
+
}
|
|
84
|
+
const reduceDash = (slice, msg, kernel) => {
|
|
85
|
+
const state = slice ?? INITIAL;
|
|
86
|
+
if (msg.type === 'LOAD') {
|
|
87
|
+
return [
|
|
88
|
+
{
|
|
89
|
+
manifestUrl: msg.url,
|
|
90
|
+
mimeType: msg.mimeType === undefined ? null : normalizeMimeType(msg.mimeType),
|
|
91
|
+
pending: {},
|
|
92
|
+
},
|
|
93
|
+
[],
|
|
94
|
+
];
|
|
95
|
+
}
|
|
96
|
+
if (msg.type === 'UNLOAD' || msg.type === 'DETACH') {
|
|
97
|
+
return [INITIAL, []];
|
|
98
|
+
}
|
|
99
|
+
if (msg.type === 'SEGMENT_LOADED' && msg.trackId === 'manifest' && state.manifestUrl !== null) {
|
|
100
|
+
const text = new TextDecoder().decode(msg.bytes);
|
|
101
|
+
// Declining returns no effect; the kernel reports bytes nobody claims.
|
|
102
|
+
if (!claims(state, text))
|
|
103
|
+
return [state, []];
|
|
104
|
+
const result = parse(text, state.manifestUrl);
|
|
105
|
+
if (result.presentation === null) {
|
|
106
|
+
return [
|
|
107
|
+
state,
|
|
108
|
+
[
|
|
109
|
+
feed({
|
|
110
|
+
type: 'MANIFEST_FAILED',
|
|
111
|
+
error: result.error ?? {
|
|
112
|
+
category: 'manifest',
|
|
113
|
+
code: 'MANIFEST_PARSE_FAILED',
|
|
114
|
+
fatal: true,
|
|
115
|
+
recoverable: false,
|
|
116
|
+
},
|
|
117
|
+
}),
|
|
118
|
+
],
|
|
119
|
+
];
|
|
120
|
+
}
|
|
121
|
+
return [state, [feed({ type: 'MANIFEST_LOADED', presentation: result.presentation })]];
|
|
122
|
+
}
|
|
123
|
+
// A fetched sidx index resolves one Representation's segments.
|
|
124
|
+
if (msg.type === 'SEGMENT_LOADED' && msg.trackId.startsWith(INDEX_TOKEN)) {
|
|
125
|
+
const renditionId = state.pending[msg.trackId];
|
|
126
|
+
if (renditionId === undefined || kernel.presentation === null)
|
|
127
|
+
return [state, []];
|
|
128
|
+
const rendition = findRendition(kernel.presentation, renditionId);
|
|
129
|
+
const pending = { ...state.pending };
|
|
130
|
+
delete pending[msg.trackId];
|
|
131
|
+
const sidx = asSidx(rendition?.segments);
|
|
132
|
+
if (sidx === null) {
|
|
133
|
+
return [{ ...state, pending }, []];
|
|
134
|
+
}
|
|
135
|
+
const segments = sidxToSegments(new Uint8Array(msg.bytes), sidx);
|
|
136
|
+
if (segments.length === 0)
|
|
137
|
+
return [{ ...state, pending }, []];
|
|
138
|
+
const merged = mergeSidx(kernel.presentation, renditionId, segments);
|
|
139
|
+
return [{ ...state, pending }, [feed({ type: 'MANIFEST_LOADED', presentation: merged })]];
|
|
140
|
+
}
|
|
141
|
+
// After a manifest lands or time moves, fetch any sidx index the current
|
|
142
|
+
// selection still lacks.
|
|
143
|
+
if (msg.type === 'MANIFEST_LOADED' || msg.type === 'TIME_UPDATE') {
|
|
144
|
+
const needed = neededIndexes(kernel).filter((rendition) => !Object.values(state.pending).includes(rendition.id));
|
|
145
|
+
if (needed.length === 0)
|
|
146
|
+
return [state, []];
|
|
147
|
+
const effects = [];
|
|
148
|
+
const pending = { ...state.pending };
|
|
149
|
+
for (const rendition of needed) {
|
|
150
|
+
const token = `${INDEX_TOKEN}${rendition.id}`;
|
|
151
|
+
if (pending[token] !== undefined)
|
|
152
|
+
continue;
|
|
153
|
+
const sidx = asSidx(rendition.segments);
|
|
154
|
+
if (sidx === null)
|
|
155
|
+
continue;
|
|
156
|
+
pending[token] = rendition.id;
|
|
157
|
+
effects.push({ kind: 'fetch', token, url: sidx.url, range: sidx.indexRange });
|
|
158
|
+
}
|
|
159
|
+
return [{ ...state, pending }, effects];
|
|
160
|
+
}
|
|
161
|
+
return [state, []];
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* The stage factory. `mattebox({ stages: [dashCmaf()] })` is all a consumer
|
|
165
|
+
* needs for DASH-CMAF VOD, templated or on-demand.
|
|
166
|
+
*/
|
|
167
|
+
export default function dashCmaf() {
|
|
168
|
+
return {
|
|
169
|
+
name: 'dash-cmaf',
|
|
170
|
+
provides: ['dash-cmaf', ...MANIFEST_TYPES],
|
|
171
|
+
install(ctx) {
|
|
172
|
+
ctx.reduce('dash', reduceDash);
|
|
173
|
+
},
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/protocols/dash-cmaf/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { MatteboxError } from '../../types/error.js';
|
|
2
|
+
import type { Presentation, Segment, SidxSegments } from '../../types/ir.js';
|
|
3
|
+
export interface ParseResult {
|
|
4
|
+
readonly presentation: Presentation | null;
|
|
5
|
+
readonly error: MatteboxError | null;
|
|
6
|
+
}
|
|
7
|
+
/** ISO 8601 duration to seconds. Date parts use nominal day lengths. */
|
|
8
|
+
export declare function parseDuration(value: string | null): number | null;
|
|
9
|
+
/** parse an MPD document into a Presentation. Never throws. */
|
|
10
|
+
export declare function parse(text: string, baseUrl: string): ParseResult;
|
|
11
|
+
/**
|
|
12
|
+
* Turns a fetched sidx box into explicit byte-range segments. The first media
|
|
13
|
+
* byte sits immediately after the sidx box (indexRange.end + 1) plus the box's
|
|
14
|
+
* own firstOffset; each reference then names one subsegment's byte size and
|
|
15
|
+
* duration in timescale units. ISO/IEC 14496-12 SegmentIndexBox.
|
|
16
|
+
*/
|
|
17
|
+
export declare function sidxToSegments(sidxBytes: Uint8Array, addressing: SidxSegments): Segment[];
|
|
18
|
+
/**
|
|
19
|
+
* Immutably swaps a rendition's unresolved sidx addressing for the explicit
|
|
20
|
+
* segment list parsed from its index box. Everything else about the
|
|
21
|
+
* presentation is already known from the MPD.
|
|
22
|
+
*/
|
|
23
|
+
export declare function mergeSidx(presentation: Presentation, renditionId: string, segments: readonly Segment[]): Presentation;
|
|
24
|
+
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/protocols/dash-cmaf/parse.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAIV,YAAY,EAGZ,OAAO,EAGP,YAAY,EAEb,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;CACtC;AAoBD,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAgBjE;AAkOD,+DAA+D;AAC/D,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CA4RhE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,GAAG,OAAO,EAAE,CAyBzF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B,YAAY,CAiBd"}
|