@remotion/renderer 4.0.69 → 4.0.70

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.
@@ -10,6 +10,6 @@ export declare const getDesiredPort: ({ desiredPort, from, hostsToTry, to, }: {
10
10
  hostsToTry: string[];
11
11
  }) => Promise<{
12
12
  port: number;
13
- didUsePort: () => void;
13
+ unlockPort: () => void;
14
14
  }>;
15
15
  export {};
package/dist/get-port.js CHANGED
@@ -50,20 +50,20 @@ const portLocks = (0, locks_1.createLock)({ timeout: 10000 });
50
50
  const getDesiredPort = async ({ desiredPort, from, hostsToTry, to, }) => {
51
51
  await portLocks.waitForAllToBeDone();
52
52
  const lockPortSelection = portLocks.lock();
53
- const didUsePort = () => portLocks.unlock(lockPortSelection);
53
+ const unlockPort = () => portLocks.unlock(lockPortSelection);
54
54
  if (typeof desiredPort !== 'undefined' &&
55
55
  (await (0, exports.testPortAvailableOnMultipleHosts)({
56
56
  port: desiredPort,
57
57
  hosts: hostsToTry,
58
58
  })) === 'available') {
59
- return { port: desiredPort, didUsePort };
59
+ return { port: desiredPort, unlockPort };
60
60
  }
61
61
  const actualPort = await getPort({ from, to, hostsToTest: hostsToTry });
62
62
  // If did specify a port but did not get that one, fail hard.
63
63
  if (desiredPort && desiredPort !== actualPort) {
64
64
  throw new Error(`You specified port ${desiredPort} to be used for the HTTP server, but it is not available. Choose a different port or remove the setting to let Remotion automatically select a free port.`);
65
65
  }
66
- return { port: actualPort, didUsePort };
66
+ return { port: actualPort, unlockPort };
67
67
  };
68
68
  exports.getDesiredPort = getDesiredPort;
69
69
  const makeRange = (from, to) => {
package/dist/index.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="react" />
3
- /// <reference types="node" />
4
1
  import execa from 'execa';
5
2
  import { HeadlessBrowser } from './browser/Browser';
6
3
  import { SymbolicateableError } from './error-handling/symbolicateable-error';
@@ -46,7 +43,7 @@ export { X264Preset } from './x264-preset';
46
43
  export declare const RenderInternals: {
47
44
  ensureLocalBrowser: ({ indent, logLevel, preferredBrowserExecutable, }: {
48
45
  preferredBrowserExecutable: import("./browser-executable").BrowserExecutable;
49
- logLevel: "verbose" | "info" | "warn" | "error";
46
+ logLevel: "error" | "verbose" | "info" | "warn";
50
47
  indent: boolean;
51
48
  }) => Promise<void>;
52
49
  getActualConcurrency: (userPreference: string | number | null) => number;
@@ -55,7 +52,7 @@ export declare const RenderInternals: {
55
52
  downloadMap: import("./assets/download-map").DownloadMap;
56
53
  remotionRoot: string;
57
54
  concurrency: number;
58
- logLevel: "verbose" | "info" | "warn" | "error";
55
+ logLevel: "error" | "verbose" | "info" | "warn";
59
56
  indent: boolean;
60
57
  offthreadVideoCacheSizeInBytes: number | null;
61
58
  }) => Promise<{
@@ -67,10 +64,10 @@ export declare const RenderInternals: {
67
64
  width: number;
68
65
  height: number;
69
66
  scale: number;
70
- codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif";
67
+ codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
71
68
  wantsImageSequence: boolean;
72
69
  }) => void;
73
- getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif">(codec: T, audioCodec: "opus" | "aac" | "mp3" | "pcm-16" | null) => import("./file-extensions").FileExtension;
70
+ getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif">(codec: T, audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null) => import("./file-extensions").FileExtension;
74
71
  tmpDir: (str: string) => string;
75
72
  deleteDirectory: (directory: string) => void;
76
73
  isServeUrl: (potentialUrl: string) => boolean;
@@ -85,7 +82,7 @@ export declare const RenderInternals: {
85
82
  downloaded: number;
86
83
  totalSize: number | null;
87
84
  }) => void) | undefined;
