remotion 3.2.21 → 3.2.23-ensure-ffmpeg.123

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 (254) hide show
  1. package/.turbo/turbo-build.log +4 -5
  2. package/LICENSE.md +8 -8
  3. package/dist/AbsoluteFill.d.ts +0 -0
  4. package/dist/AbsoluteFill.js +0 -0
  5. package/dist/CanUseRemotionHooks.d.ts +0 -0
  6. package/dist/CanUseRemotionHooks.js +0 -0
  7. package/dist/Composition.d.ts +0 -0
  8. package/dist/Composition.js +0 -0
  9. package/dist/CompositionManager.d.ts +0 -0
  10. package/dist/CompositionManager.js +0 -0
  11. package/dist/Folder.d.ts +0 -0
  12. package/dist/Folder.js +0 -0
  13. package/dist/IFrame.d.ts +0 -0
  14. package/dist/IFrame.js +0 -0
  15. package/dist/Img.d.ts +0 -0
  16. package/dist/Img.js +30 -24
  17. package/dist/RemotionRoot.d.ts +0 -0
  18. package/dist/RemotionRoot.js +7 -5
  19. package/dist/Sequence.d.ts +1 -1
  20. package/dist/Sequence.js +1 -1
  21. package/dist/Still.d.ts +0 -0
  22. package/dist/Still.js +0 -0
  23. package/dist/absolute-src.d.ts +0 -0
  24. package/dist/absolute-src.js +0 -0
  25. package/dist/asset-types.d.ts +0 -0
  26. package/dist/asset-types.js +0 -0
  27. package/dist/audio/Audio.d.ts +3 -2
  28. package/dist/audio/Audio.js +15 -2
  29. package/dist/audio/AudioForDevelopment.d.ts +3 -1
  30. package/dist/audio/AudioForDevelopment.js +34 -9
  31. package/dist/audio/AudioForRendering.d.ts +4 -1
  32. package/dist/audio/AudioForRendering.js +33 -1
  33. package/dist/audio/index.d.ts +0 -0
  34. package/dist/audio/index.js +0 -0
  35. package/dist/audio/props.d.ts +2 -1
  36. package/dist/audio/props.js +0 -0
  37. package/dist/audio/shared-audio-tags.d.ts +0 -0
  38. package/dist/audio/shared-audio-tags.js +0 -0
  39. package/dist/audio/use-audio-frame.d.ts +0 -0
  40. package/dist/audio/use-audio-frame.js +0 -0
  41. package/dist/bezier.d.ts +0 -0
  42. package/dist/bezier.js +0 -0
  43. package/dist/config/input-props.d.ts +0 -0
  44. package/dist/config/input-props.js +0 -0
  45. package/dist/config.d.ts +30 -0
  46. package/dist/config.js +0 -0
  47. package/dist/default-css.d.ts +0 -0
  48. package/dist/default-css.js +0 -0
  49. package/dist/delay-render.d.ts +0 -0
  50. package/dist/delay-render.js +0 -0
  51. package/dist/easing.d.ts +0 -0
  52. package/dist/easing.js +0 -0
  53. package/dist/freeze.d.ts +0 -0
  54. package/dist/freeze.js +0 -0
  55. package/dist/get-asset-file-name.d.ts +0 -0
  56. package/dist/get-asset-file-name.js +0 -0
  57. package/dist/get-environment.d.ts +0 -0
  58. package/dist/get-environment.js +1 -1
  59. package/dist/get-preview-dom-element.d.ts +0 -0
  60. package/dist/get-preview-dom-element.js +0 -0
  61. package/dist/get-timeline-clip-name.d.ts +0 -0
  62. package/dist/get-timeline-clip-name.js +0 -0
  63. package/dist/index.d.ts +2 -1
  64. package/dist/index.js +5 -2
  65. package/dist/internals.d.ts +6 -0
  66. package/dist/internals.js +4 -0
  67. package/dist/interpolate-colors.d.ts +0 -0
  68. package/dist/interpolate-colors.js +0 -0
  69. package/dist/interpolate.d.ts +0 -0
  70. package/dist/interpolate.js +0 -0
  71. package/dist/is-approximately-the-same.d.ts +0 -0
  72. package/dist/is-approximately-the-same.js +0 -0
  73. package/dist/loading-indicator.d.ts +0 -0
  74. package/dist/loading-indicator.js +0 -0
  75. package/dist/loop/index.d.ts +0 -0
  76. package/dist/loop/index.js +0 -0
  77. package/dist/multiple-versions-warning.d.ts +0 -0
  78. package/dist/multiple-versions-warning.js +0 -0
  79. package/dist/nonce.d.ts +0 -0
  80. package/dist/nonce.js +0 -0
  81. package/dist/play-and-handle-not-allowed-error.d.ts +0 -0
  82. package/dist/play-and-handle-not-allowed-error.js +4 -0
  83. package/dist/portal-node.d.ts +0 -0
  84. package/dist/portal-node.js +0 -0
  85. package/dist/prefetch-state.d.ts +8 -0
  86. package/dist/prefetch-state.js +27 -0
  87. package/dist/prefetch.d.ts +9 -0
  88. package/dist/prefetch.js +108 -0
  89. package/dist/random.d.ts +2 -1
  90. package/dist/random.js +0 -0
  91. package/dist/register-root.d.ts +0 -0
  92. package/dist/register-root.js +3 -0
  93. package/dist/series/flatten-children.d.ts +1 -1
  94. package/dist/series/flatten-children.js +0 -0
  95. package/dist/series/index.d.ts +0 -0
  96. package/dist/series/index.js +0 -0
  97. package/dist/setup-env-variables.d.ts +0 -0
  98. package/dist/setup-env-variables.js +0 -0
  99. package/dist/spring/index.d.ts +0 -0
  100. package/dist/spring/index.js +0 -0
  101. package/dist/spring/measure-spring.d.ts +0 -0
  102. package/dist/spring/measure-spring.js +0 -0
  103. package/dist/spring/spring-utils.d.ts +0 -0
  104. package/dist/spring/spring-utils.js +0 -0
  105. package/dist/static-file.d.ts +0 -0
  106. package/dist/static-file.js +0 -0
  107. package/dist/timeline-position-state.d.ts +0 -0
  108. package/dist/timeline-position-state.js +0 -0
  109. package/dist/truthy.d.ts +0 -0
  110. package/dist/truthy.js +0 -0
  111. package/dist/use-current-frame.d.ts +0 -0
  112. package/dist/use-current-frame.js +0 -0
  113. package/dist/use-lazy-component.d.ts +0 -0
  114. package/dist/use-lazy-component.js +0 -0
  115. package/dist/use-media-in-timeline.d.ts +0 -0
  116. package/dist/use-media-in-timeline.js +0 -0
  117. package/dist/use-media-playback.d.ts +3 -1
  118. package/dist/use-media-playback.js +5 -3
  119. package/dist/use-media-tag-volume.d.ts +0 -0
  120. package/dist/use-media-tag-volume.js +0 -0
  121. package/dist/use-sync-volume-with-media-tag.d.ts +0 -0
  122. package/dist/use-sync-volume-with-media-tag.js +0 -0
  123. package/dist/use-unsafe-video-config.d.ts +0 -0
  124. package/dist/use-unsafe-video-config.js +0 -0
  125. package/dist/use-video-config.d.ts +0 -0
  126. package/dist/use-video-config.js +0 -0
  127. package/dist/use-video.d.ts +0 -0
  128. package/dist/use-video.js +0 -0
  129. package/dist/validate-media-props.d.ts +0 -0
  130. package/dist/validate-media-props.js +0 -0
  131. package/dist/validate-start-from-props.d.ts +0 -0
  132. package/dist/validate-start-from-props.js +0 -0
  133. package/dist/validation/validate-composition-id.d.ts +0 -0
  134. package/dist/validation/validate-composition-id.js +0 -0
  135. package/dist/validation/validate-dimensions.d.ts +0 -0
  136. package/dist/validation/validate-dimensions.js +0 -0
  137. package/dist/validation/validate-duration-in-frames.d.ts +0 -0
  138. package/dist/validation/validate-duration-in-frames.js +0 -0
  139. package/dist/validation/validate-folder-name.d.ts +0 -0
  140. package/dist/validation/validate-folder-name.js +0 -0
  141. package/dist/validation/validate-fps.d.ts +0 -0
  142. package/dist/validation/validate-fps.js +0 -0
  143. package/dist/validation/validate-offthreadvideo-image-format.d.ts +0 -0
  144. package/dist/validation/validate-offthreadvideo-image-format.js +0 -0
  145. package/dist/validation/validation-spring-duration.d.ts +0 -0
  146. package/dist/validation/validation-spring-duration.js +0 -0
  147. package/dist/version.d.ts +1 -1
  148. package/dist/version.js +1 -1
  149. package/dist/video/OffthreadVideo.d.ts +1 -1
  150. package/dist/video/OffthreadVideo.js +3 -1
  151. package/dist/video/OffthreadVideoForRendering.d.ts +0 -0
  152. package/dist/video/OffthreadVideoForRendering.js +0 -0
  153. package/dist/video/Video.d.ts +3 -2
  154. package/dist/video/Video.js +14 -2
  155. package/dist/video/VideoForDevelopment.d.ts +3 -1
  156. package/dist/video/VideoForDevelopment.js +31 -7
  157. package/dist/video/VideoForRendering.d.ts +4 -1
  158. package/dist/video/VideoForRendering.js +33 -2
  159. package/dist/video/duration-state.d.ts +17 -0
  160. package/dist/video/duration-state.js +34 -0
  161. package/dist/video/get-current-time.d.ts +0 -0
  162. package/dist/video/get-current-time.js +0 -0
  163. package/dist/video/index.d.ts +0 -0
  164. package/dist/video/index.js +0 -0
  165. package/dist/video/props.d.ts +3 -1
  166. package/dist/video/props.js +0 -0
  167. package/dist/video-config.d.ts +0 -0
  168. package/dist/video-config.js +0 -0
  169. package/dist/volume-position-state.d.ts +0 -0
  170. package/dist/volume-position-state.js +0 -0
  171. package/dist/volume-prop.d.ts +0 -0
  172. package/dist/volume-prop.js +0 -0
  173. package/dist/warn-about-non-seekable-media.d.ts +0 -0
  174. package/dist/warn-about-non-seekable-media.js +0 -0
  175. package/dist/wrap-remotion-context.d.ts +0 -0
  176. package/dist/wrap-remotion-context.js +0 -0
  177. package/package.json +9 -8
  178. package/.turbo/turbo-lint.log +0 -11
  179. package/.turbo/turbo-test.log +0 -405
  180. package/dist/compress-assets.d.ts +0 -7
  181. package/dist/compress-assets.js +0 -25
  182. package/dist/config/browser-executable.d.ts +0 -3
  183. package/dist/config/browser-executable.js +0 -12
  184. package/dist/config/browser.d.ts +0 -4
  185. package/dist/config/browser.js +0 -19
  186. package/dist/config/chromium-flags.d.ts +0 -10
  187. package/dist/config/chromium-flags.js +0 -34
  188. package/dist/config/codec.d.ts +0 -16
  189. package/dist/config/codec.js +0 -109
  190. package/dist/config/concurrency.d.ts +0 -3
  191. package/dist/config/concurrency.js +0 -12
  192. package/dist/config/crf.d.ts +0 -9
  193. package/dist/config/crf.js +0 -83
  194. package/dist/config/env-file.d.ts +0 -2
  195. package/dist/config/env-file.js +0 -10
  196. package/dist/config/every-nth-frame.d.ts +0 -3
  197. package/dist/config/every-nth-frame.js +0 -20
  198. package/dist/config/ffmpeg-executable.d.ts +0 -5
  199. package/dist/config/ffmpeg-executable.js +0 -21
  200. package/dist/config/frame-range.d.ts +0 -5
  201. package/dist/config/frame-range.js +0 -80
  202. package/dist/config/image-format.d.ts +0 -8
  203. package/dist/config/image-format.js +0 -37
  204. package/dist/config/image-sequence.d.ts +0 -3
  205. package/dist/config/image-sequence.js +0 -15
  206. package/dist/config/index.d.ts +0 -178
  207. package/dist/config/index.js +0 -193
  208. package/dist/config/log.d.ts +0 -7
  209. package/dist/config/log.js +0 -25
  210. package/dist/config/max-timeline-tracks.d.ts +0 -2
  211. package/dist/config/max-timeline-tracks.js +0 -24
  212. package/dist/config/number-of-gif-loops.d.ts +0 -4
  213. package/dist/config/number-of-gif-loops.js +0 -21
  214. package/dist/config/override-webpack.d.ts +0 -6
  215. package/dist/config/override-webpack.js +0 -14
  216. package/dist/config/overwrite.d.ts +0 -3
  217. package/dist/config/overwrite.js +0 -14
  218. package/dist/config/pixel-format.d.ts +0 -8
  219. package/dist/config/pixel-format.js +0 -38
  220. package/dist/config/preview-server.d.ts +0 -2
  221. package/dist/config/preview-server.js +0 -20
  222. package/dist/config/prores-profile.d.ts +0 -7
  223. package/dist/config/prores-profile.js +0 -32
  224. package/dist/config/quality.d.ts +0 -2
  225. package/dist/config/quality.js +0 -17
  226. package/dist/config/scale.d.ts +0 -3
  227. package/dist/config/scale.js +0 -15
  228. package/dist/config/still-frame.d.ts +0 -2
  229. package/dist/config/still-frame.js +0 -12
  230. package/dist/config/timeout.d.ts +0 -2
  231. package/dist/config/timeout.js +0 -17
  232. package/dist/config/webpack-caching.d.ts +0 -3
  233. package/dist/config/webpack-caching.js +0 -16
  234. package/dist/feature-flags.d.ts +0 -1
  235. package/dist/feature-flags.js +0 -7
  236. package/dist/is-audio-codec.d.ts +0 -2
  237. package/dist/is-audio-codec.js +0 -7
  238. package/dist/perf/index.d.ts +0 -5
  239. package/dist/perf/index.js +0 -35
  240. package/dist/timeline-inout-position-state.d.ts +0 -12
  241. package/dist/timeline-inout-position-state.js +0 -23
  242. package/dist/timeout.d.ts +0 -2
  243. package/dist/timeout.js +0 -12
  244. package/dist/validation/validate-every-nth-frame.d.ts +0 -1
  245. package/dist/validation/validate-every-nth-frame.js +0 -21
  246. package/dist/validation/validate-frame.d.ts +0 -1
  247. package/dist/validation/validate-frame.js +0 -24
  248. package/dist/validation/validate-image-format.d.ts +0 -2
  249. package/dist/validation/validate-image-format.js +0 -9
  250. package/dist/validation/validate-opengl-renderer.d.ts +0 -4
  251. package/dist/validation/validate-opengl-renderer.js +0 -14
  252. package/dist/validation/validate-quality.d.ts +0 -1
  253. package/dist/validation/validate-quality.js +0 -21
  254. package/ensure-correct-version.js +0 -24
