@remotion/renderer 4.0.356 → 4.0.358
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/dist/assets/apply-tone-frequency.d.ts +11 -0
- package/dist/assets/apply-tone-frequency.js +34 -0
- package/dist/assets/inline-audio-mixing.d.ts +8 -0
- package/dist/assets/inline-audio-mixing.js +39 -9
- package/dist/create-audio.js +6 -0
- package/dist/esm/index.mjs +87 -11
- package/dist/render-frames.js +1 -1
- package/dist/render-media.js +6 -2
- package/dist/test/actual-concurrency.test.d.ts +1 -0
- package/dist/test/artifacts.test.d.ts +1 -0
- package/dist/test/asset-calculation.test.d.ts +1 -0
- package/dist/test/asset-compression.test.d.ts +1 -0
- package/dist/test/avoid-ffmpeg-stackoverflow.test.d.ts +1 -0
- package/dist/test/browser-log-message.test.d.ts +1 -0
- package/dist/test/calculate-atempo.test.d.ts +1 -0
- package/dist/test/compositor-rust.test.d.ts +1 -0
- package/dist/test/crf.test.d.ts +1 -0
- package/dist/test/derive-codec-from-file-extension.test.d.ts +1 -0
- package/dist/test/dont-skip-assets.test.d.ts +1 -0
- package/dist/test/download-file.test.d.ts +1 -0
- package/dist/test/even-dimensions.test.d.ts +1 -0
- package/dist/test/extra-frames-to-capture.test.d.ts +1 -0
- package/dist/test/extract-audio.test.d.ts +1 -0
- package/dist/test/extract-frame-rust.test.d.ts +1 -0
- package/dist/test/ffmpeg-filters.test.d.ts +1 -0
- package/dist/test/ffmpeg-merge-filter.test.d.ts +1 -0
- package/dist/test/ffmpeg-volume-expression.test.d.ts +1 -0
- package/dist/test/file-extension.test.d.ts +1 -0
- package/dist/test/find-closest-package-json.test.d.ts +1 -0
- package/dist/test/flatten-volume-array.test.d.ts +1 -0
- package/dist/test/format-logs.test.d.ts +1 -0
- package/dist/test/frame-padded-index.test.d.ts +1 -0
- package/dist/test/frame.test.d.ts +1 -0
- package/dist/test/get-assets-for-markup.d.ts +8 -0
- package/dist/test/get-audio-channels.test.d.ts +1 -0
- package/dist/test/get-bundle-url-from-serve-url.test.d.ts +1 -0
- package/dist/test/get-silent-parts.test.d.ts +1 -0
- package/dist/test/guess-extension-for-media.test.d.ts +1 -0
- package/dist/test/handle-weird-file-names.test.d.ts +1 -0
- package/dist/test/log-level.test.d.ts +1 -0
- package/dist/test/mime-types.test.d.ts +1 -0
- package/dist/test/offthread-extract-url.test.d.ts +1 -0
- package/dist/test/parse-ffmpeg-progress.test.d.ts +1 -0
- package/dist/test/partitions.test.d.ts +1 -0
- package/dist/test/pixel-format.test.d.ts +1 -0
- package/dist/test/port-config.test.d.ts +1 -0
- package/dist/test/port-selection.test.d.ts +1 -0
- package/dist/test/prores-profile.test.d.ts +1 -0
- package/dist/test/render-still.test.d.ts +1 -0
- package/dist/test/rust-errors.test.d.ts +1 -0
- package/dist/test/rust-get-video-metadata.test.d.ts +1 -0
- package/dist/test/rust-memory-usage.test.d.ts +1 -0
- package/dist/test/sanitize-file-path.test.d.ts +1 -0
- package/dist/test/serve-url.test.d.ts +1 -0
- package/dist/test/symbolicate-remote-stack.test.d.ts +1 -0
- package/dist/test/validate-concurrency.test.d.ts +1 -0
- package/dist/test/validate-config-stitcher.test.d.ts +1 -0
- package/dist/test/validate-config.test.d.ts +1 -0
- package/dist/test/validate-even-dimensions-with-codec.test.d.ts +1 -0
- package/dist/test/validate-image-format.test.d.ts +1 -0
- package/dist/test/webpack-to-serve-url.test.d.ts +1 -0
- package/ensure-browser.mjs +22 -14
- package/package/dist/assets/apply-tone-frequency.d.ts +11 -0
- package/package/dist/assets/apply-tone-frequency.js +34 -0
- package/package/dist/assets/calculate-asset-positions.d.ts +3 -0
- package/package/dist/assets/calculate-asset-positions.js +72 -0
- package/package/dist/assets/calculate-atempo.d.ts +1 -0
- package/package/dist/assets/calculate-atempo.js +16 -0
- package/package/dist/assets/convert-assets-to-file-urls.d.ts +13 -0
- package/package/dist/assets/convert-assets-to-file-urls.js +36 -0
- package/package/dist/assets/download-and-map-assets-to-file.d.ts +37 -0
- package/package/dist/assets/download-and-map-assets-to-file.js +312 -0
- package/package/dist/assets/download-file.d.ts +18 -0
- package/package/dist/assets/download-file.js +135 -0
- package/package/dist/assets/download-map.d.ts +55 -0
- package/package/dist/assets/download-map.js +63 -0
- package/package/dist/assets/ffmpeg-volume-expression.d.ts +12 -0
- package/package/dist/assets/ffmpeg-volume-expression.js +96 -0
- package/package/dist/assets/flatten-volume-array.d.ts +3 -0
- package/package/dist/assets/flatten-volume-array.js +26 -0
- package/package/dist/assets/get-audio-channels.d.ts +20 -0
- package/package/dist/assets/get-audio-channels.js +78 -0
- package/package/dist/assets/inline-audio-mixing.d.ts +22 -0
- package/package/dist/assets/inline-audio-mixing.js +189 -0
- package/package/dist/assets/read-file.d.ts +7 -0
- package/package/dist/assets/read-file.js +97 -0
- package/package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts +1 -0
- package/package/dist/assets/round-volume-to-avoid-stack-overflow.js +17 -0
- package/package/dist/assets/sanitize-filename.d.ts +1 -0
- package/package/dist/assets/sanitize-filename.js +58 -0
- package/package/dist/assets/sanitize-filepath.d.ts +1 -0
- package/package/dist/assets/sanitize-filepath.js +16 -0
- package/package/dist/assets/truncate-utf8-bytes.d.ts +1 -0
- package/package/dist/assets/truncate-utf8-bytes.js +36 -0
- package/package/dist/assets/types.d.ts +18 -0
- package/package/dist/assets/types.js +21 -0
- package/package/dist/browser/Browser.d.ts +97 -0
- package/package/dist/browser/Browser.js +246 -0
- package/package/dist/browser/BrowserFetcher.d.ts +33 -0
- package/package/dist/browser/BrowserFetcher.js +215 -0
- package/package/dist/browser/BrowserPage.d.ts +104 -0
- package/package/dist/browser/BrowserPage.js +436 -0
- package/package/dist/browser/BrowserRunner.d.ts +33 -0
- package/package/dist/browser/BrowserRunner.js +303 -0
- package/package/dist/browser/Connection.d.ts +49 -0
- package/package/dist/browser/Connection.js +258 -0
- package/package/dist/browser/ConsoleMessage.d.ts +42 -0
- package/package/dist/browser/ConsoleMessage.js +47 -0
- package/package/dist/browser/DOMWorld.d.ts +56 -0
- package/package/dist/browser/DOMWorld.js +272 -0
- package/package/dist/browser/Errors.d.ts +25 -0
- package/package/dist/browser/Errors.js +35 -0
- package/package/dist/browser/EvalTypes.d.ts +27 -0
- package/package/dist/browser/EvalTypes.js +17 -0
- package/package/dist/browser/EventEmitter.d.ts +23 -0
- package/package/dist/browser/EventEmitter.js +53 -0
- package/package/dist/browser/ExecutionContext.d.ts +34 -0
- package/package/dist/browser/ExecutionContext.js +174 -0
- package/package/dist/browser/FrameManager.d.ts +89 -0
- package/package/dist/browser/FrameManager.js +487 -0
- package/package/dist/browser/HTTPRequest.d.ts +29 -0
- package/package/dist/browser/HTTPRequest.js +39 -0
- package/package/dist/browser/HTTPResponse.d.ts +21 -0
- package/package/dist/browser/HTTPResponse.js +41 -0
- package/package/dist/browser/JSHandle.d.ts +35 -0
- package/package/dist/browser/JSHandle.js +90 -0
- package/package/dist/browser/LaunchOptions.d.ts +26 -0
- package/package/dist/browser/LaunchOptions.js +17 -0
- package/package/dist/browser/Launcher.d.ts +18 -0
- package/package/dist/browser/Launcher.js +41 -0
- package/package/dist/browser/LifecycleWatcher.d.ts +29 -0
- package/package/dist/browser/LifecycleWatcher.js +180 -0
- package/package/dist/browser/NetworkEventManager.d.ts +34 -0
- package/package/dist/browser/NetworkEventManager.js +85 -0
- package/package/dist/browser/NetworkManager.d.ts +37 -0
- package/package/dist/browser/NetworkManager.js +246 -0
- package/package/dist/browser/NodeWebSocketTransport.d.ts +19 -0
- package/package/dist/browser/NodeWebSocketTransport.js +81 -0
- package/package/dist/browser/PuppeteerViewport.d.ts +5 -0
- package/package/dist/browser/PuppeteerViewport.js +2 -0
- package/package/dist/browser/ScreenshotOptions.d.ts +0 -0
- package/package/dist/browser/ScreenshotOptions.js +1 -0
- package/package/dist/browser/Target.d.ts +72 -0
- package/package/dist/browser/Target.js +161 -0
- package/package/dist/browser/TaskQueue.d.ts +20 -0
- package/package/dist/browser/TaskQueue.js +47 -0
- package/package/dist/browser/TimeoutSettings.d.ts +24 -0
- package/package/dist/browser/TimeoutSettings.js +62 -0
- package/package/dist/browser/assert.d.ts +1 -0
- package/package/dist/browser/assert.js +9 -0
- package/package/dist/browser/browser-download-progress-bar.d.ts +7 -0
- package/package/dist/browser/browser-download-progress-bar.js +31 -0
- package/package/dist/browser/devtools-commands.d.ts +274 -0
- package/package/dist/browser/devtools-commands.js +2 -0
- package/package/dist/browser/devtools-types.d.ts +1263 -0
- package/package/dist/browser/devtools-types.js +2 -0
- package/package/dist/browser/flaky-errors.d.ts +2 -0
- package/package/dist/browser/flaky-errors.js +20 -0
- package/package/dist/browser/get-download-destination.d.ts +1 -0
- package/package/dist/browser/get-download-destination.js +38 -0
- package/package/dist/browser/handle-failed-resource.d.ts +10 -0
- package/package/dist/browser/handle-failed-resource.js +21 -0
- package/package/dist/browser/mitt/index.d.ts +22 -0
- package/package/dist/browser/mitt/index.js +49 -0
- package/package/dist/browser/should-log-message.d.ts +24 -0
- package/package/dist/browser/should-log-message.js +104 -0
- package/package/dist/browser/source-map-getter.d.ts +2 -0
- package/package/dist/browser/source-map-getter.js +2 -0
- package/package/dist/browser/util.d.ts +37 -0
- package/package/dist/browser/util.js +169 -0
- package/package/dist/browser-executable.d.ts +1 -0
- package/package/dist/browser-executable.js +2 -0
- package/package/dist/browser-log.d.ts +6 -0
- package/package/dist/browser-log.js +2 -0
- package/package/dist/browser.d.ts +2 -0
- package/package/dist/browser.js +4 -0
- package/package/dist/call-ffmpeg.d.ts +22 -0
- package/package/dist/call-ffmpeg.js +53 -0
- package/package/dist/can-concat-seamlessly.d.ts +4 -0
- package/package/dist/can-concat-seamlessly.js +17 -0
- package/package/dist/can-use-parallel-encoding.d.ts +3 -0
- package/package/dist/can-use-parallel-encoding.js +19 -0
- package/package/dist/chalk/index.d.ts +55 -0
- package/package/dist/chalk/index.js +130 -0
- package/package/dist/chalk/is-color-supported.d.ts +1 -0
- package/package/dist/chalk/is-color-supported.js +55 -0
- package/package/dist/check-version-requirements.d.ts +3 -0
- package/package/dist/check-version-requirements.js +82 -0
- package/package/dist/chunk.d.ts +1 -0
- package/package/dist/chunk.js +11 -0
- package/package/dist/client.d.ts +3016 -0
- package/package/dist/client.js +57 -0
- package/package/dist/codec-supports-media.d.ts +9 -0
- package/package/dist/codec-supports-media.js +76 -0
- package/package/dist/codec.d.ts +4 -0
- package/package/dist/codec.js +17 -0
- package/package/dist/collect-assets.d.ts +7 -0
- package/package/dist/collect-assets.js +38 -0
- package/package/dist/combine-audio.d.ts +21 -0
- package/package/dist/combine-audio.js +183 -0
- package/package/dist/combine-chunks.d.ts +39 -0
- package/package/dist/combine-chunks.js +171 -0
- package/package/dist/combine-video-streams-seamlessly.d.ts +3 -0
- package/package/dist/combine-video-streams-seamlessly.js +8 -0
- package/package/dist/combine-video-streams.d.ts +17 -0
- package/package/dist/combine-video-streams.js +75 -0
- package/package/dist/compositor/compositor.d.ts +22 -0
- package/package/dist/compositor/compositor.js +182 -0
- package/package/dist/compositor/get-executable-path.d.ts +12 -0
- package/package/dist/compositor/get-executable-path.js +95 -0
- package/package/dist/compositor/get-explicit-env.d.ts +3 -0
- package/package/dist/compositor/get-explicit-env.js +13 -0
- package/package/dist/compositor/make-file-executable.d.ts +1 -0
- package/package/dist/compositor/make-file-executable.js +44 -0
- package/package/dist/compositor/make-nonce.d.ts +1 -0
- package/package/dist/compositor/make-nonce.js +8 -0
- package/package/dist/compositor/payloads.d.ts +73 -0
- package/package/dist/compositor/payloads.js +2 -0
- package/package/dist/compositor/serialize-command.d.ts +2 -0
- package/package/dist/compositor/serialize-command.js +14 -0
- package/package/dist/compress-assets.d.ts +7 -0
- package/package/dist/compress-assets.js +25 -0
- package/package/dist/compress-audio.d.ts +16 -0
- package/package/dist/compress-audio.js +44 -0
- package/package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +1 -0
- package/package/dist/convert-number-of-gif-loops-to-ffmpeg.js +17 -0
- package/package/dist/convert-to-positive-frame-index.d.ts +4 -0
- package/package/dist/convert-to-positive-frame-index.js +8 -0
- package/package/dist/create-audio.d.ts +29 -0
- package/package/dist/create-audio.js +127 -0
- package/package/dist/create-ffmpeg-complex-filter.d.ts +10 -0
- package/package/dist/create-ffmpeg-complex-filter.js +24 -0
- package/package/dist/create-ffmpeg-merge-filter.d.ts +5 -0
- package/package/dist/create-ffmpeg-merge-filter.js +25 -0
- package/package/dist/create-silent-audio.d.ts +10 -0
- package/package/dist/create-silent-audio.js +28 -0
- package/package/dist/crf.d.ts +13 -0
- package/package/dist/crf.js +103 -0
- package/package/dist/cycle-browser-tabs.d.ts +10 -0
- package/package/dist/cycle-browser-tabs.js +50 -0
- package/package/dist/default-on-log.d.ts +2 -0
- package/package/dist/default-on-log.js +8 -0
- package/package/dist/delay-render-embedded-stack.d.ts +2 -0
- package/package/dist/delay-render-embedded-stack.js +17 -0
- package/package/dist/delete-directory.d.ts +1 -0
- package/package/dist/delete-directory.js +68 -0
- package/package/dist/ensure-browser.d.ts +24 -0
- package/package/dist/ensure-browser.js +58 -0
- package/package/dist/ensure-frames-in-order.d.ts +5 -0
- package/package/dist/ensure-frames-in-order.js +39 -0
- package/package/dist/ensure-output-directory.d.ts +1 -0
- package/package/dist/ensure-output-directory.js +17 -0
- package/package/dist/error-handling/handle-javascript-exception.d.ts +23 -0
- package/package/dist/error-handling/handle-javascript-exception.js +86 -0
- package/package/dist/error-handling/symbolicate-error.d.ts +3 -0
- package/package/dist/error-handling/symbolicate-error.js +26 -0
- package/package/dist/error-handling/symbolicateable-error.d.ts +18 -0
- package/package/dist/error-handling/symbolicateable-error.js +19 -0
- package/package/dist/error-handling.d.ts +1 -0
- package/package/dist/error-handling.js +5 -0
- package/package/dist/esm/client.mjs +3270 -0
- package/package/dist/esm/error-handling.mjs +363 -0
- package/package/dist/esm/index.mjs +23201 -0
- package/package/dist/esm/pure.mjs +526 -0
- package/package/dist/extract-audio.d.ts +7 -0
- package/package/dist/extract-audio.js +25 -0
- package/package/dist/ffmpeg-args.d.ts +21 -0
- package/package/dist/ffmpeg-args.js +96 -0
- package/package/dist/ffmpeg-filter-file.d.ts +13 -0
- package/package/dist/ffmpeg-filter-file.js +70 -0
- package/package/dist/ffmpeg-override.d.ts +4 -0
- package/package/dist/ffmpeg-override.js +2 -0
- package/package/dist/file-extensions.d.ts +14 -0
- package/package/dist/file-extensions.js +85 -0
- package/package/dist/filter-asset-types.d.ts +8 -0
- package/package/dist/filter-asset-types.js +44 -0
- package/package/dist/find-closest-package-json.d.ts +2 -0
- package/package/dist/find-closest-package-json.js +31 -0
- package/package/dist/format-logs.d.ts +3 -0
- package/package/dist/format-logs.js +214 -0
- package/package/dist/frame-range.d.ts +2 -0
- package/package/dist/frame-range.js +49 -0
- package/package/dist/get-browser-instance.d.ts +24 -0
- package/package/dist/get-browser-instance.js +63 -0
- package/package/dist/get-bundle-url-from-serve-url.d.ts +2 -0
- package/package/dist/get-bundle-url-from-serve-url.js +30 -0
- package/package/dist/get-codec-name.d.ts +21 -0
- package/package/dist/get-codec-name.js +87 -0
- package/package/dist/get-compositions.d.ts +34 -0
- package/package/dist/get-compositions.js +196 -0
- package/package/dist/get-concurrency.d.ts +1 -0
- package/package/dist/get-concurrency.js +27 -0
- package/package/dist/get-cpu-count.d.ts +2 -0
- package/package/dist/get-cpu-count.js +33 -0
- package/package/dist/get-duration-from-frame-range.d.ts +1 -0
- package/package/dist/get-duration-from-frame-range.js +17 -0
- package/package/dist/get-extension-from-codec.d.ts +6 -0
- package/package/dist/get-extension-from-codec.js +61 -0
- package/package/dist/get-extension-of-filename.d.ts +1 -0
- package/package/dist/get-extension-of-filename.js +15 -0
- package/package/dist/get-extra-frames-to-capture.d.ts +14 -0
- package/package/dist/get-extra-frames-to-capture.js +62 -0
- package/package/dist/get-frame-padded-index.d.ts +21 -0
- package/package/dist/get-frame-padded-index.js +43 -0
- package/package/dist/get-frame-to-render.d.ts +2 -0
- package/package/dist/get-frame-to-render.js +19 -0
- package/package/dist/get-local-browser-executable.d.ts +9 -0
- package/package/dist/get-local-browser-executable.js +36 -0
- package/package/dist/get-port.d.ts +15 -0
- package/package/dist/get-port.js +86 -0
- package/package/dist/get-prores-profile-name.d.ts +3 -0
- package/package/dist/get-prores-profile-name.js +25 -0
- package/package/dist/get-silent-parts.d.ts +10 -0
- package/package/dist/get-silent-parts.js +66 -0
- package/package/dist/get-video-metadata.d.ts +10 -0
- package/package/dist/get-video-metadata.js +25 -0
- package/package/dist/get-video-threads-flag.d.ts +2 -0
- package/package/dist/get-video-threads-flag.js +16 -0
- package/package/dist/goto-page-or-throw.d.ts +3 -0
- package/package/dist/goto-page-or-throw.js +16 -0
- package/package/dist/guess-extension-for-media.d.ts +9 -0
- package/package/dist/guess-extension-for-media.js +31 -0
- package/package/dist/image-format.d.ts +13 -0
- package/package/dist/image-format.js +37 -0
- package/package/dist/index.d.ts +1256 -0
- package/package/dist/index.js +227 -0
- package/package/dist/is-audio-codec.d.ts +2 -0
- package/package/dist/is-audio-codec.js +7 -0
- package/package/dist/is-delay-render-error-with-retry.d.ts +1 -0
- package/package/dist/is-delay-render-error-with-retry.js +28 -0
- package/package/dist/is-serve-url.d.ts +1 -0
- package/package/dist/is-serve-url.js +15 -0
- package/package/dist/jpeg-quality.d.ts +2 -0
- package/package/dist/jpeg-quality.js +22 -0
- package/package/dist/locks.d.ts +7 -0
- package/package/dist/locks.js +47 -0
- package/package/dist/log-level.d.ts +4 -0
- package/package/dist/log-level.js +15 -0
- package/package/dist/logger.d.ts +20 -0
- package/package/dist/logger.js +89 -0
- package/package/dist/make-cancel-signal.d.ts +14 -0
- package/package/dist/make-cancel-signal.js +48 -0
- package/package/dist/make-metadata-args.d.ts +2 -0
- package/package/dist/make-metadata-args.js +22 -0
- package/package/dist/make-page.d.ts +30 -0
- package/package/dist/make-page.js +70 -0
- package/package/dist/memory/from-docker-cgroup.d.ts +1 -0
- package/package/dist/memory/from-docker-cgroup.js +66 -0
- package/package/dist/memory/from-lambda-env.d.ts +1 -0
- package/package/dist/memory/from-lambda-env.js +10 -0
- package/package/dist/memory/from-proc-meminfo.d.ts +2 -0
- package/package/dist/memory/from-proc-meminfo.js +44 -0
- package/package/dist/memory/get-available-memory.d.ts +2 -0
- package/package/dist/memory/get-available-memory.js +44 -0
- package/package/dist/merge-audio-track.d.ts +19 -0
- package/package/dist/merge-audio-track.js +133 -0
- package/package/dist/mime-db.d.ts +6 -0
- package/package/dist/mime-db.js +8636 -0
- package/package/dist/mime-types.d.ts +3 -0
- package/package/dist/mime-types.js +94 -0
- package/package/dist/mux-video-and-audio.d.ts +15 -0
- package/package/dist/mux-video-and-audio.js +54 -0
- package/package/dist/next-frame-to-render.d.ts +11 -0
- package/package/dist/next-frame-to-render.js +41 -0
- package/package/dist/normalize-serve-url.d.ts +1 -0
- package/package/dist/normalize-serve-url.js +19 -0
- package/package/dist/offthread-video-server.d.ts +51 -0
- package/package/dist/offthread-video-server.js +217 -0
- package/package/dist/open-browser.d.ts +47 -0
- package/package/dist/open-browser.js +200 -0
- package/package/dist/options/api-key.d.ts +15 -0
- package/package/dist/options/api-key.js +29 -0
- package/package/dist/options/audio-bitrate.d.ts +18 -0
- package/package/dist/options/audio-bitrate.js +35 -0
- package/package/dist/options/audio-codec.d.ts +55 -0
- package/package/dist/options/audio-codec.js +188 -0
- package/package/dist/options/beep-on-finish.d.ts +15 -0
- package/package/dist/options/beep-on-finish.js +35 -0
- package/package/dist/options/binaries-directory.d.ts +15 -0
- package/package/dist/options/binaries-directory.js +35 -0
- package/package/dist/options/chrome-mode.d.ts +17 -0
- package/package/dist/options/chrome-mode.js +46 -0
- package/package/dist/options/color-space.d.ts +23 -0
- package/package/dist/options/color-space.js +49 -0
- package/package/dist/options/crf.d.ts +17 -0
- package/package/dist/options/crf.js +43 -0
- package/package/dist/options/cross-site-isolation.d.ts +15 -0
- package/package/dist/options/cross-site-isolation.js +29 -0
- package/package/dist/options/delete-after.d.ts +19 -0
- package/package/dist/options/delete-after.js +37 -0
- package/package/dist/options/disable-git-source.d.ts +15 -0
- package/package/dist/options/disable-git-source.js +28 -0
- package/package/dist/options/disallow-parallel-encoding.d.ts +15 -0
- package/package/dist/options/disallow-parallel-encoding.js +35 -0
- package/package/dist/options/enable-lambda-insights.d.ts +15 -0
- package/package/dist/options/enable-lambda-insights.js +35 -0
- package/package/dist/options/enable-multiprocess-on-linux.d.ts +15 -0
- package/package/dist/options/enable-multiprocess-on-linux.js +36 -0
- package/package/dist/options/encoding-buffer-size.d.ts +18 -0
- package/package/dist/options/encoding-buffer-size.js +39 -0
- package/package/dist/options/encoding-max-rate.d.ts +18 -0
- package/package/dist/options/encoding-max-rate.js +35 -0
- package/package/dist/options/enforce-audio.d.ts +18 -0
- package/package/dist/options/enforce-audio.js +36 -0
- package/package/dist/options/folder-expiry.d.ts +15 -0
- package/package/dist/options/folder-expiry.js +37 -0
- package/package/dist/options/for-seamless-aac-concatenation.d.ts +19 -0
- package/package/dist/options/for-seamless-aac-concatenation.js +40 -0
- package/package/dist/options/gl.d.ts +24 -0
- package/package/dist/options/gl.js +68 -0
- package/package/dist/options/hardware-acceleration.d.ts +18 -0
- package/package/dist/options/hardware-acceleration.js +56 -0
- package/package/dist/options/headless.d.ts +15 -0
- package/package/dist/options/headless.js +36 -0
- package/package/dist/options/image-sequence-pattern.d.ts +15 -0
- package/package/dist/options/image-sequence-pattern.js +30 -0
- package/package/dist/options/index.d.ts +747 -0
- package/package/dist/options/index.js +97 -0
- package/package/dist/options/jpeg-quality.d.ts +17 -0
- package/package/dist/options/jpeg-quality.js +47 -0
- package/package/dist/options/latency-hint.d.ts +18 -0
- package/package/dist/options/latency-hint.js +27 -0
- package/package/dist/options/log-level.d.ts +16 -0
- package/package/dist/options/log-level.js +32 -0
- package/package/dist/options/metadata.d.ts +18 -0
- package/package/dist/options/metadata.js +47 -0
- package/package/dist/options/mute.d.ts +15 -0
- package/package/dist/options/mute.js +37 -0
- package/package/dist/options/number-of-gif-loops.d.ts +19 -0
- package/package/dist/options/number-of-gif-loops.js +44 -0
- package/package/dist/options/offthreadvideo-cache-size.d.ts +20 -0
- package/package/dist/options/offthreadvideo-cache-size.js +60 -0
- package/package/dist/options/offthreadvideo-threads.d.ts +20 -0
- package/package/dist/options/offthreadvideo-threads.js +40 -0
- package/package/dist/options/on-browser-download.d.ts +22 -0
- package/package/dist/options/on-browser-download.js +19 -0
- package/package/dist/options/option.d.ts +20 -0
- package/package/dist/options/option.js +2 -0
- package/package/dist/options/options-map.d.ts +2040 -0
- package/package/dist/options/options-map.js +192 -0
- package/package/dist/options/overwrite.d.ts +15 -0
- package/package/dist/options/overwrite.js +42 -0
- package/package/dist/options/prefer-lossless.d.ts +18 -0
- package/package/dist/options/prefer-lossless.js +26 -0
- package/package/dist/options/public-dir.d.ts +18 -0
- package/package/dist/options/public-dir.js +37 -0
- package/package/dist/options/public-path.d.ts +18 -0
- package/package/dist/options/public-path.js +37 -0
- package/package/dist/options/repro.d.ts +15 -0
- package/package/dist/options/repro.js +36 -0
- package/package/dist/options/scale.d.ts +15 -0
- package/package/dist/options/scale.js +41 -0
- package/package/dist/options/separate-audio.d.ts +18 -0
- package/package/dist/options/separate-audio.js +28 -0
- package/package/dist/options/throw-if-site-exists.d.ts +15 -0
- package/package/dist/options/throw-if-site-exists.js +28 -0
- package/package/dist/options/timeout.d.ts +15 -0
- package/package/dist/options/timeout.js +44 -0
- package/package/dist/options/video-bitrate.d.ts +15 -0
- package/package/dist/options/video-bitrate.js +35 -0
- package/package/dist/options/video-cache-size.d.ts +19 -0
- package/package/dist/options/video-cache-size.js +39 -0
- package/package/dist/options/video-codec.d.ts +23 -0
- package/package/dist/options/video-codec.js +104 -0
- package/package/dist/options/webhook-custom-data.d.ts +10 -0
- package/package/dist/options/webhook-custom-data.js +21 -0
- package/package/dist/options/x264-preset.d.ts +25 -0
- package/package/dist/options/x264-preset.js +55 -0
- package/package/dist/overwrite.d.ts +1 -0
- package/package/dist/overwrite.js +4 -0
- package/package/dist/p-limit.d.ts +1 -0
- package/package/dist/p-limit.js +57 -0
- package/package/dist/parse-browser-error-stack.d.ts +7 -0
- package/package/dist/parse-browser-error-stack.js +87 -0
- package/package/dist/parse-ffmpeg-progress.d.ts +1 -0
- package/package/dist/parse-ffmpeg-progress.js +18 -0
- package/package/dist/path-normalize.d.ts +1 -0
- package/package/dist/path-normalize.js +132 -0
- package/package/dist/perf.d.ts +5 -0
- package/package/dist/perf.js +37 -0
- package/package/dist/pixel-format.d.ts +6 -0
- package/package/dist/pixel-format.js +37 -0
- package/package/dist/pool.d.ts +8 -0
- package/package/dist/pool.js +30 -0
- package/package/dist/port-config.d.ts +14 -0
- package/package/dist/port-config.js +79 -0
- package/package/dist/prepare-server.d.ts +32 -0
- package/package/dist/prepare-server.js +123 -0
- package/package/dist/preprocess-audio-track.d.ts +27 -0
- package/package/dist/preprocess-audio-track.js +82 -0
- package/package/dist/prespawn-ffmpeg.d.ts +49 -0
- package/package/dist/prespawn-ffmpeg.js +112 -0
- package/package/dist/prestitcher-memory-usage.d.ts +10 -0
- package/package/dist/prestitcher-memory-usage.js +26 -0
- package/package/dist/print-useful-error-message.d.ts +2 -0
- package/package/dist/print-useful-error-message.js +110 -0
- package/package/dist/prores-profile.d.ts +7 -0
- package/package/dist/prores-profile.js +23 -0
- package/package/dist/puppeteer-evaluate.d.ts +17 -0
- package/package/dist/puppeteer-evaluate.js +162 -0
- package/package/dist/puppeteer-screenshot.d.ts +12 -0
- package/package/dist/puppeteer-screenshot.js +58 -0
- package/package/dist/pure.d.ts +17 -0
- package/package/dist/pure.js +17 -0
- package/package/dist/redirect-status-codes.d.ts +1 -0
- package/package/dist/redirect-status-codes.js +6 -0
- package/package/dist/render-frame-and-retry-target-close.d.ts +54 -0
- package/package/dist/render-frame-and-retry-target-close.js +179 -0
- package/package/dist/render-frame-with-option-to-reject.d.ts +48 -0
- package/package/dist/render-frame-with-option-to-reject.js +156 -0
- package/package/dist/render-frame.d.ts +47 -0
- package/package/dist/render-frame.js +51 -0
- package/package/dist/render-frames.d.ts +97 -0
- package/package/dist/render-frames.js +413 -0
- package/package/dist/render-has-audio.d.ts +8 -0
- package/package/dist/render-has-audio.js +20 -0
- package/package/dist/render-media.d.ts +135 -0
- package/package/dist/render-media.js +621 -0
- package/package/dist/render-partitions.d.ts +7 -0
- package/package/dist/render-partitions.js +50 -0
- package/package/dist/render-still.d.ts +74 -0
- package/package/dist/render-still.js +356 -0
- package/package/dist/replace-browser.d.ts +7 -0
- package/package/dist/replace-browser.js +48 -0
- package/package/dist/repro.d.ts +25 -0
- package/package/dist/repro.js +184 -0
- package/package/dist/resolve-asset-src.d.ts +1 -0
- package/package/dist/resolve-asset-src.js +17 -0
- package/package/dist/sample-rate.d.ts +1 -0
- package/package/dist/sample-rate.js +4 -0
- package/package/dist/screenshot-task.d.ts +12 -0
- package/package/dist/screenshot-task.js +86 -0
- package/package/dist/seamless-aac-trim.d.ts +12 -0
- package/package/dist/seamless-aac-trim.js +24 -0
- package/package/dist/seek-to-frame.d.ts +18 -0
- package/package/dist/seek-to-frame.js +148 -0
- package/package/dist/select-composition.d.ts +45 -0
- package/package/dist/select-composition.js +219 -0
- package/package/dist/serialize-artifact.d.ts +7 -0
- package/package/dist/serialize-artifact.js +2 -0
- package/package/dist/serve-handler/index.d.ts +4 -0
- package/package/dist/serve-handler/index.js +208 -0
- package/package/dist/serve-handler/is-path-inside.d.ts +1 -0
- package/package/dist/serve-handler/is-path-inside.js +27 -0
- package/package/dist/serve-handler/range-parser.d.ts +13 -0
- package/package/dist/serve-handler/range-parser.js +57 -0
- package/package/dist/serve-static.d.ts +18 -0
- package/package/dist/serve-static.js +141 -0
- package/package/dist/set-props-and-env.d.ts +22 -0
- package/package/dist/set-props-and-env.js +219 -0
- package/package/dist/stitch-frames-to-video.d.ts +77 -0
- package/package/dist/stitch-frames-to-video.js +350 -0
- package/package/dist/stringify-ffmpeg-filter.d.ts +24 -0
- package/package/dist/stringify-ffmpeg-filter.js +140 -0
- package/package/dist/succeed-or-cancel.d.ts +6 -0
- package/package/dist/succeed-or-cancel.js +23 -0
- package/package/dist/symbolicate-stacktrace.d.ts +29 -0
- package/package/dist/symbolicate-stacktrace.js +155 -0
- package/package/dist/take-frame.d.ts +13 -0
- package/package/dist/take-frame.js +47 -0
- package/package/dist/test/actual-concurrency.test.d.ts +1 -0
- package/package/dist/test/artifacts.test.d.ts +1 -0
- package/package/dist/test/asset-calculation.test.d.ts +1 -0
- package/package/dist/test/asset-compression.test.d.ts +1 -0
- package/package/dist/test/avoid-ffmpeg-stackoverflow.test.d.ts +1 -0
- package/package/dist/test/browser-log-message.test.d.ts +1 -0
- package/package/dist/test/calculate-atempo.test.d.ts +1 -0
- package/package/dist/test/compositor-rust.test.d.ts +1 -0
- package/package/dist/test/crf.test.d.ts +1 -0
- package/package/dist/test/derive-codec-from-file-extension.test.d.ts +1 -0
- package/package/dist/test/dont-skip-assets.test.d.ts +1 -0
- package/package/dist/test/download-file.test.d.ts +1 -0
- package/package/dist/test/even-dimensions.test.d.ts +1 -0
- package/package/dist/test/extra-frames-to-capture.test.d.ts +1 -0
- package/package/dist/test/extract-audio.test.d.ts +1 -0
- package/package/dist/test/extract-frame-rust.test.d.ts +1 -0
- package/package/dist/test/ffmpeg-filters.test.d.ts +1 -0
- package/package/dist/test/ffmpeg-merge-filter.test.d.ts +1 -0
- package/package/dist/test/ffmpeg-volume-expression.test.d.ts +1 -0
- package/package/dist/test/file-extension.test.d.ts +1 -0
- package/package/dist/test/find-closest-package-json.test.d.ts +1 -0
- package/package/dist/test/flatten-volume-array.test.d.ts +1 -0
- package/package/dist/test/format-logs.test.d.ts +1 -0
- package/package/dist/test/frame-padded-index.test.d.ts +1 -0
- package/package/dist/test/frame.test.d.ts +1 -0
- package/package/dist/test/get-assets-for-markup.d.ts +8 -0
- package/package/dist/test/get-audio-channels.test.d.ts +1 -0
- package/package/dist/test/get-bundle-url-from-serve-url.test.d.ts +1 -0
- package/package/dist/test/get-silent-parts.test.d.ts +1 -0
- package/package/dist/test/guess-extension-for-media.test.d.ts +1 -0
- package/package/dist/test/handle-weird-file-names.test.d.ts +1 -0
- package/package/dist/test/log-level.test.d.ts +1 -0
- package/package/dist/test/mime-types.test.d.ts +1 -0
- package/package/dist/test/offthread-extract-url.test.d.ts +1 -0
- package/package/dist/test/parse-ffmpeg-progress.test.d.ts +1 -0
- package/package/dist/test/partitions.test.d.ts +1 -0
- package/package/dist/test/pixel-format.test.d.ts +1 -0
- package/package/dist/test/port-config.test.d.ts +1 -0
- package/package/dist/test/port-selection.test.d.ts +1 -0
- package/package/dist/test/prores-profile.test.d.ts +1 -0
- package/package/dist/test/render-still.test.d.ts +1 -0
- package/package/dist/test/rust-errors.test.d.ts +1 -0
- package/package/dist/test/rust-get-video-metadata.test.d.ts +1 -0
- package/package/dist/test/rust-memory-usage.test.d.ts +1 -0
- package/package/dist/test/sanitize-file-path.test.d.ts +1 -0
- package/package/dist/test/serve-url.test.d.ts +1 -0
- package/package/dist/test/symbolicate-remote-stack.test.d.ts +1 -0
- package/package/dist/test/validate-concurrency.test.d.ts +1 -0
- package/package/dist/test/validate-config-stitcher.test.d.ts +1 -0
- package/package/dist/test/validate-config.test.d.ts +1 -0
- package/package/dist/test/validate-even-dimensions-with-codec.test.d.ts +1 -0
- package/package/dist/test/validate-image-format.test.d.ts +1 -0
- package/package/dist/test/webpack-to-serve-url.test.d.ts +1 -0
- package/package/dist/test-gpu.d.ts +21 -0
- package/package/dist/test-gpu.js +45 -0
- package/package/dist/tmp-dir.d.ts +1 -0
- package/package/dist/tmp-dir.js +63 -0
- package/package/dist/to-megabytes.d.ts +1 -0
- package/package/dist/to-megabytes.js +7 -0
- package/package/dist/truthy.d.ts +3 -0
- package/package/dist/truthy.js +6 -0
- package/package/dist/types.d.ts +10 -0
- package/package/dist/types.js +2 -0
- package/package/dist/v5-required-input-props.d.ts +6 -0
- package/package/dist/v5-required-input-props.js +2 -0
- package/package/dist/validate-concurrency.d.ts +7 -0
- package/package/dist/validate-concurrency.js +38 -0
- package/package/dist/validate-even-dimensions-with-codec.d.ts +14 -0
- package/package/dist/validate-even-dimensions-with-codec.js +40 -0
- package/package/dist/validate-every-nth-frame.d.ts +1 -0
- package/package/dist/validate-every-nth-frame.js +24 -0
- package/package/dist/validate-ffmpeg-override.d.ts +2 -0
- package/package/dist/validate-ffmpeg-override.js +12 -0
- package/package/dist/validate-number-of-gif-loops.d.ts +2 -0
- package/package/dist/validate-number-of-gif-loops.js +24 -0
- package/package/dist/validate-output-filename.d.ts +9 -0
- package/package/dist/validate-output-filename.js +32 -0
- package/package/dist/validate-puppeteer-timeout.d.ts +1 -0
- package/package/dist/validate-puppeteer-timeout.js +25 -0
- package/package/dist/validate-scale.d.ts +1 -0
- package/package/dist/validate-scale.js +26 -0
- package/package/dist/validate-videobitrate.d.ts +1 -0
- package/package/dist/validate-videobitrate.js +20 -0
- package/package/dist/validate.d.ts +4 -0
- package/package/dist/validate.js +8 -0
- package/package/dist/wait-for-symbolication-error-to-be-done.d.ts +3 -0
- package/package/dist/wait-for-symbolication-error-to-be-done.js +8 -0
- package/package/dist/wrap-with-error-handling.d.ts +8 -0
- package/package/dist/wrap-with-error-handling.js +18 -0
- package/package/dist/ws/ws-types.d.ts +15 -0
- package/package/dist/ws/ws-types.js +8 -0
- package/package/ensure-browser.mjs +3337 -0
- package/package.json +105 -104
- package/LICENSE.md +0 -49
- package/bunfig.toml +0 -2
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LogLevel } from '../log-level';
|
|
2
|
+
import type { CancelSignal } from '../make-cancel-signal';
|
|
3
|
+
export declare const applyToneFrequencyUsingFfmpeg: ({ input, output, toneFrequency, indent, logLevel, binariesDirectory, cancelSignal, }: {
|
|
4
|
+
input: string;
|
|
5
|
+
output: string;
|
|
6
|
+
toneFrequency: number;
|
|
7
|
+
indent: boolean;
|
|
8
|
+
logLevel: LogLevel;
|
|
9
|
+
binariesDirectory: string | null;
|
|
10
|
+
cancelSignal: CancelSignal | undefined;
|
|
11
|
+
}) => Promise<void>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyToneFrequencyUsingFfmpeg = void 0;
|
|
4
|
+
const call_ffmpeg_1 = require("../call-ffmpeg");
|
|
5
|
+
const logger_1 = require("../logger");
|
|
6
|
+
const sample_rate_1 = require("../sample-rate");
|
|
7
|
+
const applyToneFrequencyUsingFfmpeg = async ({ input, output, toneFrequency, indent, logLevel, binariesDirectory, cancelSignal, }) => {
|
|
8
|
+
const filter = `asetrate=${sample_rate_1.DEFAULT_SAMPLE_RATE}*${toneFrequency},aresample=${sample_rate_1.DEFAULT_SAMPLE_RATE},atempo=1/${toneFrequency}`;
|
|
9
|
+
const args = [
|
|
10
|
+
'-hide_banner',
|
|
11
|
+
'-i',
|
|
12
|
+
input,
|
|
13
|
+
['-ac', '2'],
|
|
14
|
+
'-filter:a',
|
|
15
|
+
filter,
|
|
16
|
+
['-c:a', 'pcm_s16le'],
|
|
17
|
+
['-ar', String(sample_rate_1.DEFAULT_SAMPLE_RATE)],
|
|
18
|
+
'-y',
|
|
19
|
+
output,
|
|
20
|
+
].flat(2);
|
|
21
|
+
logger_1.Log.verbose({ indent, logLevel }, 'Changing tone frequency using FFmpeg:', JSON.stringify(args.join(' ')), 'Filter:', filter);
|
|
22
|
+
const startTimestamp = Date.now();
|
|
23
|
+
const task = (0, call_ffmpeg_1.callFf)({
|
|
24
|
+
bin: 'ffmpeg',
|
|
25
|
+
args,
|
|
26
|
+
indent,
|
|
27
|
+
logLevel,
|
|
28
|
+
binariesDirectory,
|
|
29
|
+
cancelSignal,
|
|
30
|
+
});
|
|
31
|
+
await task;
|
|
32
|
+
logger_1.Log.verbose({ indent, logLevel }, 'Changed tone frequency using FFmpeg', `${Date.now() - startTimestamp}ms`);
|
|
33
|
+
};
|
|
34
|
+
exports.applyToneFrequencyUsingFfmpeg = applyToneFrequencyUsingFfmpeg;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { InlineAudioAsset } from 'remotion/no-react';
|
|
2
|
+
import type { LogLevel } from '../log-level';
|
|
3
|
+
import type { CancelSignal } from '../make-cancel-signal';
|
|
2
4
|
export declare const makeInlineAudioMixing: (dir: string) => {
|
|
3
5
|
cleanup: () => void;
|
|
4
6
|
addAsset: ({ asset, fps, totalNumberOfFrames, firstFrame, trimLeftOffset, trimRightOffset, }: {
|
|
@@ -10,5 +12,11 @@ export declare const makeInlineAudioMixing: (dir: string) => {
|
|
|
10
12
|
trimRightOffset: number;
|
|
11
13
|
}) => void;
|
|
12
14
|
getListOfAssets: () => string[];
|
|
15
|
+
finish: ({ binariesDirectory, indent, logLevel, cancelSignal, }: {
|
|
16
|
+
indent: boolean;
|
|
17
|
+
logLevel: LogLevel;
|
|
18
|
+
binariesDirectory: string | null;
|
|
19
|
+
cancelSignal: CancelSignal | undefined;
|
|
20
|
+
}) => Promise<void>;
|
|
13
21
|
};
|
|
14
22
|
export type InlineAudioMixing = ReturnType<typeof makeInlineAudioMixing>;
|
|
@@ -41,6 +41,7 @@ const node_fs_1 = __importStar(require("node:fs"));
|
|
|
41
41
|
const node_path_1 = __importDefault(require("node:path"));
|
|
42
42
|
const delete_directory_1 = require("../delete-directory");
|
|
43
43
|
const sample_rate_1 = require("../sample-rate");
|
|
44
|
+
const apply_tone_frequency_1 = require("./apply-tone-frequency");
|
|
44
45
|
const download_map_1 = require("./download-map");
|
|
45
46
|
const numberTo32BiIntLittleEndian = (num) => {
|
|
46
47
|
return new Uint8Array([
|
|
@@ -55,11 +56,13 @@ const numberTo16BitLittleEndian = (num) => {
|
|
|
55
56
|
};
|
|
56
57
|
const BIT_DEPTH = 16;
|
|
57
58
|
const BYTES_PER_SAMPLE = BIT_DEPTH / 8;
|
|
59
|
+
const NUMBER_OF_CHANNELS = 2;
|
|
58
60
|
const makeInlineAudioMixing = (dir) => {
|
|
59
61
|
const folderToAdd = (0, download_map_1.makeAndReturn)(dir, 'remotion-inline-audio-mixing');
|
|
60
62
|
// asset id -> file descriptor
|
|
61
63
|
const openFiles = {};
|
|
62
64
|
const writtenHeaders = {};
|
|
65
|
+
const toneFrequencies = {};
|
|
63
66
|
const cleanup = () => {
|
|
64
67
|
for (const fd of Object.values(openFiles)) {
|
|
65
68
|
try {
|
|
@@ -85,11 +88,10 @@ const makeInlineAudioMixing = (dir) => {
|
|
|
85
88
|
}
|
|
86
89
|
writtenHeaders[filePath] = true;
|
|
87
90
|
const expectedDataSize = Math.round((totalNumberOfFrames / fps - trimLeftOffset + trimRightOffset) *
|
|
88
|
-
|
|
91
|
+
NUMBER_OF_CHANNELS *
|
|
89
92
|
sample_rate_1.DEFAULT_SAMPLE_RATE *
|
|
90
93
|
BYTES_PER_SAMPLE);
|
|
91
94
|
const expectedSize = 40 + expectedDataSize;
|
|
92
|
-
const { numberOfChannels } = asset;
|
|
93
95
|
const fd = openFiles[filePath];
|
|
94
96
|
(0, node_fs_1.writeSync)(fd, new Uint8Array([0x52, 0x49, 0x46, 0x46]), 0, 4, 0); // "RIFF"
|
|
95
97
|
(0, node_fs_1.writeSync)(fd, new Uint8Array(numberTo32BiIntLittleEndian(expectedSize)), 0, 4, 4); // Remaining size
|
|
@@ -97,14 +99,32 @@ const makeInlineAudioMixing = (dir) => {
|
|
|
97
99
|
(0, node_fs_1.writeSync)(fd, new Uint8Array([0x66, 0x6d, 0x74, 0x20]), 0, 4, 12); // "fmt "
|
|
98
100
|
(0, node_fs_1.writeSync)(fd, new Uint8Array([BIT_DEPTH, 0x00, 0x00, 0x00]), 0, 4, 16); // fmt chunk size = 16
|
|
99
101
|
(0, node_fs_1.writeSync)(fd, new Uint8Array([0x01, 0x00]), 0, 2, 20); // Audio format (PCM) = 1, set 3 if float32 would be true
|
|
100
|
-
(0, node_fs_1.writeSync)(fd, new Uint8Array([
|
|
102
|
+
(0, node_fs_1.writeSync)(fd, new Uint8Array([NUMBER_OF_CHANNELS, 0x00]), 0, 2, 22); // Number of channels
|
|
101
103
|
(0, node_fs_1.writeSync)(fd, new Uint8Array(numberTo32BiIntLittleEndian(sample_rate_1.DEFAULT_SAMPLE_RATE)), 0, 4, 24); // Sample rate
|
|
102
|
-
(0, node_fs_1.writeSync)(fd, new Uint8Array(numberTo32BiIntLittleEndian(sample_rate_1.DEFAULT_SAMPLE_RATE *
|
|
103
|
-
(0, node_fs_1.writeSync)(fd, new Uint8Array(numberTo16BitLittleEndian(
|
|
104
|
+
(0, node_fs_1.writeSync)(fd, new Uint8Array(numberTo32BiIntLittleEndian(sample_rate_1.DEFAULT_SAMPLE_RATE * NUMBER_OF_CHANNELS * BYTES_PER_SAMPLE)), 0, 4, 28); // Byte rate
|
|
105
|
+
(0, node_fs_1.writeSync)(fd, new Uint8Array(numberTo16BitLittleEndian(NUMBER_OF_CHANNELS * BYTES_PER_SAMPLE)), 0, 2, 32); // Block align
|
|
104
106
|
(0, node_fs_1.writeSync)(fd, numberTo16BitLittleEndian(BIT_DEPTH), 0, 2, 34); // Bits per sample
|
|
105
107
|
(0, node_fs_1.writeSync)(fd, new Uint8Array([0x64, 0x61, 0x74, 0x61]), 0, 4, 36); // "data"
|
|
106
108
|
(0, node_fs_1.writeSync)(fd, new Uint8Array(numberTo32BiIntLittleEndian(expectedDataSize)), 0, 4, 40); // Remaining size
|
|
107
109
|
};
|
|
110
|
+
const finish = async ({ binariesDirectory, indent, logLevel, cancelSignal, }) => {
|
|
111
|
+
for (const fd of Object.keys(openFiles)) {
|
|
112
|
+
const frequency = toneFrequencies[fd];
|
|
113
|
+
if (frequency !== 1) {
|
|
114
|
+
const tmpFile = fd.replace(/.wav$/, '-tmp.wav');
|
|
115
|
+
await (0, apply_tone_frequency_1.applyToneFrequencyUsingFfmpeg)({
|
|
116
|
+
input: fd,
|
|
117
|
+
output: tmpFile,
|
|
118
|
+
toneFrequency: frequency,
|
|
119
|
+
indent,
|
|
120
|
+
logLevel,
|
|
121
|
+
binariesDirectory,
|
|
122
|
+
cancelSignal,
|
|
123
|
+
});
|
|
124
|
+
node_fs_1.default.renameSync(tmpFile, fd);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
};
|
|
108
128
|
const addAsset = ({ asset, fps, totalNumberOfFrames, firstFrame, trimLeftOffset, trimRightOffset, }) => {
|
|
109
129
|
ensureAsset({
|
|
110
130
|
asset,
|
|
@@ -114,7 +134,12 @@ const makeInlineAudioMixing = (dir) => {
|
|
|
114
134
|
trimRightOffset,
|
|
115
135
|
});
|
|
116
136
|
const filePath = getFilePath(asset);
|
|
137
|
+
if (toneFrequencies[filePath] !== undefined &&
|
|
138
|
+
toneFrequencies[filePath] !== asset.toneFrequency) {
|
|
139
|
+
throw new Error(`toneFrequency must be the same across the entire audio, got ${asset.toneFrequency}, but before it was ${toneFrequencies[filePath]}`);
|
|
140
|
+
}
|
|
117
141
|
const fileDescriptor = openFiles[filePath];
|
|
142
|
+
toneFrequencies[filePath] = asset.toneFrequency;
|
|
118
143
|
let arr = new Int16Array(asset.audio);
|
|
119
144
|
const isFirst = asset.frame === firstFrame;
|
|
120
145
|
const isLast = asset.frame === totalNumberOfFrames + firstFrame - 1;
|
|
@@ -129,14 +154,18 @@ const makeInlineAudioMixing = (dir) => {
|
|
|
129
154
|
throw new Error(`samplesToShaveFromStart should be approximately an integer, is ${samplesToShaveFromStart}`);
|
|
130
155
|
}
|
|
131
156
|
if (isFirst) {
|
|
132
|
-
arr = arr.slice(Math.round(samplesToShaveFromStart) *
|
|
157
|
+
arr = arr.slice(Math.round(samplesToShaveFromStart) * NUMBER_OF_CHANNELS);
|
|
133
158
|
}
|
|
134
159
|
if (isLast) {
|
|
135
|
-
arr = arr.slice(0, arr.length + Math.round(samplesToShaveFromEnd) *
|
|
160
|
+
arr = arr.slice(0, arr.length + Math.round(samplesToShaveFromEnd) * NUMBER_OF_CHANNELS);
|
|
136
161
|
}
|
|
137
162
|
const positionInSeconds = (asset.frame - firstFrame) / fps - (isFirst ? 0 : trimLeftOffset);
|
|
138
|
-
|
|
139
|
-
|
|
163
|
+
// Always rounding down to ensure there are no gaps when the samples don't align
|
|
164
|
+
// In @remotion/media, we also round down the sample start timestamp and round up the end timestamp
|
|
165
|
+
// This might lead to overlapping, hopefully aligning perfectly!
|
|
166
|
+
// Test case: https://github.com/remotion-dev/remotion/issues/5758
|
|
167
|
+
const position = Math.floor(positionInSeconds * sample_rate_1.DEFAULT_SAMPLE_RATE) *
|
|
168
|
+
NUMBER_OF_CHANNELS *
|
|
140
169
|
BYTES_PER_SAMPLE;
|
|
141
170
|
(0, node_fs_1.writeSync)(
|
|
142
171
|
// fs
|
|
@@ -154,6 +183,7 @@ const makeInlineAudioMixing = (dir) => {
|
|
|
154
183
|
cleanup,
|
|
155
184
|
addAsset,
|
|
156
185
|
getListOfAssets,
|
|
186
|
+
finish,
|
|
157
187
|
};
|
|
158
188
|
};
|
|
159
189
|
exports.makeInlineAudioMixing = makeInlineAudioMixing;
|
package/dist/create-audio.js
CHANGED
|
@@ -64,6 +64,12 @@ const createAudio = async ({ assets, onDownload, fps, logLevel, onProgress, down
|
|
|
64
64
|
updateProgress();
|
|
65
65
|
return result;
|
|
66
66
|
}));
|
|
67
|
+
await downloadMap.inlineAudioMixing.finish({
|
|
68
|
+
indent,
|
|
69
|
+
logLevel,
|
|
70
|
+
binariesDirectory,
|
|
71
|
+
cancelSignal,
|
|
72
|
+
});
|
|
67
73
|
const inlinedAudio = downloadMap.inlineAudioMixing.getListOfAssets();
|
|
68
74
|
const preprocessed = [
|
|
69
75
|
...audioTracks.filter(truthy_1.truthy),
|
package/dist/esm/index.mjs
CHANGED
|
@@ -15101,6 +15101,43 @@ import path14 from "node:path";
|
|
|
15101
15101
|
// src/sample-rate.ts
|
|
15102
15102
|
var DEFAULT_SAMPLE_RATE = 48000;
|
|
15103
15103
|
|
|
15104
|
+
// src/assets/apply-tone-frequency.ts
|
|
15105
|
+
var applyToneFrequencyUsingFfmpeg = async ({
|
|
15106
|
+
input,
|
|
15107
|
+
output,
|
|
15108
|
+
toneFrequency,
|
|
15109
|
+
indent,
|
|
15110
|
+
logLevel,
|
|
15111
|
+
binariesDirectory,
|
|
15112
|
+
cancelSignal
|
|
15113
|
+
}) => {
|
|
15114
|
+
const filter = `asetrate=${DEFAULT_SAMPLE_RATE}*${toneFrequency},aresample=${DEFAULT_SAMPLE_RATE},atempo=1/${toneFrequency}`;
|
|
15115
|
+
const args = [
|
|
15116
|
+
"-hide_banner",
|
|
15117
|
+
"-i",
|
|
15118
|
+
input,
|
|
15119
|
+
["-ac", "2"],
|
|
15120
|
+
"-filter:a",
|
|
15121
|
+
filter,
|
|
15122
|
+
["-c:a", "pcm_s16le"],
|
|
15123
|
+
["-ar", String(DEFAULT_SAMPLE_RATE)],
|
|
15124
|
+
"-y",
|
|
15125
|
+
output
|
|
15126
|
+
].flat(2);
|
|
15127
|
+
Log.verbose({ indent, logLevel }, "Changing tone frequency using FFmpeg:", JSON.stringify(args.join(" ")), "Filter:", filter);
|
|
15128
|
+
const startTimestamp = Date.now();
|
|
15129
|
+
const task = callFf({
|
|
15130
|
+
bin: "ffmpeg",
|
|
15131
|
+
args,
|
|
15132
|
+
indent,
|
|
15133
|
+
logLevel,
|
|
15134
|
+
binariesDirectory,
|
|
15135
|
+
cancelSignal
|
|
15136
|
+
});
|
|
15137
|
+
await task;
|
|
15138
|
+
Log.verbose({ indent, logLevel }, "Changed tone frequency using FFmpeg", `${Date.now() - startTimestamp}ms`);
|
|
15139
|
+
};
|
|
15140
|
+
|
|
15104
15141
|
// src/assets/inline-audio-mixing.ts
|
|
15105
15142
|
var numberTo32BiIntLittleEndian = (num) => {
|
|
15106
15143
|
return new Uint8Array([
|
|
@@ -15115,10 +15152,12 @@ var numberTo16BitLittleEndian = (num) => {
|
|
|
15115
15152
|
};
|
|
15116
15153
|
var BIT_DEPTH = 16;
|
|
15117
15154
|
var BYTES_PER_SAMPLE = BIT_DEPTH / 8;
|
|
15155
|
+
var NUMBER_OF_CHANNELS = 2;
|
|
15118
15156
|
var makeInlineAudioMixing = (dir) => {
|
|
15119
15157
|
const folderToAdd = makeAndReturn(dir, "remotion-inline-audio-mixing");
|
|
15120
15158
|
const openFiles = {};
|
|
15121
15159
|
const writtenHeaders = {};
|
|
15160
|
+
const toneFrequencies = {};
|
|
15122
15161
|
const cleanup = () => {
|
|
15123
15162
|
for (const fd of Object.values(openFiles)) {
|
|
15124
15163
|
try {
|
|
@@ -15148,9 +15187,8 @@ var makeInlineAudioMixing = (dir) => {
|
|
|
15148
15187
|
return;
|
|
15149
15188
|
}
|
|
15150
15189
|
writtenHeaders[filePath] = true;
|
|
15151
|
-
const expectedDataSize = Math.round((totalNumberOfFrames / fps - trimLeftOffset + trimRightOffset) *
|
|
15190
|
+
const expectedDataSize = Math.round((totalNumberOfFrames / fps - trimLeftOffset + trimRightOffset) * NUMBER_OF_CHANNELS * DEFAULT_SAMPLE_RATE * BYTES_PER_SAMPLE);
|
|
15152
15191
|
const expectedSize = 40 + expectedDataSize;
|
|
15153
|
-
const { numberOfChannels } = asset;
|
|
15154
15192
|
const fd = openFiles[filePath];
|
|
15155
15193
|
writeSync(fd, new Uint8Array([82, 73, 70, 70]), 0, 4, 0);
|
|
15156
15194
|
writeSync(fd, new Uint8Array(numberTo32BiIntLittleEndian(expectedSize)), 0, 4, 4);
|
|
@@ -15158,14 +15196,37 @@ var makeInlineAudioMixing = (dir) => {
|
|
|
15158
15196
|
writeSync(fd, new Uint8Array([102, 109, 116, 32]), 0, 4, 12);
|
|
15159
15197
|
writeSync(fd, new Uint8Array([BIT_DEPTH, 0, 0, 0]), 0, 4, 16);
|
|
15160
15198
|
writeSync(fd, new Uint8Array([1, 0]), 0, 2, 20);
|
|
15161
|
-
writeSync(fd, new Uint8Array([
|
|
15199
|
+
writeSync(fd, new Uint8Array([NUMBER_OF_CHANNELS, 0]), 0, 2, 22);
|
|
15162
15200
|
writeSync(fd, new Uint8Array(numberTo32BiIntLittleEndian(DEFAULT_SAMPLE_RATE)), 0, 4, 24);
|
|
15163
|
-
writeSync(fd, new Uint8Array(numberTo32BiIntLittleEndian(DEFAULT_SAMPLE_RATE *
|
|
15164
|
-
writeSync(fd, new Uint8Array(numberTo16BitLittleEndian(
|
|
15201
|
+
writeSync(fd, new Uint8Array(numberTo32BiIntLittleEndian(DEFAULT_SAMPLE_RATE * NUMBER_OF_CHANNELS * BYTES_PER_SAMPLE)), 0, 4, 28);
|
|
15202
|
+
writeSync(fd, new Uint8Array(numberTo16BitLittleEndian(NUMBER_OF_CHANNELS * BYTES_PER_SAMPLE)), 0, 2, 32);
|
|
15165
15203
|
writeSync(fd, numberTo16BitLittleEndian(BIT_DEPTH), 0, 2, 34);
|
|
15166
15204
|
writeSync(fd, new Uint8Array([100, 97, 116, 97]), 0, 4, 36);
|
|
15167
15205
|
writeSync(fd, new Uint8Array(numberTo32BiIntLittleEndian(expectedDataSize)), 0, 4, 40);
|
|
15168
15206
|
};
|
|
15207
|
+
const finish = async ({
|
|
15208
|
+
binariesDirectory,
|
|
15209
|
+
indent,
|
|
15210
|
+
logLevel,
|
|
15211
|
+
cancelSignal
|
|
15212
|
+
}) => {
|
|
15213
|
+
for (const fd of Object.keys(openFiles)) {
|
|
15214
|
+
const frequency = toneFrequencies[fd];
|
|
15215
|
+
if (frequency !== 1) {
|
|
15216
|
+
const tmpFile = fd.replace(/.wav$/, "-tmp.wav");
|
|
15217
|
+
await applyToneFrequencyUsingFfmpeg({
|
|
15218
|
+
input: fd,
|
|
15219
|
+
output: tmpFile,
|
|
15220
|
+
toneFrequency: frequency,
|
|
15221
|
+
indent,
|
|
15222
|
+
logLevel,
|
|
15223
|
+
binariesDirectory,
|
|
15224
|
+
cancelSignal
|
|
15225
|
+
});
|
|
15226
|
+
fs12.renameSync(tmpFile, fd);
|
|
15227
|
+
}
|
|
15228
|
+
}
|
|
15229
|
+
};
|
|
15169
15230
|
const addAsset = ({
|
|
15170
15231
|
asset,
|
|
15171
15232
|
fps,
|
|
@@ -15182,7 +15243,11 @@ var makeInlineAudioMixing = (dir) => {
|
|
|
15182
15243
|
trimRightOffset
|
|
15183
15244
|
});
|
|
15184
15245
|
const filePath = getFilePath(asset);
|
|
15246
|
+
if (toneFrequencies[filePath] !== undefined && toneFrequencies[filePath] !== asset.toneFrequency) {
|
|
15247
|
+
throw new Error(`toneFrequency must be the same across the entire audio, got ${asset.toneFrequency}, but before it was ${toneFrequencies[filePath]}`);
|
|
15248
|
+
}
|
|
15185
15249
|
const fileDescriptor = openFiles[filePath];
|
|
15250
|
+
toneFrequencies[filePath] = asset.toneFrequency;
|
|
15186
15251
|
let arr = new Int16Array(asset.audio);
|
|
15187
15252
|
const isFirst = asset.frame === firstFrame;
|
|
15188
15253
|
const isLast = asset.frame === totalNumberOfFrames + firstFrame - 1;
|
|
@@ -15195,19 +15260,20 @@ var makeInlineAudioMixing = (dir) => {
|
|
|
15195
15260
|
throw new Error(`samplesToShaveFromStart should be approximately an integer, is ${samplesToShaveFromStart}`);
|
|
15196
15261
|
}
|
|
15197
15262
|
if (isFirst) {
|
|
15198
|
-
arr = arr.slice(Math.round(samplesToShaveFromStart) *
|
|
15263
|
+
arr = arr.slice(Math.round(samplesToShaveFromStart) * NUMBER_OF_CHANNELS);
|
|
15199
15264
|
}
|
|
15200
15265
|
if (isLast) {
|
|
15201
|
-
arr = arr.slice(0, arr.length + Math.round(samplesToShaveFromEnd) *
|
|
15266
|
+
arr = arr.slice(0, arr.length + Math.round(samplesToShaveFromEnd) * NUMBER_OF_CHANNELS);
|
|
15202
15267
|
}
|
|
15203
15268
|
const positionInSeconds = (asset.frame - firstFrame) / fps - (isFirst ? 0 : trimLeftOffset);
|
|
15204
|
-
const position = Math.
|
|
15269
|
+
const position = Math.floor(positionInSeconds * DEFAULT_SAMPLE_RATE) * NUMBER_OF_CHANNELS * BYTES_PER_SAMPLE;
|
|
15205
15270
|
writeSync(fileDescriptor, arr, 0, arr.byteLength, 44 + position);
|
|
15206
15271
|
};
|
|
15207
15272
|
return {
|
|
15208
15273
|
cleanup,
|
|
15209
15274
|
addAsset,
|
|
15210
|
-
getListOfAssets
|
|
15275
|
+
getListOfAssets,
|
|
15276
|
+
finish
|
|
15211
15277
|
};
|
|
15212
15278
|
};
|
|
15213
15279
|
|
|
@@ -20726,6 +20792,12 @@ var createAudio = async ({
|
|
|
20726
20792
|
updateProgress();
|
|
20727
20793
|
return result;
|
|
20728
20794
|
}));
|
|
20795
|
+
await downloadMap.inlineAudioMixing.finish({
|
|
20796
|
+
indent,
|
|
20797
|
+
logLevel,
|
|
20798
|
+
binariesDirectory,
|
|
20799
|
+
cancelSignal
|
|
20800
|
+
});
|
|
20729
20801
|
const inlinedAudio = downloadMap.inlineAudioMixing.getListOfAssets();
|
|
20730
20802
|
const preprocessed = [
|
|
20731
20803
|
...audioTracks.filter(truthy),
|
|
@@ -21300,7 +21372,7 @@ var validateOutputFilename = ({
|
|
|
21300
21372
|
|
|
21301
21373
|
// src/render-media.ts
|
|
21302
21374
|
var SLOWEST_FRAME_COUNT = 10;
|
|
21303
|
-
var MAX_RECENT_FRAME_TIMINGS =
|
|
21375
|
+
var MAX_RECENT_FRAME_TIMINGS = 150;
|
|
21304
21376
|
var internalRenderMediaRaw = ({
|
|
21305
21377
|
proResProfile,
|
|
21306
21378
|
x264Preset,
|
|
@@ -21597,10 +21669,14 @@ var internalRenderMediaRaw = ({
|
|
|
21597
21669
|
});
|
|
21598
21670
|
}).then(({ server, cleanupServer }) => {
|
|
21599
21671
|
cleanupServerFn = cleanupServer;
|
|
21672
|
+
let timeOfLastFrame = Date.now();
|
|
21600
21673
|
const renderFramesProc = internalRenderFrames({
|
|
21601
21674
|
composition,
|
|
21602
|
-
onFrameUpdate: (frame, frameIndex
|
|
21675
|
+
onFrameUpdate: (frame, frameIndex) => {
|
|
21603
21676
|
renderedFrames = frame;
|
|
21677
|
+
const now = Date.now();
|
|
21678
|
+
const timeToRenderInMilliseconds = now - timeOfLastFrame;
|
|
21679
|
+
timeOfLastFrame = now;
|
|
21604
21680
|
recentFrameTimings.push(timeToRenderInMilliseconds);
|
|
21605
21681
|
if (recentFrameTimings.length > MAX_RECENT_FRAME_TIMINGS) {
|
|
21606
21682
|
recentFrameTimings.shift();
|
package/dist/render-frames.js
CHANGED
|
@@ -113,7 +113,7 @@ const innerRenderFrames = async ({ onFrameUpdate, outputDir, onStart, serialized
|
|
|
113
113
|
const frameDir = outputDir !== null && outputDir !== void 0 ? outputDir : downloadMap.compositingDir;
|
|
114
114
|
// Render the extra frames at the beginning of the video first,
|
|
115
115
|
// then the regular frames, then the extra frames at the end of the video.
|
|
116
|
-
// While the order technically doesn't matter, components such as <
|
|
116
|
+
// While the order technically doesn't matter, components such as <Html5Video> are
|
|
117
117
|
// not always frame perfect and give a flicker.
|
|
118
118
|
// We reduce the chance of flicker by rendering the frames in order.
|
|
119
119
|
const allFramesAndExtraFrames = [
|
package/dist/render-media.js
CHANGED
|
@@ -52,7 +52,7 @@ const validate_scale_1 = require("./validate-scale");
|
|
|
52
52
|
const validate_videobitrate_1 = require("./validate-videobitrate");
|
|
53
53
|
const wrap_with_error_handling_1 = require("./wrap-with-error-handling");
|
|
54
54
|
const SLOWEST_FRAME_COUNT = 10;
|
|
55
|
-
const MAX_RECENT_FRAME_TIMINGS =
|
|
55
|
+
const MAX_RECENT_FRAME_TIMINGS = 150;
|
|
56
56
|
const internalRenderMediaRaw = ({ proResProfile, x264Preset, crf, composition: compositionWithPossibleUnevenDimensions, serializedInputPropsWithCustomSchema, pixelFormat: userPixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, audioCodec, concurrency, disallowParallelEncoding, everyNthFrame, imageFormat: provisionalImageFormat, indent, jpegQuality, numberOfGifLoops, onCtrlCExit, preferLossless, serveUrl, server: reusedServer, logLevel, serializedResolvedPropsWithCustomSchema, offthreadVideoCacheSizeInBytes, colorSpace, repro, binariesDirectory, separateAudioTo, forSeamlessAacConcatenation, compositionStart, onBrowserDownload, onArtifact, metadata, hardwareAcceleration, chromeMode, offthreadVideoThreads, mediaCacheSizeInBytes, onLog, }) => {
|
|
57
57
|
var _a, _b;
|
|
58
58
|
const pixelFormat = (_a = userPixelFormat !== null && userPixelFormat !== void 0 ? userPixelFormat : compositionWithPossibleUnevenDimensions.defaultPixelFormat) !== null && _a !== void 0 ? _a : pixel_format_1.DEFAULT_PIXEL_FORMAT;
|
|
@@ -310,10 +310,14 @@ const internalRenderMediaRaw = ({ proResProfile, x264Preset, crf, composition: c
|
|
|
310
310
|
})
|
|
311
311
|
.then(({ server, cleanupServer }) => {
|
|
312
312
|
cleanupServerFn = cleanupServer;
|
|
313
|
+
let timeOfLastFrame = Date.now();
|
|
313
314
|
const renderFramesProc = (0, render_frames_1.internalRenderFrames)({
|
|
314
315
|
composition,
|
|
315
|
-
onFrameUpdate: (frame, frameIndex
|
|
316
|
+
onFrameUpdate: (frame, frameIndex) => {
|
|
316
317
|
renderedFrames = frame;
|
|
318
|
+
const now = Date.now();
|
|
319
|
+
const timeToRenderInMilliseconds = now - timeOfLastFrame;
|
|
320
|
+
timeOfLastFrame = now;
|
|
317
321
|
// Track recent frame timings (at most 50)
|
|
318
322
|
recentFrameTimings.push(timeToRenderInMilliseconds);
|
|
319
323
|
if (recentFrameTimings.length > MAX_RECENT_FRAME_TIMINGS) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|