@remotion/media 4.0.477 → 4.0.479

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.
@@ -21,4 +21,4 @@ export declare const Audio: React.ComponentType<{
21
21
  onError?: import("../on-error").MediaOnError | undefined;
22
22
  credentials?: RequestCredentials | undefined;
23
23
  requestInit?: import("..").MediaRequestInit | undefined;
24
- } & Pick<import("remotion").SequenceProps, "durationInFrames" | "freeze" | "from" | "hidden" | "name" | "showInTimeline">>;
24
+ } & import("remotion").InteractiveBaseProps>;
@@ -1,4 +1,4 @@
1
- import type { LogLevel, LoopVolumeCurveBehavior, SequenceProps, VolumeProp } from 'remotion';
1
+ import type { InteractiveBaseProps, LogLevel, LoopVolumeCurveBehavior, VolumeProp } from 'remotion';
2
2
  import type { MediaOnError } from '../on-error';
3
3
  import type { MediaRequestInit } from '../request-init';
4
4
  export type FallbackHtml5AudioProps = {
@@ -38,4 +38,4 @@ export type AudioProps = {
38
38
  */
39
39
  credentials?: RequestCredentials;
40
40
  requestInit?: MediaRequestInit;
41
- } & Pick<SequenceProps, 'from' | 'durationInFrames' | 'freeze' | 'name' | 'showInTimeline' | 'hidden'>;
41
+ } & InteractiveBaseProps;
@@ -40,6 +40,7 @@ var __callDispose = (stack, error, hasError) => {
40
40
  import { useMemo as useMemo3, useState as useState3 } from "react";
41
41
  import {
42
42
  Internals as Internals16,
43
+ Interactive,
43
44
  Sequence,
44
45
  useRemotionEnvironment as useRemotionEnvironment2,
45
46
  useVideoConfig as useVideoConfig2
@@ -139,7 +140,10 @@ import { ALL_FORMATS, Input, UrlSource } from "mediabunny";
139
140
  import { Internals as Internals5 } from "remotion";
140
141
 
141
142
  // src/audio-iterator-manager.ts
142
- import { AudioBufferSink, InputDisposedError } from "mediabunny";
143
+ import {
144
+ AudioBufferSink,
145
+ InputDisposedError
146
+ } from "mediabunny";
143
147
  import { Internals as Internals3 } from "remotion";
144
148
 
145
149
  // src/make-iterator-with-priming.ts
@@ -573,6 +577,7 @@ var audioIteratorManager = ({
573
577
  }
574
578
  if (!result.value) {
575
579
  next();
580
+ onDone();
576
581
  return;
577
582
  }
578
583
  onScheduled(result.value.timestamp);
@@ -1147,9 +1152,11 @@ var createVideoIterator = async (timeToSeek, cache) => {
1147
1152
  };
1148
1153
  const getNextOrNullIfNotAvailable = () => {
1149
1154
  if (peekedFrame) {
1155
+ const frame = peekedFrame;
1156
+ lastReturnedFrame = frame;
1150
1157
  const retValue = {
1151
1158
  type: "got-frame-or-end",
1152
- frame: peekedFrame
1159
+ frame
1153
1160
  };
1154
1161
  peekedFrame = null;
1155
1162
  return retValue;
@@ -4601,9 +4608,7 @@ var AudioForRendering = ({
4601
4608
  import { jsx as jsx3 } from "react/jsx-runtime";
4602
4609
  var { validateMediaProps } = Internals16;
4603
4610
  var audioSchema = {
4604
- durationInFrames: Internals16.durationInFramesField,
4605
- from: Internals16.fromField,
4606
- freeze: Internals16.freezeField,
4611
+ ...Internals16.baseSchema,
4607
4612
  volume: {
4608
4613
  type: "number",
4609
4614
  min: 0,
@@ -4622,15 +4627,14 @@ var audioSchema = {
4622
4627
  hiddenFromList: false,
4623
4628
  keyframable: false
4624
4629
  },
4625
- loop: { type: "boolean", default: false, description: "Loop" },
4626
- hidden: Internals16.hiddenField
4630
+ loop: { type: "boolean", default: false, description: "Loop" }
4627
4631
  };
4628
4632
  var AudioInner = (props) => {
4629
4633
  const {
4630
4634
  name,
4631
4635
  stack,
4632
4636
  showInTimeline,
4633
- _experimentalControls: controls,
4637
+ controls,
4634
4638
  from,
4635
4639
  durationInFrames,
4636
4640
  freeze,
@@ -4693,7 +4697,7 @@ var AudioInner = (props) => {
4693
4697
  _remotionInternalIsMedia: isMedia,
4694
4698
  name: name ?? "<Audio>",
4695
4699
  _remotionInternalDocumentationLink: name === undefined ? "https://www.remotion.dev/docs/media/audio" : undefined,
4696
- _experimentalControls: controls,
4700
+ controls,
4697
4701
  _remotionInternalLoopDisplay: loopDisplay,
4698
4702
  showInTimeline: showInTimeline ?? true,
4699
4703
  hidden,
@@ -4707,7 +4711,7 @@ var AudioInner = (props) => {
4707
4711
  })
4708
4712
  });
4709
4713
  };
4710
- var Audio = Internals16.wrapInSchema({
4714
+ var Audio = Interactive.withSchema({
4711
4715
  Component: AudioInner,
4712
4716
  componentIdentity: "dev.remotion.media.Audio",
4713
4717
  schema: audioSchema,
@@ -4719,6 +4723,7 @@ Internals16.addSequenceStackTraces(Audio);
4719
4723
  import React6, { useMemo as useMemo6, useState as useState6 } from "react";
4720
4724
  import {
4721
4725
  Internals as Internals20,
4726
+ Interactive as Interactive2,
4722
4727
  Sequence as Sequence2,
4723
4728
  useRemotionEnvironment as useRemotionEnvironment4,
4724
4729
  useVideoConfig as useVideoConfig5
@@ -5533,9 +5538,7 @@ var VideoForRendering = ({
5533
5538
  import { jsx as jsx6 } from "react/jsx-runtime";
5534
5539
  var { validateMediaTrimProps, resolveTrimProps, validateMediaProps: validateMediaProps2 } = Internals20;
5535
5540
  var videoSchema = {
5536
- durationInFrames: Internals20.durationInFramesField,
5537
- from: Internals20.fromField,
5538
- freeze: Internals20.freezeField,
5541
+ ...Internals20.baseSchema,
5539
5542
  volume: {
5540
5543
  type: "number",
5541
5544
  min: 0,
@@ -5554,13 +5557,8 @@ var videoSchema = {
5554
5557
  hiddenFromList: false,
5555
5558
  keyframable: false
5556
5559
  },
5557
- hidden: {
5558
- type: "boolean",
5559
- default: false,
5560
- description: "Hidden"
5561
- },
5562
5560
  loop: { type: "boolean", default: false, description: "Loop" },
5563
- ...Internals20.sequenceVisualStyleSchema
5561
+ ...Internals20.transformSchema
5564
5562
  };
5565
5563
  var InnerVideo = ({
5566
5564
  src,
@@ -5588,7 +5586,7 @@ var InnerVideo = ({
5588
5586
  onError,
5589
5587
  credentials,
5590
5588
  requestInit,
5591
- _experimentalControls: controls,
5589
+ controls,
5592
5590
  objectFit,
5593
5591
  _experimentalInitiallyDrawCachedFrame,
5594
5592
  effects,
@@ -5702,7 +5700,7 @@ var VideoInner = ({
5702
5700
  onError,
5703
5701
  credentials,
5704
5702
  requestInit,
5705
- _experimentalControls: controls,
5703
+ controls,
5706
5704
  objectFit,
5707
5705
  _experimentalInitiallyDrawCachedFrame,
5708
5706
  effects,
@@ -5770,10 +5768,10 @@ var VideoInner = ({
5770
5768
  _remotionInternalIsMedia: isMedia,
5771
5769
  name: name ?? "<Video>",
5772
5770
  _remotionInternalDocumentationLink: name === undefined ? "https://www.remotion.dev/docs/media/video" : undefined,
5773
- _experimentalControls: controls,
5771
+ controls,
5774
5772
  _remotionInternalLoopDisplay: loopDisplay,
5775
5773
  _remotionInternalEffects: memoizedEffectDefinitions,
5776
- _remotionInternalRefForOutline: refForOutline,
5774
+ outlineRef: refForOutline,
5777
5775
  showInTimeline: showInTimeline ?? true,
5778
5776
  hidden,
5779
5777
  children: /* @__PURE__ */ jsx6(InnerVideo, {
@@ -5803,7 +5801,7 @@ var VideoInner = ({
5803
5801
  onError,
5804
5802
  credentials,
5805
5803
  requestInit,
5806
- _experimentalControls: controls,
5804
+ controls,
5807
5805
  objectFit: objectFit ?? "contain",
5808
5806
  _experimentalInitiallyDrawCachedFrame: _experimentalInitiallyDrawCachedFrame ?? false,
5809
5807
  effects: memoizedEffects,
@@ -5812,7 +5810,7 @@ var VideoInner = ({
5812
5810
  })
5813
5811
  });
5814
5812
  };
5815
- var Video = Internals20.wrapInSchema({
5813
+ var Video = Interactive2.withSchema({
5816
5814
  Component: VideoInner,
5817
5815
  componentIdentity: "dev.remotion.media.Video",
5818
5816
  schema: videoSchema,
package/dist/index.d.ts CHANGED
@@ -25,7 +25,7 @@ export declare const experimental_Audio: import("react").ComponentType<{
25
25
  onError?: import("./on-error").MediaOnError | undefined;
26
26
  credentials?: RequestCredentials | undefined;
27
27
  requestInit?: import("./request-init").MediaRequestInit | undefined;
28
- } & Pick<import("remotion").SequenceProps, "durationInFrames" | "freeze" | "from" | "hidden" | "name" | "showInTimeline">>;
28
+ } & import("remotion").InteractiveBaseProps>;
29
29
  /**
30
30
  * @deprecated Now just `Video`
31
31
  */
@@ -62,7 +62,7 @@ export declare const experimental_Video: import("react").ComponentType<{
62
62
  objectFit: import(".").VideoObjectFit;
63
63
  _experimentalInitiallyDrawCachedFrame: boolean;
64
64
  effects: import("remotion").EffectsProp;
65
- }> & Omit<import("react").HTMLAttributes<HTMLElement>, "_experimentalInitiallyDrawCachedFrame" | "audioStreamIndex" | "className" | "credentials" | "debugOverlay" | "delayRenderRetries" | "delayRenderTimeoutInMilliseconds" | "disallowFallbackToOffthreadVideo" | "effects" | "fallbackOffthreadVideoProps" | "headless" | "logLevel" | "loop" | "loopVolumeCurveBehavior" | "muted" | "objectFit" | "onError" | "onVideoFrame" | "playbackRate" | "requestInit" | "showInTimeline" | "src" | "stack" | "style" | "toneFrequency" | "trimAfter" | "trimBefore" | "volume"> & Record<`data-${string}`, string | undefined> & Pick<import("remotion").SequenceProps, "durationInFrames" | "freeze" | "from" | "hidden" | "name" | "showInTimeline">>;
65
+ }> & Omit<import("react").HTMLAttributes<HTMLElement>, "_experimentalInitiallyDrawCachedFrame" | "audioStreamIndex" | "className" | "credentials" | "debugOverlay" | "delayRenderRetries" | "delayRenderTimeoutInMilliseconds" | "disallowFallbackToOffthreadVideo" | "effects" | "fallbackOffthreadVideoProps" | "headless" | "logLevel" | "loop" | "loopVolumeCurveBehavior" | "muted" | "objectFit" | "onError" | "onVideoFrame" | "playbackRate" | "requestInit" | "showInTimeline" | "src" | "stack" | "style" | "toneFrequency" | "trimAfter" | "trimBefore" | "volume"> & Record<`data-${string}`, string | undefined> & import("remotion").InteractiveBaseProps>;
66
66
  export { AudioForPreview } from './audio/audio-for-preview';
67
67
  export { AudioProps, FallbackHtml5AudioProps } from './audio/props';
68
68
  export { MediaErrorAction } from './on-error';
@@ -1,5 +1,5 @@
1
1
  import type React from 'react';
2
- import type { EffectDefinitionAndStack, EffectsProp, LogLevel, LoopVolumeCurveBehavior, OnVideoFrame, SequenceProps, VolumeProp } from 'remotion';
2
+ import type { EffectDefinitionAndStack, EffectsProp, InteractiveBaseProps, LogLevel, LoopVolumeCurveBehavior, OnVideoFrame, VolumeProp } from 'remotion';
3
3
  import type { MediaOnError } from '../on-error';
4
4
  import type { MediaRequestInit } from '../request-init';
5
5
  export type MediaErrorEvent = {
@@ -64,5 +64,5 @@ export type NativeVideoProps = Omit<React.HTMLAttributes<HTMLElement>, keyof Man
64
64
  export type InnerVideoProps = MandatoryVideoProps & OuterVideoProps & Omit<OptionalVideoProps, 'effects'> & NativeVideoProps & {
65
65
  effects: EffectDefinitionAndStack<unknown>[];
66
66
  };
67
- export type VideoProps = MandatoryVideoProps & Partial<OuterVideoProps> & Partial<OptionalVideoProps> & NativeVideoProps & Pick<SequenceProps, 'durationInFrames' | 'from' | 'freeze' | 'name' | 'showInTimeline' | 'hidden'>;
67
+ export type VideoProps = MandatoryVideoProps & Partial<OuterVideoProps> & Partial<OptionalVideoProps> & NativeVideoProps & InteractiveBaseProps;
68
68
  export {};
@@ -32,4 +32,4 @@ export declare const Video: React.ComponentType<{
32
32
  objectFit: import("./props").VideoObjectFit;
33
33
  _experimentalInitiallyDrawCachedFrame: boolean;
34
34
  effects: import("remotion").EffectsProp;
35
- }> & Omit<React.HTMLAttributes<HTMLElement>, "_experimentalInitiallyDrawCachedFrame" | "audioStreamIndex" | "className" | "credentials" | "debugOverlay" | "delayRenderRetries" | "delayRenderTimeoutInMilliseconds" | "disallowFallbackToOffthreadVideo" | "effects" | "fallbackOffthreadVideoProps" | "headless" | "logLevel" | "loop" | "loopVolumeCurveBehavior" | "muted" | "objectFit" | "onError" | "onVideoFrame" | "playbackRate" | "requestInit" | "showInTimeline" | "src" | "stack" | "style" | "toneFrequency" | "trimAfter" | "trimBefore" | "volume"> & Record<`data-${string}`, string | undefined> & Pick<import("remotion").SequenceProps, "durationInFrames" | "freeze" | "from" | "hidden" | "name" | "showInTimeline">>;
35
+ }> & Omit<React.HTMLAttributes<HTMLElement>, "_experimentalInitiallyDrawCachedFrame" | "audioStreamIndex" | "className" | "credentials" | "debugOverlay" | "delayRenderRetries" | "delayRenderTimeoutInMilliseconds" | "disallowFallbackToOffthreadVideo" | "effects" | "fallbackOffthreadVideoProps" | "headless" | "logLevel" | "loop" | "loopVolumeCurveBehavior" | "muted" | "objectFit" | "onError" | "onVideoFrame" | "playbackRate" | "requestInit" | "showInTimeline" | "src" | "stack" | "style" | "toneFrequency" | "trimAfter" | "trimBefore" | "volume"> & Record<`data-${string}`, string | undefined> & import("remotion").InteractiveBaseProps>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/media",
3
- "version": "4.0.477",
3
+ "version": "4.0.479",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "module": "dist/esm/index.mjs",
@@ -22,8 +22,8 @@
22
22
  "make": "tsgo && bun --env-file=../.env.bundle bundle.ts"
23
23
  },
24
24
  "dependencies": {
25
- "mediabunny": "1.45.0",
26
- "remotion": "4.0.477",
25
+ "mediabunny": "1.47.0",
26
+ "remotion": "4.0.479",
27
27
  "zod": "4.3.6"
28
28
  },
29
29
  "peerDependencies": {
@@ -31,7 +31,7 @@
31
31
  "react-dom": ">=16.8.0"
32
32
  },
33
33
  "devDependencies": {
34
- "@remotion/eslint-config-internal": "4.0.477",
34
+ "@remotion/eslint-config-internal": "4.0.479",
35
35
  "@vitest/browser-webdriverio": "4.0.9",
36
36
  "eslint": "9.19.0",
37
37
  "react": "19.2.3",