remotion 4.0.86 → 4.0.87

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.
@@ -14,10 +14,10 @@ type AddBlock = (block: Block) => {
14
14
  unblock: () => void;
15
15
  };
16
16
  type BufferManager = {
17
- blocks: Block[];
18
17
  addBlock: AddBlock;
19
18
  listenForBuffering: ListenForBuffering;
20
19
  listenForResume: ListenForResume;
20
+ buffering: React.MutableRefObject<boolean>;
21
21
  };
22
22
  export declare const BufferingContextReact: React.Context<BufferManager | null>;
23
23
  export declare const BufferingProvider: React.FC<{
@@ -26,50 +26,50 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.BufferingProvider = exports.BufferingContextReact = void 0;
27
27
  const jsx_runtime_1 = require("react/jsx-runtime");
28
28
  const react_1 = __importStar(require("react"));
29
- const createBufferManager = () => {
30
- let blocks = [];
31
- let onBufferingCallback = [];
32
- let onResumeCallback = [];
33
- const addBlock = (block) => {
34
- blocks.push(block);
35
- onBufferingCallback.forEach((callback) => callback());
29
+ const useBufferManager = () => {
30
+ const [blocks, setBlocks] = (0, react_1.useState)([]);
31
+ const [onBufferingCallbacks, setOnBufferingCallbacks] = (0, react_1.useState)([]);
32
+ const [onResumeCallbacks, setOnResumeCallbacks] = (0, react_1.useState)([]);
33
+ const buffering = (0, react_1.useRef)(false);
34
+ const addBlock = (0, react_1.useCallback)((block) => {
35
+ setBlocks((b) => [...b, block]);
36
36
  return {
37
37
  unblock: () => {
38
- blocks = blocks.filter((b) => b !== block);
39
- if (blocks.length === 0) {
40
- onResumeCallback.forEach((callback) => callback());
41
- }
38
+ setBlocks((b) => b.filter((bx) => bx !== block));
42
39
  },
43
40
  };
44
- };
45
- const listenForBuffering = (callback) => {
46
- onBufferingCallback.push(callback);
41
+ }, []);
42
+ const listenForBuffering = (0, react_1.useCallback)((callback) => {
43
+ setOnBufferingCallbacks((c) => [...c, callback]);
47
44
  return {
48
45
  remove: () => {
49
- onBufferingCallback = onBufferingCallback.filter((c) => c !== callback);
46
+ setOnBufferingCallbacks((c) => c.filter((cb) => cb !== callback));
50
47
  },
51
48
  };
52
- };
53
- const listenForResume = (callback) => {
54
- onResumeCallback.push(callback);
49
+ }, []);
50
+ const listenForResume = (0, react_1.useCallback)((callback) => {
51
+ setOnResumeCallbacks((c) => [...c, callback]);
55
52
  return {
56
53
  remove: () => {
57
- onResumeCallback = onResumeCallback.filter((c) => c !== callback);
54
+ setOnResumeCallbacks((c) => c.filter((cb) => cb !== callback));
58
55
  },
59
56
  };
60
- };
61
- return {
62
- blocks,
63
- addBlock,
64
- listenForBuffering,
65
- listenForResume,
66
- };
57
+ }, []);
58
+ (0, react_1.useEffect)(() => {
59
+ if (blocks.length > 0) {
60
+ onBufferingCallbacks.forEach((c) => c());
61
+ }
62
+ else {
63
+ onResumeCallbacks.forEach((c) => c());
64
+ }
65
+ }, [blocks, onBufferingCallbacks, onResumeCallbacks]);
66
+ return (0, react_1.useMemo)(() => {
67
+ return { addBlock, listenForBuffering, listenForResume, buffering };
68
+ }, [addBlock, buffering, listenForBuffering, listenForResume]);
67
69
  };
68
70
  exports.BufferingContextReact = react_1.default.createContext(null);
69
71
  const BufferingProvider = ({ children }) => {
70
- const [bufferManager] = (0, react_1.useState)(() => {
71
- return createBufferManager();
72
- });
72
+ const bufferManager = useBufferManager();
73
73
  return ((0, jsx_runtime_1.jsx)(exports.BufferingContextReact.Provider, { value: bufferManager, children: children }));
74
74
  };
75
75
  exports.BufferingProvider = BufferingProvider;
@@ -8,13 +8,13 @@ const useBuffer = () => {
8
8
  if (!buffer) {
9
9
  throw new TypeError('Can only use useBuffer() inside a Remotion composition');
10
10
  }
11
- return {
11
+ return (0, react_1.useMemo)(() => ({
12
12
  delayPlayback: () => {
13
13
  const { unblock } = buffer.addBlock({
14
14
  id: String(Math.random()),
15
15
  });
16
16
  return { unblock };
17
17
  },
18
- };
18
+ }), [buffer]);
19
19
  };
20
20
  exports.useBuffer = useBuffer;
@@ -1 +1 @@
1
- export declare const VERSION = "4.0.86";
1
+ export declare const VERSION = "4.0.87";
@@ -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 = '4.0.86';
5
+ exports.VERSION = '4.0.87';
@@ -14,7 +14,7 @@ const seekToTime = (element, desiredTime) => {
14
14
  }
15
15
  setTimeout(() => {
16
16
  resolve(metadata.mediaTime);
17
- }, displayIn + 50);
17
+ }, displayIn + 150);
18
18
  });
19
19
  });
20
20
  const waitForSeekedEvent = new Promise((resolve) => {
@@ -132,7 +132,7 @@ function truthy(value) {
132
132
  }
133
133
 
134
134
  // Automatically generated on publish
135
- const VERSION = '4.0.86';
135
+ const VERSION = '4.0.87';
136
136
 
137
137
  const checkMultipleRemotionVersions = () => {
138
138
  if (typeof globalThis === 'undefined') {
@@ -4783,7 +4783,7 @@ const seekToTime = (element, desiredTime) => {
4783
4783
  }
4784
4784
  setTimeout(() => {
4785
4785
  resolve(metadata.mediaTime);
4786
- }, displayIn + 50);
4786
+ }, displayIn + 150);
4787
4787
  });
4788
4788
  });
4789
4789
  const waitForSeekedEvent = new Promise((resolve) => {
@@ -1,4 +1,4 @@
1
1
  // Automatically generated on publish
2
- const VERSION = '4.0.86';
2
+ const VERSION = '4.0.87';
3
3
 
4
4
  export { VERSION };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remotion",
3
- "version": "4.0.86",
3
+ "version": "4.0.87",
4
4
  "description": "Render videos in React",
5
5
  "main": "dist/cjs/index.js",
6
6
  "types": "dist/cjs/index.d.ts",