remotion 3.2.20 → 3.2.22

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.
@@ -1,5 +1,5 @@
1
- remotion:build: cache hit, replaying output 6bde494b4791357c
2
- remotion:build: 
3
- remotion:build: > remotion@3.2.18 build /Users/jonathanburger/remotion/packages/core
4
- remotion:build: > tsc -d
5
- remotion:build: 
1
+ remotion:build: cache hit, replaying output 9c88e751e5828f60
2
+ remotion:build: 
3
+ remotion:build: > remotion@3.2.21 build /Users/jonathanburger/remotion/packages/core
4
+ remotion:build: > tsc -d
5
+ remotion:build: 
package/dist/Img.js CHANGED
@@ -4,6 +4,7 @@ exports.Img = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const delay_render_1 = require("./delay-render");
7
+ const get_environment_1 = require("./get-environment");
7
8
  const ImgRefForwarding = ({ onError, ...props }, ref) => {
8
9
  const imageRef = (0, react_1.useRef)(null);
9
10
  (0, react_1.useImperativeHandle)(ref, () => {
@@ -19,27 +20,30 @@ const ImgRefForwarding = ({ onError, ...props }, ref) => {
19
20
  }
20
21
  }, [onError]);
21
22
  // If image source switches, make new handle
22
- (0, react_1.useLayoutEffect)(() => {
23
- if (process.env.NODE_ENV === 'test') {
24
- return;
25
- }
26
- const newHandle = (0, delay_render_1.delayRender)('Loading <Img> with src=' + props.src);
27
- const { current } = imageRef;
28
- const didLoad = () => {
29
- (0, delay_render_1.continueRender)(newHandle);
30
- };
31
- if (current === null || current === void 0 ? void 0 : current.complete) {
32
- (0, delay_render_1.continueRender)(newHandle);
33
- }
34
- else {
35
- current === null || current === void 0 ? void 0 : current.addEventListener('load', didLoad, { once: true });
36
- }
37
- // If tag gets unmounted, clear pending handles because image is not going to load
38
- return () => {
39
- current === null || current === void 0 ? void 0 : current.removeEventListener('load', didLoad);
40
- (0, delay_render_1.continueRender)(newHandle);
41
- };
42
- }, [props.src]);
23
+ if ((0, get_environment_1.getRemotionEnvironment)() === 'rendering') {
24
+ // eslint-disable-next-line react-hooks/rules-of-hooks
25
+ (0, react_1.useLayoutEffect)(() => {
26
+ if (process.env.NODE_ENV === 'test') {
27
+ return;
28
+ }
29
+ const newHandle = (0, delay_render_1.delayRender)('Loading <Img> with src=' + props.src);
30
+ const { current } = imageRef;
31
+ const didLoad = () => {
32
+ (0, delay_render_1.continueRender)(newHandle);
33
+ };
34
+ if (current === null || current === void 0 ? void 0 : current.complete) {
35
+ (0, delay_render_1.continueRender)(newHandle);
36
+ }
37
+ else {
38
+ current === null || current === void 0 ? void 0 : current.addEventListener('load', didLoad, { once: true });
39
+ }
40
+ // If tag gets unmounted, clear pending handles because image is not going to load
41
+ return () => {
42
+ current === null || current === void 0 ? void 0 : current.removeEventListener('load', didLoad);
43
+ (0, delay_render_1.continueRender)(newHandle);
44
+ };
45
+ }, [props.src]);
46
+ }
43
47
  return (0, jsx_runtime_1.jsx)("img", { ...props, ref: imageRef, onError: didGetError });
44
48
  };
45
49
  exports.Img = (0, react_1.forwardRef)(ImgRefForwarding);
package/dist/config.d.ts CHANGED
@@ -203,6 +203,14 @@ export declare type ConfigType = {
203
203
  * See https://avpres.net/FFmpeg/im_ProRes.html for meaning of possible values.
204
204
  */
205
205
  readonly setProResProfile: (profile: '4444-xq' | '4444' | 'hq' | 'standard' | 'light' | 'proxy' | undefined) => void;
206
+ /**
207
+ * Override the arguments that Remotion passes to FFMPEG.
208
+ * Consult https://remotion.dev/docs/renderer/render-media#ffmpegoverride before using this feature.
209
+ */
210
+ readonly overrideFfmpegCommand: (command: (info: {
211
+ type: 'pre-stitcher' | 'stitcher';
212
+ args: string[];
213
+ }) => string[]) => void;
206
214
  };
207
215
  };
208
216
  export type { Concurrency, WebpackConfiguration, WebpackOverrideFn };
