remotion 3.0.21 → 3.0.24

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 (274) hide show
  1. package/.turbo/turbo-build.log +5 -5
  2. package/README.md +1 -1
  3. package/dist/AbsoluteFill.d.ts +2 -1
  4. package/dist/Composition.d.ts +2 -1
  5. package/dist/CompositionManager.d.ts +3 -2
  6. package/dist/Folder.d.ts +1 -1
  7. package/dist/Still.d.ts +1 -2
  8. package/dist/audio/Audio.d.ts +1 -1
  9. package/dist/audio/AudioForRendering.d.ts +1 -1
  10. package/dist/audio/props.d.ts +1 -1
  11. package/dist/audio/shared-audio-tags.d.ts +1 -1
  12. package/dist/compress-assets.d.ts +1 -1
  13. package/dist/config/chromium-flags.d.ts +1 -1
  14. package/dist/config/crf.d.ts +1 -1
  15. package/dist/config/image-format.d.ts +1 -1
  16. package/dist/config/image-sequence.d.ts +1 -1
  17. package/dist/config/index.d.ts +10 -10
  18. package/dist/config/override-webpack.d.ts +1 -1
  19. package/dist/config/pixel-format.d.ts +1 -1
  20. package/dist/config/prores-profile.d.ts +1 -1
  21. package/dist/config/skip-n-frames.d.ts +2 -0
  22. package/dist/config/skip-n-frames.js +12 -0
  23. package/dist/default-css.d.ts +1 -0
  24. package/dist/default-css.js +9 -2
  25. package/dist/index.d.ts +1 -1
  26. package/dist/internals.d.ts +10 -9
  27. package/dist/internals.js +2 -0
  28. package/dist/is-audio-codec.d.ts +1 -1
  29. package/dist/play-and-handle-not-allowed-error.d.ts +1 -1
  30. package/dist/register-root.d.ts +1 -1
  31. package/dist/series/index.d.ts +2 -2
  32. package/dist/spring/index.d.ts +1 -1
  33. package/dist/spring/measure-spring.d.ts +1 -1
  34. package/dist/timeline-inout-position-state.d.ts +1 -1
  35. package/dist/timeline-position-state.d.ts +1 -1
  36. package/dist/use-lazy-component.d.ts +3 -3
  37. package/dist/use-media-in-timeline.d.ts +2 -2
  38. package/dist/use-media-playback.d.ts +1 -1
  39. package/dist/use-media-tag-volume.d.ts +1 -1
  40. package/dist/use-sync-volume-with-media-tag.d.ts +2 -2
  41. package/dist/use-unsafe-video-config.d.ts +1 -1
  42. package/dist/use-video-config.d.ts +1 -1
  43. package/dist/validate-media-props.d.ts +3 -3
  44. package/dist/validation/validate-image-format.d.ts +1 -1
  45. package/dist/validation/validate-offthreadvideo-image-format.d.ts +1 -0
  46. package/dist/validation/validate-offthreadvideo-image-format.js +15 -0
  47. package/dist/video/OffthreadVideo.d.ts +1 -1
  48. package/dist/video/OffthreadVideo.js +2 -0
  49. package/dist/video/OffthreadVideoForRendering.d.ts +1 -1
  50. package/dist/video/OffthreadVideoForRendering.js +12 -10
  51. package/dist/video/Video.d.ts +2 -2
  52. package/dist/video/VideoForDevelopment.d.ts +2 -2
  53. package/dist/video/VideoForRendering.d.ts +2 -2
  54. package/dist/video/index.d.ts +1 -1
  55. package/dist/video/props.d.ts +4 -2
  56. package/package.json +3 -3
  57. package/dist/AbsoluteFill.d.ts.map +0 -1
  58. package/dist/AbsoluteFill.js.map +0 -1
  59. package/dist/Composition.d.ts.map +0 -1
  60. package/dist/Composition.js.map +0 -1
  61. package/dist/CompositionManager.d.ts.map +0 -1
  62. package/dist/CompositionManager.js.map +0 -1
  63. package/dist/IFrame.d.ts.map +0 -1
  64. package/dist/IFrame.js.map +0 -1
  65. package/dist/Img.d.ts.map +0 -1
  66. package/dist/Img.js.map +0 -1
  67. package/dist/RemotionRoot.d.ts.map +0 -1
  68. package/dist/RemotionRoot.js.map +0 -1
  69. package/dist/Still.d.ts.map +0 -1
  70. package/dist/Still.js.map +0 -1
  71. package/dist/absolute-src.d.ts.map +0 -1
  72. package/dist/absolute-src.js.map +0 -1
  73. package/dist/asset-types.d.ts.map +0 -1
  74. package/dist/asset-types.js.map +0 -1
  75. package/dist/audio/Audio.d.ts.map +0 -1
  76. package/dist/audio/Audio.js.map +0 -1
  77. package/dist/audio/AudioForDevelopment.d.ts.map +0 -1
  78. package/dist/audio/AudioForDevelopment.js.map +0 -1
  79. package/dist/audio/AudioForRendering.d.ts.map +0 -1
  80. package/dist/audio/AudioForRendering.js.map +0 -1
  81. package/dist/audio/index.d.ts.map +0 -1
  82. package/dist/audio/index.js.map +0 -1
  83. package/dist/audio/props.d.ts.map +0 -1
  84. package/dist/audio/props.js.map +0 -1
  85. package/dist/audio/shared-audio-tags.d.ts.map +0 -1
  86. package/dist/audio/shared-audio-tags.js.map +0 -1
  87. package/dist/audio/use-audio-frame.d.ts.map +0 -1
  88. package/dist/audio/use-audio-frame.js.map +0 -1
  89. package/dist/bezier.d.ts.map +0 -1
  90. package/dist/bezier.js.map +0 -1
  91. package/dist/compress-assets.d.ts.map +0 -1
  92. package/dist/compress-assets.js.map +0 -1
  93. package/dist/config/browser-executable.d.ts.map +0 -1
  94. package/dist/config/browser-executable.js.map +0 -1
  95. package/dist/config/browser.d.ts.map +0 -1
  96. package/dist/config/browser.js.map +0 -1
  97. package/dist/config/chromium-flags.d.ts.map +0 -1
  98. package/dist/config/chromium-flags.js.map +0 -1
  99. package/dist/config/codec.d.ts.map +0 -1
  100. package/dist/config/codec.js.map +0 -1
  101. package/dist/config/concurrency.d.ts.map +0 -1
  102. package/dist/config/concurrency.js.map +0 -1
  103. package/dist/config/crf.d.ts.map +0 -1
  104. package/dist/config/crf.js.map +0 -1
  105. package/dist/config/env-file.d.ts.map +0 -1
  106. package/dist/config/env-file.js.map +0 -1
  107. package/dist/config/ffmpeg-executable.d.ts.map +0 -1
  108. package/dist/config/ffmpeg-executable.js.map +0 -1
  109. package/dist/config/frame-range.d.ts.map +0 -1
  110. package/dist/config/frame-range.js.map +0 -1
  111. package/dist/config/image-format.d.ts.map +0 -1
  112. package/dist/config/image-format.js.map +0 -1
  113. package/dist/config/image-sequence.d.ts.map +0 -1
  114. package/dist/config/image-sequence.js.map +0 -1
  115. package/dist/config/index.d.ts.map +0 -1
  116. package/dist/config/index.js.map +0 -1
  117. package/dist/config/input-props.d.ts.map +0 -1
  118. package/dist/config/input-props.js.map +0 -1
  119. package/dist/config/log.d.ts.map +0 -1
  120. package/dist/config/log.js.map +0 -1
  121. package/dist/config/max-timeline-tracks.d.ts.map +0 -1
  122. package/dist/config/max-timeline-tracks.js.map +0 -1
  123. package/dist/config/override-webpack.d.ts.map +0 -1
  124. package/dist/config/override-webpack.js.map +0 -1
  125. package/dist/config/overwrite.d.ts.map +0 -1
  126. package/dist/config/overwrite.js.map +0 -1
  127. package/dist/config/pixel-format.d.ts.map +0 -1
  128. package/dist/config/pixel-format.js.map +0 -1
  129. package/dist/config/preview-server.d.ts.map +0 -1
  130. package/dist/config/preview-server.js.map +0 -1
  131. package/dist/config/prores-profile.d.ts.map +0 -1
  132. package/dist/config/prores-profile.js.map +0 -1
  133. package/dist/config/quality.d.ts.map +0 -1
  134. package/dist/config/quality.js.map +0 -1
  135. package/dist/config/scale.d.ts.map +0 -1
  136. package/dist/config/scale.js.map +0 -1
  137. package/dist/config/still-frame.d.ts.map +0 -1
  138. package/dist/config/still-frame.js.map +0 -1
  139. package/dist/config/timeout.d.ts.map +0 -1
  140. package/dist/config/timeout.js.map +0 -1
  141. package/dist/config/webpack-caching.d.ts.map +0 -1
  142. package/dist/config/webpack-caching.js.map +0 -1
  143. package/dist/default-css.d.ts.map +0 -1
  144. package/dist/default-css.js.map +0 -1
  145. package/dist/delay-render.d.ts.map +0 -1
  146. package/dist/delay-render.js.map +0 -1
  147. package/dist/easing.d.ts.map +0 -1
  148. package/dist/easing.js.map +0 -1
  149. package/dist/feature-flags.d.ts.map +0 -1
  150. package/dist/feature-flags.js.map +0 -1
  151. package/dist/freeze.d.ts.map +0 -1
  152. package/dist/freeze.js.map +0 -1
  153. package/dist/get-asset-file-name.d.ts.map +0 -1
  154. package/dist/get-asset-file-name.js.map +0 -1
  155. package/dist/get-environment.d.ts.map +0 -1
  156. package/dist/get-environment.js.map +0 -1
  157. package/dist/get-preview-dom-element.d.ts.map +0 -1
  158. package/dist/get-preview-dom-element.js.map +0 -1
  159. package/dist/get-timeline-clip-name.d.ts.map +0 -1
  160. package/dist/get-timeline-clip-name.js.map +0 -1
  161. package/dist/index.d.ts.map +0 -1
  162. package/dist/index.js.map +0 -1
  163. package/dist/initial-frame.d.ts.map +0 -1
  164. package/dist/initial-frame.js.map +0 -1
  165. package/dist/internals.d.ts.map +0 -1
  166. package/dist/internals.js.map +0 -1
  167. package/dist/interpolate.d.ts.map +0 -1
  168. package/dist/interpolate.js.map +0 -1
  169. package/dist/interpolateColors.d.ts.map +0 -1
  170. package/dist/interpolateColors.js.map +0 -1
  171. package/dist/is-approximately-the-same.d.ts.map +0 -1
  172. package/dist/is-approximately-the-same.js.map +0 -1
  173. package/dist/is-audio-codec.d.ts.map +0 -1
  174. package/dist/is-audio-codec.js.map +0 -1
  175. package/dist/loop/index.d.ts.map +0 -1
  176. package/dist/loop/index.js.map +0 -1
  177. package/dist/multiple-versions-warning.d.ts.map +0 -1
  178. package/dist/multiple-versions-warning.js.map +0 -1
  179. package/dist/nonce.d.ts.map +0 -1
  180. package/dist/nonce.js.map +0 -1
  181. package/dist/perf/index.d.ts.map +0 -1
  182. package/dist/perf/index.js.map +0 -1
  183. package/dist/play-and-handle-not-allowed-error.d.ts.map +0 -1
  184. package/dist/play-and-handle-not-allowed-error.js.map +0 -1
  185. package/dist/random.d.ts.map +0 -1
  186. package/dist/random.js.map +0 -1
  187. package/dist/register-root.d.ts.map +0 -1
  188. package/dist/register-root.js.map +0 -1
  189. package/dist/sequencing/index.d.ts.map +0 -1
  190. package/dist/sequencing/index.js.map +0 -1
  191. package/dist/series/flatten-children.d.ts.map +0 -1
  192. package/dist/series/flatten-children.js.map +0 -1
  193. package/dist/series/index.d.ts.map +0 -1
  194. package/dist/series/index.js.map +0 -1
  195. package/dist/setup-env-variables.d.ts.map +0 -1
  196. package/dist/setup-env-variables.js.map +0 -1
  197. package/dist/spring/index.d.ts.map +0 -1
  198. package/dist/spring/index.js.map +0 -1
  199. package/dist/spring/measure-spring.d.ts.map +0 -1
  200. package/dist/spring/measure-spring.js.map +0 -1
  201. package/dist/spring/spring-utils.d.ts.map +0 -1
  202. package/dist/spring/spring-utils.js.map +0 -1
  203. package/dist/static-file.d.ts.map +0 -1
  204. package/dist/static-file.js.map +0 -1
  205. package/dist/timeline-inout-position-state.d.ts.map +0 -1
  206. package/dist/timeline-inout-position-state.js.map +0 -1
  207. package/dist/timeline-position-state.d.ts.map +0 -1
  208. package/dist/timeline-position-state.js.map +0 -1
  209. package/dist/timeout.d.ts.map +0 -1
  210. package/dist/timeout.js.map +0 -1
  211. package/dist/truthy.d.ts.map +0 -1
  212. package/dist/truthy.js.map +0 -1
  213. package/dist/use-frame.d.ts.map +0 -1
  214. package/dist/use-frame.js.map +0 -1
  215. package/dist/use-lazy-component.d.ts.map +0 -1
  216. package/dist/use-lazy-component.js.map +0 -1
  217. package/dist/use-media-in-timeline.d.ts.map +0 -1
  218. package/dist/use-media-in-timeline.js.map +0 -1
  219. package/dist/use-media-playback.d.ts.map +0 -1
  220. package/dist/use-media-playback.js.map +0 -1
  221. package/dist/use-media-tag-volume.d.ts.map +0 -1
  222. package/dist/use-media-tag-volume.js.map +0 -1
  223. package/dist/use-sync-volume-with-media-tag.d.ts.map +0 -1
  224. package/dist/use-sync-volume-with-media-tag.js.map +0 -1
  225. package/dist/use-unsafe-video-config.d.ts.map +0 -1
  226. package/dist/use-unsafe-video-config.js.map +0 -1
  227. package/dist/use-video-config.d.ts.map +0 -1
  228. package/dist/use-video-config.js.map +0 -1
  229. package/dist/use-video.d.ts.map +0 -1
  230. package/dist/use-video.js.map +0 -1
  231. package/dist/validate-media-props.d.ts.map +0 -1
  232. package/dist/validate-media-props.js.map +0 -1
  233. package/dist/validate-start-from-props.d.ts.map +0 -1
  234. package/dist/validate-start-from-props.js.map +0 -1
  235. package/dist/validation/validate-composition-id.d.ts.map +0 -1
  236. package/dist/validation/validate-composition-id.js.map +0 -1
  237. package/dist/validation/validate-dimensions.d.ts.map +0 -1
  238. package/dist/validation/validate-dimensions.js.map +0 -1
  239. package/dist/validation/validate-duration-in-frames.d.ts.map +0 -1
  240. package/dist/validation/validate-duration-in-frames.js.map +0 -1
  241. package/dist/validation/validate-folder-name.d.ts.map +0 -1
  242. package/dist/validation/validate-folder-name.js.map +0 -1
  243. package/dist/validation/validate-fps.d.ts.map +0 -1
  244. package/dist/validation/validate-fps.js.map +0 -1
  245. package/dist/validation/validate-frame.d.ts.map +0 -1
  246. package/dist/validation/validate-frame.js.map +0 -1
  247. package/dist/validation/validate-image-format.d.ts.map +0 -1
  248. package/dist/validation/validate-image-format.js.map +0 -1
  249. package/dist/validation/validate-opengl-renderer.d.ts.map +0 -1
  250. package/dist/validation/validate-opengl-renderer.js.map +0 -1
  251. package/dist/validation/validate-quality.d.ts.map +0 -1
  252. package/dist/validation/validate-quality.js.map +0 -1
  253. package/dist/video/Video.d.ts.map +0 -1
  254. package/dist/video/Video.js.map +0 -1
  255. package/dist/video/VideoForDevelopment.d.ts.map +0 -1
  256. package/dist/video/VideoForDevelopment.js.map +0 -1
  257. package/dist/video/VideoForRendering.d.ts.map +0 -1
  258. package/dist/video/VideoForRendering.js.map +0 -1
  259. package/dist/video/get-current-time.d.ts.map +0 -1
  260. package/dist/video/get-current-time.js.map +0 -1
  261. package/dist/video/index.d.ts.map +0 -1
  262. package/dist/video/index.js.map +0 -1
  263. package/dist/video/props.d.ts.map +0 -1
  264. package/dist/video/props.js.map +0 -1
  265. package/dist/video-config.d.ts.map +0 -1
  266. package/dist/video-config.js.map +0 -1
  267. package/dist/volume-position-state.d.ts.map +0 -1
  268. package/dist/volume-position-state.js.map +0 -1
  269. package/dist/volume-prop.d.ts.map +0 -1
  270. package/dist/volume-prop.js.map +0 -1
  271. package/dist/warn-about-non-seekable-media.d.ts.map +0 -1
  272. package/dist/warn-about-non-seekable-media.js.map +0 -1
  273. package/dist/wrap-remotion-context.d.ts.map +0 -1
  274. package/dist/wrap-remotion-context.js.map +0 -1