File without changes
File without changes
File without changes
package/dist/index.d.ts CHANGED
@@ -56,7 +56,8 @@ export * from './internals';
56
56
  export * from './interpolate';
57
57
  export { interpolateColors } from './interpolate-colors';
58
58
  export { Loop } from './loop';
59
- export * from './random';
59
+ export { prefetch } from './prefetch';
60
+ export { random, RandomSeed } from './random';
60
61
  export { registerRoot } from './register-root';
61
62
  export { Sequence } from './Sequence';
62
63
  export { Series } from './series';
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.useCurrentFrame = exports.staticFile = exports.Series = exports.Sequence = exports.registerRoot = exports.Loop = exports.interpolateColors = exports.getInputProps = exports.Config = void 0;
17
+ exports.useCurrentFrame = exports.staticFile = exports.Series = exports.Sequence = exports.registerRoot = exports.random = exports.prefetch = exports.Loop = exports.interpolateColors = exports.getInputProps = exports.Config = void 0;
18
18
  require("./asset-types");
19
19
  const multiple_versions_warning_1 = require("./multiple-versions-warning");
20
20
  (0, multiple_versions_warning_1.checkMultipleRemotionVersions)();
@@ -37,7 +37,10 @@ var interpolate_colors_1 = require("./interpolate-colors");
37
37
  Object.defineProperty(exports, "interpolateColors", { enumerable: true, get: function () { return interpolate_colors_1.interpolateColors; } });