@@ -0,0 +1,7 @@
1
+ export declare const usePreload: (src: string) => string;
2
+ declare type FetchAndPreload = {
3
+ unpreload: () => void;
4
+ waitForDone: () => Promise<string>;
5
+ };
6
+ export declare const prefetch: (src: string) => FetchAndPreload;
7
+ export {};
@@ -0,0 +1,86 @@
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 preload_state_1 = require("./preload-state");
7
+ const usePreload = (src) => {
8
+ var _a;
9
+ const { preloads } = (0, react_1.useContext)(preload_state_1.PreloadContext);
10
+ return (_a = preloads[src]) !== null && _a !== void 0 ? _a : src;
11
+ };
12
+ exports.usePreload = usePreload;
13
+ const prefetch = (src) => {
14
+ if ((0, get_environment_1.getRemotionEnvironment)() === 'rendering') {
15
+ return {
16
+ unpreload: () => undefined,
17
+ waitForDone: () => Promise.resolve(src),
18
+ };
19
+ }
20
+ let canceled = false;
21
+ let objectUrl = null;
22
+ let resolve = () => undefined;
23
+ let reject = () => undefined;
24
+ const waitUntilDone = new Promise((res, rej) => {
25
+ resolve = res;
26
+ reject = rej;
27
+ });
28
+ const controller = new AbortController();
29
+ let canBeAborted = true;
30
+ fetch(src, {
31
+ signal: controller.signal,
32
+ })
33
+ .then((res) => {
34
+ canBeAborted = false;
35
+ if (canceled) {
36
+ return null;
37
+ }
38
+ if (!res.ok) {
39
+ throw new Error(`HTTP error, status = ${res.status}`);
40
+ }
41
+ return res.blob();
42
+ })
43
+ .then((buf) => {
44
+ var _a;
45
+ if (canceled) {
46
+ return;
47
+ }
48
+ if (buf) {
49
+ objectUrl = URL.createObjectURL(buf);
50
+ (_a = preload_state_1.preloadRef.current) === null || _a === void 0 ? void 0 : _a.setPreloads((p) => ({
51
+ ...p,
52
+ [src]: objectUrl,
53
+ }));
54
+ resolve(objectUrl);
55
+ }
56
+ })
57
+ .catch((err) => {
58
+ reject(err);
59
+ });
60
+ return {
61
+ unpreload: () => {
62
+ var _a;
63
+ if (objectUrl) {
64
+ URL.revokeObjectURL(objectUrl);
65
+ (_a = preload_state_1.preloadRef.current) === null || _a === void 0 ? void 0 : _a.setPreloads((p) => {
66
+ const copy = { ...p };
67
+ delete copy[src];
68
+ return copy;
69
+ });
70
+ }
71
+ else {
72
+ canceled = true;
73
+ if (canBeAborted) {
74
+ try {
75
+ controller.abort();
76
+ }
77
+ catch (e) { }
78
+ }
79
+ }
80
+ },
81
+ waitForDone: () => {
82
+ return waitUntilDone;
83
+ },
84
+ };
85
+ };
86
+ exports.prefetch = prefetch;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ declare type Value = {
3
+ preloads: Record<string, string>;
4
+ setPreloads: React.Dispatch<React.SetStateAction<Record<string, string>>>;
5
+ };
6
+ export declare const preloadRef: React.RefObject<{
7
+ setPreloads: React.Dispatch<React.SetStateAction<Record<string, string>>>;
8
+ }>;
9
+ export declare const PreloadContext: React.Context<Value>;
10
+ export declare const PreloadProvider: React.FC<{
11
+ children: React.ReactNode;
12
+ }>;
13
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PreloadProvider = exports.PreloadContext = exports.preloadRef = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ exports.preloadRef = (0, react_1.createRef)();
7
+ exports.PreloadContext = (0, react_1.createContext)({
8
+ preloads: {},
9
+ setPreloads: () => undefined,
10
+ });
11
+ const PreloadProvider = ({ children }) => {
12
+ const [preloads, setPreloads] = (0, react_1.useState)({});
13
+ const value = (0, react_1.useMemo)(() => {
14
+ return {
15
+ preloads,
16
+ setPreloads,
17
+ };
18
+ }, [preloads]);
19
+ (0, react_1.useImperativeHandle)(exports.preloadRef, () => {
20
+ return {
21
+ setPreloads,
22
+ };
23
+ });
24
+ return ((0, jsx_runtime_1.jsx)(exports.PreloadContext.Provider, { value: value, children: children }));
25
+ };
26
+ exports.PreloadProvider = PreloadProvider;
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "3.2.20";
1
+ export declare const VERSION = "3.2.22";
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.20';
5
+ exports.VERSION = '3.2.22';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remotion",
3
- "version": "3.2.20",
3
+ "version": "3.2.22",
4
4
  "description": "Render videos in React",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -54,5 +54,5 @@
54
54
  "publishConfig": {
55
55
  "access": "public"
56
56
  },
57
- "gitHead": "640f36c0c2d9fb1b7768925bf9d64840cbc31bc6"
57
+ "gitHead": "1c35638566717760bb394e0748b088cea15faff4"
58
58
  }