@remotion/renderer 4.0.0-alpha13 → 4.0.0-alpha14
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/download-and-map-assets-to-file.d.ts +6 -4
- package/dist/assets/download-and-map-assets-to-file.js +30 -6
- package/dist/assets/download-file.d.ts +2 -2
- package/dist/assets/download-map.d.ts +3 -3
- package/dist/assets/ffmpeg-volume-expression.d.ts +2 -2
- package/dist/assets/get-audio-channels.d.ts +1 -0
- package/dist/assets/get-audio-channels.js +10 -5
- package/dist/assets/get-video-stream-duration.d.ts +9 -0
- package/dist/assets/get-video-stream-duration.js +71 -0
- package/dist/assets/read-file.js +1 -1
- package/dist/assets/types.d.ts +4 -4
- package/dist/audio-codec.d.ts +2 -2
- package/dist/browser/Browser.d.ts +9 -9
- package/dist/browser/Browser.js +26 -32
- package/dist/browser/BrowserFetcher.d.ts +1 -1
- package/dist/browser/BrowserPage.d.ts +11 -2
- package/dist/browser/BrowserPage.js +47 -12
- package/dist/browser/BrowserRunner.js +19 -2
- package/dist/browser/ConsoleMessage.d.ts +1 -1
- package/dist/browser/DOMWorld.js +8 -8
- package/dist/browser/EvalTypes.d.ts +7 -7
- package/dist/browser/FrameManager.js +11 -11
- package/dist/browser/JSHandle.js +14 -14
- package/dist/browser/LaunchOptions.d.ts +1 -1
- package/dist/browser/Launcher.js +0 -1
- package/dist/browser/LifecycleWatcher.d.ts +1 -1
- package/dist/browser/NetworkEventManager.d.ts +4 -4
- package/dist/browser/NodeWebSocketTransport.js +16 -16
- package/dist/browser/Product.d.ts +1 -1
- package/dist/browser/Target.d.ts +2 -1
- package/dist/browser/Target.js +8 -2
- package/dist/browser/devtools-types.d.ts +10 -10
- package/dist/browser/mitt/index.d.ts +6 -6
- package/dist/browser/revisions.d.ts +1 -1
- package/dist/browser/should-log-message.d.ts +24 -0
- package/dist/browser/should-log-message.js +72 -0
- package/dist/browser-executable.d.ts +1 -1
- package/dist/browser-log.d.ts +1 -1
- package/dist/browser.d.ts +1 -1
- package/dist/calculate-sar-dar-pixels.d.ts +9 -0
- package/dist/calculate-sar-dar-pixels.js +19 -0
- package/dist/chalk/index.d.ts +4 -4
- package/dist/codec-supports-media.d.ts +1 -1
- package/dist/codec.d.ts +2 -2
- package/dist/combine-videos.d.ts +1 -1
- package/dist/compositor/compose.d.ts +11 -2
- package/dist/compositor/compose.js +15 -4
- package/dist/compositor/compositor.d.ts +1 -1
- package/dist/compositor/compositor.js +1 -1
- package/dist/compositor/payloads.d.ts +5 -5
- package/dist/create-ffmpeg-complex-filter.d.ts +4 -1
- package/dist/crf.d.ts +1 -1
- package/dist/determine-resize-params.d.ts +1 -0
- package/dist/determine-resize-params.js +10 -0
- package/dist/determine-vcodec-ffmpeg-flags.d.ts +2 -0
- package/dist/determine-vcodec-ffmpeg-flags.js +13 -0
- package/dist/ensure-ffmpeg.d.ts +18 -0
- package/dist/ensure-ffmpeg.js +58 -0
- package/dist/ensure-presentation-timestamp.d.ts +15 -0
- package/dist/ensure-presentation-timestamp.js +88 -0
- package/dist/error-handling/symbolicate-error.js +4 -2
- package/dist/extract-frame-from-video.d.ts +16 -0
- package/dist/extract-frame-from-video.js +191 -0
- package/dist/ffmpeg-executable.d.ts +1 -0
- package/dist/ffmpeg-executable.js +2 -0
- package/dist/ffmpeg-flags.d.ts +31 -0
- package/dist/ffmpeg-flags.js +245 -0
- package/dist/ffmpeg-override.d.ts +1 -1
- package/dist/file-extensions.d.ts +1 -1
- package/dist/frame-range.d.ts +1 -1
- package/dist/frame-to-ffmpeg-timestamp.d.ts +1 -0
- package/dist/frame-to-ffmpeg-timestamp.js +8 -0
- package/dist/get-browser-instance.d.ts +6 -1
- package/dist/get-browser-instance.js +9 -4
- package/dist/get-can-extract-frames-fast.d.ts +14 -0
- package/dist/get-can-extract-frames-fast.js +71 -0
- package/dist/get-compositions.d.ts +18 -11
- package/dist/get-compositions.js +66 -49
- package/dist/get-frame-of-video-slow.d.ts +17 -0
- package/dist/get-frame-of-video-slow.js +72 -0
- package/dist/get-frame-padded-index.d.ts +1 -1
- package/dist/get-video-info.d.ts +8 -0
- package/dist/get-video-info.js +59 -0
- package/dist/image-format.d.ts +3 -3
- package/dist/index.d.ts +110 -21
- package/dist/index.js +25 -13
- package/dist/is-beyond-last-frame.d.ts +3 -0
- package/dist/is-beyond-last-frame.js +12 -0
- package/dist/jpeg-quality.d.ts +1 -0
- package/dist/jpeg-quality.js +2 -1
- package/dist/last-frame-from-video-cache.d.ts +17 -0
- package/dist/last-frame-from-video-cache.js +55 -0
- package/dist/legacy-webpack-config.d.ts +9 -0
- package/dist/legacy-webpack-config.js +13 -0
- package/dist/log-level.d.ts +1 -1
- package/dist/logger.d.ts +4 -2
- package/dist/logger.js +12 -5
- package/dist/make-cancel-signal.d.ts +2 -2
- package/dist/merge-audio-track.d.ts +1 -1
- package/dist/mime-types.js +1 -1
- package/dist/offthread-video-server.d.ts +36 -4
- package/dist/offthread-video-server.js +48 -4
- package/dist/open-browser.d.ts +19 -10
- package/dist/open-browser.js +34 -21
- package/dist/options/option.d.ts +1 -1
- package/dist/parse-browser-error-stack.d.ts +1 -1
- package/dist/perf.d.ts +1 -1
- package/dist/pixel-format.d.ts +1 -1
- package/dist/prepare-server.d.ts +20 -8
- package/dist/prepare-server.js +52 -8
- package/dist/preprocess-audio-track.d.ts +2 -2
- package/dist/prespawn-ffmpeg.d.ts +1 -1
- package/dist/prespawn-ffmpeg.js +7 -7
- package/dist/prores-profile.d.ts +1 -1
- package/dist/provide-screenshot.d.ts +0 -1
- package/dist/puppeteer-screenshot.d.ts +0 -1
- package/dist/puppeteer-screenshot.js +1 -2
- package/dist/quality.d.ts +1 -0
- package/dist/quality.js +21 -0
- package/dist/render-frames.d.ts +32 -11
- package/dist/render-frames.js +112 -77
- package/dist/render-media.d.ts +50 -21
- package/dist/render-media.js +249 -197
- package/dist/render-still.d.ts +33 -18
- package/dist/render-still.js +71 -43
- package/dist/replace-browser.d.ts +1 -1
- package/dist/screenshot-dom-element.d.ts +0 -1
- package/dist/screenshot-task.d.ts +0 -1
- package/dist/select-composition.d.ts +19 -11
- package/dist/select-composition.js +79 -42
- package/dist/serve-static.d.ts +2 -3
- package/dist/serve-static.js +2 -4
- package/dist/set-props-and-env.d.ts +1 -1
- package/dist/stitch-frames-to-video.d.ts +32 -11
- package/dist/stitch-frames-to-video.js +121 -99
- package/dist/stringify-ffmpeg-filter.d.ts +2 -2
- package/dist/symbolicate-stacktrace.d.ts +16 -3
- package/dist/symbolicate-stacktrace.js +49 -24
- package/dist/take-frame-and-compose.d.ts +0 -1
- package/dist/truthy.d.ts +1 -1
- package/dist/try-to-extract-frame-of-video-fast.d.ts +12 -0
- package/dist/try-to-extract-frame-of-video-fast.js +55 -0
- package/dist/types.d.ts +2 -2
- package/dist/validate-ffmpeg.d.ts +7 -0
- package/dist/validate-ffmpeg.js +77 -0
- package/dist/validate-opengl-renderer.d.ts +1 -1
- package/dist/warn-about-ffmpeg-version.d.ts +5 -0
- package/dist/warn-about-ffmpeg-version.js +37 -0
- package/package.json +11 -11
package/dist/index.js
CHANGED
|
@@ -29,7 +29,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.RenderInternals = exports.validateOutputFilename = exports.stitchFramesToVideo = exports.selectComposition = exports.renderStill = exports.renderMedia = exports.renderFrames = exports.openBrowser = exports.makeCancelSignal = exports.validateSelectedPixelFormatAndImageFormatCombination = exports.getCompositions = exports.ErrorWithStackFrame = void 0;
|
|
30
30
|
const execa_1 = __importDefault(require("execa"));
|
|
31
31
|
const download_file_1 = require("./assets/download-file");
|
|
32
|
-
const download_map_1 = require("./assets/download-map");
|
|
33
32
|
const audio_codec_1 = require("./audio-codec");
|
|
34
33
|
const browser_1 = require("./browser");
|
|
35
34
|
const Browser_1 = require("./browser/Browser");
|
|
@@ -50,6 +49,7 @@ const symbolicateable_error_1 = require("./error-handling/symbolicateable-error"
|
|
|
50
49
|
const file_extensions_1 = require("./file-extensions");
|
|
51
50
|
const find_closest_package_json_1 = require("./find-closest-package-json");
|
|
52
51
|
const frame_range_1 = require("./frame-range");
|
|
52
|
+
const get_compositions_1 = require("./get-compositions");
|
|
53
53
|
const get_concurrency_1 = require("./get-concurrency");
|
|
54
54
|
const get_duration_from_frame_range_1 = require("./get-duration-from-frame-range");
|
|
55
55
|
const get_extension_from_codec_1 = require("./get-extension-from-codec");
|
|
@@ -68,6 +68,11 @@ const open_browser_1 = require("./open-browser");
|
|
|
68
68
|
const parse_browser_error_stack_1 = require("./parse-browser-error-stack");
|
|
69
69
|
const perf = __importStar(require("./perf"));
|
|
70
70
|
const pixel_format_1 = require("./pixel-format");
|
|
71
|
+
const prepare_server_1 = require("./prepare-server");
|
|
72
|
+
const render_frames_1 = require("./render-frames");
|
|
73
|
+
const render_media_1 = require("./render-media");
|
|
74
|
+
const render_still_1 = require("./render-still");
|
|
75
|
+
const select_composition_1 = require("./select-composition");
|
|
71
76
|
const is_path_inside_1 = require("./serve-handler/is-path-inside");
|
|
72
77
|
const serve_static_1 = require("./serve-static");
|
|
73
78
|
const tmp_dir_1 = require("./tmp-dir");
|
|
@@ -79,22 +84,22 @@ const validate_videobitrate_1 = require("./validate-videobitrate");
|
|
|
79
84
|
const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
|
|
80
85
|
var handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
|
|
81
86
|
Object.defineProperty(exports, "ErrorWithStackFrame", { enumerable: true, get: function () { return handle_javascript_exception_1.ErrorWithStackFrame; } });
|
|
82
|
-
var
|
|
83
|
-
Object.defineProperty(exports, "getCompositions", { enumerable: true, get: function () { return
|
|
87
|
+
var get_compositions_2 = require("./get-compositions");
|
|
88
|
+
Object.defineProperty(exports, "getCompositions", { enumerable: true, get: function () { return get_compositions_2.getCompositions; } });
|
|
84
89
|
var image_format_2 = require("./image-format");
|
|
85
90
|
Object.defineProperty(exports, "validateSelectedPixelFormatAndImageFormatCombination", { enumerable: true, get: function () { return image_format_2.validateSelectedPixelFormatAndImageFormatCombination; } });
|
|
86
91
|
var make_cancel_signal_1 = require("./make-cancel-signal");
|
|
87
92
|
Object.defineProperty(exports, "makeCancelSignal", { enumerable: true, get: function () { return make_cancel_signal_1.makeCancelSignal; } });
|
|
88
93
|
var open_browser_2 = require("./open-browser");
|
|
89
94
|
Object.defineProperty(exports, "openBrowser", { enumerable: true, get: function () { return open_browser_2.openBrowser; } });
|
|
90
|
-
var
|
|
91
|
-
Object.defineProperty(exports, "renderFrames", { enumerable: true, get: function () { return
|
|
92
|
-
var
|
|
93
|
-
Object.defineProperty(exports, "renderMedia", { enumerable: true, get: function () { return
|
|
94
|
-
var
|
|
95
|
-
Object.defineProperty(exports, "renderStill", { enumerable: true, get: function () { return
|
|
96
|
-
var
|
|
97
|
-
Object.defineProperty(exports, "selectComposition", { enumerable: true, get: function () { return
|
|
95
|
+
var render_frames_2 = require("./render-frames");
|
|
96
|
+
Object.defineProperty(exports, "renderFrames", { enumerable: true, get: function () { return render_frames_2.renderFrames; } });
|
|
97
|
+
var render_media_2 = require("./render-media");
|
|
98
|
+
Object.defineProperty(exports, "renderMedia", { enumerable: true, get: function () { return render_media_2.renderMedia; } });
|
|
99
|
+
var render_still_2 = require("./render-still");
|
|
100
|
+
Object.defineProperty(exports, "renderStill", { enumerable: true, get: function () { return render_still_2.renderStill; } });
|
|
101
|
+
var select_composition_2 = require("./select-composition");
|
|
102
|
+
Object.defineProperty(exports, "selectComposition", { enumerable: true, get: function () { return select_composition_2.selectComposition; } });
|
|
98
103
|
var stitch_frames_to_video_1 = require("./stitch-frames-to-video");
|
|
99
104
|
Object.defineProperty(exports, "stitchFramesToVideo", { enumerable: true, get: function () { return stitch_frames_to_video_1.stitchFramesToVideo; } });
|
|
100
105
|
var validate_output_filename_1 = require("./validate-output-filename");
|
|
@@ -142,8 +147,6 @@ exports.RenderInternals = {
|
|
|
142
147
|
isEqualOrBelowLogLevel: log_level_1.isEqualOrBelowLogLevel,
|
|
143
148
|
isValidLogLevel: log_level_1.isValidLogLevel,
|
|
144
149
|
perf,
|
|
145
|
-
makeDownloadMap: download_map_1.makeDownloadMap,
|
|
146
|
-
cleanDownloadMap: download_map_1.cleanDownloadMap,
|
|
147
150
|
convertToPositiveFrameIndex: convert_to_positive_frame_index_1.convertToPositiveFrameIndex,
|
|
148
151
|
findRemotionRoot: find_closest_package_json_1.findRemotionRoot,
|
|
149
152
|
validateBitrate: validate_videobitrate_1.validateBitrate,
|
|
@@ -163,6 +166,7 @@ exports.RenderInternals = {
|
|
|
163
166
|
validVideoImageFormats: image_format_1.validVideoImageFormats,
|
|
164
167
|
DEFAULT_STILL_IMAGE_FORMAT: image_format_1.DEFAULT_STILL_IMAGE_FORMAT,
|
|
165
168
|
DEFAULT_VIDEO_IMAGE_FORMAT: image_format_1.DEFAULT_VIDEO_IMAGE_FORMAT,
|
|
169
|
+
DEFAULT_JPEG_QUALITY: jpeg_quality_1.DEFAULT_JPEG_QUALITY,
|
|
166
170
|
chalk: chalk_1.chalk,
|
|
167
171
|
Log: logger_1.Log,
|
|
168
172
|
getLogLevel: logger_1.getLogLevel,
|
|
@@ -170,6 +174,14 @@ exports.RenderInternals = {
|
|
|
170
174
|
INDENT_TOKEN: logger_1.INDENT_TOKEN,
|
|
171
175
|
isColorSupported: is_color_supported_1.isColorSupported,
|
|
172
176
|
HeadlessBrowser: Browser_1.HeadlessBrowser,
|
|
177
|
+
prepareServer: prepare_server_1.prepareServer,
|
|
178
|
+
makeOrReuseServer: prepare_server_1.makeOrReuseServer,
|
|
179
|
+
internalRenderStill: render_still_1.internalRenderStill,
|
|
180
|
+
internalOpenBrowser: open_browser_1.internalOpenBrowser,
|
|
181
|
+
internalSelectComposition: select_composition_1.internalSelectComposition,
|
|
182
|
+
internalGetCompositions: get_compositions_1.internalGetCompositions,
|
|
183
|
+
internalRenderFrames: render_frames_1.internalRenderFrames,
|
|
184
|
+
internalRenderMedia: render_media_1.internalRenderMedia,
|
|
173
185
|
};
|
|
174
186
|
// Warn of potential performance issues with Apple Silicon (M1 chip under Rosetta)
|
|
175
187
|
(0, check_apple_silicon_1.checkNodeVersionAndWarnAboutRosetta)();
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { DownloadMap } from './assets/download-map';
|
|
2
|
+
export declare const isBeyondLastFrame: (downloadMap: DownloadMap, src: string, time: number) => boolean | 0;
|
|
3
|
+
export declare const markAsBeyondLastFrame: (downloadMap: DownloadMap, src: string, time: number) => void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.markAsBeyondLastFrame = exports.isBeyondLastFrame = void 0;
|
|
4
|
+
const isBeyondLastFrame = (downloadMap, src, time) => {
|
|
5
|
+
return (downloadMap.isBeyondLastFrameMap[src] &&
|
|
6
|
+
time >= downloadMap.isBeyondLastFrameMap[src]);
|
|
7
|
+
};
|
|
8
|
+
exports.isBeyondLastFrame = isBeyondLastFrame;
|
|
9
|
+
const markAsBeyondLastFrame = (downloadMap, src, time) => {
|
|
10
|
+
downloadMap.isBeyondLastFrameMap[src] = time;
|
|
11
|
+
};
|
|
12
|
+
exports.markAsBeyondLastFrame = markAsBeyondLastFrame;
|
package/dist/jpeg-quality.d.ts
CHANGED
package/dist/jpeg-quality.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateJpegQuality = void 0;
|
|
3
|
+
exports.validateJpegQuality = exports.DEFAULT_JPEG_QUALITY = void 0;
|
|
4
|
+
exports.DEFAULT_JPEG_QUALITY = 80;
|
|
4
5
|
const validateJpegQuality = (q) => {
|
|
5
6
|
if (typeof q !== 'undefined' && typeof q !== 'number') {
|
|
6
7
|
throw new Error(`JPEG Quality option must be a number or undefined. Got ${typeof q} (${JSON.stringify(q)})`);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { OffthreadVideoImageFormat } from 'remotion';
|
|
2
|
+
import type { DownloadMap, SpecialVCodecForTransparency } from './assets/download-map';
|
|
3
|
+
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
4
|
+
export declare type LastFrameOptions = {
|
|
5
|
+
ffmpegExecutable: FfmpegExecutable;
|
|
6
|
+
ffprobeExecutable: FfmpegExecutable;
|
|
7
|
+
offset: number;
|
|
8
|
+
src: string;
|
|
9
|
+
specialVCodecForTransparency: SpecialVCodecForTransparency;
|
|
10
|
+
imageFormat: OffthreadVideoImageFormat;
|
|
11
|
+
needsResize: [number, number] | null;
|
|
12
|
+
downloadMap: DownloadMap;
|
|
13
|
+
remotionRoot: string;
|
|
14
|
+
};
|
|
15
|
+
export declare const setLastFrameInCache: (options: LastFrameOptions, data: Buffer) => void;
|
|
16
|
+
export declare const getLastFrameFromCache: (options: LastFrameOptions) => Buffer | null;
|
|
17
|
+
export declare const clearLastFileCache: (downloadMap: DownloadMap) => void;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// OffthreadVideo requires sometimes that the last frame of a video gets extracted, however, this can be slow. We allocate a cache for it but that can be garbage collected
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.clearLastFileCache = exports.getLastFrameFromCache = exports.setLastFrameInCache = void 0;
|
|
5
|
+
const MAX_CACHE_SIZE = 50 * 1024 * 1024; // 50MB
|
|
6
|
+
let bufferSize = 0;
|
|
7
|
+
const makeLastFrameCacheKey = (options) => {
|
|
8
|
+
return [
|
|
9
|
+
options.ffmpegExecutable,
|
|
10
|
+
options.offset,
|
|
11
|
+
options.src,
|
|
12
|
+
options.imageFormat,
|
|
13
|
+
options.downloadMap.id,
|
|
14
|
+
].join('-');
|
|
15
|
+
};
|
|
16
|
+
const setLastFrameInCache = (options, data) => {
|
|
17
|
+
const key = makeLastFrameCacheKey(options);
|
|
18
|
+
if (options.downloadMap.lastFrameMap[key]) {
|
|
19
|
+
bufferSize -= options.downloadMap.lastFrameMap[key].data.byteLength;
|
|
20
|
+
}
|
|
21
|
+
options.downloadMap.lastFrameMap[key] = { data, lastAccessed: Date.now() };
|
|
22
|
+
bufferSize += data.byteLength;
|
|
23
|
+
ensureMaxSize(options.downloadMap);
|
|
24
|
+
};
|
|
25
|
+
exports.setLastFrameInCache = setLastFrameInCache;
|
|
26
|
+
const getLastFrameFromCache = (options) => {
|
|
27
|
+
var _a;
|
|
28
|
+
const key = makeLastFrameCacheKey(options);
|
|
29
|
+
if (!options.downloadMap.lastFrameMap[key]) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
options.downloadMap.lastFrameMap[key].lastAccessed = Date.now();
|
|
33
|
+
return (_a = options.downloadMap.lastFrameMap[key].data) !== null && _a !== void 0 ? _a : null;
|
|
34
|
+
};
|
|
35
|
+
exports.getLastFrameFromCache = getLastFrameFromCache;
|
|
36
|
+
const removedLastFrameFromCache = (key, downloadMap) => {
|
|
37
|
+
if (!downloadMap.lastFrameMap[key]) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
bufferSize -= downloadMap.lastFrameMap[key].data.byteLength;
|
|
41
|
+
delete downloadMap.lastFrameMap[key];
|
|
42
|
+
};
|
|
43
|
+
const ensureMaxSize = (downloadMap) => {
|
|
44
|
+
// eslint-disable-next-line no-unmodified-loop-condition
|
|
45
|
+
while (bufferSize > MAX_CACHE_SIZE) {
|
|
46
|
+
const earliest = Object.entries(downloadMap.lastFrameMap).sort((a, b) => {
|
|
47
|
+
return a[1].lastAccessed - b[1].lastAccessed;
|
|
48
|
+
})[0];
|
|
49
|
+
removedLastFrameFromCache(earliest[0], downloadMap);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const clearLastFileCache = (downloadMap) => {
|
|
53
|
+
downloadMap.lastFrameMap = {};
|
|
54
|
+
};
|
|
55
|
+
exports.clearLastFileCache = clearLastFileCache;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getServeUrlWithFallback = void 0;
|
|
4
|
+
const getServeUrlWithFallback = (serve) => {
|
|
5
|
+
if ('webpackBundle' in serve) {
|
|
6
|
+
return serve.webpackBundle;
|
|
7
|
+
}
|
|
8
|
+
if ('serveUrl' in serve) {
|
|
9
|
+
return serve.serveUrl;
|
|
10
|
+
}
|
|
11
|
+
throw new Error('You must pass the `serveUrl` parameter');
|
|
12
|
+
};
|
|
13
|
+
exports.getServeUrlWithFallback = getServeUrlWithFallback;
|
package/dist/log-level.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const logLevels: readonly ["verbose", "info", "warn", "error"];
|
|
2
|
-
export
|
|
2
|
+
export type LogLevel = typeof logLevels[number];
|
|
3
3
|
export declare const isValidLogLevel: (level: string) => boolean;
|
|
4
4
|
export declare const isEqualOrBelowLogLevel: (currentLevel: LogLevel, level: LogLevel) => boolean;
|
package/dist/logger.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { LogLevel } from './log-level';
|
|
2
2
|
export declare const INDENT_TOKEN: string;
|
|
3
|
-
|
|
3
|
+
type LogOptions = {
|
|
4
4
|
indent: boolean;
|
|
5
5
|
logLevel: LogLevel;
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
type VerboseLogOptions = LogOptions & {
|
|
8
8
|
tag?: string;
|
|
9
|
+
secondTag?: string;
|
|
9
10
|
};
|
|
10
11
|
export declare const verboseTag: (str: string) => string;
|
|
12
|
+
export declare const secondverboseTag: (str: string) => string;
|
|
11
13
|
export declare const Log: {
|
|
12
14
|
verbose: (message?: any, ...optionalParams: any[]) => void;
|
|
13
15
|
verboseAdvanced: (options: VerboseLogOptions, message?: any, ...optionalParams: any[]) => void;
|
package/dist/logger.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setLogLevel = exports.getLogLevel = exports.Log = exports.verboseTag = exports.INDENT_TOKEN = void 0;
|
|
3
|
+
exports.setLogLevel = exports.getLogLevel = exports.Log = exports.secondverboseTag = exports.verboseTag = exports.INDENT_TOKEN = void 0;
|
|
4
4
|
const chalk_1 = require("./chalk");
|
|
5
5
|
const is_color_supported_1 = require("./chalk/is-color-supported");
|
|
6
6
|
const log_level_1 = require("./log-level");
|
|
7
7
|
const truthy_1 = require("./truthy");
|
|
8
8
|
exports.INDENT_TOKEN = chalk_1.chalk.gray('│');
|
|
9
9
|
const verboseTag = (str) => {
|
|
10
|
-
return is_color_supported_1.isColorSupported
|
|
11
|
-
? chalk_1.chalk.bgBlack(` ${str.toUpperCase()} `)
|
|
12
|
-
: `[${str.toUpperCase()}]`;
|
|
10
|
+
return is_color_supported_1.isColorSupported ? chalk_1.chalk.bgBlack(` ${str} `) : `[${str}]`;
|
|
13
11
|
};
|
|
14
12
|
exports.verboseTag = verboseTag;
|
|
13
|
+
const secondverboseTag = (str) => {
|
|
14
|
+
return is_color_supported_1.isColorSupported ? chalk_1.chalk.bgWhite(` ${str} `) : `[${str}]`;
|
|
15
|
+
};
|
|
16
|
+
exports.secondverboseTag = secondverboseTag;
|
|
15
17
|
exports.Log = {
|
|
16
18
|
verbose: (...args) => {
|
|
17
19
|
exports.Log.verboseAdvanced({ indent: false, logLevel: (0, exports.getLogLevel)() }, ...args);
|
|
@@ -20,7 +22,12 @@ exports.Log = {
|
|
|
20
22
|
if ((0, log_level_1.isEqualOrBelowLogLevel)(options.logLevel, 'verbose')) {
|
|
21
23
|
return console.log(...[
|
|
22
24
|
options.indent ? exports.INDENT_TOKEN : null,
|
|
23
|
-
|
|
25
|
+
[
|
|
26
|
+
options.tag ? (0, exports.verboseTag)(options.tag) : null,
|
|
27
|
+
options.secondTag ? (0, exports.secondverboseTag)(options.secondTag) : null,
|
|
28
|
+
]
|
|
29
|
+
.filter(truthy_1.truthy)
|
|
30
|
+
.join(''),
|
|
24
31
|
...args.map((a) => chalk_1.chalk.gray(a)),
|
|
25
32
|
].filter(truthy_1.truthy));
|
|
26
33
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
1
|
+
type Callback = () => void;
|
|
2
|
+
export type CancelSignal = (callback: Callback) => void;
|
|
3
3
|
/**
|
|
4
4
|
* @description Returns a signal and a cancel function that allows to you cancel a render triggered using renderMedia(), renderStill(), renderFrames() or stitchFramesToVideo().
|
|
5
5
|
* @see [Documentation](https://www.remotion.dev/docs/renderer/make-cancel-signal)
|
package/dist/mime-types.js
CHANGED
|
@@ -36,7 +36,7 @@ function populateMaps(exts, _types) {
|
|
|
36
36
|
Object.keys(mime_db_1.mimeDb).forEach((type) => {
|
|
37
37
|
const mime = mime_db_1.mimeDb[type];
|
|
38
38
|
const _exts = mime.extensions;
|
|
39
|
-
if (!_exts ||
|
|
39
|
+
if (!(_exts === null || _exts === void 0 ? void 0 : _exts.length)) {
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
42
|
// mime -> extensions
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { RequestListener } from 'node:http';
|
|
2
|
-
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
3
2
|
import type { DownloadMap } from './assets/download-map';
|
|
4
3
|
import type { Compositor } from './compositor/compositor';
|
|
5
4
|
export declare const extractUrlAndSourceFromUrl: (url: string) => {
|
|
@@ -7,9 +6,7 @@ export declare const extractUrlAndSourceFromUrl: (url: string) => {
|
|
|
7
6
|
time: number;
|
|
8
7
|
transparent: boolean;
|
|
9
8
|
};
|
|
10
|
-
export declare const startOffthreadVideoServer: ({
|
|
11
|
-
onDownload: RenderMediaOnDownload;
|
|
12
|
-
onError: (err: Error) => void;
|
|
9
|
+
export declare const startOffthreadVideoServer: ({ downloadMap, concurrency, verbose, indent, }: {
|
|
13
10
|
downloadMap: DownloadMap;
|
|
14
11
|
concurrency: number;
|
|
15
12
|
verbose: boolean;
|
|
@@ -18,4 +15,39 @@ export declare const startOffthreadVideoServer: ({ onDownload, onError, download
|
|
|
18
15
|
listener: RequestListener;
|
|
19
16
|
close: () => Promise<void>;
|
|
20
17
|
compositor: Compositor;
|
|
18
|
+
events: OffthreadVideoServerEmitter;
|
|
21
19
|
};
|
|
20
|
+
type DownloadEventPayload = {
|
|
21
|
+
src: string;
|
|
22
|
+
};
|
|
23
|
+
type ProgressEventPayload = {
|
|
24
|
+
percent: number | null;
|
|
25
|
+
downloaded: number;
|
|
26
|
+
totalSize: number | null;
|
|
27
|
+
src: string;
|
|
28
|
+
};
|
|
29
|
+
type ErrorEventPayload = {
|
|
30
|
+
error: Error;
|
|
31
|
+
};
|
|
32
|
+
type EventMap = {
|
|
33
|
+
progress: ProgressEventPayload;
|
|
34
|
+
error: ErrorEventPayload;
|
|
35
|
+
download: DownloadEventPayload;
|
|
36
|
+
};
|
|
37
|
+
export type EventTypes = keyof EventMap;
|
|
38
|
+
export type CallbackListener<T extends EventTypes> = (data: {
|
|
39
|
+
detail: EventMap[T];
|
|
40
|
+
}) => void;
|
|
41
|
+
type Listeners = {
|
|
42
|
+
[EventType in EventTypes]: CallbackListener<EventType>[];
|
|
43
|
+
};
|
|
44
|
+
export declare class OffthreadVideoServerEmitter {
|
|
45
|
+
listeners: Listeners;
|
|
46
|
+
addEventListener<Q extends EventTypes>(name: Q, callback: CallbackListener<Q>): () => void;
|
|
47
|
+
removeEventListener<Q extends EventTypes>(name: Q, callback: CallbackListener<Q>): void;
|
|
48
|
+
private dispatchEvent;
|
|
49
|
+
dispatchError(error: Error): void;
|
|
50
|
+
dispatchDownloadProgress(src: string, percent: number | null, downloaded: number, totalSize: number | null): void;
|
|
51
|
+
dispatchDownload(src: string): void;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.startOffthreadVideoServer = exports.extractUrlAndSourceFromUrl = void 0;
|
|
3
|
+
exports.OffthreadVideoServerEmitter = exports.startOffthreadVideoServer = exports.extractUrlAndSourceFromUrl = void 0;
|
|
4
4
|
const node_url_1 = require("node:url");
|
|
5
5
|
const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
|
|
6
6
|
const compositor_1 = require("./compositor/compositor");
|
|
@@ -27,7 +27,8 @@ const extractUrlAndSourceFromUrl = (url) => {
|
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
29
|
exports.extractUrlAndSourceFromUrl = extractUrlAndSourceFromUrl;
|
|
30
|
-
const startOffthreadVideoServer = ({
|
|
30
|
+
const startOffthreadVideoServer = ({ downloadMap, concurrency, verbose, indent, }) => {
|
|
31
|
+
const events = new OffthreadVideoServerEmitter();
|
|
31
32
|
const compositor = (0, compositor_1.startCompositor)('StartLongRunningProcess', {
|
|
32
33
|
concurrency,
|
|
33
34
|
maximum_frame_cache_items: (0, compositor_1.getIdealMaximumFrameCacheItems)(),
|
|
@@ -66,7 +67,7 @@ const startOffthreadVideoServer = ({ onDownload, onError, downloadMap, concurren
|
|
|
66
67
|
res.end();
|
|
67
68
|
return;
|
|
68
69
|
}
|
|
69
|
-
(0, download_and_map_assets_to_file_1.downloadAsset)({ src,
|
|
70
|
+
(0, download_and_map_assets_to_file_1.downloadAsset)({ src, emitter: events, downloadMap })
|
|
70
71
|
.then((to) => {
|
|
71
72
|
return compositor.executeCommand('ExtractFrame', {
|
|
72
73
|
input: to,
|
|
@@ -85,11 +86,54 @@ const startOffthreadVideoServer = ({ onDownload, onError, downloadMap, concurren
|
|
|
85
86
|
.catch((err) => {
|
|
86
87
|
res.writeHead(500);
|
|
87
88
|
res.end();
|
|
88
|
-
|
|
89
|
+
events.dispatchError(err);
|
|
89
90
|
console.log('Error occurred', err);
|
|
90
91
|
});
|
|
91
92
|
},
|
|
92
93
|
compositor,
|
|
94
|
+
events,
|
|
93
95
|
};
|
|
94
96
|
};
|
|
95
97
|
exports.startOffthreadVideoServer = startOffthreadVideoServer;
|
|
98
|
+
class OffthreadVideoServerEmitter {
|
|
99
|
+
constructor() {
|
|
100
|
+
this.listeners = {
|
|
101
|
+
error: [],
|
|
102
|
+
progress: [],
|
|
103
|
+
download: [],
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
addEventListener(name, callback) {
|
|
107
|
+
this.listeners[name].push(callback);
|
|
108
|
+
return () => {
|
|
109
|
+
this.removeEventListener(name, callback);
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
removeEventListener(name, callback) {
|
|
113
|
+
this.listeners[name] = this.listeners[name].filter((l) => l !== callback);
|
|
114
|
+
}
|
|
115
|
+
dispatchEvent(dispatchName, context) {
|
|
116
|
+
this.listeners[dispatchName].forEach((callback) => {
|
|
117
|
+
callback({ detail: context });
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
dispatchError(error) {
|
|
121
|
+
this.dispatchEvent('error', {
|
|
122
|
+
error,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
dispatchDownloadProgress(src, percent, downloaded, totalSize) {
|
|
126
|
+
this.dispatchEvent('progress', {
|
|
127
|
+
downloaded,
|
|
128
|
+
percent,
|
|
129
|
+
totalSize,
|
|
130
|
+
src,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
dispatchDownload(src) {
|
|
134
|
+
this.dispatchEvent('download', {
|
|
135
|
+
src,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.OffthreadVideoServerEmitter = OffthreadVideoServerEmitter;
|
package/dist/open-browser.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import type { Browser } from './browser';
|
|
|
2
2
|
import type { HeadlessBrowser } from './browser/Browser';
|
|
3
3
|
import type { Viewport } from './browser/PuppeteerViewport';
|
|
4
4
|
declare const validRenderers: readonly ["swangle", "angle", "egl", "swiftshader"];
|
|
5
|
-
|
|
6
|
-
export
|
|
5
|
+
type OpenGlRenderer = typeof validRenderers[number];
|
|
6
|
+
export type ChromiumOptions = {
|
|
7
7
|
ignoreCertificateErrors?: boolean;
|
|
8
8
|
disableWebSecurity?: boolean;
|
|
9
9
|
gl?: OpenGlRenderer | null;
|
|
@@ -11,16 +11,25 @@ export declare type ChromiumOptions = {
|
|
|
11
11
|
userAgent?: string | null;
|
|
12
12
|
};
|
|
13
13
|
export declare const killAllBrowsers: () => Promise<void>;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
type InternalOpenBrowserOptions = {
|
|
15
|
+
shouldDumpIo: boolean;
|
|
16
|
+
browserExecutable: string | null;
|
|
17
|
+
chromiumOptions: ChromiumOptions;
|
|
18
|
+
forceDeviceScaleFactor: number | undefined;
|
|
19
|
+
viewport: Viewport | null;
|
|
20
|
+
indent: boolean;
|
|
21
|
+
browser: Browser;
|
|
22
|
+
};
|
|
23
|
+
export type OpenBrowserOptions = {
|
|
19
24
|
shouldDumpIo?: boolean;
|
|
20
25
|
browserExecutable?: string | null;
|
|
21
26
|
chromiumOptions?: ChromiumOptions;
|
|
22
27
|
forceDeviceScaleFactor?: number;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
};
|
|
29
|
+
export declare const internalOpenBrowser: ({ browser, browserExecutable, chromiumOptions, forceDeviceScaleFactor, indent, shouldDumpIo, viewport, }: InternalOpenBrowserOptions) => Promise<HeadlessBrowser>;
|
|
30
|
+
/**
|
|
31
|
+
* @description Opens a Chrome or Chromium browser instance.
|
|
32
|
+
* @see [Documentation](https://www.remotion.dev/docs/renderer/open-browser)
|
|
33
|
+
*/
|
|
34
|
+
export declare const openBrowser: (browser: Browser, options?: OpenBrowserOptions) => Promise<HeadlessBrowser>;
|
|
26
35
|
export {};
|
package/dist/open-browser.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.openBrowser = exports.killAllBrowsers = void 0;
|
|
3
|
+
exports.openBrowser = exports.internalOpenBrowser = exports.killAllBrowsers = void 0;
|
|
4
4
|
const node_1 = require("./browser/node");
|
|
5
5
|
const get_local_browser_executable_1 = require("./get-local-browser-executable");
|
|
6
6
|
const get_video_threads_flag_1 = require("./get-video-threads-flag");
|
|
@@ -27,23 +27,19 @@ const killAllBrowsers = async () => {
|
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
29
|
exports.killAllBrowsers = killAllBrowsers;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
* @see [Documentation](https://www.remotion.dev/docs/renderer/open-browser)
|
|
33
|
-
*/
|
|
34
|
-
const openBrowser = async (browser, options) => {
|
|
35
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
30
|
+
const internalOpenBrowser = async ({ browser, browserExecutable, chromiumOptions, forceDeviceScaleFactor, indent, shouldDumpIo, viewport, }) => {
|
|
31
|
+
var _a, _b;
|
|
36
32
|
if (browser === 'firefox') {
|
|
37
33
|
throw new TypeError('Firefox supported is not yet turned on. Stay tuned for the future.');
|
|
38
34
|
}
|
|
39
|
-
await (0, get_local_browser_executable_1.ensureLocalBrowser)(browser,
|
|
40
|
-
const executablePath = (0, get_local_browser_executable_1.getLocalBrowserExecutable)(browser,
|
|
41
|
-
const customGlRenderer = getOpenGlRenderer((
|
|
35
|
+
await (0, get_local_browser_executable_1.ensureLocalBrowser)(browser, browserExecutable);
|
|
36
|
+
const executablePath = (0, get_local_browser_executable_1.getLocalBrowserExecutable)(browser, browserExecutable);
|
|
37
|
+
const customGlRenderer = getOpenGlRenderer((_a = chromiumOptions.gl) !== null && _a !== void 0 ? _a : null);
|
|
42
38
|
const browserInstance = await node_1.puppeteer.launch({
|
|
43
39
|
executablePath,
|
|
44
40
|
product: browser,
|
|
45
|
-
dumpio:
|
|
46
|
-
indent
|
|
41
|
+
dumpio: shouldDumpIo,
|
|
42
|
+
indent,
|
|
47
43
|
args: [
|
|
48
44
|
'about:blank',
|
|
49
45
|
'--allow-pre-commit-input',
|
|
@@ -76,7 +72,7 @@ const openBrowser = async (browser, options) => {
|
|
|
76
72
|
'--enable-blink-features=IdleDetection',
|
|
77
73
|
'--export-tagged-pdf',
|
|
78
74
|
'--intensive-wake-up-throttling-policy=0',
|
|
79
|
-
((
|
|
75
|
+
((_b = chromiumOptions.headless) !== null && _b !== void 0 ? _b : true) ? '--headless' : null,
|
|
80
76
|
'--no-sandbox',
|
|
81
77
|
'--disable-setuid-sandbox',
|
|
82
78
|
...customGlRenderer,
|
|
@@ -94,20 +90,20 @@ const openBrowser = async (browser, options) => {
|
|
|
94
90
|
'--no-pings',
|
|
95
91
|
'--font-render-hinting=none',
|
|
96
92
|
'--no-zygote',
|
|
97
|
-
|
|
98
|
-
?
|
|
99
|
-
:
|
|
100
|
-
|
|
93
|
+
typeof forceDeviceScaleFactor === 'undefined'
|
|
94
|
+
? null
|
|
95
|
+
: `--force-device-scale-factor=${forceDeviceScaleFactor}`,
|
|
96
|
+
chromiumOptions.ignoreCertificateErrors
|
|
101
97
|
? '--ignore-certificate-errors'
|
|
102
98
|
: null,
|
|
103
|
-
...((
|
|
99
|
+
...((chromiumOptions === null || chromiumOptions === void 0 ? void 0 : chromiumOptions.disableWebSecurity)
|
|
104
100
|
? ['--disable-web-security']
|
|
105
101
|
: []),
|
|
106
|
-
(
|
|
107
|
-
? `--user-agent="${
|
|
102
|
+
(chromiumOptions === null || chromiumOptions === void 0 ? void 0 : chromiumOptions.userAgent)
|
|
103
|
+
? `--user-agent="${chromiumOptions.userAgent}"`
|
|
108
104
|
: null,
|
|
109
105
|
].filter(Boolean),
|
|
110
|
-
defaultViewport:
|
|
106
|
+
defaultViewport: viewport !== null && viewport !== void 0 ? viewport : {
|
|
111
107
|
height: 720,
|
|
112
108
|
width: 1280,
|
|
113
109
|
deviceScaleFactor: 1,
|
|
@@ -118,4 +114,21 @@ const openBrowser = async (browser, options) => {
|
|
|
118
114
|
browserInstances.push(browserInstance);
|
|
119
115
|
return browserInstance;
|
|
120
116
|
};
|
|
117
|
+
exports.internalOpenBrowser = internalOpenBrowser;
|
|
118
|
+
/**
|
|
119
|
+
* @description Opens a Chrome or Chromium browser instance.
|
|
120
|
+
* @see [Documentation](https://www.remotion.dev/docs/renderer/open-browser)
|
|
121
|
+
*/
|
|
122
|
+
const openBrowser = (browser, options) => {
|
|
123
|
+
const { browserExecutable, chromiumOptions, forceDeviceScaleFactor, shouldDumpIo, } = options !== null && options !== void 0 ? options : {};
|
|
124
|
+
return (0, exports.internalOpenBrowser)({
|
|
125
|
+
browser,
|
|
126
|
+
browserExecutable: browserExecutable !== null && browserExecutable !== void 0 ? browserExecutable : null,
|
|
127
|
+
chromiumOptions: chromiumOptions !== null && chromiumOptions !== void 0 ? chromiumOptions : {},
|
|
128
|
+
forceDeviceScaleFactor,
|
|
129
|
+
indent: false,
|
|
130
|
+
shouldDumpIo: shouldDumpIo !== null && shouldDumpIo !== void 0 ? shouldDumpIo : false,
|
|
131
|
+
viewport: null,
|
|
132
|
+
});
|
|
133
|
+
};
|
|
121
134
|
exports.openBrowser = openBrowser;
|
package/dist/options/option.d.ts
CHANGED
package/dist/perf.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
type PerfId = 'activate-target' | 'capture' | 'save' | 'extract-frame' | 'piping';
|
|
2
2
|
export declare const startPerfMeasure: (marker: PerfId) => number;
|
|
3
3
|
export declare const stopPerfMeasure: (id: number) => void;
|
|
4
4
|
export declare const getPerf: () => string[];
|
package/dist/pixel-format.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Codec } from './codec';
|
|
2
2
|
export declare const validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
|
|
3
|
-
export
|
|
3
|
+
export type PixelFormat = typeof validPixelFormats[number];
|
|
4
4
|
export declare const DEFAULT_PIXEL_FORMAT: PixelFormat;
|
|
5
5
|
export declare const validateSelectedPixelFormatAndCodecCombination: (pixelFormat: PixelFormat | undefined, codec: Codec) => undefined;
|