38
38
  var loop_1 = require("./loop");
39
39
  Object.defineProperty(exports, "Loop", { enumerable: true, get: function () { return loop_1.Loop; } });
40
- __exportStar(require("./random"), exports);
40
+ var prefetch_1 = require("./prefetch");
41
+ Object.defineProperty(exports, "prefetch", { enumerable: true, get: function () { return prefetch_1.prefetch; } });
42
+ var random_1 = require("./random");
43
+ Object.defineProperty(exports, "random", { enumerable: true, get: function () { return random_1.random; } });
41
44
  var register_root_1 = require("./register-root");
42
45
  Object.defineProperty(exports, "registerRoot", { enumerable: true, get: function () { return register_root_1.registerRoot; } });
43
46
  var Sequence_1 = require("./Sequence");
@@ -79,6 +79,12 @@ export declare const Internals: {
79
79
  }>;
80
80
  CanUseRemotionHooks: import("react").Context<boolean>;
81
81
  enableLegacyRemotionConfig: () => void;
82
+ PrefetchProvider: import("react").FC<{
83
+ children: import("react").ReactNode;
84
+ }>;
85
+ DurationsContextProvider: import("react").FC<{
86
+ children: import("react").ReactNode;
87
+ }>;
82
88
  };
83
89
  declare type WebpackConfiguration = Configuration;
