@remotion/renderer 4.0.537 → 4.0.539

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.
Files changed (297) hide show
  1. package/dist/aac-priming.d.ts +2 -1
  2. package/dist/assets/apply-tone-frequency.d.ts +2 -1
  3. package/dist/assets/apply-tone-frequency.js +8 -1
  4. package/dist/assets/calculate-asset-positions.js +2 -0
  5. package/dist/assets/convert-assets-to-file-urls.d.ts +2 -1
  6. package/dist/assets/download-and-map-assets-to-file.d.ts +3 -2
  7. package/dist/assets/get-audio-channels.d.ts +3 -2
  8. package/dist/assets/inline-audio-mixing.d.ts +2 -1
  9. package/dist/assets/read-file.js +1 -2
  10. package/dist/assets/types.d.ts +2 -1
  11. package/dist/browser/Browser.d.ts +5 -5
  12. package/dist/browser/Browser.js +74 -65
  13. package/dist/browser/BrowserFetcher.d.ts +7 -5
  14. package/dist/browser/BrowserPage.d.ts +4 -4
  15. package/dist/browser/BrowserPage.js +222 -226
  16. package/dist/browser/BrowserRunner.d.ts +2 -1
  17. package/dist/browser/Connection.js +109 -96
  18. package/dist/browser/ConsoleMessage.d.ts +1 -1
  19. package/dist/browser/ConsoleMessage.js +16 -9
  20. package/dist/browser/DOMWorld.d.ts +1 -1
  21. package/dist/browser/DOMWorld.js +91 -77
  22. package/dist/browser/Errors.js +4 -2
  23. package/dist/browser/EventEmitter.js +1 -2
  24. package/dist/browser/ExecutionContext.js +120 -117
  25. package/dist/browser/FrameManager.js +244 -249
  26. package/dist/browser/HTTPRequest.js +22 -11
  27. package/dist/browser/HTTPResponse.js +16 -3
  28. package/dist/browser/JSHandle.js +30 -17
  29. package/dist/browser/LifecycleWatcher.js +128 -122
  30. package/dist/browser/NetworkEventManager.js +40 -31
  31. package/dist/browser/NetworkManager.js +203 -210
  32. package/dist/browser/NodeWebSocketTransport.js +0 -3
  33. package/dist/browser/Target.d.ts +1 -1
  34. package/dist/browser/Target.js +39 -32
  35. package/dist/browser/TaskQueue.js +18 -5
  36. package/dist/browser/TimeoutSettings.js +25 -12
  37. package/dist/browser/browser-download-progress-bar.d.ts +2 -1
  38. package/dist/browser/get-chrome-download-url.d.ts +3 -2
  39. package/dist/browser/handle-failed-resource.d.ts +2 -1
  40. package/dist/call-ffmpeg.d.ts +7 -6
  41. package/dist/can-concat-seamlessly.d.ts +4 -2
  42. package/dist/can-use-parallel-encoding.d.ts +2 -1
  43. package/dist/check-version-requirements.d.ts +2 -1
  44. package/dist/client.d.ts +302 -280
  45. package/dist/client.js +2 -2
  46. package/dist/codec-supports-media.d.ts +4 -3
  47. package/dist/codec.d.ts +1 -1
  48. package/dist/collect-assets.d.ts +1 -1
  49. package/dist/combine-audio.d.ts +4 -2
  50. package/dist/combine-chunks.d.ts +2 -1
  51. package/dist/combine-video-streams.d.ts +4 -2
  52. package/dist/compositor/compositor.d.ts +4 -3
  53. package/dist/compositor/get-executable-path.d.ts +4 -4
  54. package/dist/compress-audio.d.ts +4 -2
  55. package/dist/create-audio.d.ts +4 -2
  56. package/dist/create-silent-audio.d.ts +2 -1
  57. package/dist/crf.d.ts +6 -4
  58. package/dist/cycle-browser-tabs.d.ts +2 -1
  59. package/dist/ensure-browser.d.ts +1 -52
  60. package/dist/error-handling/handle-javascript-exception.d.ts +1 -1
  61. package/dist/error-handling/handle-javascript-exception.js +0 -5
  62. package/dist/error-handling/symbolicateable-error.d.ts +1 -1
  63. package/dist/error-handling/symbolicateable-error.js +0 -4
  64. package/dist/error-handling.js +1 -1
  65. package/dist/esm/client.mjs +329 -242
  66. package/dist/esm/index.mjs +129 -110
  67. package/dist/extract-audio.d.ts +3 -2
  68. package/dist/ffmpeg-args.d.ts +12 -6
  69. package/dist/finalize-fast-start.d.ts +2 -1
  70. package/dist/get-browser-instance.d.ts +6 -4
  71. package/dist/get-codec-name.d.ts +6 -3
  72. package/dist/get-compositions.d.ts +2 -1
  73. package/dist/get-concurrency.d.ts +1 -1
  74. package/dist/get-concurrency.js +1 -1
  75. package/dist/get-duration-from-frame-range.d.ts +1 -1
  76. package/dist/get-extension-from-codec.d.ts +2 -1
  77. package/dist/get-frame-padded-index.d.ts +2 -1
  78. package/dist/get-local-browser-executable.d.ts +4 -2
  79. package/dist/get-port.d.ts +1 -1
  80. package/dist/get-prores-profile-name.d.ts +3 -1
  81. package/dist/get-silent-parts.d.ts +5 -4
  82. package/dist/get-video-metadata.d.ts +4 -3
  83. package/dist/get-video-threads-flag.d.ts +2 -1
  84. package/dist/goto-page-or-throw.d.ts +1 -1
  85. package/dist/guess-extension-for-media.d.ts +2 -1
  86. package/dist/image-format.d.ts +6 -5
  87. package/dist/index.d.ts +213 -440
  88. package/dist/index.js +18 -18
  89. package/dist/is-audio-codec.d.ts +2 -1
  90. package/dist/log-level.d.ts +2 -2
  91. package/dist/logger.d.ts +6 -6
  92. package/dist/make-page.d.ts +5 -3
  93. package/dist/memory/from-macos-sysctl.d.ts +2 -1
  94. package/dist/memory/from-proc-meminfo.d.ts +2 -1
  95. package/dist/memory/get-available-memory.d.ts +2 -1
  96. package/dist/merge-audio-track.d.ts +1 -1
  97. package/dist/merge-audio-track.js +24 -23
  98. package/dist/merge-inline-audio-tracks.d.ts +2 -1
  99. package/dist/mux-video-and-audio.d.ts +5 -3
  100. package/dist/offthread-video-server.d.ts +2 -1
  101. package/dist/offthread-video-server.js +6 -4
  102. package/dist/open-browser.d.ts +2 -2
  103. package/dist/options/allow-html-in-canvas.js +1 -2
  104. package/dist/options/api-key.d.ts +1 -1
  105. package/dist/options/api-key.js +1 -3
  106. package/dist/options/ask-ai.js +1 -1
  107. package/dist/options/audio-bitrate.js +1 -9
  108. package/dist/options/audio-codec.d.ts +23 -20
  109. package/dist/options/beep-on-finish.js +1 -1
  110. package/dist/options/benchmark-concurrencies.js +1 -2
  111. package/dist/options/binaries-directory.d.ts +1 -1
  112. package/dist/options/binaries-directory.js +1 -9
  113. package/dist/options/browser-executable.d.ts +1 -1
  114. package/dist/options/browser-executable.js +1 -1
  115. package/dist/options/browser.js +1 -2
  116. package/dist/options/bundle-cache.js +1 -2
  117. package/dist/options/canvas-tabs.js +1 -1
  118. package/dist/options/chrome-mode.d.ts +4 -4
  119. package/dist/options/chrome-mode.js +1 -6
  120. package/dist/options/color-space.d.ts +9 -5
  121. package/dist/options/color-space.js +1 -8
  122. package/dist/options/concurrency.d.ts +1 -1
  123. package/dist/options/concurrency.js +1 -5
  124. package/dist/options/config.js +1 -1
  125. package/dist/options/crf.js +1 -1
  126. package/dist/options/cross-site-isolation.js +1 -2
  127. package/dist/options/dark-mode.js +1 -2
  128. package/dist/options/default-coding-agent.d.ts +2 -2
  129. package/dist/options/default-coding-agent.js +1 -2
  130. package/dist/options/default-editor.d.ts +4 -4
  131. package/dist/options/default-editor.js +1 -3
  132. package/dist/options/default-premount-in-seconds.js +1 -1
  133. package/dist/options/delete-after.d.ts +1 -1
  134. package/dist/options/delete-after.js +1 -11
  135. package/dist/options/disable-shared-memory-capture.js +1 -3
  136. package/dist/options/disable-web-security.d.ts +1 -1
  137. package/dist/options/disable-web-security.js +1 -1
  138. package/dist/options/disallow-parallel-encoding.js +1 -1
  139. package/dist/options/enable-cancellation.js +1 -2
  140. package/dist/options/enable-lambda-insights.js +1 -2
  141. package/dist/options/enable-multiprocess-on-linux.js +1 -13
  142. package/dist/options/encoding-buffer-size.d.ts +4 -2
  143. package/dist/options/encoding-buffer-size.js +1 -3
  144. package/dist/options/encoding-max-rate.d.ts +1 -1
  145. package/dist/options/encoding-max-rate.js +1 -3
  146. package/dist/options/enforce-audio.js +1 -15
  147. package/dist/options/env-file.js +1 -3
  148. package/dist/options/every-nth-frame.d.ts +1 -1
  149. package/dist/options/every-nth-frame.js +1 -6
  150. package/dist/options/experimental-client-side-rendering.d.ts +16 -0
  151. package/dist/options/experimental-client-side-rendering.js +30 -0
  152. package/dist/options/experimental-keep-audio-context-alive.js +1 -3
  153. package/dist/options/folder-expiry.d.ts +1 -1
  154. package/dist/options/folder-expiry.js +1 -4
  155. package/dist/options/for-seamless-aac-concatenation.js +1 -3
  156. package/dist/options/force-new-studio.js +1 -1
  157. package/dist/options/frames.d.ts +1 -1
  158. package/dist/options/frames.js +1 -4
  159. package/dist/options/gl.d.ts +6 -6
  160. package/dist/options/gl.js +3 -28
  161. package/dist/options/gop-size.js +1 -3
  162. package/dist/options/hardware-acceleration.d.ts +3 -3
  163. package/dist/options/headless.js +1 -1
  164. package/dist/options/ignore-certificate-errors.d.ts +1 -1
  165. package/dist/options/ignore-certificate-errors.js +1 -1
  166. package/dist/options/image-sequence-pattern.js +1 -5
  167. package/dist/options/image-sequence.js +1 -1
  168. package/dist/options/index.d.ts +91 -72
  169. package/dist/options/index.js +2 -0
  170. package/dist/options/interactivity.js +1 -1
  171. package/dist/options/ipv4.js +1 -1
  172. package/dist/options/is-production.d.ts +1 -1
  173. package/dist/options/is-production.js +1 -4
  174. package/dist/options/jpeg-quality.d.ts +1 -1
  175. package/dist/options/jpeg-quality.js +1 -4
  176. package/dist/options/keyboard-shortcuts.js +1 -1
  177. package/dist/options/latency-hint.d.ts +1 -1
  178. package/dist/options/latency-hint.js +1 -10
  179. package/dist/options/license-key.d.ts +1 -1
  180. package/dist/options/license-key.js +1 -2
  181. package/dist/options/log-level.d.ts +4 -3
  182. package/dist/options/log-level.js +1 -16
  183. package/dist/options/metadata.js +2 -7
  184. package/dist/options/mute.js +1 -1
  185. package/dist/options/no-open.js +1 -1
  186. package/dist/options/number-of-gif-loops.d.ts +1 -1
  187. package/dist/options/number-of-gif-loops.js +1 -13
  188. package/dist/options/number-of-shared-audio-tags.js +1 -1
  189. package/dist/options/offthreadvideo-cache-size.d.ts +1 -1
  190. package/dist/options/offthreadvideo-cache-size.js +1 -11
  191. package/dist/options/offthreadvideo-threads.d.ts +1 -1
  192. package/dist/options/offthreadvideo-threads.js +1 -2
  193. package/dist/options/on-browser-download.d.ts +1 -1
  194. package/dist/options/on-browser-download.js +1 -2
  195. package/dist/options/options-map.d.ts +180 -180
  196. package/dist/options/out-dir.d.ts +1 -1
  197. package/dist/options/out-dir.js +1 -4
  198. package/dist/options/override-duration.js +1 -1
  199. package/dist/options/override-fps.js +1 -1
  200. package/dist/options/override-height.js +1 -1
  201. package/dist/options/override-width.js +1 -1
  202. package/dist/options/overwrite.js +1 -5
  203. package/dist/options/package-manager.d.ts +1 -1
  204. package/dist/options/package-manager.js +1 -12
  205. package/dist/options/pixel-format.d.ts +6 -5
  206. package/dist/options/pixel-format.js +1 -2
  207. package/dist/options/port.js +1 -1
  208. package/dist/options/prefer-lossless.d.ts +1 -1
  209. package/dist/options/prefer-lossless.js +1 -4
  210. package/dist/options/preserve-pitch-on-playback.d.ts +19 -0
  211. package/dist/options/preserve-pitch-on-playback.js +36 -0
  212. package/dist/options/preview-sample-rate.js +1 -3
  213. package/dist/options/props.js +1 -5
  214. package/dist/options/prores-profile.d.ts +2 -2
  215. package/dist/options/prores-profile.js +1 -5
  216. package/dist/options/public-dir.d.ts +1 -1
  217. package/dist/options/public-dir.js +1 -2
  218. package/dist/options/public-license-key.d.ts +1 -1
  219. package/dist/options/public-license-key.js +1 -3
  220. package/dist/options/public-path.d.ts +1 -1
  221. package/dist/options/public-path.js +1 -5
  222. package/dist/options/repro.d.ts +3 -1
  223. package/dist/options/repro.js +1 -1
  224. package/dist/options/rspack.js +1 -1
  225. package/dist/options/runs.js +1 -3
  226. package/dist/options/sample-rate.d.ts +2 -2
  227. package/dist/options/sample-rate.js +1 -2
  228. package/dist/options/scale.js +1 -5
  229. package/dist/options/sequence-activity-limit.js +1 -4
  230. package/dist/options/show-layer-frame-numbers.js +1 -3
  231. package/dist/options/show-premounting.js +1 -2
  232. package/dist/options/skip-skills.js +1 -1
  233. package/dist/options/still-frame.d.ts +1 -1
  234. package/dist/options/still-frame.js +1 -3
  235. package/dist/options/still-image-format.d.ts +3 -2
  236. package/dist/options/still-image-format.js +1 -2
  237. package/dist/options/timeout.d.ts +1 -1
  238. package/dist/options/timeout.js +1 -4
  239. package/dist/options/user-agent.d.ts +1 -1
  240. package/dist/options/user-agent.js +1 -1
  241. package/dist/options/version-flag.js +1 -1
  242. package/dist/options/video-bitrate.js +1 -7
  243. package/dist/options/video-cache-size.d.ts +1 -1
  244. package/dist/options/video-cache-size.js +1 -7
  245. package/dist/options/video-codec.d.ts +9 -7
  246. package/dist/options/video-codec.js +1 -1
  247. package/dist/options/video-image-format.d.ts +6 -5
  248. package/dist/options/video-image-format.js +1 -6
  249. package/dist/options/webhook-custom-data.d.ts +1 -1
  250. package/dist/options/webhook-custom-data.js +1 -1
  251. package/dist/options/webpack-poll.js +1 -1
  252. package/dist/options/x264-preset.d.ts +8 -7
  253. package/dist/options/x264-preset.js +1 -23
  254. package/dist/p-limit.d.ts +1 -1
  255. package/dist/pixel-format.d.ts +4 -3
  256. package/dist/pool.js +0 -2
  257. package/dist/port-config.d.ts +6 -5
  258. package/dist/prespawn-ffmpeg.d.ts +1 -1
  259. package/dist/prestitcher-memory-usage.d.ts +13 -0
  260. package/dist/prestitcher-memory-usage.js +33 -0
  261. package/dist/print-useful-error-message.d.ts +2 -1
  262. package/dist/probe-encoder.d.ts +8 -5
  263. package/dist/probe-shared-memory-capture.d.ts +4 -2
  264. package/dist/prores-profile.d.ts +4 -2
  265. package/dist/puppeteer-evaluate.d.ts +2 -2
  266. package/dist/puppeteer-screenshot.d.ts +4 -3
  267. package/dist/pure.d.ts +12 -15
  268. package/dist/remotion-shared-memory.d.ts +1 -1
  269. package/dist/remotion-shared-memory.js +199 -187
  270. package/dist/render-frame-and-retry-target-close.d.ts +10 -10
  271. package/dist/render-frame-with-option-to-reject.d.ts +7 -5
  272. package/dist/render-frame-with-option-to-reject.js +1 -5
  273. package/dist/render-frame.d.ts +8 -6
  274. package/dist/render-frames.d.ts +1 -40
  275. package/dist/render-has-audio.d.ts +3 -2
  276. package/dist/render-partitions.d.ts +7 -0
  277. package/dist/render-partitions.js +50 -0
  278. package/dist/replace-browser.d.ts +2 -1
  279. package/dist/repro.d.ts +1 -1
  280. package/dist/screenshot-task.d.ts +4 -3
  281. package/dist/seek-to-frame.d.ts +3 -2
  282. package/dist/select-composition.d.ts +1 -20
  283. package/dist/serve-handler/index.d.ts +1 -1
  284. package/dist/serve-handler/range-parser.d.ts +2 -2
  285. package/dist/serve-handler/range-parser.js +1 -1
  286. package/dist/serve-static.d.ts +2 -1
  287. package/dist/serve-static.js +4 -1
  288. package/dist/set-props-and-env.js +2 -6
  289. package/dist/stringify-ffmpeg-filter.d.ts +2 -1
  290. package/dist/stringify-ffmpeg-filter.js +20 -2
  291. package/dist/take-frame.d.ts +1 -1
  292. package/dist/test-gpu.d.ts +4 -2
  293. package/dist/validate-even-dimensions-with-codec.d.ts +4 -2
  294. package/dist/validate-ffmpeg-override.d.ts +1 -1
  295. package/dist/validate-number-of-gif-loops.d.ts +2 -1
  296. package/dist/validate-output-filename.d.ts +4 -2
  297. package/package.json +16 -16