88
- logLevel: "verbose" | "info" | "warn" | "error";
85
+ logLevel: "error" | "verbose" | "info" | "warn";
89
86
  indent: boolean;
90
87
  }, retries?: number, attempt?: number) => Promise<{
91
88
  sizeInBytes: number;
@@ -104,7 +101,7 @@ export declare const RenderInternals: {
104
101
  hostsToTry: string[];
105
102
  }) => Promise<{
106
103
  port: number;
107
- didUsePort: () => void;
104
+ unlockPort: () => void;
108
105
  }>;
109
106
  isPathInside: (thePath: string, potentialParent: string) => boolean;
110
107
  execa: {
@@ -127,7 +124,7 @@ export declare const RenderInternals: {
127
124
  };
128
125
  registerErrorSymbolicationLock: () => number;
129
126
  unlockErrorSymbolicationLock: (id: number) => void;
130
- canUseParallelEncoding: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif") => boolean;
127
+ canUseParallelEncoding: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => boolean;
131
128
  mimeContentType: typeof mimeContentType;
132
129
  mimeLookup: typeof mimeLookup;
133
130
  validateConcurrency: ({ setting, value, checkIfValidForCurrentMachine, }: {
@@ -144,10 +141,10 @@ export declare const RenderInternals: {
144
141
  DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
145
142
  validateJpegQuality: (q: number | undefined) => void;
146
143
  DEFAULT_TIMEOUT: number;
147
- DEFAULT_CODEC: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif";
148
- isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif" | null | undefined) => boolean;
144
+ DEFAULT_CODEC: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
145
+ isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif" | null | undefined) => boolean;
149
146
  logLevels: readonly ["verbose", "info", "warn", "error"];
150
- isEqualOrBelowLogLevel: (currentLevel: "verbose" | "info" | "warn" | "error", level: "verbose" | "info" | "warn" | "error") => boolean;
147
+ isEqualOrBelowLogLevel: (currentLevel: "error" | "verbose" | "info" | "warn", level: "error" | "verbose" | "info" | "warn") => boolean;
151
148
  isValidLogLevel: (level: string) => boolean;
152
149
  perf: typeof perf;
153
150
  convertToPositiveFrameIndex: ({ frame, durationInFrames, }: {
@@ -162,30 +159,30 @@ export declare const RenderInternals: {
162
159
  output: string;
163
160
  onProgress: (p: number) => void;
164
161
  numberOfFrames: number;
165
- codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif";
162
+ codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
166
163
  fps: number;
167
164
  numberOfGifLoops: number | null;
168
- audioCodec: "opus" | "aac" | "mp3" | "pcm-16" | null;
165
+ audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null;
169
166
  audioBitrate: string | null;
170
167
  indent: boolean;
171
- logLevel: "verbose" | "info" | "warn" | "error";
168
+ logLevel: "error" | "verbose" | "info" | "warn";
172
169
  }) => Promise<void>;
173
170
  getMinConcurrency: () => number;
174
171
  getMaxConcurrency: () => number;
175
172
  getDefaultAudioCodec: ({ codec, preferLossless, }: {
176
- codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif";
173
+ codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
177
174
  preferLossless: boolean;
178
- }) => "opus" | "aac" | "mp3" | "pcm-16" | null;
175
+ }) => "mp3" | "aac" | "pcm-16" | "opus" | null;
179
176
  validAudioCodecs: readonly ["pcm-16", "aac", "mp3", "opus"];
180
177
  defaultFileExtensionMap: {
181
178
  h264: {
182
179
  default: import("./file-extensions").FileExtension;
183
180
  forAudioCodec: {
184
- aac: {
181
+ mp3: {
185
182
  possible: import("./file-extensions").FileExtension[];
186
183
  default: import("./file-extensions").FileExtension;
187
184
  };
188
- mp3: {
185
+ aac: {
189
186
  possible: import("./file-extensions").FileExtension[];
190
187
  default: import("./file-extensions").FileExtension;
191
188
  };
@@ -211,11 +208,11 @@ export declare const RenderInternals: {
211
208
  vp8: {
212
209
  default: import("./file-extensions").FileExtension;
213
210
  forAudioCodec: {
214
- opus: {
211
+ "pcm-16": {
215
212
  possible: import("./file-extensions").FileExtension[];
216
213
  default: import("./file-extensions").FileExtension;
217
214
  };
218
- "pcm-16": {
215
+ opus: {
219
216
  possible: import("./file-extensions").FileExtension[];
220
217
  default: import("./file-extensions").FileExtension;
221
218
  };
@@ -224,20 +221,20 @@ export declare const RenderInternals: {
224
221
  vp9: {
225
222
  default: import("./file-extensions").FileExtension;
226
223
  forAudioCodec: {
227
- opus: {
224
+ "pcm-16": {
228
225
  possible: import("./file-extensions").FileExtension[];
229
226
  default: import("./file-extensions").FileExtension;
230
227
  };
231
- "pcm-16": {
228
+ opus: {
232
229
  possible: import("./file-extensions").FileExtension[];
233
230
  default: import("./file-extensions").FileExtension;
234
231
  };
235
232
  };
236
233
  };
237
- prores: {
234
+ mp3: {
238
235
  default: import("./file-extensions").FileExtension;
239
236
  forAudioCodec: {
240
- aac: {
237
+ mp3: {
241
238
  possible: import("./file-extensions").FileExtension[];
242
239
  default: import("./file-extensions").FileExtension;
243
240
  };
@@ -260,22 +257,22 @@ export declare const RenderInternals: {
260
257
  };
261
258
  };
262
259
  };
263
- mp3: {
260
+ wav: {
264
261
  default: import("./file-extensions").FileExtension;
265
262
  forAudioCodec: {
266
- mp3: {
267
- possible: import("./file-extensions").FileExtension[];
268
- default: import("./file-extensions").FileExtension;
269
- };
270
263
  "pcm-16": {
271
264
  possible: import("./file-extensions").FileExtension[];
272
265
  default: import("./file-extensions").FileExtension;
273
266
  };
274
267
  };
275
268
  };
276
- wav: {
269
+ prores: {
277
270
  default: import("./file-extensions").FileExtension;
278
271
  forAudioCodec: {
272
+ aac: {
273
+ possible: import("./file-extensions").FileExtension[];
274
+ default: import("./file-extensions").FileExtension;
275
+ };
279
276
  "pcm-16": {
280
277
  possible: import("./file-extensions").FileExtension[];
281
278
  default: import("./file-extensions").FileExtension;
@@ -312,11 +309,11 @@ export declare const RenderInternals: {
312
309
  readonly vp9: readonly ["opus", "pcm-16"];
313
310
  readonly wav: readonly ["pcm-16"];
314
311
  };
315
- makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif")[]>;
316
- defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif">;
317
- getExecutablePath: (type: "compositor" | "ffmpeg" | "ffprobe" | "ffmpeg-cwd", indent: boolean, logLevel: "verbose" | "info" | "warn" | "error") => string;
318
- callFf: (bin: "ffmpeg" | "ffprobe", args: (string | null)[], indent: boolean, logLevel: "verbose" | "info" | "warn" | "error", options?: execa.Options<string> | undefined) => execa.ExecaChildProcess<string>;
319
- dynamicLibraryPathOptions: (indent: boolean, logLevel: "verbose" | "info" | "warn" | "error") => {
312
+ makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif")[]>;
313
+ defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif">;
314
+ getExecutablePath: (type: "compositor" | "ffmpeg" | "ffprobe" | "ffmpeg-cwd", indent: boolean, logLevel: "error" | "verbose" | "info" | "warn") => string;
315
+ callFf: (bin: "ffmpeg" | "ffprobe", args: (string | null)[], indent: boolean, logLevel: "error" | "verbose" | "info" | "warn", options?: execa.Options<string> | undefined) => execa.ExecaChildProcess<string>;
316
+ dynamicLibraryPathOptions: (indent: boolean, logLevel: "error" | "verbose" | "info" | "warn") => {
320
317
  env: {
321
318
  DYLD_LIBRARY_PATH: string;
322
319
  RUST_BACKTRACE: string;
@@ -331,7 +328,7 @@ export declare const RenderInternals: {
331
328
  validStillImageFormats: readonly ["png", "jpeg", "pdf", "webp"];
332
329
  validVideoImageFormats: readonly ["png", "jpeg", "none"];
333
330
  DEFAULT_STILL_IMAGE_FORMAT: "png" | "jpeg" | "pdf" | "webp";
334
- DEFAULT_VIDEO_IMAGE_FORMAT: "none" | "png" | "jpeg";
331
+ DEFAULT_VIDEO_IMAGE_FORMAT: "png" | "jpeg" | "none";
335
332
  DEFAULT_JPEG_QUALITY: number;
336
333
  chalk: {
337
334
  enabled: () => boolean;
@@ -395,8 +392,8 @@ export declare const RenderInternals: {
395
392
  tag?: string | undefined;
396
393
  }, message?: any, ...optionalParams: any[]) => void;
397
394
  };
398
- getLogLevel: () => "verbose" | "info" | "warn" | "error";
399
- setLogLevel: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
395
+ getLogLevel: () => "error" | "verbose" | "info" | "warn";
396
+ setLogLevel: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
400
397
  INDENT_TOKEN: string;
401
398
  isColorSupported: () => boolean;
402
399
  HeadlessBrowser: typeof HeadlessBrowser;
@@ -405,7 +402,7 @@ export declare const RenderInternals: {
405
402
  port: number | null;
406
403
  remotionRoot: string;
407
404
  concurrency: number;
408
- logLevel: "verbose" | "info" | "warn" | "error";
405
+ logLevel: "error" | "verbose" | "info" | "warn";
409
406
  indent: boolean;
410
407
  offthreadVideoCacheSizeInBytes: number | null;
411
408
  }) => Promise<import("./prepare-server").RemotionServer>;
@@ -414,7 +411,7 @@ export declare const RenderInternals: {
414
411
  port: number | null;
415
412
  remotionRoot: string;
416
413
  concurrency: number;
417
- logLevel: "verbose" | "info" | "warn" | "error";
414
+ logLevel: "error" | "verbose" | "info" | "warn";
418
415
  indent: boolean;
419
416
  offthreadVideoCacheSizeInBytes: number | null;
420
417
  }, { onDownload, onError, }: {
@@ -444,7 +441,7 @@ export declare const RenderInternals: {
444
441
  cancelSignal: import("./make-cancel-signal").CancelSignal | null;
445
442
  indent: boolean;
446
443
  server: import("./prepare-server").RemotionServer | undefined;
447
- logLevel: "verbose" | "info" | "warn" | "error";
444
+ logLevel: "error" | "verbose" | "info" | "warn";
448
445
  serveUrl: string;
449
446
  port: number | null;
450
447
  offthreadVideoCacheSizeInBytes: number | null;
@@ -465,7 +462,7 @@ export declare const RenderInternals: {
465
462
  viewport: import("./browser/PuppeteerViewport").Viewport | null;
466
463
  indent: boolean;
467
464
  browser: "chrome";
468
- logLevel: "verbose" | "info" | "warn" | "error";
465
+ logLevel: "error" | "verbose" | "info" | "warn";
469
466
  }) => Promise<HeadlessBrowser>;
470
467
  internalSelectComposition: (options: {
471
468
  serializedInputPropsWithCustomSchema: string;
@@ -478,7 +475,7 @@ export declare const RenderInternals: {
478
475
  port: number | null;
479
476
  indent: boolean;
480
477
  server: import("./prepare-server").RemotionServer | undefined;
481
- logLevel: "verbose" | "info" | "warn" | "error";
478
+ logLevel: "error" | "verbose" | "info" | "warn";
482
479
  serveUrl: string;
483
480
  id: string;
484
481
  } & import("./options/option").ToOptions<readonly [{
@@ -503,7 +500,7 @@ export declare const RenderInternals: {
503
500
  port: number | null;
504
501
  server: import("./prepare-server").RemotionServer | undefined;
505
502
  indent: boolean;
506
- logLevel: "verbose" | "info" | "warn" | "error";
503
+ logLevel: "error" | "verbose" | "info" | "warn";
507
504
  serveUrlOrWebpackUrl: string;
508
505
  } & import("./options/option").ToOptions<readonly [{
509
506
  name: string;
@@ -519,12 +516,12 @@ export declare const RenderInternals: {
519
516
  slowestFrames: import("./render-media").SlowFrame[];
520
517
  }>;
521
518
  validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"];
522
- copyImageToClipboard: (src: string, logLevel: "verbose" | "info" | "warn" | "error") => Promise<void>;
519
+ copyImageToClipboard: (src: string, logLevel: "error" | "verbose" | "info" | "warn") => Promise<void>;
523
520
  isIpV6Supported: (flattened: import("os").NetworkInterfaceInfo[]) => boolean;
524
521
  getChromiumGpuInformation: ({ browserExecutable, indent, logLevel, chromiumOptions, }: {
525
522
  browserExecutable: import("./browser-executable").BrowserExecutable;
526
523
  indent: boolean;
527
- logLevel: "verbose" | "info" | "warn" | "error";
524
+ logLevel: "error" | "verbose" | "info" | "warn";
528
525
  chromiumOptions: import("./open-browser").ChromiumOptions;
529
526
  }) => Promise<{
530
527
  feature: string;
@@ -48,6 +48,7 @@ const serveStatic = async (path, options) => {
48
48
  const maxTries = 5;
49
49
  const portConfig = (0, port_config_1.getPortConfig)();
50
50
  for (let i = 0; i < maxTries; i++) {
51
+ let unlock = () => { };
51
52
  try {
52
53
  selectedPort = await new Promise((resolve, reject) => {
53
54
  var _a;
@@ -57,17 +58,22 @@ const serveStatic = async (path, options) => {
57
58
  to: 3100,
58
59
  hostsToTry: portConfig.hostsToTry,
59
60
  })
60
- .then(({ port, didUsePort }) => {
61
+ .then(({ port, unlockPort }) => {
62
+ unlock = unlockPort;
61
63
  server.listen({ port, host: portConfig.host });
62
64
  server.on('listening', () => {
63
65
  resolve(port);
64
- return didUsePort();
66
+ return unlock();
65
67
  });
66
68
  server.on('error', (err) => {
69
+ unlock();
67
70
  reject(err);
68
71
  });
69
72
  })
70
- .catch((err) => reject(err));
73
+ .catch((err) => {
74
+ unlock();
75
+ return reject(err);
76
+ });
71
77
  });
72
78
  const destroyConnections = function () {
73
79
  for (const key in connections)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/renderer",
3
- "version": "4.0.69",
3
+ "version": "4.0.70",
4
4
  "description": "Renderer for Remotion",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "extract-zip": "2.0.1",
19
19
  "source-map": "^0.8.0-beta.0",
20
20
  "ws": "8.7.0",
21
- "remotion": "4.0.69"
21
+ "remotion": "4.0.70"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "react": ">=16.8.0",
@@ -40,13 +40,13 @@
40
40
  "vitest": "0.31.1"
41
41
  },
42
42
  "optionalDependencies": {
43
- "@remotion/compositor-linux-arm64-musl": "4.0.69",
44
- "@remotion/compositor-darwin-arm64": "4.0.69",
45
- "@remotion/compositor-darwin-x64": "4.0.69",
46
- "@remotion/compositor-linux-x64-gnu": "4.0.69",
47
- "@remotion/compositor-win32-x64-msvc": "4.0.69",
48
- "@remotion/compositor-linux-arm64-gnu": "4.0.69",
49
- "@remotion/compositor-linux-x64-musl": "4.0.69"
43
+ "@remotion/compositor-darwin-arm64": "4.0.70",
44
+ "@remotion/compositor-darwin-x64": "4.0.70",
45
+ "@remotion/compositor-linux-arm64-gnu": "4.0.70",
46
+ "@remotion/compositor-linux-arm64-musl": "4.0.70",
47
+ "@remotion/compositor-linux-x64-musl": "4.0.70",
48
+ "@remotion/compositor-win32-x64-msvc": "4.0.70",
49
+ "@remotion/compositor-linux-x64-gnu": "4.0.70"
50
50
  },
51
51
  "keywords": [
52
52
  "remotion",