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/containers/mp4-box/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Stage } from '../../types/stage.js';
|
|
2
|
+
/** True when the bytes are bare ADTS AAC, past any leading ID3 tag. */
|
|
3
|
+
export declare function looksLikePackedAudio(data: Uint8Array): boolean;
|
|
4
|
+
/** Wraps one packed-audio segment as a self-contained fMP4. Null if unparseable. */
|
|
5
|
+
export declare function packAudio(data: Uint8Array, presentationStart: number): Uint8Array | null;
|
|
6
|
+
export default function packedAudio(): Stage;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/containers/packed-audio/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAalD,uEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAO9D;AAED,oFAAoF;AACpF,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA4BxF;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,IAAI,KAAK,CAgB3C"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { parseAdts, SAMPLES_PER_FRAME } from '../adts.js';
|
|
2
|
+
import { writeInitSegment, writeMediaSegment, } from '../fmp4/writer.js';
|
|
3
|
+
import { id3TagLength } from '../id3.js';
|
|
4
|
+
const AUDIO_TRACK_ID = 1;
|
|
5
|
+
const PACK_ORDER = 100;
|
|
6
|
+
/** True when the bytes are bare ADTS AAC, past any leading ID3 tag. */
|
|
7
|
+
export function looksLikePackedAudio(data) {
|
|
8
|
+
const offset = id3TagLength(data, 0);
|
|
9
|
+
return (offset + 2 <= data.byteLength &&
|
|
10
|
+
data[offset] === 0xff &&
|
|
11
|
+
(data[offset + 1] & 0xf6) === 0xf0);
|
|
12
|
+
}
|
|
13
|
+
/** Wraps one packed-audio segment as a self-contained fMP4. Null if unparseable. */
|
|
14
|
+
export function packAudio(data, presentationStart) {
|
|
15
|
+
const offset = id3TagLength(data, 0);
|
|
16
|
+
const adts = parseAdts(data.subarray(offset));
|
|
17
|
+
if (adts.frames.length === 0)
|
|
18
|
+
return null;
|
|
19
|
+
const config = {
|
|
20
|
+
id: AUDIO_TRACK_ID,
|
|
21
|
+
kind: 'audio',
|
|
22
|
+
timescale: adts.sampleRate,
|
|
23
|
+
audioObjectType: adts.audioObjectType,
|
|
24
|
+
samplingFrequencyIndex: adts.samplingFrequencyIndex,
|
|
25
|
+
channelConfig: adts.channelConfig,
|
|
26
|
+
};
|
|
27
|
+
const samples = adts.frames.map((frame) => ({
|
|
28
|
+
data: frame.data,
|
|
29
|
+
duration: SAMPLES_PER_FRAME,
|
|
30
|
+
cts: 0,
|
|
31
|
+
isKeyframe: true,
|
|
32
|
+
}));
|
|
33
|
+
const base = Math.round(presentationStart * adts.sampleRate);
|
|
34
|
+
const sequenceNumber = Math.max(1, Math.round(presentationStart) + 1);
|
|
35
|
+
const init = writeInitSegment([config]);
|
|
36
|
+
const media = writeMediaSegment(sequenceNumber, [
|
|
37
|
+
{ trackId: AUDIO_TRACK_ID, baseMediaDecodeTime: base, samples },
|
|
38
|
+
]);
|
|
39
|
+
const out = new Uint8Array(init.byteLength + media.byteLength);
|
|
40
|
+
out.set(init, 0);
|
|
41
|
+
out.set(media, init.byteLength);
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
export default function packedAudio() {
|
|
45
|
+
return {
|
|
46
|
+
name: 'packed-audio',
|
|
47
|
+
provides: ['packed-audio', 'media-transform', 'media-time-normalized'],
|
|
48
|
+
install(ctx) {
|
|
49
|
+
ctx.registerTransform({
|
|
50
|
+
name: 'packed-audio',
|
|
51
|
+
order: PACK_ORDER,
|
|
52
|
+
transform(data, meta) {
|
|
53
|
+
if (meta.contentType !== 'audio')
|
|
54
|
+
return data;
|
|
55
|
+
if (!looksLikePackedAudio(data))
|
|
56
|
+
return data;
|
|
57
|
+
return packAudio(data, meta.start) ?? data;
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/containers/packed-audio/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Caption bytes out of H.264 SEI, the container-layer half of entanglement #1.
|
|
3
|
+
* Both routes to CEA-608 captions meet here: ts-transmux already splits NALs
|
|
4
|
+
* and hands its SEI units in, and nal-scan walks an fMP4 mdat for the same
|
|
5
|
+
* ones. This module knows only how to turn a SEI NAL into the CEA-608 byte
|
|
6
|
+
* pairs it carries; the channel decode lives in the text-cea608 stage. Living
|
|
7
|
+
* in the container layer keeps that stage from importing either source.
|
|
8
|
+
*
|
|
9
|
+
* The path decoded is ATSC A/53: a user_data_registered_itu_t_t35 SEI message
|
|
10
|
+
* (payload type 4), country 0xB5, provider "GA94", user_data_type 0x03, which
|
|
11
|
+
* frames the cc_data triples the 608 and 708 caption channels ride in.
|
|
12
|
+
*/
|
|
13
|
+
/** One caption-data triple: the CEA-608/708 field type and its two bytes. */
|
|
14
|
+
export interface CcTriple {
|
|
15
|
+
/** 0 and 1 are the two CEA-608 fields; 2 and 3 are CEA-708 DTVCC packets. */
|
|
16
|
+
readonly type: number;
|
|
17
|
+
readonly a: number;
|
|
18
|
+
readonly b: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Extracts every CEA-608/708 cc_data triple from one SEI NAL. Returns an empty
|
|
22
|
+
* array for a SEI that carries no ATSC caption user data, and never reads past
|
|
23
|
+
* the buffer: a malformed message stops the walk.
|
|
24
|
+
*/
|
|
25
|
+
export declare function ccTriplesFromSei(seiNal: Uint8Array): CcTriple[];
|
|
26
|
+
//# sourceMappingURL=sei.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sei.d.ts","sourceRoot":"","sources":["../../src/containers/sei.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,6EAA6E;AAC7E,MAAM,WAAW,QAAQ;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,EAAE,CAgC/D"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Caption bytes out of H.264 SEI, the container-layer half of entanglement #1.
|
|
3
|
+
* Both routes to CEA-608 captions meet here: ts-transmux already splits NALs
|
|
4
|
+
* and hands its SEI units in, and nal-scan walks an fMP4 mdat for the same
|
|
5
|
+
* ones. This module knows only how to turn a SEI NAL into the CEA-608 byte
|
|
6
|
+
* pairs it carries; the channel decode lives in the text-cea608 stage. Living
|
|
7
|
+
* in the container layer keeps that stage from importing either source.
|
|
8
|
+
*
|
|
9
|
+
* The path decoded is ATSC A/53: a user_data_registered_itu_t_t35 SEI message
|
|
10
|
+
* (payload type 4), country 0xB5, provider "GA94", user_data_type 0x03, which
|
|
11
|
+
* frames the cc_data triples the 608 and 708 caption channels ride in.
|
|
12
|
+
*/
|
|
13
|
+
/** Strips emulation-prevention bytes (00 00 03 -> 00 00) so payload sizes read true. */
|
|
14
|
+
function toRbsp(nal, start) {
|
|
15
|
+
const out = new Uint8Array(nal.byteLength - start);
|
|
16
|
+
let count = 0;
|
|
17
|
+
let zeros = 0;
|
|
18
|
+
for (let i = start; i < nal.byteLength; i += 1) {
|
|
19
|
+
const byte = nal[i];
|
|
20
|
+
if (zeros >= 2 && byte === 0x03) {
|
|
21
|
+
zeros = 0;
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
out[count] = byte;
|
|
25
|
+
count += 1;
|
|
26
|
+
zeros = byte === 0 ? zeros + 1 : 0;
|
|
27
|
+
}
|
|
28
|
+
return out.subarray(0, count);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Extracts every CEA-608/708 cc_data triple from one SEI NAL. Returns an empty
|
|
32
|
+
* array for a SEI that carries no ATSC caption user data, and never reads past
|
|
33
|
+
* the buffer: a malformed message stops the walk.
|
|
34
|
+
*/
|
|
35
|
+
export function ccTriplesFromSei(seiNal) {
|
|
36
|
+
// SEI RBSP begins after the one-byte NAL header.
|
|
37
|
+
const rbsp = toRbsp(seiNal, 1);
|
|
38
|
+
const triples = [];
|
|
39
|
+
let offset = 0;
|
|
40
|
+
const length = rbsp.byteLength;
|
|
41
|
+
while (offset < length) {
|
|
42
|
+
// payloadType and payloadSize are each a run of 0xFF bytes plus a final byte.
|
|
43
|
+
let payloadType = 0;
|
|
44
|
+
while (offset < length && rbsp[offset] === 0xff) {
|
|
45
|
+
payloadType += 255;
|
|
46
|
+
offset += 1;
|
|
47
|
+
}
|
|
48
|
+
if (offset >= length)
|
|
49
|
+
break;
|
|
50
|
+
payloadType += rbsp[offset];
|
|
51
|
+
offset += 1;
|
|
52
|
+
let payloadSize = 0;
|
|
53
|
+
while (offset < length && rbsp[offset] === 0xff) {
|
|
54
|
+
payloadSize += 255;
|
|
55
|
+
offset += 1;
|
|
56
|
+
}
|
|
57
|
+
if (offset >= length)
|
|
58
|
+
break;
|
|
59
|
+
payloadSize += rbsp[offset];
|
|
60
|
+
offset += 1;
|
|
61
|
+
if (offset + payloadSize > length)
|
|
62
|
+
break;
|
|
63
|
+
if (payloadType === 4) {
|
|
64
|
+
appendAtscCc(rbsp.subarray(offset, offset + payloadSize), triples);
|
|
65
|
+
}
|
|
66
|
+
offset += payloadSize;
|
|
67
|
+
}
|
|
68
|
+
return triples;
|
|
69
|
+
}
|
|
70
|
+
const GA94 = 0x47413934; // "GA94"
|
|
71
|
+
function appendAtscCc(payload, out) {
|
|
72
|
+
if (payload.byteLength < 10)
|
|
73
|
+
return;
|
|
74
|
+
const view = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);
|
|
75
|
+
// itu_t_t35_country_code, provider_code, user_identifier.
|
|
76
|
+
const country = payload[0];
|
|
77
|
+
const provider = view.getUint16(1);
|
|
78
|
+
const userIdentifier = view.getUint32(3);
|
|
79
|
+
if (country !== 0xb5 || provider !== 0x0031 || userIdentifier !== GA94)
|
|
80
|
+
return;
|
|
81
|
+
const userDataTypeCode = payload[7];
|
|
82
|
+
if (userDataTypeCode !== 0x03)
|
|
83
|
+
return;
|
|
84
|
+
// cc_count in the low five bits; then a marker byte, then cc_count triples.
|
|
85
|
+
const ccCount = payload[8] & 0x1f;
|
|
86
|
+
let cursor = 10;
|
|
87
|
+
for (let i = 0; i < ccCount; i += 1) {
|
|
88
|
+
if (cursor + 3 > payload.byteLength)
|
|
89
|
+
break;
|
|
90
|
+
const flags = payload[cursor];
|
|
91
|
+
const ccValid = (flags & 0x04) !== 0;
|
|
92
|
+
const ccType = flags & 0x03;
|
|
93
|
+
const a = payload[cursor + 1];
|
|
94
|
+
const b = payload[cursor + 2];
|
|
95
|
+
cursor += 3;
|
|
96
|
+
if (ccValid)
|
|
97
|
+
out.push({ type: ccType, a, b });
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=sei.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sei.js","sourceRoot":"","sources":["../../src/containers/sei.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MPEG-TS demux: 188-byte packets into PES payloads, grouped by elementary
|
|
3
|
+
* stream. PAT names the PMT, the PMT names the elementary PIDs and their
|
|
4
|
+
* stream types, and the payload-unit-start flag frames each PES. Nothing
|
|
5
|
+
* here allocates per packet beyond the growing payload buffers, and every
|
|
6
|
+
* loop strictly advances, so a truncated or garbage segment returns what it
|
|
7
|
+
* could parse rather than throwing or spinning.
|
|
8
|
+
*/
|
|
9
|
+
/** MPEG-TS stream_type values this transmuxer routes. */
|
|
10
|
+
export declare const STREAM_TYPE: {
|
|
11
|
+
readonly h264: 27;
|
|
12
|
+
readonly aacAdts: 15;
|
|
13
|
+
readonly mp3a: 3;
|
|
14
|
+
readonly mp3b: 4;
|
|
15
|
+
readonly ac3: 129;
|
|
16
|
+
readonly metadata: 21;
|
|
17
|
+
readonly privateData: 6;
|
|
18
|
+
};
|
|
19
|
+
export type ElementaryKind = 'video' | 'audio' | 'id3';
|
|
20
|
+
/** One reassembled PES packet: its payload and the timestamps from the header. */
|
|
21
|
+
export interface PesPacket {
|
|
22
|
+
readonly pid: number;
|
|
23
|
+
readonly streamType: number;
|
|
24
|
+
readonly kind: ElementaryKind;
|
|
25
|
+
/** 90 kHz presentation timestamp, or null when the header omitted it. */
|
|
26
|
+
readonly pts: number | null;
|
|
27
|
+
/** 90 kHz decode timestamp; defaults to pts when the header omits it. */
|
|
28
|
+
readonly dts: number | null;
|
|
29
|
+
readonly data: Uint8Array;
|
|
30
|
+
}
|
|
31
|
+
export interface DemuxResult {
|
|
32
|
+
readonly video: readonly PesPacket[];
|
|
33
|
+
readonly audio: readonly PesPacket[];
|
|
34
|
+
readonly id3: readonly PesPacket[];
|
|
35
|
+
/** Set when the input carried no sync bytes at all: not a TS stream. */
|
|
36
|
+
readonly notTransportStream: boolean;
|
|
37
|
+
}
|
|
38
|
+
/** True when the buffer carries the TS sync byte at the packet cadence. */
|
|
39
|
+
export declare function looksLikeTransportStream(data: Uint8Array): boolean;
|
|
40
|
+
export declare function demux(data: Uint8Array): DemuxResult;
|
|
41
|
+
/**
|
|
42
|
+
* Corrects a 33-bit timestamp series for wrap. When a value drops by more
|
|
43
|
+
* than half the range from the previous one, the counter rolled over; the
|
|
44
|
+
* accumulated offset carries every later value past the wrap. The reference
|
|
45
|
+
* anchors the first value so the output starts near zero regardless of where
|
|
46
|
+
* in the 26.5 hour cycle the segment sits.
|
|
47
|
+
*/
|
|
48
|
+
export declare function unrollTimestamps(values: readonly (number | null)[]): number[];
|
|
49
|
+
//# sourceMappingURL=demux.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demux.d.ts","sourceRoot":"","sources":["../../../src/containers/ts-transmux/demux.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,yDAAyD;AACzD,eAAO,MAAM,WAAW;;;;;;;;CAQd,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAEvD,kFAAkF;AAClF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;AAwBD,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAWlE;AAgDD,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAsGnD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAiB7E"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MPEG-TS demux: 188-byte packets into PES payloads, grouped by elementary
|
|
3
|
+
* stream. PAT names the PMT, the PMT names the elementary PIDs and their
|
|
4
|
+
* stream types, and the payload-unit-start flag frames each PES. Nothing
|
|
5
|
+
* here allocates per packet beyond the growing payload buffers, and every
|
|
6
|
+
* loop strictly advances, so a truncated or garbage segment returns what it
|
|
7
|
+
* could parse rather than throwing or spinning.
|
|
8
|
+
*/
|
|
9
|
+
const PACKET_SIZE = 188;
|
|
10
|
+
const SYNC_BYTE = 0x47;
|
|
11
|
+
/** MPEG-TS stream_type values this transmuxer routes. */
|
|
12
|
+
export const STREAM_TYPE = {
|
|
13
|
+
h264: 0x1b,
|
|
14
|
+
aacAdts: 0x0f,
|
|
15
|
+
mp3a: 0x03,
|
|
16
|
+
mp3b: 0x04,
|
|
17
|
+
ac3: 0x81,
|
|
18
|
+
metadata: 0x15,
|
|
19
|
+
privateData: 0x06,
|
|
20
|
+
};
|
|
21
|
+
function kindOf(streamType) {
|
|
22
|
+
if (streamType === STREAM_TYPE.h264)
|
|
23
|
+
return 'video';
|
|
24
|
+
if (streamType === STREAM_TYPE.aacAdts ||
|
|
25
|
+
streamType === STREAM_TYPE.mp3a ||
|
|
26
|
+
streamType === STREAM_TYPE.mp3b ||
|
|
27
|
+
streamType === STREAM_TYPE.ac3) {
|
|
28
|
+
return 'audio';
|
|
29
|
+
}
|
|
30
|
+
if (streamType === STREAM_TYPE.metadata)
|
|
31
|
+
return 'id3';
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
/** True when the buffer carries the TS sync byte at the packet cadence. */
|
|
35
|
+
export function looksLikeTransportStream(data) {
|
|
36
|
+
if (data.byteLength < PACKET_SIZE)
|
|
37
|
+
return false;
|
|
38
|
+
// Two consecutive sync bytes one packet apart is the accepted sniff.
|
|
39
|
+
let offset = 0;
|
|
40
|
+
while (offset + PACKET_SIZE < data.byteLength) {
|
|
41
|
+
if (data[offset] === SYNC_BYTE && data[offset + PACKET_SIZE] === SYNC_BYTE)
|
|
42
|
+
return true;
|
|
43
|
+
offset += 1;
|
|
44
|
+
// A real stream syncs within the first packet; bound the search.
|
|
45
|
+
if (offset > PACKET_SIZE)
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
/** Reads a 33-bit PTS/DTS field from a 5-byte PES timestamp region. */
|
|
51
|
+
function readTimestamp(data, offset) {
|
|
52
|
+
const b0 = data[offset] ?? 0;
|
|
53
|
+
const b1 = data[offset + 1] ?? 0;
|
|
54
|
+
const b2 = data[offset + 2] ?? 0;
|
|
55
|
+
const b3 = data[offset + 3] ?? 0;
|
|
56
|
+
const b4 = data[offset + 4] ?? 0;
|
|
57
|
+
// Three bits (32..30), marker, fifteen (29..15), marker, fifteen (14..0),
|
|
58
|
+
// marker. The whole value can exceed 2^31, so the group weights are applied
|
|
59
|
+
// with multiplication: high is bits 30 and up, mid is bits 15 and up.
|
|
60
|
+
const high = (b0 >> 1) & 0x07;
|
|
61
|
+
const mid = ((b1 << 7) | (b2 >> 1)) & 0x7fff;
|
|
62
|
+
const low = ((b3 << 7) | (b4 >> 1)) & 0x7fff;
|
|
63
|
+
return high * 0x4000_0000 + mid * 0x8000 + low;
|
|
64
|
+
}
|
|
65
|
+
/** Parses one completed PES accumulator into a packet with timestamps. */
|
|
66
|
+
function finishPes(acc) {
|
|
67
|
+
const buf = concatChunks(acc.chunks, acc.length);
|
|
68
|
+
// PES start code 0x000001 then stream_id.
|
|
69
|
+
if (buf.byteLength < 9 || buf[0] !== 0x00 || buf[1] !== 0x00 || buf[2] !== 0x01)
|
|
70
|
+
return null;
|
|
71
|
+
const headerDataLength = buf[8] ?? 0;
|
|
72
|
+
const ptsDtsFlags = (buf[7] ?? 0) >> 6;
|
|
73
|
+
let pts = null;
|
|
74
|
+
let dts = null;
|
|
75
|
+
if (ptsDtsFlags & 0x2 && buf.byteLength >= 14) {
|
|
76
|
+
pts = readTimestamp(buf, 9);
|
|
77
|
+
dts = pts;
|
|
78
|
+
if (ptsDtsFlags & 0x1 && buf.byteLength >= 19)
|
|
79
|
+
dts = readTimestamp(buf, 14);
|
|
80
|
+
}
|
|
81
|
+
const payloadStart = 9 + headerDataLength;
|
|
82
|
+
const data = payloadStart <= buf.byteLength ? buf.subarray(payloadStart) : new Uint8Array(0);
|
|
83
|
+
return { pid: acc.pid, streamType: acc.streamType, kind: acc.kind, pts, dts, data };
|
|
84
|
+
}
|
|
85
|
+
function concatChunks(chunks, length) {
|
|
86
|
+
if (chunks.length === 1)
|
|
87
|
+
return chunks[0];
|
|
88
|
+
const out = new Uint8Array(length);
|
|
89
|
+
let offset = 0;
|
|
90
|
+
for (const chunk of chunks) {
|
|
91
|
+
out.set(chunk, offset);
|
|
92
|
+
offset += chunk.byteLength;
|
|
93
|
+
}
|
|
94
|
+
return out;
|
|
95
|
+
}
|
|
96
|
+
export function demux(data) {
|
|
97
|
+
if (!looksLikeTransportStream(data)) {
|
|
98
|
+
return { video: [], audio: [], id3: [], notTransportStream: true };
|
|
99
|
+
}
|
|
100
|
+
// Align to the first sync byte; field recordings often carry a few bytes
|
|
101
|
+
// of leading garbage before the first packet.
|
|
102
|
+
let base = 0;
|
|
103
|
+
while (base < data.byteLength && data[base] !== SYNC_BYTE)
|
|
104
|
+
base += 1;
|
|
105
|
+
let pmtPid = -1;
|
|
106
|
+
const streamTypes = new Map();
|
|
107
|
+
const accumulators = new Map();
|
|
108
|
+
const completed = [];
|
|
109
|
+
function flush(pid) {
|
|
110
|
+
const acc = accumulators.get(pid);
|
|
111
|
+
if (acc === undefined || acc.length === 0)
|
|
112
|
+
return;
|
|
113
|
+
const packet = finishPes(acc);
|
|
114
|
+
if (packet !== null)
|
|
115
|
+
completed.push(packet);
|
|
116
|
+
accumulators.delete(pid);
|
|
117
|
+
}
|
|
118
|
+
for (let offset = base; offset + PACKET_SIZE <= data.byteLength; offset += PACKET_SIZE) {
|
|
119
|
+
if (data[offset] !== SYNC_BYTE) {
|
|
120
|
+
// Lost sync. Resynchronize to the next sync byte within this packet.
|
|
121
|
+
let resync = offset + 1;
|
|
122
|
+
while (resync < data.byteLength && data[resync] !== SYNC_BYTE)
|
|
123
|
+
resync += 1;
|
|
124
|
+
offset = resync - PACKET_SIZE;
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
const b1 = data[offset + 1] ?? 0;
|
|
128
|
+
const b2 = data[offset + 2] ?? 0;
|
|
129
|
+
const b3 = data[offset + 3] ?? 0;
|
|
130
|
+
const pusi = (b1 & 0x40) !== 0;
|
|
131
|
+
const pid = ((b1 & 0x1f) << 8) | b2;
|
|
132
|
+
const adaptationControl = (b3 >> 4) & 0x3;
|
|
133
|
+
const hasPayload = (adaptationControl & 0x1) !== 0;
|
|
134
|
+
if (!hasPayload)
|
|
135
|
+
continue;
|
|
136
|
+
let payloadOffset = offset + 4;
|
|
137
|
+
if (adaptationControl & 0x2) {
|
|
138
|
+
const adaptationLength = data[payloadOffset] ?? 0;
|
|
139
|
+
payloadOffset += 1 + adaptationLength;
|
|
140
|
+
}
|
|
141
|
+
if (payloadOffset >= offset + PACKET_SIZE)
|
|
142
|
+
continue;
|
|
143
|
+
const payload = data.subarray(payloadOffset, offset + PACKET_SIZE);
|
|
144
|
+
if (pid === 0) {
|
|
145
|
+
// PAT: pointer_field, then the section. The first program's PMT PID
|
|
146
|
+
// sits in the last two bytes of the first program entry.
|
|
147
|
+
const pointer = payload[0] ?? 0;
|
|
148
|
+
const section = payload.subarray(1 + pointer);
|
|
149
|
+
if (section.byteLength >= 13) {
|
|
150
|
+
pmtPid = (((section[10] ?? 0) & 0x1f) << 8) | (section[11] ?? 0);
|
|
151
|
+
}
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
if (pid === pmtPid && pusi) {
|
|
155
|
+
// PMT: walk the elementary stream loop and record stream types.
|
|
156
|
+
const pointer = payload[0] ?? 0;
|
|
157
|
+
const section = payload.subarray(1 + pointer);
|
|
158
|
+
const sectionLength = (((section[1] ?? 0) & 0x0f) << 8) | (section[2] ?? 0);
|
|
159
|
+
const programInfoLength = (((section[10] ?? 0) & 0x0f) << 8) | (section[11] ?? 0);
|
|
160
|
+
let cursor = 12 + programInfoLength;
|
|
161
|
+
const end = Math.min(3 + sectionLength - 4, section.byteLength);
|
|
162
|
+
while (cursor + 5 <= end) {
|
|
163
|
+
const streamType = section[cursor] ?? 0;
|
|
164
|
+
const elementaryPid = (((section[cursor + 1] ?? 0) & 0x1f) << 8) | (section[cursor + 2] ?? 0);
|
|
165
|
+
const esInfoLength = (((section[cursor + 3] ?? 0) & 0x0f) << 8) | (section[cursor + 4] ?? 0);
|
|
166
|
+
streamTypes.set(elementaryPid, streamType);
|
|
167
|
+
cursor += 5 + esInfoLength;
|
|
168
|
+
}
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
const streamType = streamTypes.get(pid);
|
|
172
|
+
if (streamType === undefined)
|
|
173
|
+
continue;
|
|
174
|
+
const kind = kindOf(streamType);
|
|
175
|
+
if (kind === null)
|
|
176
|
+
continue;
|
|
177
|
+
if (pusi) {
|
|
178
|
+
flush(pid);
|
|
179
|
+
accumulators.set(pid, { pid, streamType, kind, chunks: [], length: 0 });
|
|
180
|
+
}
|
|
181
|
+
const acc = accumulators.get(pid);
|
|
182
|
+
if (acc === undefined)
|
|
183
|
+
continue;
|
|
184
|
+
acc.chunks.push(payload);
|
|
185
|
+
acc.length += payload.byteLength;
|
|
186
|
+
}
|
|
187
|
+
for (const pid of accumulators.keys())
|
|
188
|
+
flush(pid);
|
|
189
|
+
return {
|
|
190
|
+
video: completed.filter((p) => p.kind === 'video'),
|
|
191
|
+
audio: completed.filter((p) => p.kind === 'audio'),
|
|
192
|
+
id3: completed.filter((p) => p.kind === 'id3'),
|
|
193
|
+
notTransportStream: false,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Corrects a 33-bit timestamp series for wrap. When a value drops by more
|
|
198
|
+
* than half the range from the previous one, the counter rolled over; the
|
|
199
|
+
* accumulated offset carries every later value past the wrap. The reference
|
|
200
|
+
* anchors the first value so the output starts near zero regardless of where
|
|
201
|
+
* in the 26.5 hour cycle the segment sits.
|
|
202
|
+
*/
|
|
203
|
+
export function unrollTimestamps(values) {
|
|
204
|
+
const RANGE = 0x2_0000_0000;
|
|
205
|
+
const HALF = 0x1_0000_0000;
|
|
206
|
+
let offset = 0;
|
|
207
|
+
let previous = null;
|
|
208
|
+
const out = [];
|
|
209
|
+
for (const value of values) {
|
|
210
|
+
if (value === null) {
|
|
211
|
+
out.push(previous ?? 0);
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
if (previous !== null && value + offset < previous - HALF)
|
|
215
|
+
offset += RANGE;
|
|
216
|
+
const unrolled = value + offset;
|
|
217
|
+
out.push(unrolled);
|
|
218
|
+
previous = unrolled;
|
|
219
|
+
}
|
|
220
|
+
return out;
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=demux.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demux.js","sourceRoot":"","sources":["../../../src/containers/ts-transmux/demux.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* H.264 Annex B to AVCC. The elementary stream separates NAL units with
|
|
3
|
+
* start codes; MSE wants them length-prefixed, with the parameter sets moved
|
|
4
|
+
* into the avcC box instead of the sample data. This module splits NALs,
|
|
5
|
+
* pulls the SPS and PPS, and reads the coded dimensions out of the SPS so
|
|
6
|
+
* the init segment is honest. Exp-Golomb reads are bounded by the bitstream
|
|
7
|
+
* length, so a truncated SPS yields zeroes rather than a runaway loop.
|
|
8
|
+
*/
|
|
9
|
+
export declare const NAL_TYPE: {
|
|
10
|
+
readonly nonIdrSlice: 1;
|
|
11
|
+
readonly idrSlice: 5;
|
|
12
|
+
readonly sei: 6;
|
|
13
|
+
readonly sps: 7;
|
|
14
|
+
readonly pps: 8;
|
|
15
|
+
readonly accessUnitDelimiter: 9;
|
|
16
|
+
};
|
|
17
|
+
/** Splits an Annex B buffer into raw NAL units, start codes removed. */
|
|
18
|
+
export declare function splitNalUnits(data: Uint8Array): Uint8Array[];
|
|
19
|
+
export declare function nalType(nal: Uint8Array): number;
|
|
20
|
+
export interface AccessUnit {
|
|
21
|
+
/** The VCL and SEI NALs, length-prefixed into one AVCC buffer. */
|
|
22
|
+
readonly avcc: Uint8Array;
|
|
23
|
+
readonly isKeyframe: boolean;
|
|
24
|
+
readonly sps: Uint8Array | null;
|
|
25
|
+
readonly pps: Uint8Array | null;
|
|
26
|
+
/** The SEI NALs, kept whole so the caption path can read their messages. */
|
|
27
|
+
readonly sei: Uint8Array[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Turns one PES payload's NALs into an access unit. Parameter sets are
|
|
31
|
+
* surfaced for the init segment and dropped from the sample; slices and SEI
|
|
32
|
+
* become length-prefixed AVCC. An IDR slice marks the sample as a keyframe.
|
|
33
|
+
*/
|
|
34
|
+
export declare function toAccessUnit(annexB: Uint8Array): AccessUnit;
|
|
35
|
+
/**
|
|
36
|
+
* Builds one access unit from its already-split NAL units. Access units do not
|
|
37
|
+
* align with PES packet boundaries in the wild, so the demux splits the whole
|
|
38
|
+
* elementary stream and groups NALs into units by access-unit delimiter; this
|
|
39
|
+
* turns one such group into an AVCC sample.
|
|
40
|
+
*/
|
|
41
|
+
export declare function accessUnitFromNals(nals: readonly Uint8Array[]): AccessUnit;
|
|
42
|
+
export interface Dimensions {
|
|
43
|
+
readonly width: number;
|
|
44
|
+
readonly height: number;
|
|
45
|
+
}
|
|
46
|
+
/** Reads coded width and height from an SPS NAL, cropping applied. */
|
|
47
|
+
export declare function spsDimensions(sps: Uint8Array): Dimensions;
|
|
48
|
+
//# sourceMappingURL=h264.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"h264.d.ts","sourceRoot":"","sources":["../../../src/containers/ts-transmux/h264.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAC;AAEX,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,CAqB5D;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAE/C;AAED,MAAM,WAAW,UAAU;IACzB,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,CA4B1E;AA0DD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAoDzD"}
|