@@ -1,4 +1,16 @@
1
1
  "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _RemotionSharedMemoryCapture_instances, _RemotionSharedMemoryCapture_pools, _RemotionSharedMemoryCapture_nextPoolId, _RemotionSharedMemoryCapture_nextFrameId, _RemotionSharedMemoryCapture_supported, _RemotionSharedMemoryCapture_initialization, _RemotionSharedMemoryCapture_pixelFormat, _RemotionSharedMemoryCapture_options, _RemotionSharedMemoryCapture_forgetPage, _RemotionSharedMemoryCapture_createPool, _RemotionSharedMemoryCapture_returnSlot, _RemotionSharedMemoryCapture_destroyPools;
2
14
  Object.defineProperty(exports, "__esModule", { value: true });
3
15
  exports.isRemotionRawFrame = exports.RemotionSharedMemoryCapture = exports.getPreferredRemotionSharedMemoryBackend = void 0;
4
16
  const flaky_errors_1 = require("./browser/flaky-errors");
@@ -29,77 +41,79 @@ const isExpectedCapabilityError = (error) => {
29
41
  message.includes('Invalid Remotion frame pool dimensions'));
30
42
  };
31
43
  class RemotionSharedMemoryCapture {
32
- #pools = new Map();
33
- #nextPoolId = 1;
34
- #nextFrameId = 1;
35
- #supported = null;
36
- #initialization = null;
37
- #pixelFormat = null;
38
- #options;
39
44
  constructor(options) {
40
- this.#options = options;
45
+ _RemotionSharedMemoryCapture_instances.add(this);
46
+ _RemotionSharedMemoryCapture_pools.set(this, new Map());
47
+ _RemotionSharedMemoryCapture_nextPoolId.set(this, 1);
48
+ _RemotionSharedMemoryCapture_nextFrameId.set(this, 1);
49
+ _RemotionSharedMemoryCapture_supported.set(this, null);
50
+ _RemotionSharedMemoryCapture_initialization.set(this, null);
51
+ _RemotionSharedMemoryCapture_pixelFormat.set(this, null);
52
+ _RemotionSharedMemoryCapture_options.set(this, void 0);
53
+ __classPrivateFieldSet(this, _RemotionSharedMemoryCapture_options, options, "f");
41
54
  }
42
55
  isSupported() {
43
- return this.#supported === true;
56
+ return __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_supported, "f") === true;
44
57
  }