84
90
  declare type WebpackOverrideFn = (currentConfiguration: WebpackConfiguration) => WebpackConfiguration;
package/dist/internals.js CHANGED
@@ -33,6 +33,7 @@ const delay_render_1 = require("./delay-render");
33
33
  const get_environment_1 = require("./get-environment");
34
34
  const get_preview_dom_element_1 = require("./get-preview-dom-element");
35
35
  const portal_node_1 = require("./portal-node");
36
+ const prefetch_state_1 = require("./prefetch-state");
36
37
  const register_root_1 = require("./register-root");
37
38
  const RemotionRoot_1 = require("./RemotionRoot");
38
39
  const Sequence_1 = require("./Sequence");
@@ -47,6 +48,7 @@ const validate_dimensions_1 = require("./validation/validate-dimensions");
47
48
  const validate_duration_in_frames_1 = require("./validation/validate-duration-in-frames");
48
49
  const validate_fps_1 = require("./validation/validate-fps");
49
50
  const validate_offthreadvideo_image_format_1 = require("./validation/validate-offthreadvideo-image-format");
51
+ const duration_state_1 = require("./video/duration-state");
50
52
  const volume_position_state_1 = require("./volume-position-state");
51
53
  const wrap_remotion_context_1 = require("./wrap-remotion-context");
