remotion 4.0.524 → 4.0.526

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 (45) hide show
  1. package/dist/cjs/AbsoluteFill.d.ts +0 -1
  2. package/dist/cjs/Img.d.ts +2 -0
  3. package/dist/cjs/Img.js +23 -18
  4. package/dist/cjs/Interactive.d.ts +0 -1
  5. package/dist/cjs/TimelineContext.d.ts +1 -0
  6. package/dist/cjs/TimelineContext.js +1 -0
  7. package/dist/cjs/absolute-src.js +1 -1
  8. package/dist/cjs/animated-image/resolve-image-source.js +1 -1
  9. package/dist/cjs/audio/AudioForPreview.js +9 -6
  10. package/dist/cjs/audio/AudioForRendering.js +11 -8
  11. package/dist/cjs/audio/shared-audio-tags.js +2 -2
  12. package/dist/cjs/audio/use-media-audio-state.d.ts +17 -0
  13. package/dist/cjs/audio/use-media-audio-state.js +27 -0
  14. package/dist/cjs/canvas-image/CanvasImage.d.ts +1 -0
  15. package/dist/cjs/canvas-image/CanvasImage.js +11 -6
  16. package/dist/cjs/canvas-image/props.d.ts +1 -0
  17. package/dist/cjs/delay-render.js +1 -1
  18. package/dist/cjs/font-face-registry.d.ts +19 -0
  19. package/dist/cjs/font-face-registry.js +48 -0
  20. package/dist/cjs/freeze.js +1 -0
  21. package/dist/cjs/interactivity-schema.d.ts +1 -2
  22. package/dist/cjs/interactivity-schema.js +0 -1
  23. package/dist/cjs/internals.d.ts +6 -1
  24. package/dist/cjs/internals.js +3 -0
  25. package/dist/cjs/no-react.d.ts +3 -0
  26. package/dist/cjs/no-react.js +4 -0
  27. package/dist/cjs/timeline-position-state.d.ts +1 -0
  28. package/dist/cjs/timeline-position-state.js +5 -1
  29. package/dist/cjs/version.d.ts +1 -1
  30. package/dist/cjs/version.js +1 -1
  31. package/dist/cjs/video/OffthreadVideoForRendering.js +13 -11
  32. package/dist/cjs/video/VideoForPreview.js +8 -3
  33. package/dist/cjs/video/VideoForRendering.js +14 -11
  34. package/dist/esm/index.mjs +240 -175
  35. package/dist/esm/no-react.mjs +35 -2
  36. package/dist/esm/version.mjs +1 -1
  37. package/package.json +2 -2
  38. package/dist/cjs/audio/streaming-pitch-shifter.d.ts +0 -18
  39. package/dist/cjs/audio/streaming-pitch-shifter.js +0 -349
  40. package/dist/cjs/interpolate-translate.d.ts +0 -8
  41. package/dist/cjs/interpolate-translate.js +0 -70
  42. package/dist/cjs/sequence-field-schema.d.ts +0 -425
  43. package/dist/cjs/sequence-field-schema.js +0 -133
  44. package/dist/cjs/wrap-in-schema.d.ts +0 -20
  45. package/dist/cjs/wrap-in-schema.js +0 -203