45
58
  getImageFormat(imageFormat) {
46
- if (!this.isSupported() || this.#pixelFormat === null) {
47
- if (this.#pixelFormat !== null && imageFormat === 'jpeg') {
48
- (0, image_format_1.validateSelectedPixelFormatAndImageFormatCombination)(this.#pixelFormat, imageFormat);
59
+ if (!this.isSupported() || __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pixelFormat, "f") === null) {
60
+ if (__classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pixelFormat, "f") !== null && imageFormat === 'jpeg') {
61
+ (0, image_format_1.validateSelectedPixelFormatAndImageFormatCombination)(__classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pixelFormat, "f"), imageFormat);
49
62
  }
50
63
  return imageFormat;
51
64
  }
52
- return this.#pixelFormat === 'yuva420p' ||
53
- this.#pixelFormat === 'yuva444p10le'
65
+ return __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pixelFormat, "f") === 'yuva420p' ||
66
+ __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pixelFormat, "f") === 'yuva444p10le'
54
67
  ? 'png'
55
68
  : 'jpeg';
56
69
  }
57
70
  setPixelFormat(pixelFormat) {
58
- this.#pixelFormat = pixelFormat;
71
+ __classPrivateFieldSet(this, _RemotionSharedMemoryCapture_pixelFormat, pixelFormat, "f");
59
72
  }
