remotion 4.0.39 → 4.0.41

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.
@@ -144,5 +144,6 @@ export declare const Internals: {
144
144
  readonly ClipComposition: import("react").FC<{
145
145
  children?: import("react").ReactNode;
146
146
  }>;
147
+ readonly isIosSafari: () => boolean;
147
148
  };
148
149
  export type { TComposition, Timeline, TCompMetadata, TSequence, TRenderAsset as TAsset, TimelineContextValue, SetTimelineContextValue, CompProps, CompositionManagerContext, MediaVolumeContextValue, SetMediaVolumeContextValue, RemotionEnvironment, SerializedJSONWithCustomFields, };
@@ -63,6 +63,7 @@ const validate_dimensions_js_1 = require("./validation/validate-dimensions.js");
63
63
  const validate_duration_in_frames_js_1 = require("./validation/validate-duration-in-frames.js");
64
64
  const validate_fps_js_1 = require("./validation/validate-fps.js");
65
65
  const duration_state_js_1 = require("./video/duration-state.js");
66
+ const video_fragment_js_1 = require("./video/video-fragment.js");
66
67
  const volume_position_state_js_1 = require("./volume-position-state.js");
67
68
  const wrap_remotion_context_js_1 = require("./wrap-remotion-context.js");
68
69
  const Timeline = TimelinePosition;
@@ -129,4 +130,5 @@ exports.Internals = {
129
130
  DATE_TOKEN: input_props_serialization_js_1.DATE_TOKEN,
130
131
  NativeLayersProvider: NativeLayers_js_1.NativeLayersProvider,
131
132
  ClipComposition: Composition_js_1.ClipComposition,
133
+ isIosSafari: video_fragment_js_1.isIosSafari,
132
134
  };
@@ -9,5 +9,6 @@ type FetchAndPreload = {
9
9
  */
10
10
  export declare const prefetch: (src: string, options?: {
11
11
  method?: 'blob-url' | 'base64';
12
+ contentType?: string;
12
13
  }) => FetchAndPreload;
13
14
  export {};
@@ -63,10 +63,18 @@ const prefetch = (src, options) => {
63
63
  if (!buf) {
64
64
  return;
65
65
  }
66
+ if (!buf.type.startsWith('video/') &&
67
+ !buf.type.startsWith('audio/') &&
68
+ !(options === null || options === void 0 ? void 0 : options.contentType)) {
69
+ console.warn(`Called prefetch() on ${src} which returned a "Content-Type" of ${buf.type}. Prefetched content should have a proper content type (video/... or audio/...) or a contentType passed the options of prefetch(). Otherwise, prefetching will not work properly in all browsers.`);
70
+ }
71
+ const actualBlob = (options === null || options === void 0 ? void 0 : options.contentType)
72
+ ? new Blob([buf], { type: options.contentType })
73
+ : buf;
66
74
  if (method === 'base64') {
67
- return blobToBase64(buf);
75
+ return blobToBase64(actualBlob);
68
76
  }
69
- return URL.createObjectURL(buf);
77
+ return URL.createObjectURL(actualBlob);
70
78
  })
