node-av-light 0.0.0 → 7.1.0-beta.1
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.md +22 -0
- package/README.md +711 -0
- package/dist/api/audio-frame-buffer.d.ts +636 -0
- package/dist/api/audio-frame-buffer.js +1027 -0
- package/dist/api/audio-frame-buffer.js.map +1 -0
- package/dist/api/bitstream-filter.d.ts +938 -0
- package/dist/api/bitstream-filter.js +1427 -0
- package/dist/api/bitstream-filter.js.map +1 -0
- package/dist/api/constants.d.ts +44 -0
- package/dist/api/constants.js +45 -0
- package/dist/api/constants.js.map +1 -0
- package/dist/api/data/test_av1.ivf +0 -0
- package/dist/api/data/test_h264.h264 +0 -0
- package/dist/api/data/test_hevc.h265 +0 -0
- package/dist/api/data/test_mjpeg.mjpeg +0 -0
- package/dist/api/data/test_vp8.ivf +0 -0
- package/dist/api/data/test_vp9.ivf +0 -0
- package/dist/api/decoder.d.ts +1413 -0
- package/dist/api/decoder.js +2367 -0
- package/dist/api/decoder.js.map +1 -0
- package/dist/api/demuxer.d.ts +1295 -0
- package/dist/api/demuxer.js +2344 -0
- package/dist/api/demuxer.js.map +1 -0
- package/dist/api/device.d.ts +589 -0
- package/dist/api/device.js +964 -0
- package/dist/api/device.js.map +1 -0
- package/dist/api/encoder-pool.d.ts +262 -0
- package/dist/api/encoder-pool.js +397 -0
- package/dist/api/encoder-pool.js.map +1 -0
- package/dist/api/encoder.d.ts +1509 -0
- package/dist/api/encoder.js +2619 -0
- package/dist/api/encoder.js.map +1 -0
- package/dist/api/filter-complex.d.ts +828 -0
- package/dist/api/filter-complex.js +1661 -0
- package/dist/api/filter-complex.js.map +1 -0
- package/dist/api/filter-presets.d.ts +800 -0
- package/dist/api/filter-presets.js +1554 -0
- package/dist/api/filter-presets.js.map +1 -0
- package/dist/api/filter.d.ts +1339 -0
- package/dist/api/filter.js +2075 -0
- package/dist/api/filter.js.map +1 -0
- package/dist/api/fmp4-stream.d.ts +797 -0
- package/dist/api/fmp4-stream.js +1428 -0
- package/dist/api/fmp4-stream.js.map +1 -0
- package/dist/api/hardware.d.ts +677 -0
- package/dist/api/hardware.js +1300 -0
- package/dist/api/hardware.js.map +1 -0
- package/dist/api/index.d.ts +21 -0
- package/dist/api/index.js +38 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/io-stream.d.ts +308 -0
- package/dist/api/io-stream.js +358 -0
- package/dist/api/io-stream.js.map +1 -0
- package/dist/api/muxer.d.ts +1311 -0
- package/dist/api/muxer.js +2672 -0
- package/dist/api/muxer.js.map +1 -0
- package/dist/api/pipeline.d.ts +801 -0
- package/dist/api/pipeline.js +1344 -0
- package/dist/api/pipeline.js.map +1 -0
- package/dist/api/probe.d.ts +128 -0
- package/dist/api/probe.js +227 -0
- package/dist/api/probe.js.map +1 -0
- package/dist/api/rtp-stream.d.ts +497 -0
- package/dist/api/rtp-stream.js +1131 -0
- package/dist/api/rtp-stream.js.map +1 -0
- package/dist/api/scaler.d.ts +561 -0
- package/dist/api/scaler.js +918 -0
- package/dist/api/scaler.js.map +1 -0
- package/dist/api/types.d.ts +17 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api/utilities/async-queue.d.ts +149 -0
- package/dist/api/utilities/async-queue.js +254 -0
- package/dist/api/utilities/async-queue.js.map +1 -0
- package/dist/api/utilities/audio-sample.d.ts +117 -0
- package/dist/api/utilities/audio-sample.js +112 -0
- package/dist/api/utilities/audio-sample.js.map +1 -0
- package/dist/api/utilities/audio-transcode.d.ts +20 -0
- package/dist/api/utilities/audio-transcode.js +27 -0
- package/dist/api/utilities/audio-transcode.js.map +1 -0
- package/dist/api/utilities/channel-layout.d.ts +76 -0
- package/dist/api/utilities/channel-layout.js +80 -0
- package/dist/api/utilities/channel-layout.js.map +1 -0
- package/dist/api/utilities/codec-format.d.ts +87 -0
- package/dist/api/utilities/codec-format.js +117 -0
- package/dist/api/utilities/codec-format.js.map +1 -0
- package/dist/api/utilities/context-options.d.ts +25 -0
- package/dist/api/utilities/context-options.js +23 -0
- package/dist/api/utilities/context-options.js.map +1 -0
- package/dist/api/utilities/electron-shared-texture.d.ts +368 -0
- package/dist/api/utilities/electron-shared-texture.js +540 -0
- package/dist/api/utilities/electron-shared-texture.js.map +1 -0
- package/dist/api/utilities/image.d.ts +207 -0
- package/dist/api/utilities/image.js +213 -0
- package/dist/api/utilities/image.js.map +1 -0
- package/dist/api/utilities/index.d.ts +14 -0
- package/dist/api/utilities/index.js +27 -0
- package/dist/api/utilities/index.js.map +1 -0
- package/dist/api/utilities/live-decoding.d.ts +15 -0
- package/dist/api/utilities/live-decoding.js +32 -0
- package/dist/api/utilities/live-decoding.js.map +1 -0
- package/dist/api/utilities/media-type.d.ts +49 -0
- package/dist/api/utilities/media-type.js +53 -0
- package/dist/api/utilities/media-type.js.map +1 -0
- package/dist/api/utilities/packet-age-watchdog.d.ts +198 -0
- package/dist/api/utilities/packet-age-watchdog.js +594 -0
- package/dist/api/utilities/packet-age-watchdog.js.map +1 -0
- package/dist/api/utilities/pixel-format.d.ts +89 -0
- package/dist/api/utilities/pixel-format.js +97 -0
- package/dist/api/utilities/pixel-format.js.map +1 -0
- package/dist/api/utilities/sample-format.d.ts +129 -0
- package/dist/api/utilities/sample-format.js +141 -0
- package/dist/api/utilities/sample-format.js.map +1 -0
- package/dist/api/utilities/scale-size.d.ts +51 -0
- package/dist/api/utilities/scale-size.js +55 -0
- package/dist/api/utilities/scale-size.js.map +1 -0
- package/dist/api/utilities/scheduler.d.ts +138 -0
- package/dist/api/utilities/scheduler.js +98 -0
- package/dist/api/utilities/scheduler.js.map +1 -0
- package/dist/api/utilities/streaming.d.ts +186 -0
- package/dist/api/utilities/streaming.js +309 -0
- package/dist/api/utilities/streaming.js.map +1 -0
- package/dist/api/utilities/timestamp.d.ts +193 -0
- package/dist/api/utilities/timestamp.js +206 -0
- package/dist/api/utilities/timestamp.js.map +1 -0
- package/dist/api/utilities/video-transcode.d.ts +218 -0
- package/dist/api/utilities/video-transcode.js +624 -0
- package/dist/api/utilities/video-transcode.js.map +1 -0
- package/dist/api/utilities/whisper-model.d.ts +330 -0
- package/dist/api/utilities/whisper-model.js +587 -0
- package/dist/api/utilities/whisper-model.js.map +1 -0
- package/dist/api/utils.d.ts +19 -0
- package/dist/api/utils.js +39 -0
- package/dist/api/utils.js.map +1 -0
- package/dist/api/webrtc-stream.d.ts +294 -0
- package/dist/api/webrtc-stream.js +546 -0
- package/dist/api/webrtc-stream.js.map +1 -0
- package/dist/api/whisper.d.ts +326 -0
- package/dist/api/whisper.js +402 -0
- package/dist/api/whisper.js.map +1 -0
- package/dist/constants/bsf-options.d.ts +364 -0
- package/dist/constants/bsf-options.js +7 -0
- package/dist/constants/bsf-options.js.map +1 -0
- package/dist/constants/channel-layouts.d.ts +53 -0
- package/dist/constants/channel-layouts.js +57 -0
- package/dist/constants/channel-layouts.js.map +1 -0
- package/dist/constants/constants.d.ts +2435 -0
- package/dist/constants/constants.js +1989 -0
- package/dist/constants/constants.js.map +1 -0
- package/dist/constants/decoders.d.ts +651 -0
- package/dist/constants/decoders.js +641 -0
- package/dist/constants/decoders.js.map +1 -0
- package/dist/constants/encoders.d.ts +314 -0
- package/dist/constants/encoders.js +309 -0
- package/dist/constants/encoders.js.map +1 -0
- package/dist/constants/filter-options.d.ts +12099 -0
- package/dist/constants/filter-options.js +7 -0
- package/dist/constants/filter-options.js.map +1 -0
- package/dist/constants/format-options.d.ts +4319 -0
- package/dist/constants/format-options.js +7 -0
- package/dist/constants/format-options.js.map +1 -0
- package/dist/constants/formats.d.ts +18 -0
- package/dist/constants/formats.js +7 -0
- package/dist/constants/formats.js.map +1 -0
- package/dist/constants/hardware.d.ts +26 -0
- package/dist/constants/hardware.js +27 -0
- package/dist/constants/hardware.js.map +1 -0
- package/dist/constants/index.d.ts +10 -0
- package/dist/constants/index.js +6 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/options.d.ts +6217 -0
- package/dist/constants/options.js +7 -0
- package/dist/constants/options.js.map +1 -0
- package/dist/ffmpeg/index.d.ts +101 -0
- package/dist/ffmpeg/index.js +161 -0
- package/dist/ffmpeg/index.js.map +1 -0
- package/dist/ffmpeg/version.d.ts +6 -0
- package/dist/ffmpeg/version.js +7 -0
- package/dist/ffmpeg/version.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/audio-fifo.d.ts +399 -0
- package/dist/lib/audio-fifo.js +431 -0
- package/dist/lib/audio-fifo.js.map +1 -0
- package/dist/lib/binding.d.ts +242 -0
- package/dist/lib/binding.js +102 -0
- package/dist/lib/binding.js.map +1 -0
- package/dist/lib/bitstream-filter-context.d.ts +381 -0
- package/dist/lib/bitstream-filter-context.js +443 -0
- package/dist/lib/bitstream-filter-context.js.map +1 -0
- package/dist/lib/bitstream-filter.d.ts +140 -0
- package/dist/lib/bitstream-filter.js +154 -0
- package/dist/lib/bitstream-filter.js.map +1 -0
- package/dist/lib/codec-context.d.ts +1069 -0
- package/dist/lib/codec-context.js +1336 -0
- package/dist/lib/codec-context.js.map +1 -0
- package/dist/lib/codec-parameters.d.ts +664 -0
- package/dist/lib/codec-parameters.js +813 -0
- package/dist/lib/codec-parameters.js.map +1 -0
- package/dist/lib/codec-parser.d.ts +201 -0
- package/dist/lib/codec-parser.js +213 -0
- package/dist/lib/codec-parser.js.map +1 -0
- package/dist/lib/codec.d.ts +617 -0
- package/dist/lib/codec.js +746 -0
- package/dist/lib/codec.js.map +1 -0
- package/dist/lib/device.d.ts +294 -0
- package/dist/lib/device.js +326 -0
- package/dist/lib/device.js.map +1 -0
- package/dist/lib/dictionary.d.ts +333 -0
- package/dist/lib/dictionary.js +372 -0
- package/dist/lib/dictionary.js.map +1 -0
- package/dist/lib/error.d.ts +311 -0
- package/dist/lib/error.js +395 -0
- package/dist/lib/error.js.map +1 -0
- package/dist/lib/fifo.d.ts +416 -0
- package/dist/lib/fifo.js +453 -0
- package/dist/lib/fifo.js.map +1 -0
- package/dist/lib/filter-context.d.ts +714 -0
- package/dist/lib/filter-context.js +783 -0
- package/dist/lib/filter-context.js.map +1 -0
- package/dist/lib/filter-graph-segment.d.ts +161 -0
- package/dist/lib/filter-graph-segment.js +172 -0
- package/dist/lib/filter-graph-segment.js.map +1 -0
- package/dist/lib/filter-graph.d.ts +641 -0
- package/dist/lib/filter-graph.js +704 -0
- package/dist/lib/filter-graph.js.map +1 -0
- package/dist/lib/filter-inout.d.ts +202 -0
- package/dist/lib/filter-inout.js +261 -0
- package/dist/lib/filter-inout.js.map +1 -0
- package/dist/lib/filter.d.ts +243 -0
- package/dist/lib/filter.js +272 -0
- package/dist/lib/filter.js.map +1 -0
- package/dist/lib/format-context.d.ts +1335 -0
- package/dist/lib/format-context.js +1455 -0
- package/dist/lib/format-context.js.map +1 -0
- package/dist/lib/frame-utils.d.ts +116 -0
- package/dist/lib/frame-utils.js +98 -0
- package/dist/lib/frame-utils.js.map +1 -0
- package/dist/lib/frame.d.ts +1315 -0
- package/dist/lib/frame.js +1535 -0
- package/dist/lib/frame.js.map +1 -0
- package/dist/lib/hardware-device-context.d.ts +362 -0
- package/dist/lib/hardware-device-context.js +383 -0
- package/dist/lib/hardware-device-context.js.map +1 -0
- package/dist/lib/hardware-frames-context.d.ts +418 -0
- package/dist/lib/hardware-frames-context.js +471 -0
- package/dist/lib/hardware-frames-context.js.map +1 -0
- package/dist/lib/index.d.ts +35 -0
- package/dist/lib/index.js +60 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/input-format.d.ts +249 -0
- package/dist/lib/input-format.js +306 -0
- package/dist/lib/input-format.js.map +1 -0
- package/dist/lib/io-context.d.ts +698 -0
- package/dist/lib/io-context.js +771 -0
- package/dist/lib/io-context.js.map +1 -0
- package/dist/lib/log.d.ts +174 -0
- package/dist/lib/log.js +184 -0
- package/dist/lib/log.js.map +1 -0
- package/dist/lib/native-types.d.ts +1024 -0
- package/dist/lib/native-types.js +2 -0
- package/dist/lib/native-types.js.map +1 -0
- package/dist/lib/option.d.ts +953 -0
- package/dist/lib/option.js +1607 -0
- package/dist/lib/option.js.map +1 -0
- package/dist/lib/output-format.d.ts +222 -0
- package/dist/lib/output-format.js +259 -0
- package/dist/lib/output-format.js.map +1 -0
- package/dist/lib/packet.d.ts +521 -0
- package/dist/lib/packet.js +613 -0
- package/dist/lib/packet.js.map +1 -0
- package/dist/lib/rational.d.ts +251 -0
- package/dist/lib/rational.js +278 -0
- package/dist/lib/rational.js.map +1 -0
- package/dist/lib/software-resample-context.d.ts +552 -0
- package/dist/lib/software-resample-context.js +592 -0
- package/dist/lib/software-resample-context.js.map +1 -0
- package/dist/lib/software-scale-context.d.ts +344 -0
- package/dist/lib/software-scale-context.js +366 -0
- package/dist/lib/software-scale-context.js.map +1 -0
- package/dist/lib/stream.d.ts +383 -0
- package/dist/lib/stream.js +524 -0
- package/dist/lib/stream.js.map +1 -0
- package/dist/lib/sync-queue.d.ts +179 -0
- package/dist/lib/sync-queue.js +197 -0
- package/dist/lib/sync-queue.js.map +1 -0
- package/dist/lib/types.d.ts +34 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/utilities.d.ts +1198 -0
- package/dist/lib/utilities.js +1302 -0
- package/dist/lib/utilities.js.map +1 -0
- package/dist/utils/electron.d.ts +49 -0
- package/dist/utils/electron.js +63 -0
- package/dist/utils/electron.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/libc.d.ts +11 -0
- package/dist/utils/libc.js +35 -0
- package/dist/utils/libc.js.map +1 -0
- package/dist/utils/variant.d.ts +26 -0
- package/dist/utils/variant.js +31 -0
- package/dist/utils/variant.js.map +1 -0
- package/dist/webrtc/index.d.ts +4 -0
- package/dist/webrtc/index.js +7 -0
- package/dist/webrtc/index.js.map +1 -0
- package/install/check.js +124 -0
- package/install/ffmpeg.js +66 -0
- package/package.json +165 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"option.js","sourceRoot":"","sources":["../../src/lib/option.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,4BAA4B,EAC5B,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAkC7E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,UAAU;IACb,MAAM,CAAe;IAE7B;;;;OAIG;IACH,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,GAAG,KAAqB;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACxC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,OAAO,MAAM;IACjB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,IAAI,CAAC,GAAwB,EAAE,OAA0B,IAAI;QAClE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,IAAI,CAAC,GAAwB,EAAE,IAAY,EAAE,cAAmC,WAAW;QAChG,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,KAAK,CAAC,GAAwB,EAAE,IAAY,EAAE,cAAmC,WAAW;QACjG,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;YAC5D,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;SAC5C,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,GAAG,CAAC,GAAwB,EAAE,IAAY,EAAE,cAAmC,WAAW;QAC/F,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,MAAM,CAAC,GAAwB,EAAE,IAAY,EAAE,cAAmC,WAAW;QAClG,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAwB,EAAE,IAAY,EAAE,cAAmC,WAAW;QACpG,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,SAAS,CAAC,GAAwB,EAAE,IAAY,EAAE,cAAmC,WAAW;QACrG,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,WAAW,CAAC,GAAwB,EAAE,IAAY,EAAE,cAAmC,WAAW;QACvG,OAAO,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,cAAc,CAAC,GAAwB,EAAE,IAAY,EAAE,cAAmC,WAAW;QAC1G,OAAO,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,eAAe,CAAC,GAAwB,EAAE,IAAY,EAAE,cAAmC,WAAW;QAC3G,OAAO,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,YAAY,CAAC,GAAwB,EAAE,IAAY,EAAE,cAAmC,WAAW;QACxG,OAAO,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAwB,EAAE,IAAY,EAAE,cAAmC,WAAW;QAC5G,OAAO,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,OAAO,CAAC,GAAwB,EAAE,IAAY,EAAE,cAAmC,WAAW;QACnG,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,GAAG,CAAC,GAAwB,EAAE,IAAY,EAAE,KAAa,EAAE,cAAmC,WAAW;QAC9G,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,MAAM,CAAC,GAAwB,EAAE,IAAY,EAAE,KAAsB,EAAE,cAAmC,WAAW;QAC1H,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,SAAS,CAAC,GAAwB,EAAE,IAAY,EAAE,KAAa,EAAE,cAAmC,WAAW;QACpH,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,WAAW,CAAC,GAAwB,EAAE,IAAY,EAAE,KAAgB,EAAE,cAAmC,WAAW;QACzH,OAAO,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,cAAc,CAAC,GAAwB,EAAE,IAAY,EAAE,KAAoB,EAAE,cAAmC,WAAW;QAChI,OAAO,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,eAAe,CAAC,GAAwB,EAAE,IAAY,EAAE,KAAqB,EAAE,cAAmC,WAAW;QAClI,OAAO,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,YAAY,CAAC,GAAwB,EAAE,IAAY,EAAE,KAAa,EAAE,MAAc,EAAE,cAAmC,WAAW;QACvI,OAAO,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAwB,EAAE,IAAY,EAAE,KAAa,EAAE,cAAmC,WAAW;QAC3H,OAAO,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,OAAO,CAAC,GAAwB,EAAE,IAAY,EAAE,KAAiB,EAAE,cAAmC,WAAW;QACtH,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,MAAM,CAAC,GAAwB,EAAE,IAAY,EAAE,KAAa,EAAE,cAAmC,WAAW;QACjH,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,WAAW,CAAC,GAAwB;QACzC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,IAAI,CAAC,IAAyB,EAAE,GAAwB;QAC7D,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,cAAc,CAAC,GAAwB,EAAE,IAAY,EAAE,cAAmC,WAAW;QAC1G,OAAO,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,SAAS,CAAC,GAAwB,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG;QACjG,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,IAAI,CAAC,GAAwB;QAClC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,IAAI,CAAC,GAAwB,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC;QAC9D,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,OAAO,YAAY;IACb,MAAM,CAAI;IAEpB,YAAY,MAAS;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAgCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACH,SAAS,CAAC,IAAY,EAAE,KAAU,EAAE,IAAmB,EAAE,cAAmC,sBAAsB;QAChH,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,OAAO,CAAC,CAAC;QACX,CAAC;QAED,6EAA6E;QAC7E,4EAA4E;QAC5E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,kBAAkB,CAAC;YACxB,KAAK,iBAAiB,EAAE,4BAA4B;gBAClD,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;YAEnE,KAAK,eAAe;gBAClB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9B,MAAM,IAAI,SAAS,CAAC,WAAW,IAAI,kCAAkC,KAAK,EAAE,CAAC,CAAC;gBAChF,CAAC;gBACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAE/D,KAAK,gBAAgB;gBACnB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;oBAC9C,MAAM,IAAI,UAAU,CAAC,WAAW,IAAI,+CAA+C,KAAK,EAAE,CAAC,CAAC;gBAC9F,CAAC;gBACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAEhE,KAAK,iBAAiB,CAAC;YACvB,KAAK,oBAAoB,CAAC;YAC1B,KAAK,iBAAiB;gBACpB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;YAEtE,KAAK,gBAAgB;gBACnB,+BAA+B;gBAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YAEtE,KAAK,iBAAiB;gBACpB,gCAAgC;gBAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC9D,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC7B,MAAM,IAAI,SAAS,CAAC,WAAW,IAAI,4CAA4C,KAAK,EAAE,CAAC,CAAC;oBAC1F,CAAC;oBACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,SAAS,CAAC,WAAW,IAAI,+CAA+C,OAAO,KAAK,EAAE,CAAC,CAAC;gBACpG,CAAC;YAEH,KAAK,kBAAkB;gBACrB,0DAA0D;gBAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;wBACf,MAAM,IAAI,UAAU,CAAC,WAAW,IAAI,kDAAkD,KAAK,EAAE,CAAC,CAAC;oBACjG,CAAC;oBACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC9D,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;wBAC1C,MAAM,IAAI,UAAU,CAAC,WAAW,IAAI,oDAAoD,KAAK,EAAE,CAAC,CAAC;oBACnG,CAAC;oBACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,SAAS,CAAC,WAAW,IAAI,gDAAgD,OAAO,KAAK,EAAE,CAAC,CAAC;gBACrG,CAAC;YAEH,KAAK,kBAAkB,CAAC;YACxB,KAAK,iBAAiB;gBACpB,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;YAEzE,KAAK,oBAAoB,CAAC;YAC1B,KAAK,sBAAsB;gBACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC;oBACxE,MAAM,IAAI,SAAS,CAAC,WAAW,IAAI,oDAAoD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClH,CAAC;gBACD,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;oBACpB,MAAM,IAAI,UAAU,CAAC,WAAW,IAAI,wCAAwC,CAAC,CAAC;gBAChF,CAAC;gBACD,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAkB,EAAE,WAAW,CAAC,CAAC;YAEhF,KAAK,qBAAqB;gBACxB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9B,MAAM,IAAI,SAAS,CAAC,WAAW,IAAI,+CAA+C,KAAK,EAAE,CAAC,CAAC;gBAC7F,CAAC;gBACD,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAuB,EAAE,WAAW,CAAC,CAAC;YAExF,KAAK,sBAAsB;gBACzB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,SAAS,CAAC,WAAW,IAAI,gDAAgD,KAAK,EAAE,CAAC,CAAC;gBAC9F,CAAC;gBACD,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,SAA2B,EAAE,WAAW,CAAC,CAAC;YAE7F,KAAK,sBAAsB;gBACzB,kCAAkC;gBAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;oBACvE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAClC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;wBAC3C,MAAM,IAAI,UAAU,CAAC,WAAW,IAAI,4CAA4C,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBACjG,CAAC;oBACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;wBAC7C,MAAM,IAAI,UAAU,CAAC,WAAW,IAAI,6CAA6C,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;oBACnG,CAAC;oBACD,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC5E,CAAC;gBACD,MAAM,IAAI,SAAS,CAAC,WAAW,IAAI,gDAAgD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAE9G,KAAK,oBAAoB;gBACvB,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;YAEhF,KAAK,kBAAkB;gBACrB,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YAEtE,KAAK,4BAA4B;gBAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,sCAAsC;oBACtC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvC,CAAC;oBACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC/D,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAElF,KAAK,gBAAgB;gBACnB,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;oBAChC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC/D,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YAExE;gBACE,qBAAqB;gBACrB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IA8BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,SAAS,CAAC,IAAY,EAAE,OAAqB,kBAAkB,EAAE,cAAmC,sBAAsB;QACxH,oCAAoC;QACpC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,kBAAkB,CAAC;YACxB,KAAK,iBAAiB;gBACpB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAEpD,KAAK,eAAe,CAAC;YACrB,KAAK,gBAAgB,CAAC;YACtB,KAAK,iBAAiB,CAAC;YACvB,KAAK,oBAAoB,CAAC;YAC1B,KAAK,iBAAiB;gBACpB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAEvD,KAAK,iBAAiB,CAAC;YACvB,KAAK,kBAAkB;gBACrB,sEAAsE;gBACtE,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAEzD,KAAK,gBAAgB;gBACnB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC1D,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE5C,KAAK,kBAAkB,CAAC;YACxB,KAAK,iBAAiB;gBACpB,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAE1D,KAAK,oBAAoB,CAAC;YAC1B,KAAK,sBAAsB;gBACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;gBACpE,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAEpE,KAAK,qBAAqB;gBACxB,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAE/D,KAAK,sBAAsB;gBACzB,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAEhE,KAAK,sBAAsB;gBACzB,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAE7D,KAAK,oBAAoB;gBACvB,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAEjE,KAAK,gBAAgB;gBACnB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAExD,KAAK,kBAAkB;gBACrB,8CAA8C;gBAC9C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAEpD,KAAK,4BAA4B;gBAC/B,yEAAyE;gBACzE,uEAAuE;gBACvE,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAC;YAEhH;gBACE,qBAAqB;gBACrB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,WAAW;QACT,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,IAAI,GAAG,GAAsB,IAAI,CAAC;QAClC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,gBAAgB,CAAC,IAAY,EAAE,KAAqE;QAC1G,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,OAAO,CAAC,CAAC;QACX,CAAC;QAED,4EAA4E;QAC5E,wEAAwE;QACxE,+DAA+D;QAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACzD,CAAC;QAED,yCAAyC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,sBAAsB,CAAC,CAAC;QACvE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAE7B,qCAAqC;YACrC,QAAQ,OAAO,EAAE,CAAC;gBAChB,KAAK,eAAe;oBAClB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;oBACtD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBACtC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;oBAC9D,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC;oBAC9D,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;oBACpE,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,KAAK,gBAAgB;oBACnB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;oBACvD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBACtC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;oBAC/D,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC;oBAC/D,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;oBACrE,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,KAAK,iBAAiB;oBACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;oBACxD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBACtC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAChE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAChE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBACtE,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,KAAK,iBAAiB;oBACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;oBACxD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBACtC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAChE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAChE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBACtE,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,KAAK,oBAAoB;oBACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;oBAC3D,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBACtC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;oBACnE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC,CAAC;oBACnE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAC;oBACzE,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,KAAK,iBAAiB;oBACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;oBACxD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAChE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBACtC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;oBAClE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAChE,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,KAAK,kBAAkB;oBACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;oBACzD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;oBACjE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBACtC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;oBACnE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;oBACjE,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,KAAK,oBAAoB;oBACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;oBAC3D,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC,CAAC;oBACnE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBACtC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;oBACrE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC,CAAC;oBACnE,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,KAAK,iBAAiB;oBACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;oBACxD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBACtC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;oBACpE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAChE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBACpE,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,KAAK,kBAAkB;oBACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;oBACzD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBACtC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;oBACrE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;oBACjE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;oBACrE,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,KAAK,gBAAgB;oBACnB,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;oBACvD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC;oBAC7D,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;oBAC9D,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,KAAK,kBAAkB;oBACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;oBACzD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;oBACzE,CAAC;yBAAM,CAAC;wBACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;oBACjE,CAAC;gBAEH,KAAK,iBAAiB;oBACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;oBACxD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBACxE,CAAC;yBAAM,CAAC;wBACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAChE,CAAC;gBAEH,KAAK,oBAAoB,CAAC;gBAC1B,KAAK,sBAAsB;oBACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;wBAClE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAkB,EAAE,oBAAoB,CAAC,CAAC;oBACxE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,uCAAuC;wBACvC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC7C,IAAI,KAAK,EAAE,CAAC;4BACV,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;wBAClH,CAAC;wBACD,2CAA2C;wBAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;oBACzD,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,2CAA2C;gBAC3C,KAAK,sBAAsB;oBACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;wBACvE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAmB,EAAE,sBAAsB,CAAC,CAAC;oBAC3E,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,kCAAkC;wBAClC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC1C,IAAI,KAAK,EAAE,CAAC;4BACV,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC;wBACzH,CAAC;wBACD,2CAA2C;wBAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;oBACzD,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,qDAAqD;gBACrD,KAAK,qBAAqB;oBACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAsB,EAAE,qBAAqB,CAAC,CAAC;oBAC7E,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAkB,EAAE,qBAAqB,CAAC,CAAC;oBACrF,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC,CAAC;oBACjF,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,KAAK,sBAAsB;oBACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAuB,EAAE,sBAAsB,CAAC,CAAC;oBAC/E,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAmB,EAAE,sBAAsB,CAAC,CAAC;oBACvF,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;oBACrF,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,uCAAuC;gBACvC,KAAK,kBAAkB;oBACrB,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;oBACzD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;oBACtE,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,iDAAiD;gBACjD,KAAK,4BAA4B;oBAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzB,kCAAkC;wBAClC,OAAO,IAAI,CAAC,SAAS,CACnB,IAAI,EACJ,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EACzD,4BAA4B,CAC7B,CAAC;oBACJ,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,uCAAuC;wBACvC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,4BAA4B,CAAC,CAAC;oBACrE,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,uCAAuC;wBACvC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,4BAA4B,CAAC,CAAC;oBAC7E,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBACtC,iCAAiC;wBACjC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,4BAA4B,CAAC,CAAC;oBAC7E,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,2CAA2C;gBAC3C,KAAK,gBAAgB;oBACnB,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;wBAChC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;oBACvD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC9D,qCAAqC;wBACrC,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,KAAY,CAAC,CAAC;wBACjD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;oBACtD,CAAC;yBAAM,CAAC;wBACN,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBAEH,oCAAoC;gBACpC;oBACE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;oBACzD,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;oBACzE,CAAC;yBAAM,CAAC;wBACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;oBACjE,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,2EAA2E;YAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import type { AVCodecID, AVFormatConstants, AVFormatFlag } from '../constants/constants.js';
|
|
2
|
+
import type { NativeOutputFormat, NativeWrapper } from './native-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Output format descriptor for muxing media files.
|
|
5
|
+
*
|
|
6
|
+
* Represents a muxer that can write specific media container formats.
|
|
7
|
+
* Each format handles specific file types (e.g., MP4, MKV, AVI) and knows how to
|
|
8
|
+
* combine streams and write them to output. Contains default codec suggestions
|
|
9
|
+
* for audio, video, and subtitles.
|
|
10
|
+
*
|
|
11
|
+
* Direct mapping to FFmpeg's AVOutputFormat.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { OutputFormat, FormatContext, FFmpegError } from 'node-av';
|
|
16
|
+
* import { AV_CODEC_ID_H264, AV_CODEC_ID_AAC } from 'node-av/constants';
|
|
17
|
+
*
|
|
18
|
+
* // Guess format from filename
|
|
19
|
+
* const format = OutputFormat.guessFormat(null, 'output.mp4', null);
|
|
20
|
+
* if (!format) {
|
|
21
|
+
* throw new Error('Could not determine output format');
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* console.log(`Format: ${format.name}`);
|
|
25
|
+
* console.log(`Description: ${format.longName}`);
|
|
26
|
+
* console.log(`Default video codec: ${format.videoCodec}`);
|
|
27
|
+
* console.log(`Default audio codec: ${format.audioCodec}`);
|
|
28
|
+
*
|
|
29
|
+
* // Use specific format
|
|
30
|
+
* const mkvFormat = OutputFormat.guessFormat('matroska', null, null);
|
|
31
|
+
*
|
|
32
|
+
* // Use with format context
|
|
33
|
+
* const formatContext = new FormatContext();
|
|
34
|
+
* formatContext.outputFormat = format;
|
|
35
|
+
* const ret = await formatContext.allocOutputContext('output.mp4');
|
|
36
|
+
* FFmpegError.throwIfError(ret, 'allocOutputContext');
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @see [AVOutputFormat](https://ffmpeg.org/doxygen/trunk/structAVOutputFormat.html) - FFmpeg Doxygen
|
|
40
|
+
* @see {@link FormatContext} For using formats to write files
|
|
41
|
+
* @see {@link InputFormat} For demuxing formats
|
|
42
|
+
*/
|
|
43
|
+
export declare class OutputFormat implements NativeWrapper<NativeOutputFormat> {
|
|
44
|
+
private native;
|
|
45
|
+
/**
|
|
46
|
+
* @param native - The native output format instance
|
|
47
|
+
*
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
constructor(native: NativeOutputFormat);
|
|
51
|
+
/**
|
|
52
|
+
* Guess output format from name, filename, or MIME type.
|
|
53
|
+
*
|
|
54
|
+
* Determines the appropriate output format based on provided hints.
|
|
55
|
+
* At least one parameter should be non-null.
|
|
56
|
+
*
|
|
57
|
+
* Direct mapping to av_guess_format().
|
|
58
|
+
*
|
|
59
|
+
* @param shortName - Format short name (e.g., 'mp4', 'mkv', null to ignore)
|
|
60
|
+
*
|
|
61
|
+
* @param filename - Output filename for extension detection (null to ignore)
|
|
62
|
+
*
|
|
63
|
+
* @param mimeType - MIME type hint (null to ignore)
|
|
64
|
+
*
|
|
65
|
+
* @returns Detected format, or null if not determined
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* // Guess from filename extension
|
|
70
|
+
* const format1 = OutputFormat.guessFormat(null, 'video.mp4', null);
|
|
71
|
+
* // Returns MP4 format
|
|
72
|
+
*
|
|
73
|
+
* // Use specific format
|
|
74
|
+
* const format2 = OutputFormat.guessFormat('matroska', null, null);
|
|
75
|
+
* // Returns MKV format
|
|
76
|
+
*
|
|
77
|
+
* // Guess from MIME type
|
|
78
|
+
* const format3 = OutputFormat.guessFormat(null, null, 'video/mp4');
|
|
79
|
+
* // Returns MP4 format
|
|
80
|
+
*
|
|
81
|
+
* // Priority: shortName > filename > mimeType
|
|
82
|
+
* const format4 = OutputFormat.guessFormat('mkv', 'video.mp4', null);
|
|
83
|
+
* // Returns MKV format (shortName takes precedence)
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
static guessFormat(shortName: string | null, filename: string | null, mimeType: string | null): OutputFormat | null;
|
|
87
|
+
/**
|
|
88
|
+
* Format short name.
|
|
89
|
+
*
|
|
90
|
+
* Short identifier for the format (e.g., 'mp4', 'mkv').
|
|
91
|
+
*
|
|
92
|
+
* Direct mapping to AVOutputFormat->name.
|
|
93
|
+
*/
|
|
94
|
+
get name(): string | null;
|
|
95
|
+
/**
|
|
96
|
+
* Format long name.
|
|
97
|
+
*
|
|
98
|
+
* Human-readable description of the format.
|
|
99
|
+
*
|
|
100
|
+
* Direct mapping to AVOutputFormat->long_name.
|
|
101
|
+
*/
|
|
102
|
+
get longName(): string | null;
|
|
103
|
+
/**
|
|
104
|
+
* File extensions.
|
|
105
|
+
*
|
|
106
|
+
* Comma-separated list of file extensions for this format.
|
|
107
|
+
*
|
|
108
|
+
* Direct mapping to AVOutputFormat->extensions.
|
|
109
|
+
*/
|
|
110
|
+
get extensions(): string | null;
|
|
111
|
+
/**
|
|
112
|
+
* MIME type.
|
|
113
|
+
*
|
|
114
|
+
* MIME type(s) associated with this format.
|
|
115
|
+
*
|
|
116
|
+
* Direct mapping to AVOutputFormat->mime_type.
|
|
117
|
+
*/
|
|
118
|
+
get mimeType(): string | null;
|
|
119
|
+
/**
|
|
120
|
+
* Default audio codec.
|
|
121
|
+
*
|
|
122
|
+
* Suggested audio codec for this format.
|
|
123
|
+
*
|
|
124
|
+
* Direct mapping to AVOutputFormat->audio_codec.
|
|
125
|
+
*/
|
|
126
|
+
get audioCodec(): AVCodecID;
|
|
127
|
+
/**
|
|
128
|
+
* Default video codec.
|
|
129
|
+
*
|
|
130
|
+
* Suggested video codec for this format.
|
|
131
|
+
*
|
|
132
|
+
* Direct mapping to AVOutputFormat->video_codec.
|
|
133
|
+
*/
|
|
134
|
+
get videoCodec(): AVCodecID;
|
|
135
|
+
/**
|
|
136
|
+
* Default subtitle codec.
|
|
137
|
+
*
|
|
138
|
+
* Suggested subtitle codec for this format.
|
|
139
|
+
*
|
|
140
|
+
* Direct mapping to AVOutputFormat->subtitle_codec.
|
|
141
|
+
*/
|
|
142
|
+
get subtitleCodec(): AVCodecID;
|
|
143
|
+
/**
|
|
144
|
+
* Format flags.
|
|
145
|
+
*
|
|
146
|
+
* Combination of AVFMT_* flags indicating format capabilities.
|
|
147
|
+
*
|
|
148
|
+
* Direct mapping to AVOutputFormat->flags.
|
|
149
|
+
*/
|
|
150
|
+
get flags(): AVFormatFlag;
|
|
151
|
+
/**
|
|
152
|
+
* Check if output format has specific flags.
|
|
153
|
+
*
|
|
154
|
+
* Tests whether all specified flags are set using bitwise AND.
|
|
155
|
+
*
|
|
156
|
+
* @param flags - One or more flag values to check
|
|
157
|
+
*
|
|
158
|
+
* @returns true if all specified flags are set, false otherwise
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* import { AVFMT_GLOBALHEADER } from 'node-av/constants';
|
|
163
|
+
*
|
|
164
|
+
* if (outputFormat.hasFlags(AVFMT_GLOBALHEADER)) {
|
|
165
|
+
* console.log('This format requires global headers');
|
|
166
|
+
* }
|
|
167
|
+
* ```
|
|
168
|
+
*
|
|
169
|
+
* @see {@link flags} For direct flags access
|
|
170
|
+
*/
|
|
171
|
+
hasFlags(...flags: (AVFormatFlag | AVFormatConstants)[]): boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Get the codec tag this format stores for a codec.
|
|
174
|
+
*
|
|
175
|
+
* Looks the codec up in the format's codec tag table.
|
|
176
|
+
*
|
|
177
|
+
* Direct mapping to av_codec_get_tag2() on AVOutputFormat->codec_tag.
|
|
178
|
+
*
|
|
179
|
+
* @param codecId - Codec to look up
|
|
180
|
+
*
|
|
181
|
+
* @returns The tag (FourCC), or null if the format has no tag for this codec
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```typescript
|
|
185
|
+
* import { AV_CODEC_ID_H264 } from 'node-av/constants';
|
|
186
|
+
*
|
|
187
|
+
* const mp4 = OutputFormat.guessFormat('mp4', null, null);
|
|
188
|
+
* console.log(mp4?.getCodecTag(AV_CODEC_ID_H264)); // 0x31637661 ('avc1')
|
|
189
|
+
* ```
|
|
190
|
+
*
|
|
191
|
+
* @see {@link getCodecId} For the reverse lookup
|
|
192
|
+
*/
|
|
193
|
+
getCodecTag(codecId: AVCodecID): number | null;
|
|
194
|
+
/**
|
|
195
|
+
* Get the codec a codec tag stands for in this format.
|
|
196
|
+
*
|
|
197
|
+
* Looks the tag up in the format's codec tag table.
|
|
198
|
+
*
|
|
199
|
+
* Direct mapping to av_codec_get_id() on AVOutputFormat->codec_tag.
|
|
200
|
+
*
|
|
201
|
+
* @param tag - Codec tag (FourCC)
|
|
202
|
+
*
|
|
203
|
+
* @returns The codec, or AV_CODEC_ID_NONE if the format does not know the tag
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```typescript
|
|
207
|
+
* const mkv = OutputFormat.guessFormat('matroska', null, null);
|
|
208
|
+
* const id = mkv?.getCodecId(stream.codecpar.codecTag);
|
|
209
|
+
* ```
|
|
210
|
+
*
|
|
211
|
+
* @see {@link getCodecTag} For the reverse lookup
|
|
212
|
+
*/
|
|
213
|
+
getCodecId(tag: number): AVCodecID;
|
|
214
|
+
/**
|
|
215
|
+
* Get the underlying native OutputFormat object.
|
|
216
|
+
*
|
|
217
|
+
* @returns The native OutputFormat binding object
|
|
218
|
+
*
|
|
219
|
+
* @internal
|
|
220
|
+
*/
|
|
221
|
+
getNative(): NativeOutputFormat;
|
|
222
|
+
}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { bindings } from './binding.js';
|
|
2
|
+
/**
|
|
3
|
+
* Output format descriptor for muxing media files.
|
|
4
|
+
*
|
|
5
|
+
* Represents a muxer that can write specific media container formats.
|
|
6
|
+
* Each format handles specific file types (e.g., MP4, MKV, AVI) and knows how to
|
|
7
|
+
* combine streams and write them to output. Contains default codec suggestions
|
|
8
|
+
* for audio, video, and subtitles.
|
|
9
|
+
*
|
|
10
|
+
* Direct mapping to FFmpeg's AVOutputFormat.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { OutputFormat, FormatContext, FFmpegError } from 'node-av';
|
|
15
|
+
* import { AV_CODEC_ID_H264, AV_CODEC_ID_AAC } from 'node-av/constants';
|
|
16
|
+
*
|
|
17
|
+
* // Guess format from filename
|
|
18
|
+
* const format = OutputFormat.guessFormat(null, 'output.mp4', null);
|
|
19
|
+
* if (!format) {
|
|
20
|
+
* throw new Error('Could not determine output format');
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* console.log(`Format: ${format.name}`);
|
|
24
|
+
* console.log(`Description: ${format.longName}`);
|
|
25
|
+
* console.log(`Default video codec: ${format.videoCodec}`);
|
|
26
|
+
* console.log(`Default audio codec: ${format.audioCodec}`);
|
|
27
|
+
*
|
|
28
|
+
* // Use specific format
|
|
29
|
+
* const mkvFormat = OutputFormat.guessFormat('matroska', null, null);
|
|
30
|
+
*
|
|
31
|
+
* // Use with format context
|
|
32
|
+
* const formatContext = new FormatContext();
|
|
33
|
+
* formatContext.outputFormat = format;
|
|
34
|
+
* const ret = await formatContext.allocOutputContext('output.mp4');
|
|
35
|
+
* FFmpegError.throwIfError(ret, 'allocOutputContext');
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @see [AVOutputFormat](https://ffmpeg.org/doxygen/trunk/structAVOutputFormat.html) - FFmpeg Doxygen
|
|
39
|
+
* @see {@link FormatContext} For using formats to write files
|
|
40
|
+
* @see {@link InputFormat} For demuxing formats
|
|
41
|
+
*/
|
|
42
|
+
export class OutputFormat {
|
|
43
|
+
native;
|
|
44
|
+
/**
|
|
45
|
+
* @param native - The native output format instance
|
|
46
|
+
*
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
constructor(native) {
|
|
50
|
+
this.native = native;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Guess output format from name, filename, or MIME type.
|
|
54
|
+
*
|
|
55
|
+
* Determines the appropriate output format based on provided hints.
|
|
56
|
+
* At least one parameter should be non-null.
|
|
57
|
+
*
|
|
58
|
+
* Direct mapping to av_guess_format().
|
|
59
|
+
*
|
|
60
|
+
* @param shortName - Format short name (e.g., 'mp4', 'mkv', null to ignore)
|
|
61
|
+
*
|
|
62
|
+
* @param filename - Output filename for extension detection (null to ignore)
|
|
63
|
+
*
|
|
64
|
+
* @param mimeType - MIME type hint (null to ignore)
|
|
65
|
+
*
|
|
66
|
+
* @returns Detected format, or null if not determined
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* // Guess from filename extension
|
|
71
|
+
* const format1 = OutputFormat.guessFormat(null, 'video.mp4', null);
|
|
72
|
+
* // Returns MP4 format
|
|
73
|
+
*
|
|
74
|
+
* // Use specific format
|
|
75
|
+
* const format2 = OutputFormat.guessFormat('matroska', null, null);
|
|
76
|
+
* // Returns MKV format
|
|
77
|
+
*
|
|
78
|
+
* // Guess from MIME type
|
|
79
|
+
* const format3 = OutputFormat.guessFormat(null, null, 'video/mp4');
|
|
80
|
+
* // Returns MP4 format
|
|
81
|
+
*
|
|
82
|
+
* // Priority: shortName > filename > mimeType
|
|
83
|
+
* const format4 = OutputFormat.guessFormat('mkv', 'video.mp4', null);
|
|
84
|
+
* // Returns MKV format (shortName takes precedence)
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
static guessFormat(shortName, filename, mimeType) {
|
|
88
|
+
const native = bindings.OutputFormat.guessFormat(shortName, filename, mimeType);
|
|
89
|
+
if (!native) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
return new OutputFormat(native);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Format short name.
|
|
96
|
+
*
|
|
97
|
+
* Short identifier for the format (e.g., 'mp4', 'mkv').
|
|
98
|
+
*
|
|
99
|
+
* Direct mapping to AVOutputFormat->name.
|
|
100
|
+
*/
|
|
101
|
+
get name() {
|
|
102
|
+
return this.native.name;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Format long name.
|
|
106
|
+
*
|
|
107
|
+
* Human-readable description of the format.
|
|
108
|
+
*
|
|
109
|
+
* Direct mapping to AVOutputFormat->long_name.
|
|
110
|
+
*/
|
|
111
|
+
get longName() {
|
|
112
|
+
return this.native.longName;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* File extensions.
|
|
116
|
+
*
|
|
117
|
+
* Comma-separated list of file extensions for this format.
|
|
118
|
+
*
|
|
119
|
+
* Direct mapping to AVOutputFormat->extensions.
|
|
120
|
+
*/
|
|
121
|
+
get extensions() {
|
|
122
|
+
return this.native.extensions;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* MIME type.
|
|
126
|
+
*
|
|
127
|
+
* MIME type(s) associated with this format.
|
|
128
|
+
*
|
|
129
|
+
* Direct mapping to AVOutputFormat->mime_type.
|
|
130
|
+
*/
|
|
131
|
+
get mimeType() {
|
|
132
|
+
return this.native.mimeType;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Default audio codec.
|
|
136
|
+
*
|
|
137
|
+
* Suggested audio codec for this format.
|
|
138
|
+
*
|
|
139
|
+
* Direct mapping to AVOutputFormat->audio_codec.
|
|
140
|
+
*/
|
|
141
|
+
get audioCodec() {
|
|
142
|
+
return this.native.audioCodec;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Default video codec.
|
|
146
|
+
*
|
|
147
|
+
* Suggested video codec for this format.
|
|
148
|
+
*
|
|
149
|
+
* Direct mapping to AVOutputFormat->video_codec.
|
|
150
|
+
*/
|
|
151
|
+
get videoCodec() {
|
|
152
|
+
return this.native.videoCodec;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Default subtitle codec.
|
|
156
|
+
*
|
|
157
|
+
* Suggested subtitle codec for this format.
|
|
158
|
+
*
|
|
159
|
+
* Direct mapping to AVOutputFormat->subtitle_codec.
|
|
160
|
+
*/
|
|
161
|
+
get subtitleCodec() {
|
|
162
|
+
return this.native.subtitleCodec;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Format flags.
|
|
166
|
+
*
|
|
167
|
+
* Combination of AVFMT_* flags indicating format capabilities.
|
|
168
|
+
*
|
|
169
|
+
* Direct mapping to AVOutputFormat->flags.
|
|
170
|
+
*/
|
|
171
|
+
get flags() {
|
|
172
|
+
return this.native.flags;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Check if output format has specific flags.
|
|
176
|
+
*
|
|
177
|
+
* Tests whether all specified flags are set using bitwise AND.
|
|
178
|
+
*
|
|
179
|
+
* @param flags - One or more flag values to check
|
|
180
|
+
*
|
|
181
|
+
* @returns true if all specified flags are set, false otherwise
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```typescript
|
|
185
|
+
* import { AVFMT_GLOBALHEADER } from 'node-av/constants';
|
|
186
|
+
*
|
|
187
|
+
* if (outputFormat.hasFlags(AVFMT_GLOBALHEADER)) {
|
|
188
|
+
* console.log('This format requires global headers');
|
|
189
|
+
* }
|
|
190
|
+
* ```
|
|
191
|
+
*
|
|
192
|
+
* @see {@link flags} For direct flags access
|
|
193
|
+
*/
|
|
194
|
+
hasFlags(...flags) {
|
|
195
|
+
for (const flag of flags) {
|
|
196
|
+
if ((this.native.flags & flag) !== flag) {
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get the codec tag this format stores for a codec.
|
|
204
|
+
*
|
|
205
|
+
* Looks the codec up in the format's codec tag table.
|
|
206
|
+
*
|
|
207
|
+
* Direct mapping to av_codec_get_tag2() on AVOutputFormat->codec_tag.
|
|
208
|
+
*
|
|
209
|
+
* @param codecId - Codec to look up
|
|
210
|
+
*
|
|
211
|
+
* @returns The tag (FourCC), or null if the format has no tag for this codec
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```typescript
|
|
215
|
+
* import { AV_CODEC_ID_H264 } from 'node-av/constants';
|
|
216
|
+
*
|
|
217
|
+
* const mp4 = OutputFormat.guessFormat('mp4', null, null);
|
|
218
|
+
* console.log(mp4?.getCodecTag(AV_CODEC_ID_H264)); // 0x31637661 ('avc1')
|
|
219
|
+
* ```
|
|
220
|
+
*
|
|
221
|
+
* @see {@link getCodecId} For the reverse lookup
|
|
222
|
+
*/
|
|
223
|
+
getCodecTag(codecId) {
|
|
224
|
+
return this.native.getCodecTag(codecId);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Get the codec a codec tag stands for in this format.
|
|
228
|
+
*
|
|
229
|
+
* Looks the tag up in the format's codec tag table.
|
|
230
|
+
*
|
|
231
|
+
* Direct mapping to av_codec_get_id() on AVOutputFormat->codec_tag.
|
|
232
|
+
*
|
|
233
|
+
* @param tag - Codec tag (FourCC)
|
|
234
|
+
*
|
|
235
|
+
* @returns The codec, or AV_CODEC_ID_NONE if the format does not know the tag
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* ```typescript
|
|
239
|
+
* const mkv = OutputFormat.guessFormat('matroska', null, null);
|
|
240
|
+
* const id = mkv?.getCodecId(stream.codecpar.codecTag);
|
|
241
|
+
* ```
|
|
242
|
+
*
|
|
243
|
+
* @see {@link getCodecTag} For the reverse lookup
|
|
244
|
+
*/
|
|
245
|
+
getCodecId(tag) {
|
|
246
|
+
return this.native.getCodecId(tag);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Get the underlying native OutputFormat object.
|
|
250
|
+
*
|
|
251
|
+
* @returns The native OutputFormat binding object
|
|
252
|
+
*
|
|
253
|
+
* @internal
|
|
254
|
+
*/
|
|
255
|
+
getNative() {
|
|
256
|
+
return this.native;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=output-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-format.js","sourceRoot":"","sources":["../../src/lib/output-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAqB;IAEnC;;;;OAIG;IACH,YAAY,MAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,MAAM,CAAC,WAAW,CAAC,SAAwB,EAAE,QAAuB,EAAE,QAAuB;QAC3F,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IACnC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,GAAG,KAA2C;QACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACxC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,WAAW,CAAC,OAAkB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
|