60
73
  async initializePages(pages) {
61
- if (this.#initialization) {
62
- await this.#initialization;
63
- if (this.#supported) {
74
+ if (__classPrivateFieldGet(this, _RemotionSharedMemoryCapture_initialization, "f")) {
75
+ await __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_initialization, "f");
76
+ if (__classPrivateFieldGet(this, _RemotionSharedMemoryCapture_supported, "f")) {
64
77
  for (const page of pages) {
65
78
  await this.ensurePage(page);
66
79
  }
67
80
  }
68
81
  return;
69
82
  }
70
- this.#initialization = (async () => {
83
+ __classPrivateFieldSet(this, _RemotionSharedMemoryCapture_initialization, (async () => {
71
84
  try {
72
85
  for (const page of pages) {
73
- await this.#createPool(page);
86
+ await __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_instances, "m", _RemotionSharedMemoryCapture_createPool).call(this, page);
74
87
  }
75
- this.#supported = true;
88
+ __classPrivateFieldSet(this, _RemotionSharedMemoryCapture_supported, true, "f");
76
89
  }
77
90
  catch (error) {
78
- await this.#destroyPools();
91
+ await __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_instances, "m", _RemotionSharedMemoryCapture_destroyPools).call(this);
79
92
  if (!isExpectedCapabilityError(error)) {
80
93
  throw error;
81
94
  }
82
- this.#supported = false;
83
- logger_1.Log.verbose({ indent: this.#options.indent, logLevel: this.#options.logLevel }, `Remotion shared-memory capture is unavailable. Falling back to encoded screenshots. Reason: ${error instanceof Error ? error.message : String(error)}`);
95
+ __classPrivateFieldSet(this, _RemotionSharedMemoryCapture_supported, false, "f");
96
+ logger_1.Log.verbose({ indent: __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_options, "f").indent, logLevel: __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_options, "f").logLevel }, `Remotion shared-memory capture is unavailable. Falling back to encoded screenshots. Reason: ${error instanceof Error ? error.message : String(error)}`);
84
97
  }
85
- })();
86
- await this.#initialization;
98
+ })(), "f");
99
+ await __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_initialization, "f");
87
100
  }
88
101
  async ensurePage(page) {
89
- if (this.#pools.has(page) || this.#supported === false) {
102
+ if (__classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pools, "f").has(page) || __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_supported, "f") === false) {
90
103
  return;
91
104
  }
92
- if (this.#supported === null) {
105
+ if (__classPrivateFieldGet(this, _RemotionSharedMemoryCapture_supported, "f") === null) {
93
106
  await this.initializePages([page]);
94
107
  return;
95
108
  }
96
- await this.#createPool(page);
109
+ await __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_instances, "m", _RemotionSharedMemoryCapture_createPool).call(this, page);
97
110
  }
98
111
  async acquire(page) {
99
- if (!this.#supported) {
112
+ var _a, _b;
113
+ if (!__classPrivateFieldGet(this, _RemotionSharedMemoryCapture_supported, "f")) {
100
114
  return null;
101
115
  }
102
- const pool = this.#pools.get(page);
116
+ const pool = __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pools, "f").get(page);
103
117
  if (!pool) {
104
118
  throw new Error('No Remotion shared-memory pool exists for this page.');
105
119
  }
@@ -113,10 +127,10 @@ class RemotionSharedMemoryCapture {
113
127
  if (slot === undefined) {
114
128
  throw new Error('Expected an available Remotion shared-memory slot.');
115
129
  }
116
- if (!Number.isSafeInteger(this.#nextFrameId)) {
130
+ if (!Number.isSafeInteger(__classPrivateFieldGet(this, _RemotionSharedMemoryCapture_nextFrameId, "f"))) {
117
131
  throw new Error('Remotion shared-memory frame ID exceeded the safe range.');
118
132
  }
119
- const frameId = String(this.#nextFrameId++);
133
+ const frameId = String((__classPrivateFieldSet(this, _RemotionSharedMemoryCapture_nextFrameId, (_b = __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_nextFrameId, "f"), _a = _b++, _b), "f"), _a));
120
134
  pool.ownedSlots.set(slot, frameId);
121
135
  let published = false;
122
136
  let releasePromise = null;
@@ -134,7 +148,7 @@ class RemotionSharedMemoryCapture {
134
148
  }
135
149
  }
136
150
  finally {
137
- this.#returnSlot(pool, slot, frameId);
151
+ __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_instances, "m", _RemotionSharedMemoryCapture_returnSlot).call(this, pool, slot, frameId);
138
152
  }
139
153
  })());
140
154
  return releasePromise;
@@ -144,7 +158,7 @@ class RemotionSharedMemoryCapture {
144
158
  frameId,
145
159
  fail: () => {
146
160
  if (!published) {
147
- this.#returnSlot(pool, slot, frameId);
161
+ __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_instances, "m", _RemotionSharedMemoryCapture_returnSlot).call(this, pool, slot, frameId);
148
162
  }
149
163
  },
150
164
  discardPublished: async () => {
@@ -155,8 +169,8 @@ class RemotionSharedMemoryCapture {
155
169
  published = true;
156
170
  if (metadata.slot !== slot ||
157
171
  metadata.frameId !== frameId ||
158
- metadata.width !== this.#options.width ||
159
- metadata.height !== this.#options.height ||
172
+ metadata.width !== __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_options, "f").width ||
173
+ metadata.height !== __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_options, "f").height ||
160
174
  metadata.stride < metadata.width * 4 ||
161
175
  metadata.byteLength > pool.slotCapacity - encoderPadding ||
162
176
  metadata.pixelFormat !== 'bgra' ||
@@ -179,181 +193,179 @@ class RemotionSharedMemoryCapture {
179
193
  };
180
194
  }