52
54
  const Timeline = TimelinePosition;
@@ -88,4 +90,6 @@ exports.Internals = {
88
90
  CanUseRemotionHooksProvider: CanUseRemotionHooks_1.CanUseRemotionHooksProvider,
89
91
  CanUseRemotionHooks: CanUseRemotionHooks_1.CanUseRemotionHooks,
90
92
  enableLegacyRemotionConfig: config_1.enableLegacyRemotionConfig,
93
+ PrefetchProvider: prefetch_state_1.PrefetchProvider,
94
+ DurationsContextProvider: duration_state_1.DurationsContextProvider,
91
95
  };
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/nonce.d.ts CHANGED
File without changes
package/dist/nonce.js CHANGED
File without changes
File without changes
@@ -28,6 +28,10 @@ const playAndHandleNotAllowedError = (mediaRef, mediaType) => {
28
28
  if (err.message.includes('request was interrupted by a new load request')) {
29
29
  return;
30
30
  }
31
+ // Audio tag got unmounted
32
+ if (err.message.includes('because the media was removed from the document')) {
33
+ return;
34
+ }
31
35
  console.log(`Could not play ${mediaType} due to following error: `, err);
32
36
  if (!current.muted) {
33
37
  console.log(`The video will be muted and we'll retry playing it.`, err);
File without changes
File without changes
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ declare type Value = Record<string, string>;
3
+ export declare const PreloadContext: React.Context<Value>;
4
+ export declare const setPreloads: (updater: (p: Value) => Value) => void;
5
+ export declare const PrefetchProvider: React.FC<{
6
+ children: React.ReactNode;
7
+ }>;
8
+ export {};
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrefetchProvider = exports.setPreloads = exports.PreloadContext = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ exports.PreloadContext = (0, react_1.createContext)({});
7
+ let preloads = {};
8
+ let updaters = [];
9
+ const setPreloads = (updater) => {
10
+ preloads = updater(preloads);
11
+ updaters.forEach((u) => u());
12
+ };
13
+ exports.setPreloads = setPreloads;
14
+ const PrefetchProvider = ({ children }) => {
15
+ const [_preloads, _setPreloads] = (0, react_1.useState)(() => preloads);
16
+ (0, react_1.useEffect)(() => {
17
+ const updaterFunction = () => {
18
+ _setPreloads(preloads);
19
+ };
20
+ updaters.push(updaterFunction);
21
+ return () => {
22
+ updaters = updaters.filter((u) => u !== updaterFunction);
23
+ };
24
+ }, []);
25
+ return ((0, jsx_runtime_1.jsx)(exports.PreloadContext.Provider, { value: _preloads, children: children }));
26
+ };
27
+ exports.PrefetchProvider = PrefetchProvider;
@@ -0,0 +1,9 @@
1
+ export declare const usePreload: (src: string) => string;
2
+ declare type FetchAndPreload = {
3
+ free: () => void;
4
+ waitUntilDone: () => Promise<string>;
5
+ };
6
+ export declare const prefetch: (src: string, options?: {
7
+ method?: 'blob-url' | 'base64';
8
+ }) => FetchAndPreload;
9
+ export {};
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.prefetch = exports.usePreload = void 0;
4
+ const react_1 = require("react");
5
+ const get_environment_1 = require("./get-environment");
6
+ const prefetch_state_1 = require("./prefetch-state");
7
+ const usePreload = (src) => {
8
+ var _a;
9
+ const preloads = (0, react_1.useContext)(prefetch_state_1.PreloadContext);
10
+ return (_a = preloads[src]) !== null && _a !== void 0 ? _a : src;
11
+ };
12
+ exports.usePreload = usePreload;
13
+ const blobToBase64 = function (blob) {
14
+ const reader = new FileReader();
15
+ return new Promise((resolve, reject) => {
16
+ reader.onload = function () {
17
+ const dataUrl = reader.result;
18
+ resolve(dataUrl);
19
+ };
20
+ reader.onerror = (err) => {
21
+ return reject(err);
22
+ };
23
+ reader.readAsDataURL(blob);
24
+ });
25
+ };
26
+ const prefetch = (src, options) => {
27
+ var _a;
28
+ const method = (_a = options === null || options === void 0 ? void 0 : options.method) !== null && _a !== void 0 ? _a : 'blob-url';
29
+ if ((0, get_environment_1.getRemotionEnvironment)() === 'rendering') {
30
+ return {
31
+ free: () => undefined,
32
+ waitUntilDone: () => Promise.resolve(src),
33
+ };
34
+ }
35
+ let canceled = false;
36
+ let objectUrl = null;
37
+ let resolve = () => undefined;
38
+ let reject = () => undefined;
39
+ const waitUntilDone = new Promise((res, rej) => {
40
+ resolve = res;
41
+ reject = rej;
42
+ });
43
+ const controller = new AbortController();
44
+ let canBeAborted = true;
45
+ fetch(src, {
46
+ signal: controller.signal,
47
+ })
48
+ .then((res) => {
49
+ canBeAborted = false;
50
+ if (canceled) {
51
+ return null;
52
+ }
53
+ if (!res.ok) {
54
+ throw new Error(`HTTP error, status = ${res.status}`);
55
+ }
56
+ return res.blob();
57
+ })
58
+ .then((buf) => {
59
+ if (!buf) {
60
+ return;
61
+ }
62
+ if (method === 'base64') {
63
+ return blobToBase64(buf);
64
+ }
65
+ return URL.createObjectURL(buf);
66
+ })
67
+ .then((url) => {
68
+ if (canceled) {
69
+ return;
70
+ }
71
+ objectUrl = url;
72
+ (0, prefetch_state_1.setPreloads)((p) => ({
73
+ ...p,
74
+ [src]: objectUrl,
75
+ }));
76
+ resolve(objectUrl);
77
+ })
78
+ .catch((err) => {
79
+ reject(err);
80
+ });
81
+ return {
82
+ free: () => {
83
+ if (objectUrl) {
84
+ if (method === 'blob-url') {
85
+ URL.revokeObjectURL(objectUrl);
86
+ }
87
+ (0, prefetch_state_1.setPreloads)((p) => {
88
+ const copy = { ...p };
89
+ delete copy[src];
90
+ return copy;
91
+ });
92
+ }
93
+ else {
94
+ canceled = true;
95
+ if (canBeAborted) {
96
+ try {
97
+ controller.abort();
98
+ }
99
+ catch (e) { }
100
+ }
101
+ }
102
+ },
103
+ waitUntilDone: () => {
104
+ return waitUntilDone;
105
+ },
106
+ };
107
+ };
108
+ exports.prefetch = prefetch;
package/dist/random.d.ts CHANGED
@@ -1,6 +1,7 @@
1
+ export declare type RandomSeed = number | string | null;
1
2
  /**
2
3
  * A deterministic pseudo-random number generator.
3
4
  * Pass in the same seed and get the same pseudorandom number.
4
5
  * See: https://remotion.dev/docs/random
5
6
  */
6
- export declare const random: (seed: number | string | null, dummy?: unknown) => number;
7
+ export declare const random: (seed: RandomSeed, dummy?: unknown) => number;
package/dist/random.js CHANGED
File without changes
File without changes
@@ -4,6 +4,9 @@ exports.waitForRoot = exports.getRoot = exports.registerRoot = void 0;
4
4
  let Root = null;
5
5
  let listeners = [];
6
6
  const registerRoot = (comp) => {
7
+ if (!comp) {
8
+ throw new Error(`You must pass a React component to registerRoot(), but ${JSON.stringify(comp)} was passed.`);
9
+ }
7
10
  if (Root) {
8
11
  throw new Error('registerRoot() was called more than once.');
9
12
  }
@@ -1,2 +1,2 @@
1
1
  import React from 'react';
2
- export declare const flattenChildren: (children: React.ReactNode) => (React.ReactChild | React.ReactFragment | React.ReactPortal)[];
2
+ export declare const flattenChildren: (children: React.ReactNode) => (string | number | React.ReactElement<any, string | React.JSXElementConstructor<any>> | React.ReactFragment | React.ReactPortal)[];
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/truthy.d.ts CHANGED
File without changes
package/dist/truthy.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,8 +1,10 @@
1
1
  import type { RefObject } from 'react';
2
- export declare const useMediaPlayback: ({ mediaRef, src, mediaType, playbackRate: localPlaybackRate, onlyWarnForMediaSeekingError, }: {
2
+ export declare const DEFAULT_ACCEPTABLE_TIMESHIFT = 0.45;
3
+ export declare const useMediaPlayback: ({ mediaRef, src, mediaType, playbackRate: localPlaybackRate, onlyWarnForMediaSeekingError, acceptableTimeshift, }: {
3
4
  mediaRef: RefObject<HTMLVideoElement | HTMLAudioElement>;
4
5
  src: string | undefined;
5
6
  mediaType: 'audio' | 'video';
6
7
  playbackRate: number;
7
8
  onlyWarnForMediaSeekingError: boolean;
9
+ acceptableTimeshift: number;
8
10
  }) => void;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useMediaPlayback = void 0;
3
+ exports.useMediaPlayback = exports.DEFAULT_ACCEPTABLE_TIMESHIFT = void 0;
4
4
  const react_1 = require("react");
5
5
  const use_audio_frame_1 = require("./audio/use-audio-frame");
6
6
  const play_and_handle_not_allowed_error_1 = require("./play-and-handle-not-allowed-error");
@@ -9,7 +9,8 @@ const use_current_frame_1 = require("./use-current-frame");
9
9
  const use_video_config_1 = require("./use-video-config");
10
10
  const get_current_time_1 = require("./video/get-current-time");
11
11
  const warn_about_non_seekable_media_1 = require("./warn-about-non-seekable-media");
12
- const useMediaPlayback = ({ mediaRef, src, mediaType, playbackRate: localPlaybackRate, onlyWarnForMediaSeekingError, }) => {
12
+ exports.DEFAULT_ACCEPTABLE_TIMESHIFT = 0.45;
13
+ const useMediaPlayback = ({ mediaRef, src, mediaType, playbackRate: localPlaybackRate, onlyWarnForMediaSeekingError, acceptableTimeshift, }) => {
13
14
  const { playbackRate: globalPlaybackRate } = (0, react_1.useContext)(timeline_position_state_1.TimelineContext);
14
15
  const frame = (0, use_current_frame_1.useCurrentFrame)();
15
16
  const absoluteFrame = (0, timeline_position_state_1.useTimelinePosition)();
@@ -42,7 +43,7 @@ const useMediaPlayback = ({ mediaRef, src, mediaType, playbackRate: localPlaybac
42
43
  });
43
44
  const isTime = mediaRef.current.currentTime;
44
45
  const timeShift = Math.abs(shouldBeTime - isTime);
45
- if (timeShift > 0.45 && !mediaRef.current.ended) {
46
+ if (timeShift > acceptableTimeshift && !mediaRef.current.ended) {
46
47
  // If scrubbing around, adjust timing
47
48
  // or if time shift is bigger than 0.2sec
48
49
  mediaRef.current.currentTime = shouldBeTime;
@@ -70,6 +71,7 @@ const useMediaPlayback = ({ mediaRef, src, mediaType, playbackRate: localPlaybac
70
71
  mediaStartsAt,
71
72
  localPlaybackRate,
72
73
  onlyWarnForMediaSeekingError,
74
+ acceptableTimeshift,
73
75
  ]);
74
76
  };
75
77
  exports.useMediaPlayback = useMediaPlayback;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/use-video.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "3.2.21";
1
+ export declare const VERSION = "3.2.23-ensure-ffmpeg.123+3ffa18f9e";
package/dist/version.js CHANGED
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  // Automatically generated on publish
5
- exports.VERSION = '3.2.21';
5
+ exports.VERSION = '3.2.23-ensure-ffmpeg.123+3ffa18f9e';
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
2
  import type { OffthreadVideoProps, RemotionMainVideoProps } from './props';
3
- export declare const OffthreadVideo: React.FC<OffthreadVideoProps & RemotionMainVideoProps>;
3
+ export declare const OffthreadVideo: React.FC<Omit<OffthreadVideoProps & RemotionMainVideoProps, 'loop'>>;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OffthreadVideo = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
5
6
  const get_environment_1 = require("../get-environment");
6
7
  const Sequence_1 = require("../Sequence");
7
8
  const validate_media_props_1 = require("../validate-media-props");
@@ -11,6 +12,7 @@ const OffthreadVideoForRendering_1 = require("./OffthreadVideoForRendering");
11
12
  const VideoForDevelopment_1 = require("./VideoForDevelopment");
12
13
  const OffthreadVideo = (props) => {
13
14
  const { startFrom, endAt, ...otherProps } = props;
15
+ const onDuration = (0, react_1.useCallback)(() => undefined, []);
14
16
  if (typeof startFrom !== 'undefined' || typeof endAt !== 'undefined') {
15
17
  (0, validate_start_from_props_1.validateStartFromProps)(startFrom, endAt);
16
18
  const startFromFrameNo = startFrom !== null && startFrom !== void 0 ? startFrom : 0;
@@ -22,6 +24,6 @@ const OffthreadVideo = (props) => {
22
24
  if ((0, get_environment_1.getRemotionEnvironment)() === 'rendering') {
23
25
  return (0, jsx_runtime_1.jsx)(OffthreadVideoForRendering_1.OffthreadVideoForRendering, { ...otherProps });
24
26
  }
25
- return (0, jsx_runtime_1.jsx)(VideoForDevelopment_1.VideoForDevelopment, { onlyWarnForMediaSeekingError: true, ...otherProps });
27
+ return ((0, jsx_runtime_1.jsx)(VideoForDevelopment_1.VideoForDevelopment, { onDuration: onDuration, onlyWarnForMediaSeekingError: true, ...otherProps }));
26
28
  };
27
29
  exports.OffthreadVideo = OffthreadVideo;
File without changes
File without changes
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { RemotionMainVideoProps } from './props';
3
- export declare const Video: React.ForwardRefExoticComponent<Pick<Omit<React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>, "onEnded" | "autoPlay" | "controls" | "loop"> & {
3
+ export declare const Video: React.ForwardRefExoticComponent<Pick<Omit<React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>, "nonce" | "onEnded" | "autoPlay" | "controls"> & {
4
4
  volume?: import("../volume-prop").VolumeProp | undefined;
5
5
  playbackRate?: number | undefined;
6
- } & RemotionMainVideoProps, "id" | "height" | "width" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "lang" | "placeholder" | "slot" | "spellCheck" | "style" | "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" | "src" | "volume" | "playbackRate" | "controlsList" | "crossOrigin" | "mediaGroup" | "muted" | "playsInline" | "preload" | "poster" | "disablePictureInPicture" | "disableRemotePlayback" | keyof RemotionMainVideoProps> & React.RefAttributes<HTMLVideoElement>>;
6
+ acceptableTimeshift?: number | undefined;
7
+ } & RemotionMainVideoProps, "id" | "height" | "width" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "lang" | "placeholder" | "slot" | "spellCheck" | "style" | "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" | "src" | "volume" | "playbackRate" | "controlsList" | "crossOrigin" | "loop" | "mediaGroup" | "muted" | "playsInline" | "preload" | "poster" | "disablePictureInPicture" | "disableRemotePlayback" | "acceptableTimeshift" | keyof RemotionMainVideoProps> & React.RefAttributes<HTMLVideoElement>>;