@@ -1,5 +1,5 @@
1
- remotion:build: cache hit, replaying output f32b42292533daa6
2
- remotion:build: 
3
- remotion:build: > remotion@3.0.20 build /Users/jonathanburger/remotion/packages/core
4
- remotion:build: > tsc -d
5
- remotion:build: 
1
+ remotion:build: cache hit, replaying output f77d98c7f590a627
2
+ remotion:build: 
3
+ remotion:build: > remotion@3.0.23 build /Users/jonathanburger/remotion/packages/core
4
+ remotion:build: > tsc -d
5
+ remotion:build: 
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  </a>
5
5
  </p>
6
6
 
7
- [![Discord Shield](https://discordapp.com/api/guilds/809501355504959528/widget.png?style=shield)](https://discord.gg/6VzzNDwUwV)
7
+ [![Discord Shield](https://discordapp.com/api/guilds/809501355504959528/widget.png?style=shield)](https://remotion.dev/discord)
8
8
  [![NPM Version](http://img.shields.io/npm/v/remotion.svg?style=flat)](https://www.npmjs.org/package/remotion)
9
9
  [![NPM Downloads](https://img.shields.io/npm/dm/remotion.svg?style=flat)](https://npmcharts.com/compare/remotion?minimal=true)
10
10
  [![Install Size](https://packagephobia.now.sh/badge?p=remotion)](https://packagephobia.now.sh/result?p=remotion)
@@ -1,4 +1,5 @@
1
- import React, { HTMLAttributes } from 'react';
1
+ import type { HTMLAttributes } from 'react';
2
+ import React from 'react';
2
3
  /**
3
4
  * An absolutely positioned <div> element with 100% width, height, and a column flex style
4
5
  * @link https://www.remotion.dev/docs/absolute-fill
@@ -1,4 +1,5 @@
1
- import React, { ComponentType } from 'react';
1
+ import type { ComponentType } from 'react';
2
+ import React from 'react';
2
3
  declare type LooseComponentType<T> = ComponentType<T> | ((props: T) => React.ReactNode);
3
4
  export declare type CompProps<T> = {
4
5
  lazyComponent: () => Promise<{
@@ -1,5 +1,6 @@
1
- import React, { ComponentType, LazyExoticComponent } from 'react';
2
- import { TFolder } from './Folder';
1
+ import type { ComponentType, LazyExoticComponent } from 'react';
2
+ import React from 'react';
3
+ import type { TFolder } from './Folder';
3
4
  export declare type TComposition<T = unknown> = {
4
5
  width: number;
5
6
  height: number;
package/dist/Folder.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { FC } from 'react';
1
+ import type { FC } from 'react';
2
2
  export declare type TFolder = {
3
3
  name: string;
4
4
  parent: string | null;
package/dist/Still.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
- import { StillProps } from './Composition';
1
+ import type { StillProps } from './Composition';
3
2
  export declare const Still: <T>(props: StillProps<T>) => JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { RemotionMainAudioProps } from './props';
2
+ import type { RemotionMainAudioProps } from './props';
3
3
  export declare const Audio: React.ForwardRefExoticComponent<Pick<Omit<React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, "onEnded" | "autoPlay" | "controls" | "loop"> & {
4
4
  volume?: import("../volume-prop").VolumeProp | undefined;
5
5
  playbackRate?: number | undefined;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { RemotionAudioProps } from './props';
2
+ import type { RemotionAudioProps } from './props';
3
3
  export declare const AudioForRendering: React.ForwardRefExoticComponent<Pick<RemotionAudioProps, "style" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "slot" | "spellCheck" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "controlsList" | "crossOrigin" | "mediaGroup" | "muted" | "playsInline" | "preload" | "src" | "volume" | "playbackRate"> & React.RefAttributes<HTMLAudioElement>>;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { VolumeProp } from '../volume-prop';
2
+ import type { VolumeProp } from '../volume-prop';
3
3
  export declare type RemotionMainAudioProps = {
4
4
  startFrom?: number;
5
5
  endAt?: number;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { RemotionAudioProps } from './props';
2
+ import type { RemotionAudioProps } from './props';
3
3
  /**
4
4
  * This functionality of Remotion will keep a certain amount
5
5
  * of <audio> tags pre-mounted and by default filled with an empty audio track.
@@ -1,4 +1,4 @@
1
- import { TAsset } from './CompositionManager';
1
+ import type { TAsset } from './CompositionManager';
2
2
  /**
3
3
  * Since audio or video can be base64-encoded, those can be really long strings.
4
4
  * Since we track the `src` property for every frame, Node.JS can run out of memory easily. Instead of duplicating the src for every frame, we save memory by replacing the full base 64 encoded data with a string `same-as-[asset-id]-[frame]` referencing a previous asset with the same src.
@@ -1,4 +1,4 @@
1
- import { OpenGlRenderer } from '../validation/validate-opengl-renderer';
1
+ import type { OpenGlRenderer } from '../validation/validate-opengl-renderer';
2
2
  export declare const DEFAULT_OPENGL_RENDERER: OpenGlRenderer | null;
3
3
  export declare const getChromiumDisableWebSecurity: () => boolean;
4
4
  export declare const setChromiumDisableWebSecurity: (should: boolean) => void;
@@ -1,4 +1,4 @@
1
- import { Codec } from './codec';
1
+ import type { Codec } from './codec';
2
2
  declare type Crf = number | undefined;
3
3
  export declare const setCrf: (newCrf: Crf) => void;
4
4
  export declare const getCrfOrUndefined: () => Crf;
@@ -1,4 +1,4 @@
1
- import { PixelFormat } from './pixel-format';
1
+ import type { PixelFormat } from './pixel-format';
2
2
  declare const validOptions: readonly ["png", "jpeg", "none"];
3
3
  export declare type ImageFormat = typeof validOptions[number];
4
4
  export declare type StillImageFormat = 'png' | 'jpeg';
@@ -1,3 +1,3 @@
1
- import { FrameRange } from './frame-range';
1
+ import type { FrameRange } from './frame-range';
2
2
  export declare const setImageSequence: (newImageSequence: boolean) => void;
3
3
  export declare const getShouldOutputImageSequence: (frameRange: FrameRange | null) => boolean;
@@ -1,13 +1,13 @@
1
- import { Browser } from './browser';
2
- import { BrowserExecutable } from './browser-executable';
3
- import { Codec } from './codec';
4
- import { Concurrency } from './concurrency';
5
- import { FfmpegExecutable } from './ffmpeg-executable';
6
- import { FrameRange } from './frame-range';
7
- import { ImageFormat, StillImageFormat } from './image-format';
8
- import { LogLevel } from './log';
9
- import { WebpackConfiguration, WebpackOverrideFn } from './override-webpack';
10
- import { PixelFormat } from './pixel-format';
1
+ import type { Browser } from './browser';
2
+ import type { BrowserExecutable } from './browser-executable';
3
+ import type { Codec } from './codec';
4
+ import type { Concurrency } from './concurrency';
5
+ import type { FfmpegExecutable } from './ffmpeg-executable';
6
+ import type { FrameRange } from './frame-range';
7
+ import type { ImageFormat, StillImageFormat } from './image-format';
8
+ import type { LogLevel } from './log';
9
+ import type { WebpackConfiguration, WebpackOverrideFn } from './override-webpack';
10
+ import type { PixelFormat } from './pixel-format';
11
11
  export declare const Config: {
12
12
  readonly Preview: {
13
13
  /**
@@ -1,4 +1,4 @@
1
- import { Configuration } from 'webpack';
1
+ import type { Configuration } from 'webpack';
2
2
  export declare type WebpackConfiguration = Configuration;
3
3
  export declare type WebpackOverrideFn = (currentConfiguration: WebpackConfiguration) => WebpackConfiguration;
4
4
  export declare const defaultOverrideFunction: WebpackOverrideFn;
@@ -1,4 +1,4 @@
1
- import { Codec } from './codec';
1
+ import type { Codec } from './codec';
2
2
  declare const validOptions: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
3
3
  export declare type PixelFormat = typeof validOptions[number];
4
4
  export declare const DEFAULT_PIXEL_FORMAT: PixelFormat;
@@ -1,4 +1,4 @@
1
- import { Codec } from './codec';
1
+ import type { Codec } from './codec';
2
2
  declare const proResProfileOptions: readonly ["4444-xq", "4444", "hq", "standard", "light", "proxy"];
3
3
  export declare type ProResProfile = typeof proResProfileOptions[number];
4
4
  export declare const getProResProfile: () => ProResProfile | undefined;
@@ -0,0 +1,2 @@
1
+ export declare const setSkipNFrames: (frame: number) => void;
2
+ export declare const getSkipNFrames: () => number;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSkipNFrames = exports.setSkipNFrames = void 0;
4
+ const validate_frame_1 = require("../validation/validate-frame");
5
+ let skipNFrames = 0;
6
+ const setSkipNFrames = (frame) => {
7
+ (0, validate_frame_1.validateFrame)(frame, Infinity);
8
+ skipNFrames = frame;
9
+ };
10
+ exports.setSkipNFrames = setSkipNFrames;
11
+ const getSkipNFrames = () => skipNFrames;
12
+ exports.getSkipNFrames = getSkipNFrames;
@@ -1,2 +1,3 @@
1
1
  export declare const injectCSS: (css: string) => void;
2
+ export declare const OFFTHREAD_VIDEO_CLASS_NAME = "__remotion_offthreadvideo";
2
3
  export declare const makeDefaultCSS: (scope: string | null, backgroundColor: string) => string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeDefaultCSS = exports.injectCSS = void 0;
3
+ exports.makeDefaultCSS = exports.OFFTHREAD_VIDEO_CLASS_NAME = exports.injectCSS = void 0;
4
4
  const injected = {};
5
5
  const injectCSS = (css) => {
6
6
  // Skip in node
@@ -13,10 +13,11 @@ const injectCSS = (css) => {
13
13
  const head = document.head || document.getElementsByTagName('head')[0];
14
14
  const style = document.createElement('style');
15
15
  style.appendChild(document.createTextNode(css));
16
- head.appendChild(style);
16
+ head.prepend(style);
17
17
  injected[css] = true;
18
18
  };
19
19
  exports.injectCSS = injectCSS;
20
+ exports.OFFTHREAD_VIDEO_CLASS_NAME = '__remotion_offthreadvideo';
20
21
  const makeDefaultCSS = (scope, backgroundColor) => {
21
22
  if (!scope) {
22
23
  return `
@@ -27,6 +28,9 @@ const makeDefaultCSS = (scope, backgroundColor) => {
27
28
  margin: 0;
28
29
  background-color: ${backgroundColor};
29
30
  }
31
+ .${exports.OFFTHREAD_VIDEO_CLASS_NAME} {
32
+ object-fit: contain;
33
+ }
30
34
  `;
31
35
  }
32
36
  return `
@@ -37,6 +41,9 @@ const makeDefaultCSS = (scope, backgroundColor) => {
37
41
  width: 100%;
38
42
  height: 100%;
39
43
  }
44
+ ${scope} .${exports.OFFTHREAD_VIDEO_CLASS_NAME} {
45
+ object-fit: contain;
46
+ }
40
47
  `;
41
48
  };
42
49
  exports.makeDefaultCSS = makeDefaultCSS;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import './asset-types';
2
- import { TAsset, TCompMetadata } from './CompositionManager';
2
+ import type { TAsset, TCompMetadata } from './CompositionManager';
3
3
  declare global {
4
4
  interface Window {
5
5
  ready: boolean;
@@ -1,19 +1,19 @@
1
- import { CompProps } from './Composition';
2
- import { CompositionManagerContext, RenderAssetInfo, TAsset, TCompMetadata, TComposition, TSequence } from './CompositionManager';
1
+ import type { CompProps } from './Composition';
2
+ import type { CompositionManagerContext, RenderAssetInfo, TAsset, TCompMetadata, TComposition, TSequence } from './CompositionManager';
3
3
  import * as AssetCompression from './compress-assets';
4
4
  import * as Logging from './config/log';
5
- import { WebpackOverrideFn } from './config/override-webpack';
6
- import { ProResProfile } from './config/prores-profile';
5
+ import type { WebpackOverrideFn } from './config/override-webpack';
6
+ import type { ProResProfile } from './config/prores-profile';
7
7
  import * as CSSUtils from './default-css';
8
- import { RemotionEnvironment } from './get-environment';
8
+ import type { RemotionEnvironment } from './get-environment';
9
9
  import * as perf from './perf';
10
10
  import * as TimelineInOutPosition from './timeline-inout-position-state';
11
- import { SetTimelineInOutContextValue, TimelineInOutContextValue } from './timeline-inout-position-state';
11
+ import type { SetTimelineInOutContextValue, TimelineInOutContextValue } from './timeline-inout-position-state';
12
12
  import * as TimelinePosition from './timeline-position-state';
13
- import { SetTimelineContextValue, TimelineContextValue } from './timeline-position-state';
13
+ import type { SetTimelineContextValue, TimelineContextValue } from './timeline-position-state';
14
14
  import { truthy } from './truthy';
15
- import { OpenGlRenderer } from './validation/validate-opengl-renderer';
16
- import { MediaVolumeContextValue, SetMediaVolumeContextValue } from './volume-position-state';
15
+ import type { OpenGlRenderer } from './validation/validate-opengl-renderer';
16
+ import type { MediaVolumeContextValue, SetMediaVolumeContextValue } from './volume-position-state';
17
17
  import { useRemotionContexts } from './wrap-remotion-context';
18
18
  declare const Timeline: {
19
19
  TimelineInOutContext: import("react").Context<TimelineInOutPosition.TimelineInOutContextValue>;
@@ -148,5 +148,6 @@ export declare const Internals: {
148
148
  useAbsoluteCurrentFrame: () => number;
149
149
  portalNode: () => HTMLElement;
150
150
  waitForRoot: (fn: (comp: import("react").FC<{}>) => void) => () => void;
151
+ validateOffthreadVideoImageFormat: (input: unknown) => void;
151
152
  };
152
153
  export type { TComposition, Timeline, TCompMetadata, TSequence, WebpackOverrideFn, TAsset, RenderAssetInfo, TimelineContextValue, SetTimelineContextValue, TimelineInOutContextValue, SetTimelineInOutContextValue, CompProps, CompositionManagerContext, MediaVolumeContextValue, SetMediaVolumeContextValue, RemotionEnvironment, ProResProfile, OpenGlRenderer, };
package/dist/internals.js CHANGED
@@ -76,6 +76,7 @@ const validate_duration_in_frames_1 = require("./validation/validate-duration-in
76
76
  const validate_fps_1 = require("./validation/validate-fps");
77
77
  const validate_frame_1 = require("./validation/validate-frame");
78
78
  const validate_image_format_1 = require("./validation/validate-image-format");
79
+ const validate_offthreadvideo_image_format_1 = require("./validation/validate-offthreadvideo-image-format");
79
80
  const validate_opengl_renderer_1 = require("./validation/validate-opengl-renderer");
80
81
  const validate_quality_1 = require("./validation/validate-quality");
81
82
  const volume_position_state_1 = require("./volume-position-state");
@@ -171,4 +172,5 @@ exports.Internals = {
171
172
  useAbsoluteCurrentFrame: use_current_frame_1.useAbsoluteCurrentFrame,
172
173
  portalNode: portal_node_1.portalNode,
173
174
  waitForRoot: register_root_1.waitForRoot,
175
+ validateOffthreadVideoImageFormat: validate_offthreadvideo_image_format_1.validateOffthreadVideoImageFormat,
174
176
  };
@@ -1,2 +1,2 @@
1
- import { Codec } from './config';
1
+ import type { Codec } from './config';
2
2
  export declare const isAudioCodec: (codec: Codec | undefined) => boolean;
@@ -1,2 +1,2 @@
1
- import { RefObject } from 'react';
1
+ import type { RefObject } from 'react';
2
2
  export declare const playAndHandleNotAllowedError: (mediaRef: RefObject<HTMLVideoElement | HTMLAudioElement>, mediaType: 'audio' | 'video') => void;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import type React from 'react';
2
2
  export declare const registerRoot: (comp: React.FC) => void;
3
3
  export declare const getRoot: () => React.FC<{}> | null;
4
4
  export declare const waitForRoot: (fn: (comp: React.FC) => void) => (() => void);
@@ -1,5 +1,5 @@
1
- import { FC, PropsWithChildren } from 'react';
2
- import { SequenceProps } from '../Sequence';
1
+ import type { FC, PropsWithChildren } from 'react';
2
+ import type { SequenceProps } from '../Sequence';
3
3
  declare type SeriesSequenceProps = PropsWithChildren<{
4
4
  durationInFrames: number;
5
5
  offset?: number;
@@ -1,4 +1,4 @@
1
- import { SpringConfig } from './spring-utils';
1
+ import type { SpringConfig } from './spring-utils';
2
2
  /**
3
3
  * Calculates a position based on physical parameters, start and end value, and time.
4
4
  * @link https://www.remotion.dev/docs/spring
@@ -1,4 +1,4 @@
1
- import { SpringConfig } from './spring-utils';
1
+ import type { SpringConfig } from './spring-utils';
2
2
  export declare function measureSpring({ fps, config, threshold, from, to, }: {
3
3
  fps: number;
4
4
  config?: Partial<SpringConfig>;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import type React from 'react';
2
2
  export declare type TimelineInOutContextValue = {
3
3
  inFrame: number | null;
4
4
  outFrame: number | null;
@@ -1,4 +1,4 @@
1
- import { MutableRefObject } from 'react';
1
+ import type { MutableRefObject } from 'react';
2
2
  export declare type PlayableMediaTag = {
3
3
  play: () => void;
4
4
  id: string;
@@ -1,7 +1,7 @@
1
- import React, { ComponentPropsWithRef, ComponentType, ExoticComponent } from 'react';
2
- import { CompProps } from './internals';
1
+ import type { ComponentPropsWithRef, ComponentType, ExoticComponent } from 'react';
2
+ import type { CompProps } from './internals';
3
3
  declare type LazyExoticComponent<T extends ComponentType<any>> = ExoticComponent<ComponentPropsWithRef<T>> & {
4
4
  readonly _result: T;
5
5
  };
6
- export declare const useLazyComponent: <T>(compProps: CompProps<T>) => LazyExoticComponent<React.ComponentType<T>>;
6
+ export declare const useLazyComponent: <T>(compProps: CompProps<T>) => LazyExoticComponent<ComponentType<T>>;
7
7
  export {};
@@ -1,5 +1,5 @@
1
- import { RefObject } from 'react';
2
- import { VolumeProp } from './volume-prop';
1
+ import type { RefObject } from 'react';
2
+ import type { VolumeProp } from './volume-prop';
3
3
  export declare const useMediaInTimeline: ({ volume, mediaVolume, mediaRef, src, mediaType, }: {
4
4
  volume: VolumeProp | undefined;
5
5
  mediaVolume: number;
@@ -1,4 +1,4 @@
1
- import { RefObject } from 'react';
1
+ import type { RefObject } from 'react';
2
2
  export declare const useMediaPlayback: ({ mediaRef, src, mediaType, playbackRate: localPlaybackRate, }: {
3
3
  mediaRef: RefObject<HTMLVideoElement | HTMLAudioElement>;
4
4
  src: string | undefined;
@@ -1,2 +1,2 @@
1
- import { RefObject } from 'react';
1
+ import type { RefObject } from 'react';
2
2
  export declare const useMediaTagVolume: (mediaRef: RefObject<HTMLVideoElement | HTMLAudioElement>) => number;
@@ -1,5 +1,5 @@
1
- import { RefObject } from 'react';
2
- import { VolumeProp } from './volume-prop';
1
+ import type { RefObject } from 'react';
2
+ import type { VolumeProp } from './volume-prop';
3
3
  export declare type UseSyncVolumeWithMediaTagOptions = {
4
4
  volumePropFrame: number;
5
5
  actualVolume: number;
@@ -1,2 +1,2 @@
1
- import { VideoConfig } from './video-config';
1
+ import type { VideoConfig } from './video-config';
2
2
  export declare const useUnsafeVideoConfig: () => VideoConfig | null;
@@ -1,4 +1,4 @@
1
- import { VideoConfig } from './video-config';
1
+ import type { VideoConfig } from './video-config';
2
2
  /**
3
3
  * Get some info about the context of the video that you are making.
4
4
  * Returns an object containing `fps`, `width`, `height` and `durationInFrames`, all of type `number`.
@@ -1,4 +1,4 @@
1
- import { RemotionAudioProps } from './audio';
2
- import { RemotionVideoProps } from './video';
3
- import { OffthreadVideoProps } from './video/props';
1
+ import type { RemotionAudioProps } from './audio';
2
+ import type { RemotionVideoProps } from './video';
3
+ import type { OffthreadVideoProps } from './video/props';
4
4
  export declare const validateMediaProps: (props: RemotionVideoProps | RemotionAudioProps | OffthreadVideoProps, component: 'Video' | 'Audio') => void;
@@ -1,2 +1,2 @@
1
- import { ImageFormat } from '../config';
1
+ import type { ImageFormat } from '../config';
2
2
  export declare const validateNonNullImageFormat: (imageFormat: ImageFormat) => void;
@@ -0,0 +1 @@
1
+ export declare const validateOffthreadVideoImageFormat: (input: unknown) => void;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateOffthreadVideoImageFormat = void 0;
4
+ const validateOffthreadVideoImageFormat = (input) => {
5
+ if (typeof input === 'undefined') {
6
+ return;
7
+ }
8
+ if (typeof input !== 'string') {
9
+ throw new TypeError(`<OffthreadVideo imageFormat=""> must be a string, but got ${JSON.stringify(input)} instead.`);
10
+ }
11
+ if (input !== 'png' && input !== 'jpeg') {
12
+ throw new TypeError(`<OffthreadVideo imageFormat=""> must be either "png" or "jpeg", but got ${input}`);
13
+ }
14
+ };
15
+ exports.validateOffthreadVideoImageFormat = validateOffthreadVideoImageFormat;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { OffthreadVideoProps, RemotionMainVideoProps } from './props';
2
+ import type { OffthreadVideoProps, RemotionMainVideoProps } from './props';
3
3
  export declare const OffthreadVideo: React.FC<OffthreadVideoProps & RemotionMainVideoProps>;
@@ -6,6 +6,7 @@ const get_environment_1 = require("../get-environment");
6
6
  const Sequence_1 = require("../Sequence");
7
7
  const validate_media_props_1 = require("../validate-media-props");
8
8
  const validate_start_from_props_1 = require("../validate-start-from-props");
9
+ const validate_offthreadvideo_image_format_1 = require("../validation/validate-offthreadvideo-image-format");
9
10
  const OffthreadVideoForRendering_1 = require("./OffthreadVideoForRendering");
10
11
  const VideoForDevelopment_1 = require("./VideoForDevelopment");
11
12
  const OffthreadVideo = (props) => {
@@ -17,6 +18,7 @@ const OffthreadVideo = (props) => {
17
18
  return ((0, jsx_runtime_1.jsx)(Sequence_1.Sequence, { layout: "none", from: 0 - startFromFrameNo, showInTimeline: false, durationInFrames: endAtFrameNo, children: (0, jsx_runtime_1.jsx)(exports.OffthreadVideo, { ...otherProps }) }));
18
19
  }
19
20
  (0, validate_media_props_1.validateMediaProps)(props, 'Video');
21
+ (0, validate_offthreadvideo_image_format_1.validateOffthreadVideoImageFormat)(props.imageFormat);
20
22
  if ((0, get_environment_1.getRemotionEnvironment)() === 'rendering') {
21
23
  return (0, jsx_runtime_1.jsx)(OffthreadVideoForRendering_1.OffthreadVideoForRendering, { ...otherProps });
22
24
  }
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { OffthreadVideoProps } from './props';
2
+ import type { OffthreadVideoProps } from './props';
3
3
  export declare const OffthreadVideoForRendering: React.FC<OffthreadVideoProps>;
@@ -6,14 +6,17 @@ const react_1 = require("react");
6
6
  const absolute_src_1 = require("../absolute-src");
7
7
  const use_audio_frame_1 = require("../audio/use-audio-frame");
8
8
  const CompositionManager_1 = require("../CompositionManager");
9
+ const default_css_1 = require("../default-css");
9
10
  const Img_1 = require("../Img");
11
+ const internals_1 = require("../internals");
10
12
  const random_1 = require("../random");
11
13
  const Sequence_1 = require("../Sequence");
12
14
  const use_current_frame_1 = require("../use-current-frame");
13
15
  const use_unsafe_video_config_1 = require("../use-unsafe-video-config");
14
16
  const volume_prop_1 = require("../volume-prop");
15
17
  const get_current_time_1 = require("./get-current-time");
16
- const OffthreadVideoForRendering = ({ onError, volume: volumeProp, playbackRate, src, muted, style, ...props }) => {
18
+ const DEFAULT_IMAGE_FORMAT = 'jpeg';
19
+ const OffthreadVideoForRendering = ({ onError, volume: volumeProp, playbackRate, src, muted, imageFormat, ...props }) => {
17
20
  const absoluteFrame = (0, use_current_frame_1.useAbsoluteCurrentFrame)();
18
21
  const frame = (0, use_current_frame_1.useCurrentFrame)();
19
22
  const volumePropsFrame = (0, use_audio_frame_1.useFrameForVolumeProp)();
@@ -77,17 +80,16 @@ const OffthreadVideoForRendering = ({ onError, volume: volumeProp, playbackRate,
77
80
  }) / videoConfig.fps);
78
81
  }, [frame, mediaStartsAt, playbackRate, videoConfig.fps]);
79
82
  const actualSrc = (0, react_1.useMemo)(() => {
80
- return `http://localhost:${window.remotion_proxyPort}/proxy?src=${encodeURIComponent((0, absolute_src_1.getAbsoluteSrc)(src))}&time=${encodeURIComponent(currentTime)}`;
81
- }, [currentTime, src]);
83
+ return `http://localhost:${window.remotion_proxyPort}/proxy?src=${encodeURIComponent((0, absolute_src_1.getAbsoluteSrc)(src))}&time=${encodeURIComponent(currentTime)}&imageFormat=${imageFormat !== null && imageFormat !== void 0 ? imageFormat : DEFAULT_IMAGE_FORMAT}`;
84
+ }, [currentTime, imageFormat, src]);
82
85
  const onErr = (0, react_1.useCallback)((e) => {
83
86
  onError === null || onError === void 0 ? void 0 : onError(e);
84
87
  }, [onError]);
85
- const actualStyle = (0, react_1.useMemo)(() => {
86
- return {
87
- objectFit: 'contain',
88
- ...(style !== null && style !== void 0 ? style : {}),
89
- };
90
- }, [style]);
91
- return (0, jsx_runtime_1.jsx)(Img_1.Img, { src: actualSrc, style: actualStyle, ...props, onError: onErr });
88
+ const className = (0, react_1.useMemo)(() => {
89
+ return [default_css_1.OFFTHREAD_VIDEO_CLASS_NAME, props.className]
90
+ .filter(internals_1.Internals.truthy)
91
+ .join(' ');
92
+ }, [props.className]);
93
+ return ((0, jsx_runtime_1.jsx)(Img_1.Img, { src: actualSrc, className: className, ...props, onError: onErr }));
92
94
  };
93
95
  exports.OffthreadVideoForRendering = OffthreadVideoForRendering;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { RemotionMainVideoProps } from './props';
2
+ import type { RemotionMainVideoProps } from './props';
3
3
  export declare const Video: React.ForwardRefExoticComponent<Pick<Omit<React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>, "onEnded" | "autoPlay" | "controls" | "loop"> & {
4
4
  volume?: import("../volume-prop").VolumeProp | undefined;
5
5
  playbackRate?: number | undefined;
6
- } & RemotionMainVideoProps, "style" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "slot" | "spellCheck" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "height" | "width" | "key" | "controlsList" | "crossOrigin" | "mediaGroup" | "muted" | "playsInline" | "preload" | "src" | "volume" | "playbackRate" | "poster" | "disablePictureInPicture" | "disableRemotePlayback" | keyof RemotionMainVideoProps> & React.RefAttributes<HTMLVideoElement>>;
6
+ } & RemotionMainVideoProps, "style" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "slot" | "spellCheck" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "height" | "width" | "key" | "controlsList" | "crossOrigin" | "mediaGroup" | "muted" | "playsInline" | "preload" | "src" | "poster" | "disablePictureInPicture" | "disableRemotePlayback" | "volume" | "playbackRate" | keyof RemotionMainVideoProps> & React.RefAttributes<HTMLVideoElement>>;