181
195
  async destroy() {
182
- await this.#destroyPools();
196
+ await __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_instances, "m", _RemotionSharedMemoryCapture_destroyPools).call(this);
183
197
  }
184
198
  async forgetPage(page) {
185
- await this.#forgetPage(page, false);
199
+ await __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_instances, "m", _RemotionSharedMemoryCapture_forgetPage).call(this, page, false);
186
200
  }
187
201
  async forgetAllPages() {
188
- await Promise.all([...this.#pools.keys()].map((page) => this.#forgetPage(page, false)));
202
+ await Promise.all([...__classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pools, "f").keys()].map((page) => __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_instances, "m", _RemotionSharedMemoryCapture_forgetPage).call(this, page, false)));
189
203
  }
190
204
  async dispose() {
191
- await Promise.all([...this.#pools.keys()].map((page) => this.#forgetPage(page, true)));
192
- this.#supported = false;
205
+ await Promise.all([...__classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pools, "f").keys()].map((page) => __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_instances, "m", _RemotionSharedMemoryCapture_forgetPage).call(this, page, true)));
206
+ __classPrivateFieldSet(this, _RemotionSharedMemoryCapture_supported, false, "f");
193
207
  }
194
- async #forgetPage(page, bestEffort) {
195
- const pool = this.#pools.get(page);
196
- if (!pool) {
197
- return;
198
- }
199
- this.#pools.delete(page);
200
- pool.forgotten = true;
201
- pool.waiters.splice(0).forEach((waiter) => waiter());
202
- let cleanupError = null;
203
- try {
204
- await pool.poolLifetime.retire();
208
+ }
209
+ exports.RemotionSharedMemoryCapture = RemotionSharedMemoryCapture;
210
+ _RemotionSharedMemoryCapture_pools = new WeakMap(), _RemotionSharedMemoryCapture_nextPoolId = new WeakMap(), _RemotionSharedMemoryCapture_nextFrameId = new WeakMap(), _RemotionSharedMemoryCapture_supported = new WeakMap(), _RemotionSharedMemoryCapture_initialization = new WeakMap(), _RemotionSharedMemoryCapture_pixelFormat = new WeakMap(), _RemotionSharedMemoryCapture_options = new WeakMap(), _RemotionSharedMemoryCapture_instances = new WeakSet(), _RemotionSharedMemoryCapture_forgetPage = async function _RemotionSharedMemoryCapture_forgetPage(page, bestEffort) {
211
+ const pool = __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pools, "f").get(page);
212
+ if (!pool) {
213
+ return;
214
+ }
215
+ __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pools, "f").delete(page);
216
+ pool.forgotten = true;
217
+ pool.waiters.splice(0).forEach((waiter) => waiter());
218
+ let cleanupError = null;
219
+ try {
220
+ await pool.poolLifetime.retire();
221
+ }
222
+ catch (error) {
223
+ cleanupError = error;
224
+ }
225
+ if (pool.ownedSlots.size > 0) {
226
+ await new Promise((resolve) => pool.drainWaiters.push(resolve));
227
+ }
228
+ try {
229
+ await (0, screenshot_background_1.setScreenshotBackground)(page, false);
230
+ }
231
+ catch (error) {
232
+ if (!bestEffort && !(0, flaky_errors_1.isTargetClosedErr)(error) && !cleanupError) {
233
+ cleanupError = error;
205
234
  }
206
- catch (error) {
235
+ }
236
+ try {
237
+ await page._client().send('Page.remotionDestroyFramePool');
238
+ }
239
+ catch (error) {
240
+ if (!bestEffort && !(0, flaky_errors_1.isTargetClosedErr)(error) && !cleanupError) {
207
241
  cleanupError = error;
208
242
  }
243
+ }
244
+ if (cleanupError && !bestEffort) {
245
+ throw cleanupError;
246
+ }
247
+ }, _RemotionSharedMemoryCapture_createPool = async function _RemotionSharedMemoryCapture_createPool(page) {
248
+ var _a;
249
+ var _b, _c;
250
+ if (__classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pools, "f").has(page)) {
251
+ return;
252
+ }
253
+ const slotCapacity = __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_options, "f").width * __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_options, "f").height * 4 + encoderPadding;
254
+ if (!Number.isSafeInteger(slotCapacity)) {
255
+ throw new Error('Remotion shared-memory frame pool size is not a safe integer.');
256
+ }
257
+ const preferredBackend = (0, exports.getPreferredRemotionSharedMemoryBackend)();
258
+ const { backingDirectory } = __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_options, "f");
259
+ if (preferredBackend === 'file' && backingDirectory === null) {
260
+ throw new Error('REMOTION_SHARED_MEMORY_BACKEND=file requires an FFmpeg binary that supports file-backed pools (-pool_dir).');
261
+ }
262
+ const { value } = await page._client().send('Page.remotionCreateFramePool', {
263
+ slotCount: slotsPerPage,
264
+ slotCapacity,
265
+ ...(backingDirectory === null ? {} : { backingDirectory }),
266
+ ...(preferredBackend === 'auto' ? {} : { preferredBackend }),
267
+ });
268
+ // Chromium builds before v3 of the patch only know POSIX shared memory and
269
+ // omit the backend field.
270
+ const backend = (_a = value.backend) !== null && _a !== void 0 ? _a : 'posix-shm';
271
+ if (!value.sharedMemoryName ||
272
+ value.slotCount !== slotsPerPage ||
273
+ value.slotCapacity !== slotCapacity ||
274
+ (backend !== 'posix-shm' && backend !== 'file') ||
275
+ (backend === 'posix-shm' &&
276
+ !/^\/rmshm-[A-Za-z0-9._-]+$/.test(value.sharedMemoryName)) ||
277
+ (backend === 'file' &&
278
+ (backingDirectory === null ||
279
+ !value.sharedMemoryName.startsWith(`${backingDirectory}/rmshm-`)))) {
280
+ throw new Error(`Chromium returned invalid Remotion frame pool metadata: ${JSON.stringify(value)}`);
281
+ }
282
+ if (__classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pools, "f").size === 0) {
283
+ logger_1.Log.verbose({ indent: __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_options, "f").indent, logLevel: __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_options, "f").logLevel }, `Remotion shared-memory capture uses the ${backend === 'file' ? `file backend in ${backingDirectory}` : 'POSIX shared-memory backend'}.`);
284
+ }
285
+ let retired = false;
286
+ let retirement = null;
287
+ let notifyRetirement;
288
+ const retirementSignal = new Promise((resolve) => {
289
+ notifyRetirement = resolve;
290
+ });
291
+ const retirementListeners = new Set();
292
+ const poolLifetime = {
293
+ isRetired: () => retired,
294
+ waitForRetirement: () => retirementSignal,
295
+ onRetired: (listener) => {
296
+ if (retired) {
297
+ return null;
298
+ }
299
+ retirementListeners.add(listener);
300
+ return () => retirementListeners.delete(listener);
301
+ },
302
+ retire: () => {
303
+ if (!retirement) {
304
+ retired = true;
305
+ notifyRetirement();
306
+ retirement = (async () => {
307
+ await Promise.all([...retirementListeners].map((listener) => listener()));
308
+ })();
309
+ }
310
+ return retirement;
311
+ },
312
+ };
313
+ __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pools, "f").set(page, {
314
+ page,
315
+ poolId: (__classPrivateFieldSet(this, _RemotionSharedMemoryCapture_nextPoolId, (_c = __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_nextPoolId, "f"), _b = _c++, _c), "f"), _b),
316
+ sharedMemoryName: value.sharedMemoryName,
317
+ backend,
318
+ slotCount: value.slotCount,
319
+ slotCapacity: value.slotCapacity,
320
+ availableSlots: Array.from({ length: value.slotCount }, (_, index) => index),
321
+ waiters: [],
322
+ drainWaiters: [],
323
+ ownedSlots: new Map(),
324
+ forgotten: false,
325
+ poolLifetime,
326
+ });
327
+ }, _RemotionSharedMemoryCapture_returnSlot = function _RemotionSharedMemoryCapture_returnSlot(pool, slot, frameId) {
328
+ var _a;
329
+ if (pool.ownedSlots.get(slot) !== frameId) {
330
+ throw new Error(`Remotion shared-memory slot ${pool.poolId}:${slot} is not owned by frame ${frameId}.`);
331
+ }
332
+ pool.ownedSlots.delete(slot);
333
+ if (pool.forgotten) {
334
+ if (pool.ownedSlots.size === 0) {
335
+ pool.drainWaiters.splice(0).forEach((waiter) => waiter());
336
+ }
337
+ }
338
+ else {
339
+ pool.availableSlots.push(slot);
340
+ (_a = pool.waiters.shift()) === null || _a === void 0 ? void 0 : _a();
341
+ }
342
+ }, _RemotionSharedMemoryCapture_destroyPools = async function _RemotionSharedMemoryCapture_destroyPools() {
343
+ let cleanupError = null;
344
+ for (const pool of __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pools, "f").values()) {
209
345
  if (pool.ownedSlots.size > 0) {
210
- await new Promise((resolve) => pool.drainWaiters.push(resolve));
346
+ throw new Error(`Cannot destroy Remotion shared-memory pool ${pool.poolId} while it owns ${pool.ownedSlots.size} frame(s).`);
211
347
  }
212
348
  try {
213
- await (0, screenshot_background_1.setScreenshotBackground)(page, false);
349
+ await (0, screenshot_background_1.setScreenshotBackground)(pool.page, false);
214
350
  }
215
351
  catch (error) {
216
- if (!bestEffort && !(0, flaky_errors_1.isTargetClosedErr)(error) && !cleanupError) {
352
+ if (!(0, flaky_errors_1.isTargetClosedErr)(error) && !cleanupError) {
217
353
  cleanupError = error;
218
354
  }
219
355
  }
220
356
  try {
221
- await page._client().send('Page.remotionDestroyFramePool');
357
+ await pool.page._client().send('Page.remotionDestroyFramePool');
222
358
  }
223
359
  catch (error) {
224
- if (!bestEffort && !(0, flaky_errors_1.isTargetClosedErr)(error) && !cleanupError) {
360
+ if (!(0, flaky_errors_1.isTargetClosedErr)(error) && !cleanupError) {
225
361
  cleanupError = error;
226
362
  }
227
363
  }
228
- if (cleanupError && !bestEffort) {
229
- throw cleanupError;
230
- }
231
- }
232
- async #createPool(page) {
233
- var _a;
234
- if (this.#pools.has(page)) {
235
- return;
236
- }
237
- const slotCapacity = this.#options.width * this.#options.height * 4 + encoderPadding;
238
- if (!Number.isSafeInteger(slotCapacity)) {
239
- throw new Error('Remotion shared-memory frame pool size is not a safe integer.');
240
- }
241
- const preferredBackend = (0, exports.getPreferredRemotionSharedMemoryBackend)();
242
- const { backingDirectory } = this.#options;
243
- if (preferredBackend === 'file' && backingDirectory === null) {
244
- throw new Error('REMOTION_SHARED_MEMORY_BACKEND=file requires an FFmpeg binary that supports file-backed pools (-pool_dir).');
245
- }
246
- const { value } = await page._client().send('Page.remotionCreateFramePool', {
247
- slotCount: slotsPerPage,
248
- slotCapacity,
249
- ...(backingDirectory === null ? {} : { backingDirectory }),
250
- ...(preferredBackend === 'auto' ? {} : { preferredBackend }),
251
- });
252
- // Chromium builds before v3 of the patch only know POSIX shared memory and
253
- // omit the backend field.
254
- const backend = (_a = value.backend) !== null && _a !== void 0 ? _a : 'posix-shm';
255
- if (!value.sharedMemoryName ||
256
- value.slotCount !== slotsPerPage ||
257
- value.slotCapacity !== slotCapacity ||
258
- (backend !== 'posix-shm' && backend !== 'file') ||
259
- (backend === 'posix-shm' &&
260
- !/^\/rmshm-[A-Za-z0-9._-]+$/.test(value.sharedMemoryName)) ||
261
- (backend === 'file' &&
262
- (backingDirectory === null ||
263
- !value.sharedMemoryName.startsWith(`${backingDirectory}/rmshm-`)))) {
264
- throw new Error(`Chromium returned invalid Remotion frame pool metadata: ${JSON.stringify(value)}`);
265
- }
266
- if (this.#pools.size === 0) {
267
- logger_1.Log.verbose({ indent: this.#options.indent, logLevel: this.#options.logLevel }, `Remotion shared-memory capture uses the ${backend === 'file' ? `file backend in ${backingDirectory}` : 'POSIX shared-memory backend'}.`);
268
- }
269
- let retired = false;
270
- let retirement = null;
271
- let notifyRetirement;
272
- const retirementSignal = new Promise((resolve) => {
273
- notifyRetirement = resolve;
274
- });
275
- const retirementListeners = new Set();
276
- const poolLifetime = {
277
- isRetired: () => retired,
278
- waitForRetirement: () => retirementSignal,
279
- onRetired: (listener) => {
280
- if (retired) {
281
- return null;
282
- }
283
- retirementListeners.add(listener);
284
- return () => retirementListeners.delete(listener);
285
- },
286
- retire: () => {
287
- if (!retirement) {
288
- retired = true;
289
- notifyRetirement();
290
- retirement = (async () => {
291
- await Promise.all([...retirementListeners].map((listener) => listener()));
292
- })();
293
- }
294
- return retirement;
295
- },
296
- };
297
- this.#pools.set(page, {
298
- page,
299
- poolId: this.#nextPoolId++,
300
- sharedMemoryName: value.sharedMemoryName,
301
- backend,
302
- slotCount: value.slotCount,
303
- slotCapacity: value.slotCapacity,
304
- availableSlots: Array.from({ length: value.slotCount }, (_, index) => index),
305
- waiters: [],
306
- drainWaiters: [],
307
- ownedSlots: new Map(),
308
- forgotten: false,
309
- poolLifetime,
310
- });
311
- }
312
- #returnSlot(pool, slot, frameId) {
313
- var _a;
314
- if (pool.ownedSlots.get(slot) !== frameId) {
315
- throw new Error(`Remotion shared-memory slot ${pool.poolId}:${slot} is not owned by frame ${frameId}.`);
316
- }
317
- pool.ownedSlots.delete(slot);
318
- if (pool.forgotten) {
319
- if (pool.ownedSlots.size === 0) {
320
- pool.drainWaiters.splice(0).forEach((waiter) => waiter());
321
- }
322
- }
323
- else {
324
- pool.availableSlots.push(slot);
325
- (_a = pool.waiters.shift()) === null || _a === void 0 ? void 0 : _a();
326
- }
327
364
  }