@@ -11,6 +11,7 @@ export declare const clampFrameToCompositionRange: (frame: number, durationInFra
11
11
  export declare const useTimelineContext: () => TimelineContextValue;
12
12
  export declare const usePlaybackRate: () => PlaybackRateContextValue;
13
13
  export declare const useTimelinePosition: () => number;
14
+ export declare const useIsInsideFreeze: () => boolean;
14
15
  export declare const useAbsoluteTimelinePosition: () => number;
15
16
  export declare const useTimelineSetFrame: () => (u: import("react").SetStateAction<Record<string, number>>) => void;
16
17
  export { usePlaying } from './use-playing.js';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useBuffering = exports.usePlaying = exports.useTimelineSetFrame = exports.useAbsoluteTimelinePosition = exports.useTimelinePosition = exports.usePlaybackRate = exports.useTimelineContext = exports.clampFrameToCompositionRange = exports.getFrameForComposition = exports.getInitialFrameState = exports.persistCurrentFrame = void 0;
3
+ exports.useBuffering = exports.usePlaying = exports.useTimelineSetFrame = exports.useAbsoluteTimelinePosition = exports.useIsInsideFreeze = exports.useTimelinePosition = exports.usePlaybackRate = exports.useTimelineContext = exports.clampFrameToCompositionRange = exports.getFrameForComposition = exports.getInitialFrameState = exports.persistCurrentFrame = void 0;
4
4
  const react_1 = require("react");
5
5
  const TimelineContext_js_1 = require("./TimelineContext.js");
6
6
  const use_remotion_environment_js_1 = require("./use-remotion-environment.js");
@@ -69,6 +69,10 @@ const useTimelinePosition = () => {
69
69
  return useTimelinePositionFromContext(state);
70
70
  };
71
71
  exports.useTimelinePosition = useTimelinePosition;
72
+ const useIsInsideFreeze = () => {
73
+ return (0, exports.useTimelineContext)().isInsideFreeze;
74
+ };
75
+ exports.useIsInsideFreeze = useIsInsideFreeze;
72
76
  const useAbsoluteTimelinePosition = () => {
73
77
  const state = (0, react_1.useContext)(TimelineContext_js_1.AbsoluteTimeContext);
74
78
  if (state === null) {
@@ -3,4 +3,4 @@
3
3
  * @see [Documentation](https://remotion.dev/docs/version)
4
4
  * @returns {string} The current version of the remotion package
5
5
  */
6
- export declare const VERSION = "4.0.524";
6
+ export declare const VERSION = "4.0.526";
@@ -7,4 +7,4 @@ exports.VERSION = void 0;
7
7
  * @see [Documentation](https://remotion.dev/docs/version)
8
8
  * @returns {string} The current version of the remotion package
9
9
  */
10
- exports.VERSION = '4.0.524';
10
+ exports.VERSION = '4.0.526';
@@ -5,6 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const absolute_src_js_1 = require("../absolute-src.js");
7
7
  const use_audio_frame_js_1 = require("../audio/use-audio-frame.js");
8
+ const use_media_audio_state_js_1 = require("../audio/use-media-audio-state.js");
8
9
  const cancel_render_js_1 = require("../cancel-render.js");
9
10
  const default_css_js_1 = require("../default-css.js");
10
11
  const Img_js_1 = require("../Img.js");
@@ -15,6 +16,7 @@ const timeline_position_state_js_1 = require("../timeline-position-state.js");
15
16
  const truthy_js_1 = require("../truthy.js");
16
17
  const use_current_frame_js_1 = require("../use-current-frame.js");
17
18
  const use_delay_render_js_1 = require("../use-delay-render.js");
19
+ const use_media_enabled_js_1 = require("../use-media-enabled.js");
18
20
  const use_unsafe_video_config_js_1 = require("../use-unsafe-video-config.js");
19
21
  const volume_prop_js_1 = require("../volume-prop.js");
20
22
  const volume_safeguard_js_1 = require("../volume-safeguard.js");
@@ -42,27 +44,27 @@ crossOrigin, audioStreamIndex, preservePitch: _preservePitch, ...props }) => {
42
44
  sequenceContext === null || sequenceContext === void 0 ? void 0 : sequenceContext.relativeFrom,
43
45
  sequenceContext === null || sequenceContext === void 0 ? void 0 : sequenceContext.durationInFrames,
44
46
  ]);
45
- if (!videoConfig) {
46
- throw new Error('No video config found');
47
- }
48
47
  const volume = (0, volume_prop_js_1.evaluateVolume)({
49
48
  volume: volumeProp,
50
49
  frame: volumePropsFrame,
51
50
  mediaVolume: 1,
52
51
  });
53
52
  (0, volume_safeguard_js_1.warnAboutTooHighVolume)(volume);
53
+ const audioEnabled = (0, use_media_enabled_js_1.useAudioEnabled)();
54
+ const { shouldUseAudio } = (0, use_media_audio_state_js_1.useMediaAudioState)({
55
+ muted,
56
+ volume,
57
+ audioEnabled,
58
+ });
59
+ if (!videoConfig) {
60
+ throw new Error('No video config found');
61
+ }
54
62
  (0, react_1.useEffect)(() => {
55
63
  var _a;
56
64
  if (!src) {
57
65
  throw new Error('No src passed');
58
66
  }
59
- if (!window.remotion_audioEnabled) {
60
- return;
61
- }
62
- if (muted) {
63
- return;
64
- }
65
- if (volume <= 0) {
67
+ if (!shouldUseAudio) {
66
68
  return;
67
69
  }
68
70
  registerRenderAsset({
@@ -79,7 +81,7 @@ crossOrigin, audioStreamIndex, preservePitch: _preservePitch, ...props }) => {
79
81
  });
80
82
  return () => unregisterRenderAsset(id);
81
83
  }, [
82
- muted,
84
+ shouldUseAudio,
83
85
  src,
84
86
  registerRenderAsset,
85
87
  id,
@@ -39,6 +39,7 @@ const react_1 = __importStar(require("react"));
39
39
  const shared_audio_tags_js_1 = require("../audio/shared-audio-tags.js");
40
40
  const shared_element_source_node_js_1 = require("../audio/shared-element-source-node.js");
41
41
  const use_audio_frame_js_1 = require("../audio/use-audio-frame.js");
42
+ const use_media_audio_state_js_1 = require("../audio/use-media-audio-state.js");
42
43
  const get_cross_origin_value_js_1 = require("../get-cross-origin-value.js");
43
44
  const log_level_context_js_1 = require("../log-level-context.js");
44
45
  const playback_logging_js_1 = require("../playback-logging.js");
@@ -111,12 +112,16 @@ const VideoForDevelopmentRefForwardingFunction = (props, ref) => {
111
112
  throw new Error('acceptableTimeShift has been removed. Use acceptableTimeShiftInSeconds instead.');
112
113
  }
113
114
  const [mediaVolume] = (0, volume_position_state_js_1.useMediaVolumeState)();
114
- const [playerMuted] = (0, volume_position_state_js_1.usePlayerMutedState)();
115
115
  const userPreferredVolume = (0, volume_prop_js_1.evaluateVolume)({
116
116
  frame: volumePropFrame,
117
117
  volume,
118
118
  mediaVolume,
119
119
  });
120
+ const { isMutedForTimeline, isMutedForPlayback } = (0, use_media_audio_state_js_1.useMediaAudioState)({
121
+ muted: muted !== null && muted !== void 0 ? muted : false,
122
+ volume: userPreferredVolume,
123
+ audioEnabled: true,
124
+ });
120
125
  (0, volume_safeguard_js_1.warnAboutTooHighVolume)(userPreferredVolume);
121
126
  const getStack = (0, react_1.useCallback)(() => {
122
127
  return _remotionInternalStack !== null && _remotionInternalStack !== void 0 ? _remotionInternalStack : null;
@@ -138,7 +143,7 @@ const VideoForDevelopmentRefForwardingFunction = (props, ref) => {
138
143
  ? 'https://www.remotion.dev/docs/offthreadvideo'
139
144
  : 'https://www.remotion.dev/docs/html5-video',
140
145
  refForOutline: videoRef,
141
- muted: muted !== null && muted !== void 0 ? muted : false,
146
+ muted: isMutedForTimeline,
142
147
  });
143
148
  // putting playback before useVolume
144
149
  // because volume looks at playbackrate
@@ -284,7 +289,7 @@ const VideoForDevelopmentRefForwardingFunction = (props, ref) => {
284
289
  requestsVideoFrame: Boolean(onVideoFrame),
285
290
  isClientSideRendering: false,
286
291
  });
287
- const video = (jsx_runtime_1.jsx("video", { ...nativeProps, ref: videoRef, muted: muted || playerMuted || userPreferredVolume <= 0, playsInline: true, src: actualSrc, loop: _remotionInternalNativeLoopPassed, style: actualStyle, disableRemotePlayback: true, crossOrigin: crossOriginValue, controls: false }));
292
+ const video = (jsx_runtime_1.jsx("video", { ...nativeProps, ref: videoRef, muted: isMutedForPlayback, playsInline: true, src: actualSrc, loop: _remotionInternalNativeLoopPassed, style: actualStyle, disableRemotePlayback: true, crossOrigin: crossOriginValue, controls: false }));
288
293
  return isStudio ? (jsx_runtime_1.jsx(sequence_order_marker_js_1.SequenceOrderMarker, { sequenceId: timelineId, children: video })) : (video);
289
294
  };
290
295
  exports.VideoForPreview = (0, react_1.forwardRef)(VideoForDevelopmentRefForwardingFunction);
@@ -5,6 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const absolute_src_js_1 = require("../absolute-src.js");
7
7
  const use_audio_frame_js_1 = require("../audio/use-audio-frame.js");
8
+ const use_media_audio_state_js_1 = require("../audio/use-media-audio-state.js");
8
9
  const is_approximately_the_same_js_1 = require("../is-approximately-the-same.js");
9
10
  const log_level_context_js_1 = require("../log-level-context.js");
10
11
  const random_js_1 = require("../random.js");
@@ -13,6 +14,7 @@ const SequenceContext_js_1 = require("../SequenceContext.js");
13
14
  const timeline_position_state_js_1 = require("../timeline-position-state.js");
14
15
  const use_current_frame_js_1 = require("../use-current-frame.js");
15
16
  const use_delay_render_js_1 = require("../use-delay-render.js");
17
+ const use_media_enabled_js_1 = require("../use-media-enabled.js");
16
18
  const use_remotion_environment_js_1 = require("../use-remotion-environment.js");
17
19
  const use_unsafe_video_config_js_1 = require("../use-unsafe-video-config.js");
18
20
  const volume_prop_js_1 = require("../volume-prop.js");
@@ -22,6 +24,7 @@ const get_current_time_js_1 = require("./get-current-time.js");
22
24
  const MediaPlaybackError_js_1 = require("./MediaPlaybackError.js");
23
25
  const seek_until_right_js_1 = require("./seek-until-right.js");
24
26
  const VideoForRenderingForwardFunction = ({ onError, volume: volumeProp, allowAmplificationDuringRender, playbackRate, onDuration, toneFrequency, name, acceptableTimeShiftInSeconds, delayRenderRetries, delayRenderTimeoutInMilliseconds, loopVolumeCurveBehavior, audioStreamIndex, onVideoFrame, preservePitch: _preservePitch, ...props }, ref) => {
27
+ var _a;
25
28
  const absoluteFrame = (0, timeline_position_state_js_1.useTimelinePosition)();
26
29
  const frame = (0, use_current_frame_js_1.useCurrentFrame)();
27
30
  const volumePropsFrame = (0, use_audio_frame_js_1.useFrameForVolumeProp)(loopVolumeCurveBehavior !== null && loopVolumeCurveBehavior !== void 0 ? loopVolumeCurveBehavior : 'repeat');
@@ -45,27 +48,27 @@ const VideoForRenderingForwardFunction = ({ onError, volume: volumeProp, allowAm
45
48
  sequenceContext === null || sequenceContext === void 0 ? void 0 : sequenceContext.relativeFrom,
46
49
  sequenceContext === null || sequenceContext === void 0 ? void 0 : sequenceContext.durationInFrames,
47
50
  ]);
48
- if (!videoConfig) {
49
- throw new Error('No video config found');
50
- }
51
51
  const volume = (0, volume_prop_js_1.evaluateVolume)({
52
52
  volume: volumeProp,
53
53
  frame: volumePropsFrame,
54
54
  mediaVolume: 1,
55
55
  });
56
56
  (0, volume_safeguard_js_1.warnAboutTooHighVolume)(volume);
57
+ const audioEnabled = (0, use_media_enabled_js_1.useAudioEnabled)();
58
+ const { shouldUseAudio } = (0, use_media_audio_state_js_1.useMediaAudioState)({
59
+ muted: (_a = props.muted) !== null && _a !== void 0 ? _a : false,
60
+ volume,
61
+ audioEnabled,
62
+ });
63
+ if (!videoConfig) {
64
+ throw new Error('No video config found');
65
+ }
57
66
  (0, react_1.useEffect)(() => {
58
67
  var _a;
59
68
  if (!props.src) {
60
69
  throw new Error('No src passed');
61
70
  }
62
- if (props.muted) {
63
- return;
64
- }
65
- if (volume <= 0) {
66
- return;
67
- }
68
- if (!window.remotion_audioEnabled) {
71
+ if (!shouldUseAudio) {
69
72
  return;
70
73
  }
71
74
  registerRenderAsset({
@@ -82,7 +85,7 @@ const VideoForRenderingForwardFunction = ({ onError, volume: volumeProp, allowAm
82
85
  });
83
86
  return () => unregisterRenderAsset(id);
84
87
  }, [
85
- props.muted,
88
+ shouldUseAudio,
86
89
  props.src,
87
90
  registerRenderAsset,
88
91
  id,