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,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FairPlay Streaming: the non-standard SPC/CKC flow. Safari only, and it
|
|
3
|
+
* differs from CENC enough to warrant its own stage — the CDM message is
|
|
4
|
+
* an SPC to POST as form data, the response is a CKC, and the content id
|
|
5
|
+
* comes from the skd:// URI the hls parser stored in licenseUrl. Registers
|
|
6
|
+
* a handler; eme-core drives it, including the certificate fetch.
|
|
7
|
+
*/
|
|
8
|
+
import type { Stage } from '../../types/stage.js';
|
|
9
|
+
/** The content id from a skd:// init data blob: the URI's opaque tail. */
|
|
10
|
+
export declare function contentIdFromSkd(initData: ArrayBuffer): string;
|
|
11
|
+
/** Wraps the SPC as the `spc=` form body Apple's key servers expect. */
|
|
12
|
+
export declare function buildSpcRequest(message: ArrayBuffer): Uint8Array;
|
|
13
|
+
/** Decodes a CKC form/base64 response into the bytes session.update wants. */
|
|
14
|
+
export declare function parseCkcResponse(response: ArrayBuffer): ArrayBuffer | Uint8Array;
|
|
15
|
+
export interface FairPlayOptions {
|
|
16
|
+
/** The FairPlay application certificate URL; required for a real handshake. */
|
|
17
|
+
readonly certificateUrl?: string;
|
|
18
|
+
}
|
|
19
|
+
export default function emeFairplay(options?: FairPlayOptions): Stage;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stages/eme-fairplay/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAKlD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAI9D;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,CAKhE;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,WAAW,GAAG,UAAU,CAahF;AAED,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,OAAO,GAAE,eAAoB,GAAG,KAAK,CAuBxE"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { registerKeySystem } from '../drm-shared.js';
|
|
2
|
+
const FAIRPLAY_SYSTEM_ID = '94ce86fb-07ff-4f43-adb8-93d2fa968ca2';
|
|
3
|
+
/** The content id from a skd:// init data blob: the URI's opaque tail. */
|
|
4
|
+
export function contentIdFromSkd(initData) {
|
|
5
|
+
const text = new TextDecoder().decode(initData);
|
|
6
|
+
const match = /skd:\/\/(.+)$/.exec(text.trim());
|
|
7
|
+
return match !== null ? match[1] : text.trim();
|
|
8
|
+
}
|
|
9
|
+
/** Wraps the SPC as the `spc=` form body Apple's key servers expect. */
|
|
10
|
+
export function buildSpcRequest(message) {
|
|
11
|
+
let binary = '';
|
|
12
|
+
for (const b of new Uint8Array(message))
|
|
13
|
+
binary += String.fromCharCode(b);
|
|
14
|
+
const spc = btoa(binary);
|
|
15
|
+
return new TextEncoder().encode(`spc=${encodeURIComponent(spc)}`);
|
|
16
|
+
}
|
|
17
|
+
/** Decodes a CKC form/base64 response into the bytes session.update wants. */
|
|
18
|
+
export function parseCkcResponse(response) {
|
|
19
|
+
const text = new TextDecoder().decode(response).trim();
|
|
20
|
+
// A base64 or `ckc=<base64>` body; a binary body passes through.
|
|
21
|
+
const b64 = /^ckc=(.+)$/.exec(text)?.[1] ?? (/^[A-Za-z0-9+/=]+$/.test(text) ? text : null);
|
|
22
|
+
if (b64 === null)
|
|
23
|
+
return response;
|
|
24
|
+
try {
|
|
25
|
+
const binary = atob(decodeURIComponent(b64));
|
|
26
|
+
const bytes = new Uint8Array(binary.length);
|
|
27
|
+
for (let i = 0; i < binary.length; i += 1)
|
|
28
|
+
bytes[i] = binary.charCodeAt(i);
|
|
29
|
+
return bytes;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return response;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export default function emeFairplay(options = {}) {
|
|
36
|
+
return {
|
|
37
|
+
name: 'eme-fairplay',
|
|
38
|
+
provides: ['eme-fairplay'],
|
|
39
|
+
requires: ['eme-core'],
|
|
40
|
+
install() {
|
|
41
|
+
registerKeySystem({
|
|
42
|
+
keySystem: 'com.apple.fps',
|
|
43
|
+
systemIds: [FAIRPLAY_SYSTEM_ID],
|
|
44
|
+
initDataTypes: ['sinf', 'skd'],
|
|
45
|
+
licenseHeaders: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
46
|
+
buildLicenseRequest: buildSpcRequest,
|
|
47
|
+
parseLicenseResponse: parseCkcResponse,
|
|
48
|
+
fairplay: {
|
|
49
|
+
...(options.certificateUrl !== undefined
|
|
50
|
+
? { certificateUrl: options.certificateUrl }
|
|
51
|
+
: {}),
|
|
52
|
+
contentId: contentIdFromSkd,
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
return undefined;
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stages/eme-fairplay/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ID3 timed metadata as cues. A metadata rendition whose segments are ID3,
|
|
3
|
+
* or a packed-audio segment's leading ID3 tag, becomes zero-length cues on a
|
|
4
|
+
* metadata TextTrack through the same MetadataSink the emsg and DATERANGE
|
|
5
|
+
* paths use. The ID3 decoding itself lives in the container layer so this
|
|
6
|
+
* stage and packed-audio share it without importing each other.
|
|
7
|
+
*
|
|
8
|
+
* It requires `media-transform`, which ts-transmux and packed-audio both
|
|
9
|
+
* provide: ID3 only reaches the engine once one of them is decoding the
|
|
10
|
+
* legacy segments it rides in.
|
|
11
|
+
*/
|
|
12
|
+
import type { Stage } from '../../types/stage.js';
|
|
13
|
+
export default function metaId3(): Stage;
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stages/meta-id3/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAQlD,MAAM,CAAC,OAAO,UAAU,OAAO,IAAI,KAAK,CAYvC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ID3 timed metadata as cues. A metadata rendition whose segments are ID3,
|
|
3
|
+
* or a packed-audio segment's leading ID3 tag, becomes zero-length cues on a
|
|
4
|
+
* metadata TextTrack through the same MetadataSink the emsg and DATERANGE
|
|
5
|
+
* paths use. The ID3 decoding itself lives in the container layer so this
|
|
6
|
+
* stage and packed-audio share it without importing each other.
|
|
7
|
+
*
|
|
8
|
+
* It requires `media-transform`, which ts-transmux and packed-audio both
|
|
9
|
+
* provide: ID3 only reaches the engine once one of them is decoding the
|
|
10
|
+
* legacy segments it rides in.
|
|
11
|
+
*/
|
|
12
|
+
import { id3Cues } from '../../containers/id3.js';
|
|
13
|
+
import { createMetadataSink } from '../../kernel/sinks/metadata-sink.js';
|
|
14
|
+
function parseId3Segment(data, meta) {
|
|
15
|
+
// The segment's presentation start times every cue; a zero-length cue is
|
|
16
|
+
// how a point-in-time metadata event is represented.
|
|
17
|
+
return id3Cues(data, meta.start);
|
|
18
|
+
}
|
|
19
|
+
export default function metaId3() {
|
|
20
|
+
return {
|
|
21
|
+
name: 'meta-id3',
|
|
22
|
+
provides: ['meta-id3', { contentType: 'metadata', mimeType: 'application/id3' }],
|
|
23
|
+
requires: ['media-transform'],
|
|
24
|
+
install(ctx) {
|
|
25
|
+
ctx.registerParser('application/id3', parseId3Segment);
|
|
26
|
+
ctx.registerSink('metadata', ({ element }) => createMetadataSink({ element, parse: parseId3Segment, label: 'ID3' }));
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stages/meta-id3/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAKzE,SAAS,eAAe,CAAC,IAAgB,EAAE,IAAiB;IAC1D,yEAAyE;IACzE,qDAAqD;IACrD,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,OAAO;IAC7B,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;QAChF,QAAQ,EAAE,CAAC,iBAAiB,CAAC;QAC7B,OAAO,CAAC,GAAG;YACT,GAAG,CAAC,cAAc,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;YACvD,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAC3C,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACtE,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stages/mp4-box/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,OAAO,UAAU,MAAM,IAAI,KAAK,CAQtC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mp4-box as a loadable stage. The walker is a container-layer library used
|
|
3
|
+
* across the engine; this stage exposes it on the facade as `engine.mp4box`
|
|
4
|
+
* so a composition can inspect ISOBMFF box trees at runtime, which is what the
|
|
5
|
+
* playground uses to make the module observable rather than a silent
|
|
6
|
+
* dependency. Loading it also declares the `mp4-box` capability that
|
|
7
|
+
* codec-probe and the DASH addressing stages resolve against.
|
|
8
|
+
*/
|
|
9
|
+
import { findBox, findBoxes, parseSidx, parseTfdt, walkBoxes, } from '../../containers/mp4-box/index.js';
|
|
10
|
+
export default function mp4Box() {
|
|
11
|
+
return {
|
|
12
|
+
name: 'mp4-box',
|
|
13
|
+
provides: ['mp4-box'],
|
|
14
|
+
install(ctx) {
|
|
15
|
+
ctx.registerNamespace('mp4box', { walkBoxes, findBox, findBoxes, parseTfdt, parseSidx });
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stages/mp4-box/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,GACV,MAAM,mCAAmC,CAAC;AAG3C,MAAM,CAAC,OAAO,UAAU,MAAM;IAC5B,OAAO;QACL,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,OAAO,CAAC,GAAG;YACT,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3F,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stages/nal-scan/index.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA4DlD,MAAM,CAAC,OAAO,UAAU,OAAO,IAAI,KAAK,CAuDvC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* nal-scan exists only to reach captions in fMP4. On native CMAF content
|
|
3
|
+
* there is no transmux walking the NALs, so this stage does: it walks the
|
|
4
|
+
* moof and mdat, finds the SEI NAL units in each coded sample, times them
|
|
5
|
+
* from the fragment's tfdt and trun, and delivers the caption bytes to the
|
|
6
|
+
* same seam ts-transmux uses. It imports mp4-box for the box reads and the
|
|
7
|
+
* shared SEI decoder; it never imports text-cea608.
|
|
8
|
+
*
|
|
9
|
+
* It is not cheap and does not pretend to be: per entanglement #1 it loads
|
|
10
|
+
* only when a caption stage needs an fMP4 SEI source, and it does zero work
|
|
11
|
+
* when no caption consumer is registered.
|
|
12
|
+
*/
|
|
13
|
+
import { captionsWanted, deliverCaptions } from '../../containers/captions.js';
|
|
14
|
+
import { findBox, parseTfdt } from '../../containers/mp4-box/index.js';
|
|
15
|
+
import { ccTriplesFromSei } from '../../containers/sei.js';
|
|
16
|
+
/** After transmux (100) so it can walk transmuxed TS output as well as native fMP4. */
|
|
17
|
+
const SCAN_ORDER = 150;
|
|
18
|
+
const DEFAULT_TIMESCALE = 90000;
|
|
19
|
+
const SEI_NAL_TYPE = 6;
|
|
20
|
+
/** Reads sample durations and sizes from a trun, honouring its flag layout. */
|
|
21
|
+
function parseTrun(payload) {
|
|
22
|
+
const view = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);
|
|
23
|
+
const flags = view.getUint32(0) & 0x00ffffff;
|
|
24
|
+
const sampleCount = view.getUint32(4);
|
|
25
|
+
let offset = 8;
|
|
26
|
+
if (flags & 0x0001)
|
|
27
|
+
offset += 4; // data_offset
|
|
28
|
+
if (flags & 0x0004)
|
|
29
|
+
offset += 4; // first_sample_flags
|
|
30
|
+
const hasDuration = (flags & 0x0100) !== 0;
|
|
31
|
+
const hasSize = (flags & 0x0200) !== 0;
|
|
32
|
+
const hasFlags = (flags & 0x0400) !== 0;
|
|
33
|
+
const hasCts = (flags & 0x0800) !== 0;
|
|
34
|
+
const samples = [];
|
|
35
|
+
for (let i = 0; i < sampleCount; i += 1) {
|
|
36
|
+
let duration = 0;
|
|
37
|
+
let size = 0;
|
|
38
|
+
if (hasDuration) {
|
|
39
|
+
duration = view.getUint32(offset);
|
|
40
|
+
offset += 4;
|
|
41
|
+
}
|
|
42
|
+
if (hasSize) {
|
|
43
|
+
size = view.getUint32(offset);
|
|
44
|
+
offset += 4;
|
|
45
|
+
}
|
|
46
|
+
if (hasFlags)
|
|
47
|
+
offset += 4;
|
|
48
|
+
if (hasCts)
|
|
49
|
+
offset += 4;
|
|
50
|
+
if (offset > payload.byteLength)
|
|
51
|
+
break;
|
|
52
|
+
samples.push({ duration, size });
|
|
53
|
+
}
|
|
54
|
+
return { samples, defaultDuration: DEFAULT_TIMESCALE / 30 };
|
|
55
|
+
}
|
|
56
|
+
/** Walks one AVCC sample's length-prefixed NALs, collecting the SEI units. */
|
|
57
|
+
function seiOfSample(sample) {
|
|
58
|
+
const view = new DataView(sample.buffer, sample.byteOffset, sample.byteLength);
|
|
59
|
+
const sei = [];
|
|
60
|
+
let offset = 0;
|
|
61
|
+
while (offset + 4 <= sample.byteLength) {
|
|
62
|
+
const length = view.getUint32(offset);
|
|
63
|
+
offset += 4;
|
|
64
|
+
if (length === 0 || offset + length > sample.byteLength)
|
|
65
|
+
break;
|
|
66
|
+
const nal = sample.subarray(offset, offset + length);
|
|
67
|
+
if (((nal[0] ?? 0) & 0x1f) === SEI_NAL_TYPE)
|
|
68
|
+
sei.push(nal);
|
|
69
|
+
offset += length;
|
|
70
|
+
}
|
|
71
|
+
return sei;
|
|
72
|
+
}
|
|
73
|
+
export default function nalScan() {
|
|
74
|
+
// The video track timescale, learned from the init segment's mdhd and held
|
|
75
|
+
// across the media segments that follow it.
|
|
76
|
+
let timescale = DEFAULT_TIMESCALE;
|
|
77
|
+
return {
|
|
78
|
+
name: 'nal-scan',
|
|
79
|
+
provides: ['nal-scan'],
|
|
80
|
+
install(ctx) {
|
|
81
|
+
ctx.registerTransform({
|
|
82
|
+
name: 'nal-scan',
|
|
83
|
+
order: SCAN_ORDER,
|
|
84
|
+
transform(data, _meta) {
|
|
85
|
+
// Zero work unless a caption consumer is registered.
|
|
86
|
+
if (!captionsWanted())
|
|
87
|
+
return data;
|
|
88
|
+
// An init segment carries the timescale in the video track's mdhd.
|
|
89
|
+
const mdhd = findBox(data, 'moov/trak/mdia/mdhd');
|
|
90
|
+
if (mdhd !== null) {
|
|
91
|
+
const view = new DataView(mdhd.payload.buffer, mdhd.payload.byteOffset, mdhd.payload.byteLength);
|
|
92
|
+
const version = view.getUint8(0);
|
|
93
|
+
timescale = version === 1 ? view.getUint32(20) : view.getUint32(12);
|
|
94
|
+
}
|
|
95
|
+
const mdat = findBox(data, 'mdat');
|
|
96
|
+
const trunBox = findBox(data, 'moof/traf/trun');
|
|
97
|
+
if (mdat === null || trunBox === null)
|
|
98
|
+
return data;
|
|
99
|
+
const tfdtBox = findBox(data, 'moof/traf/tfdt');
|
|
100
|
+
const base = tfdtBox !== null ? (parseTfdt(tfdtBox.payload)?.baseMediaDecodeTime ?? 0) : 0;
|
|
101
|
+
const { samples } = parseTrun(trunBox.payload);
|
|
102
|
+
const packets = [];
|
|
103
|
+
let cursor = 0;
|
|
104
|
+
let decodeTime = base;
|
|
105
|
+
for (const sample of samples) {
|
|
106
|
+
const bytes = mdat.payload.subarray(cursor, cursor + sample.size);
|
|
107
|
+
cursor += sample.size;
|
|
108
|
+
const time = decodeTime / (timescale || DEFAULT_TIMESCALE);
|
|
109
|
+
decodeTime += sample.duration;
|
|
110
|
+
for (const sei of seiOfSample(bytes)) {
|
|
111
|
+
const triples = ccTriplesFromSei(sei);
|
|
112
|
+
if (triples.length > 0)
|
|
113
|
+
packets.push({ time, triples });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
deliverCaptions(packets);
|
|
117
|
+
return data;
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stages/nal-scan/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Stage } from '../../types/stage.js';
|
|
2
|
+
declare module '../../index.js' {
|
|
3
|
+
interface MatteboxNamespaces {
|
|
4
|
+
pdt: PdtApi;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export interface PdtApi {
|
|
8
|
+
/** Presentation time to epoch seconds, or null without an anchor. */
|
|
9
|
+
toWallClock(presentationTime: number): number | null;
|
|
10
|
+
/** Epoch seconds to presentation time, or null without an anchor. */
|
|
11
|
+
toPresentationTime(wallClock: number): number | null;
|
|
12
|
+
}
|
|
13
|
+
export default function pdt(): Stage;
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stages/pdt/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,QAAQ,gBAAgB,CAAC;IAC9B,UAAU,kBAAkB;QAC1B,GAAG,EAAE,MAAM,CAAC;KACb;CACF;AAED,MAAM,WAAW,MAAM;IACrB,qEAAqE;IACrE,WAAW,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrD,qEAAqE;IACrE,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACtD;AAaD,MAAM,CAAC,OAAO,UAAU,GAAG,IAAI,KAAK,CAqBnC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
function anchorOf(state) {
|
|
2
|
+
const live = state.presentation?.live;
|
|
3
|
+
if (live?.dateAnchor !== undefined)
|
|
4
|
+
return live.dateAnchor;
|
|
5
|
+
if (live?.availabilityStart !== undefined) {
|
|
6
|
+
return { wallClock: live.availabilityStart, presentationTime: 0 };
|
|
7
|
+
}
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
export default function pdt() {
|
|
11
|
+
return {
|
|
12
|
+
name: 'pdt',
|
|
13
|
+
provides: ['pdt'],
|
|
14
|
+
requires: ['timeline'],
|
|
15
|
+
install(ctx) {
|
|
16
|
+
const api = {
|
|
17
|
+
toWallClock(presentationTime) {
|
|
18
|
+
const anchor = anchorOf(ctx.getState());
|
|
19
|
+
if (anchor === null)
|
|
20
|
+
return null;
|
|
21
|
+
return anchor.wallClock + (presentationTime - anchor.presentationTime);
|
|
22
|
+
},
|
|
23
|
+
toPresentationTime(wallClock) {
|
|
24
|
+
const anchor = anchorOf(ctx.getState());
|
|
25
|
+
if (anchor === null)
|
|
26
|
+
return null;
|
|
27
|
+
return anchor.presentationTime + (wallClock - anchor.wallClock);
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
ctx.registerNamespace('pdt', api);
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stages/pdt/index.ts"],"names":[],"mappings":"AAqBA,SAAS,QAAQ,CACf,KAA4B;IAE5B,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC;IACtC,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3D,IAAI,IAAI,EAAE,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,GAAG;IACzB,OAAO;QACL,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,CAAC,KAAK,CAAC;QACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,OAAO,CAAC,GAAG;YACT,MAAM,GAAG,GAAW;gBAClB,WAAW,CAAC,gBAAgB;oBAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACxC,IAAI,MAAM,KAAK,IAAI;wBAAE,OAAO,IAAI,CAAC;oBACjC,OAAO,MAAM,CAAC,SAAS,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBACzE,CAAC;gBACD,kBAAkB,CAAC,SAAS;oBAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACxC,IAAI,MAAM,KAAK,IAAI;wBAAE,OAAO,IAAI,CAAC;oBACjC,OAAO,MAAM,CAAC,gBAAgB,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;gBAClE,CAAC;aACF,CAAC;YACF,GAAG,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Stage } from '../../types/stage.js';
|
|
2
|
+
export interface RecoveryOptions {
|
|
3
|
+
/** Failures on one rendition before it is excluded. */
|
|
4
|
+
readonly excludeAfter: number;
|
|
5
|
+
/** Seconds an excluded rendition sits out before readmission. */
|
|
6
|
+
readonly readmitAfterSeconds: number;
|
|
7
|
+
/** Failures on one segment across renditions before it is seeked over. */
|
|
8
|
+
readonly skipAfter: number;
|
|
9
|
+
/** Consecutive content-hole skips with no successful load before deferring to the breaker. */
|
|
10
|
+
readonly maxConsecutiveSkips: number;
|
|
11
|
+
/** Largest buffered hole a stall may jump, in seconds. */
|
|
12
|
+
readonly maxGapSeconds: number;
|
|
13
|
+
}
|
|
14
|
+
/** The stage factory. */
|
|
15
|
+
export default function recovery(options?: Partial<RecoveryOptions>): Stage;
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stages/recovery/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8FAA8F;IAC9F,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,0DAA0D;IAC1D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAmTD,yBAAyB;AACzB,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,KAAK,CAU1E"}
|