328
- async #destroyPools() {
329
- let cleanupError = null;
330
- for (const pool of this.#pools.values()) {
331
- if (pool.ownedSlots.size > 0) {
332
- throw new Error(`Cannot destroy Remotion shared-memory pool ${pool.poolId} while it owns ${pool.ownedSlots.size} frame(s).`);
333
- }
334
- try {
335
- await (0, screenshot_background_1.setScreenshotBackground)(pool.page, false);
336
- }
337
- catch (error) {
338
- if (!(0, flaky_errors_1.isTargetClosedErr)(error) && !cleanupError) {
339
- cleanupError = error;
340
- }
341
- }
342
- try {
343
- await pool.page._client().send('Page.remotionDestroyFramePool');
344
- }
345
- catch (error) {
346
- if (!(0, flaky_errors_1.isTargetClosedErr)(error) && !cleanupError) {
347
- cleanupError = error;
348
- }
349
- }
350
- }
351
- this.#pools.clear();
352
- if (cleanupError) {
353
- throw cleanupError;
354
- }
365
+ __classPrivateFieldGet(this, _RemotionSharedMemoryCapture_pools, "f").clear();
366
+ if (cleanupError) {
367
+ throw cleanupError;
355
368
  }
356
- }
357
- exports.RemotionSharedMemoryCapture = RemotionSharedMemoryCapture;
369
+ };
358
370
  const isRemotionRawFrame = (frame) => !Buffer.isBuffer(frame);