71
79
  .then((url) => {
72
80
  if (canceled) {
@@ -1 +1 @@
1
- export declare const VERSION = "4.0.39";
1
+ export declare const VERSION = "4.0.41";
@@ -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.39';
5
+ exports.VERSION = '4.0.41';
@@ -59,7 +59,7 @@ function truthy(value) {
59
59
  }
60
60
 
61
61
  // Automatically generated on publish
62
- const VERSION = '4.0.39';
62
+ const VERSION = '4.0.41';
63
63
 
64
64
  const checkMultipleRemotionVersions = () => {
65
65
  if (typeof globalThis === 'undefined') {
@@ -1318,10 +1318,18 @@ const prefetch = (src, options) => {
1318
1318
  if (!buf) {
1319
1319
  return;
1320
1320
  }
1321
+ if (!buf.type.startsWith('video/') &&
1322
+ !buf.type.startsWith('audio/') &&
1323
+ !(options === null || options === void 0 ? void 0 : options.contentType)) {
1324
+ console.warn(`Called prefetch() on ${src} which returned a "Content-Type" of ${buf.type}. Prefetched content should have a proper content type (video/... or audio/...) or a contentType passed the options of prefetch(). Otherwise, prefetching will not work properly in all browsers.`);
1325
+ }
1326
+ const actualBlob = (options === null || options === void 0 ? void 0 : options.contentType)
1327
+ ? new Blob([buf], { type: options.contentType })
1328
+ : buf;
1321
1329
  if (method === 'base64') {
1322
- return blobToBase64(buf);
1330
+ return blobToBase64(actualBlob);
1323
1331
  }
1324
- return URL.createObjectURL(buf);
1332
+ return URL.createObjectURL(actualBlob);
1325
1333
  })
1326
1334
  .then((url) => {
1327
1335
  if (canceled) {
@@ -3968,6 +3976,7 @@ const Internals = {
3968
3976
  DATE_TOKEN,
3969
3977
  NativeLayersProvider,
3970
3978
  ClipComposition,
3979
+ isIosSafari,
3971
3980
  };
3972
3981
 
3973
3982
  const flattenChildren = (children) => {
@@ -4634,7 +4643,6 @@ const VideoForRenderingForwardFunction = ({ onError, volume: volumeProp, allowAm
4634
4643
  current.removeEventListener('loadeddata', loadedDataHandler);
4635
4644
  };
4636
4645
  }
4637
- console.log({ currentTime, frame, mediaStartsAt });
4638
4646
  current.currentTime = currentTime;
4639
4647
  const seekedHandler = () => {
4640
4648
  warnAboutNonSeekableMedia(current, 'exception');
@@ -4684,6 +4692,7 @@ const VideoForRenderingForwardFunction = ({ onError, volume: volumeProp, allowAm
4684
4692
  videoConfig.fps,
4685
4693
  frame,
4686
4694
  mediaStartsAt,
4695
+ onError,
4687
4696
  ]);
4688
4697
  const { src } = props;
4689
4698
  // If video source switches, make new handle
@@ -4715,7 +4724,6 @@ const VideoForRenderingForwardFunction = ({ onError, volume: volumeProp, allowAm
4715
4724
  };
4716
4725
  }, [src, onDuration]);
4717
4726
  }
4718
- console.log(JSON.stringify({ props }));
4719
4727
  return jsx("video", { ref: videoRef, ...props, onError: onError });
4720
4728
  };
4721
4729
  const VideoForRendering = forwardRef(VideoForRenderingForwardFunction);
@@ -4736,14 +4744,6 @@ const VideoForwardingFunction = (props, ref) => {
4736
4744
  const onDuration = useCallback((src, durationInSeconds) => {
4737
4745
  setDurations({ type: 'got-duration', durationInSeconds, src });
4738
4746
  }, [setDurations]);
4739
- useEffect(() => {
4740
- const interval = setInterval(() => {
4741
- console.log('event loop still running');
4742
- }, 2000);
4743
- return () => {
4744
- clearInterval(interval);
4745
- };
4746
- }, []);
4747
4747
  if (loop && props.src && durations[getAbsoluteSrc(props.src)] !== undefined) {
4748
4748
  const mediaDuration = durations[getAbsoluteSrc(props.src)] * fps;
4749
4749
  return (jsx(Loop, { durationInFrames: calculateLoopDuration({
@@ -4761,7 +4761,6 @@ const VideoForwardingFunction = (props, ref) => {
4761
4761
  }
4762
4762
  validateMediaProps(props, 'Video');
4763
4763
  if (environment.isRendering) {
4764
- console.log('rendering');
4765
4764
  return (jsx(VideoForRendering, { onDuration: onDuration, ...otherProps, ref: ref }));
4766
4765
  }
4767
4766
  return (jsx(VideoForDevelopment, { onlyWarnForMediaSeekingError: false, ...otherProps, ref: ref, onDuration: onDuration }));
@@ -1,4 +1,4 @@
1
1
  // Automatically generated on publish
2
- const VERSION = '4.0.39';
2
+ const VERSION = '4.0.41';
3
3
 
4
4
  export { VERSION };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remotion",
3
- "version": "4.0.39",
3
+ "version": "4.0.41",
4
4
  "description": "Render videos in React",
5
5
  "main": "dist/cjs/index.js",
6
6
  "types": "dist/cjs/index.d.ts",
@@ -1,3 +0,0 @@
1
- export type RemotionEnvironment = 'preview' | 'rendering' | 'player-development' | 'player-production';
2
- export declare const getRemotionEnvironment: () => RemotionEnvironment;
3
- export declare const useRemotionEnvironment: () => RemotionEnvironment;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useRemotionEnvironment = exports.getRemotionEnvironment = void 0;
4
- const is_player_js_1 = require("./is-player.js");
5
- const getRemotionEnvironment = () => {
6
- if (process.env.NODE_ENV === 'production') {
7
- if (typeof window !== 'undefined' && window.remotion_isPlayer) {
8
- return 'player-production';
9
- }
10
- return 'rendering';
11
- }
12
- // The Vitest framework sets NODE_ENV as test.
13
- // Right now we don't need to treat it in a special
14
- // way which is good - defaulting to `rendering`.
15
- if (process.env.NODE_ENV === 'test') {
16
- return 'rendering';
17
- }
18
- if (typeof window !== 'undefined' && window.remotion_isPlayer) {
19
- return 'player-development';
20
- }
21
- return 'preview';
22
- };
23
- exports.getRemotionEnvironment = getRemotionEnvironment;
24
- const useRemotionEnvironment = () => {
25
- const isPlayer = (0, is_player_js_1.useIsPlayer)();
26
- if (isPlayer) {
27
- if (process.env.NODE_ENV === 'production') {
28
- return 'player-production';
29
- }
30
- return 'player-development';
31
- }
32
- return (0, exports.getRemotionEnvironment)();
33
- };
34
- exports.useRemotionEnvironment = useRemotionEnvironment;