359
371
  exports.isRemotionRawFrame = isRemotionRawFrame;
@@ -4,7 +4,10 @@ import type { DownloadMap } from './assets/download-map';
4
4
  import type { HeadlessBrowser } from './browser/Browser';
5
5
  import type { Page } from './browser/BrowserPage';
6
6
  import type { CountType } from './get-frame-padded-index';
7
+ import type { VideoImageFormat } from './image-format';
8
+ import type { LogLevel } from './log-level';
7
9
  import type { CancelSignal } from './make-cancel-signal';
10
+ import type { NextFrameToRender } from './next-frame-to-render';
8
11
  import type { Pool } from './pool';
9
12
  import type { CapturedFrame, RemotionSharedMemoryCapture } from './remotion-shared-memory';
10
13
  import type { AssetIndex, FrameAndAssets, OnArtifact } from './render-frames';
@@ -12,7 +15,7 @@ import type { BrowserReplacer } from './replace-browser';
12
15
  export declare const renderFrameAndRetryTargetClose: ({ retriesLeft, attempt, assets, assetIndex, imageFormat, binariesDirectory, cancelSignal, composition, countType, downloadMap, frameDir, framesToRender, jpegQuality, onArtifact, onDownload, onError, outputDir, poolPromise, scale, stoppedSignal, timeoutInMilliseconds, indent, logLevel, makeBrowser, makeNewPage, browserReplacer, concurrencyOrFramesToRender, framesRenderedObj, lastFrame, onFrameBuffer, onFrame, remotionSharedMemory, onFrameUpdate, nextFrameToRender, imageSequencePattern, trimLeftOffset, trimRightOffset, allFramesAndExtraFrames, }: {
13
16
  retriesLeft: number;
14
17
  attempt: number;
15
- imageFormat: "jpeg" | "none" | "png";
18
+ imageFormat: VideoImageFormat;
16
19
  cancelSignal: CancelSignal | undefined;
17
20
  binariesDirectory: string | null;
18
21
  poolPromise: Promise<Pool>;
@@ -26,7 +29,7 @@ export declare const renderFrameAndRetryTargetClose: ({ retriesLeft, attempt, as
26
29
  onArtifact: OnArtifact | null;
27
30
  onDownload: RenderMediaOnDownload | null;
28
31
  downloadMap: DownloadMap;
29
- composition: Omit<VideoConfig, "defaultProps" | "props">;
32
+ composition: Omit<VideoConfig, 'defaultProps' | 'props'>;
30
33
  onError: (err: Error) => void;
31
34
  stoppedSignal: {
32
35
  stopped: boolean;
@@ -34,7 +37,7 @@ export declare const renderFrameAndRetryTargetClose: ({ retriesLeft, attempt, as
34
37
  timeoutInMilliseconds: number;
35
38
  outputDir: string | null;
36
39
  indent: boolean;
37
- logLevel: "error" | "info" | "trace" | "verbose" | "warn";
40
+ logLevel: LogLevel;
38
41
  makeBrowser: () => Promise<HeadlessBrowser>;
39
42
  makeNewPage: (frame: number, pageIndex: number) => Promise<Page>;
40
43
  browserReplacer: BrowserReplacer;
@@ -43,14 +46,11 @@ export declare const renderFrameAndRetryTargetClose: ({ retriesLeft, attempt, as
43
46
  framesRenderedObj: {
44
47
  count: number;
45
48
  };
46
- onFrameBuffer: ((buffer: Buffer, frame: number) => void | Promise<void>) | null | undefined;
47
- onFrame: ((frame: CapturedFrame, frameNumber: number) => void | Promise<void>) | null;
49
+ onFrameBuffer: null | ((buffer: Buffer, frame: number) => void | Promise<void>) | undefined;
50
+ onFrame: null | ((frame: CapturedFrame, frameNumber: number) => void | Promise<void>);
48
51
  remotionSharedMemory: RemotionSharedMemoryCapture | null;
49
- onFrameUpdate: ((framesRendered: number, frameIndex: number, timeToRenderInMilliseconds: number) => void) | null;
50
- nextFrameToRender: {
51
- getNextFrame: () => number;
52
- returnFrame: (frame: number) => void;
53
- };
52
+ onFrameUpdate: null | ((framesRendered: number, frameIndex: number, timeToRenderInMilliseconds: number) => void);
53
+ nextFrameToRender: NextFrameToRender;
54
54
  imageSequencePattern: string | null;
55
55
  trimLeftOffset: number;
56
56
  trimRightOffset: number;
@@ -2,6 +2,8 @@ import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-
2
2
  import type { DownloadMap } from './assets/download-map';
3
3
  import type { Page } from './browser/BrowserPage';
4
4
  import type { CountType } from './get-frame-padded-index';
5
+ import type { VideoImageFormat } from './image-format';
6
+ import type { LogLevel } from './log-level';
5
7
  import type { CancelSignal } from './make-cancel-signal';
6
8
  import type { CapturedFrame, RemotionSharedMemoryCapture } from './remotion-shared-memory';
7
9
  import type { AssetIndex, FrameAndAssets, OnArtifact } from './render-frames';
@@ -16,12 +18,12 @@ export declare const renderFrameWithOptionToReject: ({ reject, width, height, co
16
18
  };
17
19
  timeoutInMilliseconds: number;
18
20
  indent: boolean;
19
- logLevel: "error" | "info" | "trace" | "verbose" | "warn";
21
+ logLevel: LogLevel;
20
22
  outputDir: string | null;
21
- onFrameBuffer: ((buffer: Buffer, frame: number) => void | Promise<void>) | null | undefined;
22
- onFrame: ((frame: CapturedFrame, frameNumber: number) => void | Promise<void>) | null;
23
+ onFrameBuffer: null | ((buffer: Buffer, frame: number) => void | Promise<void>) | undefined;
24
+ onFrame: null | ((frame: CapturedFrame, frameNumber: number) => void | Promise<void>);
23
25
  remotionSharedMemory: RemotionSharedMemoryCapture | null;
24
- imageFormat: "jpeg" | "none" | "png";
26
+ imageFormat: VideoImageFormat;
25
27
  onError: (err: Error) => void;
26
28
  lastFrame: number;
27
29
  jpegQuality: number;
@@ -39,7 +41,7 @@ export declare const renderFrameWithOptionToReject: ({ reject, width, height, co
39
41
  framesRenderedObj: {
40
42
  count: number;
41
43
  };
42
- onFrameUpdate: ((framesRendered: number, frameIndex: number, timeToRenderInMilliseconds: number) => void) | null;
44
+ onFrameUpdate: null | ((framesRendered: number, frameIndex: number, timeToRenderInMilliseconds: number) => void);
43
45
  frame: number;
44
46
  page: Page;
45
47
  imageSequencePattern: string | null;
@@ -182,6 +182,7 @@ const renderFrameWithOptionToReject = async ({ reject, width, height, compId, at
182
182
  if (previousFrame !== undefined) {
183
183
  return Promise.reject(new Error(`An artifact with output "${artifact.filename}" was already registered at frame ${previousFrame}, but now registered again at frame ${artifact.frame}. Artifacts must have unique names. https://remotion.dev/docs/artifacts`));
184
184
  }
185
+ assetIndex.firstArtifactFrameByFilename.set(artifact.filename, artifact.frame);
185
186
  onArtifact === null || onArtifact === void 0 ? void 0 : onArtifact(artifact);
186
187
  }
187
188
  const compressedAssets = audioAndVideoAssets.map((asset) => {
@@ -206,11 +207,6 @@ const renderFrameWithOptionToReject = async ({ reject, width, height, compId, at
206
207
  assetIndex.firstAssetBySrc.set(asset.src, asset);
207
208
  }
208
209
  }
209
- for (const artifact of artifactAssets) {
210
- if (!assetIndex.firstArtifactFrameByFilename.has(artifact.filename)) {
211
- assetIndex.firstArtifactFrameByFilename.set(artifact.filename, artifact.frame);
212
- }
213
- }
214
210
  for (const renderAsset of compressedAssets) {
215
211
  (0, download_and_map_assets_to_file_1.downloadAndMapAssetsToFileUrl)({
216
212
  renderAsset,
@@ -3,14 +3,16 @@ import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-
3
3
  import type { DownloadMap } from './assets/download-map';
4
4
  import type { Page } from './browser/BrowserPage';
5
5
  import type { CountType } from './get-frame-padded-index';
6
+ import type { VideoImageFormat } from './image-format';
7
+ import type { LogLevel } from './log-level';
6
8
  import type { CancelSignal } from './make-cancel-signal';
7
9
  import type { CapturedFrame, RemotionSharedMemoryCapture } from './remotion-shared-memory';
8
10
  import type { AssetIndex, FrameAndAssets, OnArtifact } from './render-frames';
9
11
  export declare const renderFrame: ({ attempt, binariesDirectory, cancelSignal, imageFormat, indent, logLevel, assets, assetIndex, countType, downloadMap, frameDir, framesToRender, jpegQuality, onArtifact, onDownload, scale, composition, onError, outputDir, stoppedSignal, timeoutInMilliseconds, lastFrame, onFrameBuffer, onFrame, remotionSharedMemory, onFrameUpdate, framesRenderedObj, frame, page, imageSequencePattern, trimLeftOffset, trimRightOffset, allFramesAndExtraFrames, }: {
10
12
  attempt: number;
11
13
  indent: boolean;
12
- logLevel: "error" | "info" | "trace" | "verbose" | "warn";
13
- imageFormat: "jpeg" | "none" | "png";
14
+ logLevel: LogLevel;
15
+ imageFormat: VideoImageFormat;
14
16
  cancelSignal: CancelSignal | undefined;
15
17
  binariesDirectory: string | null;
16
18
  jpegQuality: number;
@@ -23,18 +25,18 @@ export declare const renderFrame: ({ attempt, binariesDirectory, cancelSignal, i
23
25
  onArtifact: OnArtifact | null;
24
26
  onDownload: RenderMediaOnDownload | null;
25
27
  downloadMap: DownloadMap;
26
- composition: Omit<VideoConfig, "defaultProps" | "props">;
28
+ composition: Omit<VideoConfig, 'defaultProps' | 'props'>;
27
29
  onError: (err: Error) => void;
28
30
  stoppedSignal: {
29
31
  stopped: boolean;
30
32
  };
31
33
  timeoutInMilliseconds: number;
32
34
  outputDir: string | null;
33
- onFrameBuffer: ((buffer: Buffer, frame: number) => void | Promise<void>) | null | undefined;
34
- onFrame: ((frame: CapturedFrame, frameNumber: number) => void | Promise<void>) | null;
35
+ onFrameBuffer: null | ((buffer: Buffer, frame: number) => void | Promise<void>) | undefined;
36
+ onFrame: null | ((frame: CapturedFrame, frameNumber: number) => void | Promise<void>);
35
37
  remotionSharedMemory: RemotionSharedMemoryCapture | null;
36
38
  lastFrame: number;
37
- onFrameUpdate: ((framesRendered: number, frameIndex: number, timeToRenderInMilliseconds: number) => void) | null;
39
+ onFrameUpdate: null | ((framesRendered: number, frameIndex: number, timeToRenderInMilliseconds: number) => void);
38
40
  framesRenderedObj: {
39
41
  count: number;
40
42
  };