@remotion/promo-pages 4.0.497 → 4.0.499

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.
package/dist/Homepage.js CHANGED
@@ -2349,7 +2349,7 @@ var getSingleChildComponent = (children) => {
2349
2349
  }
2350
2350
  return child.type;
2351
2351
  };
2352
- var VERSION = "4.0.497";
2352
+ var VERSION = "4.0.499";
2353
2353
  var checkMultipleRemotionVersions = () => {
2354
2354
  if (typeof globalThis === "undefined") {
2355
2355
  return;
@@ -3187,6 +3187,9 @@ var PremountContext = createContext15({
3187
3187
  premountFramesRemaining: 0
3188
3188
  });
3189
3189
  var ENABLE_V5_BREAKING_CHANGES = false;
3190
+ var resolveV5Default = (value) => {
3191
+ return value ?? ENABLE_V5_BREAKING_CHANGES;
3192
+ };
3190
3193
  var usePremounting = ({
3191
3194
  from,
3192
3195
  durationInFrames,
@@ -9662,6 +9665,7 @@ var AudioRefForwardingFunction = (props, ref) => {
9662
9665
  const { loop, freeze: _freeze, ...propsOtherThanLoop } = propsWithFreeze;
9663
9666
  const { fps } = useVideoConfig();
9664
9667
  const environment = useRemotionEnvironment();
9668
+ const shouldPauseWhenBuffering = resolveV5Default(pauseWhenBuffering);
9665
9669
  if (environment.isClientSideRendering) {
9666
9670
  throw new Error("<Html5Audio> is not supported in @remotion/web-renderer. Use <Audio> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
9667
9671
  }
@@ -9731,7 +9735,7 @@ var AudioRefForwardingFunction = (props, ref) => {
9731
9735
  name,
9732
9736
  children: /* @__PURE__ */ jsx23(Html5Audio, {
9733
9737
  _remotionInternalNeedsDurationCalculation: Boolean(loop),
9734
- pauseWhenBuffering: pauseWhenBuffering ?? false,
9738
+ pauseWhenBuffering: shouldPauseWhenBuffering,
9735
9739
  ...otherProps,
9736
9740
  ref
9737
9741
  })
@@ -9759,7 +9763,7 @@ var AudioRefForwardingFunction = (props, ref) => {
9759
9763
  ref,
9760
9764
  onNativeError: onError,
9761
9765
  onDuration,
9762
- pauseWhenBuffering: pauseWhenBuffering ?? false,
9766
+ pauseWhenBuffering: shouldPauseWhenBuffering,
9763
9767
  _remotionInternalNeedsDurationCalculation: Boolean(loop),
9764
9768
  showInTimeline: showInTimeline ?? true
9765
9769
  });
@@ -11166,6 +11170,7 @@ var ImgInner = ({
11166
11170
  ...props2
11167
11171
  }) => {
11168
11172
  const refForOutline = useRef24(null);
11173
+ const shouldPauseWhenLoading = resolveV5Default(pauseWhenLoading);
11169
11174
  if (effects.length === 0) {
11170
11175
  return /* @__PURE__ */ jsx28(NativeImgInner, {
11171
11176
  ...props2,
@@ -11189,7 +11194,7 @@ var ImgInner = ({
11189
11194
  className,
11190
11195
  style,
11191
11196
  id,
11192
- pauseWhenLoading,
11197
+ pauseWhenLoading: shouldPauseWhenLoading,
11193
11198
  maxRetries,
11194
11199
  delayRenderRetries,
11195
11200
  delayRenderTimeoutInMilliseconds,
@@ -11218,7 +11223,7 @@ var ImgInner = ({
11218
11223
  className,
11219
11224
  style,
11220
11225
  id,
11221
- pauseWhenLoading,
11226
+ pauseWhenLoading: shouldPauseWhenLoading,
11222
11227
  maxRetries,
11223
11228
  delayRenderRetries,
11224
11229
  delayRenderTimeoutInMilliseconds,
@@ -12412,6 +12417,7 @@ var InnerOffthreadVideo = (props2) => {
12412
12417
  ...otherProps
12413
12418
  } = props2;
12414
12419
  const environment = useRemotionEnvironment();
12420
+ const shouldPauseWhenBuffering = resolveV5Default(pauseWhenBuffering);
12415
12421
  if (environment.isClientSideRendering) {
12416
12422
  throw new Error("<OffthreadVideo> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
12417
12423
  }
@@ -12436,7 +12442,7 @@ var InnerOffthreadVideo = (props2) => {
12436
12442
  durationInFrames: trimAfterValue,
12437
12443
  name,
12438
12444
  children: /* @__PURE__ */ jsx35(InnerOffthreadVideo, {
12439
- pauseWhenBuffering: pauseWhenBuffering ?? false,
12445
+ pauseWhenBuffering: shouldPauseWhenBuffering,
12440
12446
  ...otherProps,
12441
12447
  trimAfter: undefined,
12442
12448
  name: undefined,
@@ -12451,7 +12457,7 @@ var InnerOffthreadVideo = (props2) => {
12451
12457
  validateMediaProps(props2, "Video");
12452
12458
  if (environment.isRendering) {
12453
12459
  return /* @__PURE__ */ jsx35(OffthreadVideoForRendering, {
12454
- pauseWhenBuffering: pauseWhenBuffering ?? false,
12460
+ pauseWhenBuffering: shouldPauseWhenBuffering,
12455
12461
  ...otherProps,
12456
12462
  trimAfter: undefined,
12457
12463
  name: undefined,
@@ -12476,7 +12482,7 @@ var InnerOffthreadVideo = (props2) => {
12476
12482
  _remotionInternalStack: stack ?? null,
12477
12483
  onDuration,
12478
12484
  onlyWarnForMediaSeekingError: true,
12479
- pauseWhenBuffering: pauseWhenBuffering ?? false,
12485
+ pauseWhenBuffering: shouldPauseWhenBuffering,
12480
12486
  showInTimeline: showInTimeline ?? true,
12481
12487
  onAutoPlayError: onAutoPlayError ?? undefined,
12482
12488
  onVideoFrame: onVideoFrame ?? null,
@@ -12534,7 +12540,7 @@ var OffthreadVideo = ({
12534
12540
  onAutoPlayError: onAutoPlayError ?? null,
12535
12541
  onError,
12536
12542
  onVideoFrame,
12537
- pauseWhenBuffering: pauseWhenBuffering ?? true,
12543
+ pauseWhenBuffering: resolveV5Default(pauseWhenBuffering),
12538
12544
  playbackRate: playbackRate ?? 1,
12539
12545
  preservePitch,
12540
12546
  toneFrequency: toneFrequency ?? 1,
@@ -13417,6 +13423,7 @@ var VideoForwardingFunction = (props2, ref) => {
13417
13423
  const { loop, ...propsOtherThanLoop } = props2;
13418
13424
  const { fps } = useVideoConfig();
13419
13425
  const environment = useRemotionEnvironment();
13426
+ const shouldPauseWhenBuffering = resolveV5Default(pauseWhenBuffering);
13420
13427
  if (environment.isClientSideRendering) {
13421
13428
  throw new Error("<Html5Video> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
13422
13429
  }
@@ -13475,7 +13482,7 @@ var VideoForwardingFunction = (props2, ref) => {
13475
13482
  durationInFrames: trimAfterValue === undefined ? undefined : trimAfterValue / (props2.playbackRate ?? 1),
13476
13483
  name,
13477
13484
  children: /* @__PURE__ */ jsx39(Html5Video, {
13478
- pauseWhenBuffering: pauseWhenBuffering ?? false,
13485
+ pauseWhenBuffering: shouldPauseWhenBuffering,
13479
13486
  onVideoFrame,
13480
13487
  ...otherProps,
13481
13488
  ref,
@@ -13501,7 +13508,7 @@ var VideoForwardingFunction = (props2, ref) => {
13501
13508
  ...otherProps,
13502
13509
  ref,
13503
13510
  onVideoFrame: onVideoFrame ?? null,
13504
- pauseWhenBuffering: pauseWhenBuffering ?? false,
13511
+ pauseWhenBuffering: shouldPauseWhenBuffering,
13505
13512
  onDuration,
13506
13513
  _remotionInternalStack: stack ?? null,
13507
13514
  _remotionInternalNativeLoopPassed: _remotionInternalNativeLoopPassed ?? false,
@@ -30248,7 +30255,7 @@ var GitHubStars = () => {
30248
30255
  width: "45px"
30249
30256
  }),
30250
30257
  /* @__PURE__ */ jsx57(StatItemContent, {
30251
- content: "53K",
30258
+ content: "54K",
30252
30259
  width: "80px",
30253
30260
  fontSize: "2.5rem",
30254
30261
  fontWeight: "bold"
@@ -31997,8 +32004,9 @@ var NoReactInternals = {
31997
32004
  getOffthreadVideoSource: getOffthreadVideoSource2,
31998
32005
  getExpectedMediaFrameUncorrected: getExpectedMediaFrameUncorrected2,
31999
32006
  ENABLE_V5_BREAKING_CHANGES: ENABLE_V5_BREAKING_CHANGES2,
32000
- MIN_NODE_VERSION: ENABLE_V5_BREAKING_CHANGES2 ? 18 : 16,
32007
+ MIN_NODE_VERSION: ENABLE_V5_BREAKING_CHANGES2 ? 22 : 16,
32001
32008
  MIN_BUN_VERSION: ENABLE_V5_BREAKING_CHANGES2 ? "1.1.3" : "1.0.3",
32009
+ MIN_ESLINT_VERSION: ENABLE_V5_BREAKING_CHANGES2 ? "8.57.0" : "7.15.0",
32002
32010
  colorNames: colorNames2,
32003
32011
  DATE_TOKEN: DATE_TOKEN2,
32004
32012
  FILE_TOKEN: FILE_TOKEN2,
@@ -37657,7 +37665,6 @@ var makePrewarmedVideoIteratorCache = (videoSink) => {
37657
37665
  destroy
37658
37666
  };
37659
37667
  };
37660
- var MAXIMUM_AWAITED_PEEK_DISTANCE_SECONDS = 0.05;
37661
37668
  var createVideoIterator = async (timeToSeek, cache2) => {
37662
37669
  let destroyed = false;
37663
37670
  const iterator = cache2.makeIteratorOrUsePrewarmed(timeToSeek);
@@ -37695,22 +37702,12 @@ var createVideoIterator = async (timeToSeek, cache2) => {
37695
37702
  wait: next.wait
37696
37703
  };
37697
37704
  };
37698
- const peek = async () => {
37699
- const peeked = peekIfReady();
37700
- if (peeked.type === "ready") {
37701
- return peeked.frame;
37702
- }
37703
- return setPeekedFrame(await peeked.wait());
37704
- };
37705
37705
  const getFrameEndTimestampFromPeek = (frame) => {
37706
37706
  return frame ? roundTo4Digits(frame.timestamp) : Infinity;
37707
37707
  };
37708
- const getFrameEndTimestamp = async () => {
37709
- return getFrameEndTimestampFromPeek(await peek());
37710
- };
37711
- const getFrameEndTimestampIfCloseEnough = async ({
37712
- timestamp,
37713
- frameTimestamp
37708
+ const getFrameEndTimestamp = async ({
37709
+ pendingFrameBehavior,
37710
+ shouldContinue
37714
37711
  }) => {
37715
37712
  const peeked = peekIfReady();
37716
37713
  if (peeked.type === "ready") {
@@ -37719,10 +37716,16 @@ var createVideoIterator = async (timeToSeek, cache2) => {
37719
37716
  timestamp: getFrameEndTimestampFromPeek(peeked.frame)
37720
37717
  };
37721
37718
  }
37722
- if (timestamp - frameTimestamp > MAXIMUM_AWAITED_PEEK_DISTANCE_SECONDS) {
37719
+ if (pendingFrameBehavior === "restart-iterator") {
37723
37720
  return { type: "pending" };
37724
37721
  }
37722
+ if (!shouldContinue()) {
37723
+ return { type: "cancelled" };
37724
+ }
37725
37725
  const awaitedPeeked = setPeekedFrame(await peeked.wait());
37726
+ if (!shouldContinue()) {
37727
+ return { type: "cancelled" };
37728
+ }
37726
37729
  return {
37727
37730
  type: "ready",
37728
37731
  timestamp: getFrameEndTimestampFromPeek(awaitedPeeked)
@@ -37776,7 +37779,13 @@ var createVideoIterator = async (timeToSeek, cache2) => {
37776
37779
  return;
37777
37780
  });
37778
37781
  };
37779
- const tryToSatisfySeek = async (time) => {
37782
+ const tryToSatisfySeek = async (time, options2) => {
37783
+ if (!options2.shouldContinue()) {
37784
+ return {
37785
+ type: "not-satisfied",
37786
+ reason: "seek was superseded"
37787
+ };
37788
+ }
37780
37789
  const timestamp = roundTo4Digits(time);
37781
37790
  if (lastReturnedFrame) {
37782
37791
  const frameTimestamp = roundTo4Digits(lastReturnedFrame.timestamp);
@@ -37794,8 +37803,23 @@ var createVideoIterator = async (timeToSeek, cache2) => {
37794
37803
  reason: `iterator is too far, most recently returned ${frameTimestamp}`
37795
37804
  };
37796
37805
  }
37797
- const frameEndTimestamp = await getFrameEndTimestamp();
37798
- if (frameTimestamp <= timestamp && frameEndTimestamp > timestamp) {
37806
+ const frameEndTimestamp = await getFrameEndTimestamp({
37807
+ pendingFrameBehavior: options2.pendingFrameBehavior,
37808
+ shouldContinue: options2.shouldContinue
37809
+ });
37810
+ if (frameEndTimestamp.type === "cancelled") {
37811
+ return {
37812
+ type: "not-satisfied",
37813
+ reason: "seek was superseded"
37814
+ };
37815
+ }
37816
+ if (frameEndTimestamp.type === "pending") {
37817
+ return {
37818
+ type: "not-satisfied",
37819
+ reason: "iterator did not have next frame ready"
37820
+ };
37821
+ }
37822
+ if (frameTimestamp <= timestamp && frameEndTimestamp.timestamp > timestamp) {
37799
37823
  return {
37800
37824
  type: "satisfied",
37801
37825
  frame: lastReturnedFrame
@@ -37815,6 +37839,12 @@ var createVideoIterator = async (timeToSeek, cache2) => {
37815
37839
  };
37816
37840
  }
37817
37841
  while (true) {
37842
+ if (!options2.shouldContinue()) {
37843
+ return {
37844
+ type: "not-satisfied",
37845
+ reason: "seek was superseded"
37846
+ };
37847
+ }
37818
37848
  const frame = getNextOrNullIfNotAvailable();
37819
37849
  if (frame.type === "need-to-wait-for-it") {
37820
37850
  return {
@@ -37837,10 +37867,16 @@ var createVideoIterator = async (timeToSeek, cache2) => {
37837
37867
  };
37838
37868
  }
37839
37869
  const frameTimestamp = roundTo4Digits(frame.frame.timestamp);
37840
- const frameEndTimestamp = await getFrameEndTimestampIfCloseEnough({
37841
- frameTimestamp,
37842
- timestamp
37870
+ const frameEndTimestamp = await getFrameEndTimestamp({
37871
+ pendingFrameBehavior: options2.pendingFrameBehavior,
37872
+ shouldContinue: options2.shouldContinue
37843
37873
  });
37874
+ if (frameEndTimestamp.type === "cancelled") {
37875
+ return {
37876
+ type: "not-satisfied",
37877
+ reason: "seek was superseded"
37878
+ };
37879
+ }
37844
37880
  if (frameEndTimestamp.type === "pending") {
37845
37881
  return {
37846
37882
  type: "not-satisfied",
@@ -37868,6 +37904,19 @@ var createVideoIterator = async (timeToSeek, cache2) => {
37868
37904
  };
37869
37905
  };
37870
37906
  var { runEffectChain: runEffectChain2 } = Internals;
37907
+ var isSequentialMediaTimeAdvance = ({
37908
+ previousTime,
37909
+ newTime,
37910
+ fps,
37911
+ playbackRate,
37912
+ isPlaying
37913
+ }) => {
37914
+ if (!isPlaying || newTime < previousTime) {
37915
+ return false;
37916
+ }
37917
+ const maximumSequentialAdvance = Math.abs(playbackRate) / fps;
37918
+ return roundTo4Digits(newTime - previousTime) <= roundTo4Digits(maximumSequentialAdvance);
37919
+ };
37871
37920
  var videoIteratorManager = async ({
37872
37921
  delayPlaybackHandleIfNotPremounting,
37873
37922
  canvas,
@@ -37977,13 +38026,20 @@ var videoIteratorManager = async ({
37977
38026
  __callDispose(__stack, _err, _hasErr);
37978
38027
  }
37979
38028
  };
37980
- const seek2 = async ({ newTime, nonce }) => {
38029
+ const seek2 = async ({
38030
+ newTime,
38031
+ nonce,
38032
+ fps,
38033
+ playbackRate,
38034
+ isPlaying
38035
+ }) => {
37981
38036
  if (!videoFrameIterator) {
37982
38037
  return;
37983
38038
  }
37984
38039
  if (currentSeek !== null && roundTo4Digits(currentSeek) === roundTo4Digits(newTime)) {
37985
38040
  return;
37986
38041
  }
38042
+ const previousTime = currentSeek;
37987
38043
  currentSeek = newTime;
37988
38044
  if (getIsLooping()) {
37989
38045
  if (getLoopSegmentMediaEndTimestamp() - newTime < 1) {
@@ -37992,7 +38048,17 @@ var videoIteratorManager = async ({
37992
38048
  });
37993
38049
  }
37994
38050
  }
37995
- const videoSatisfyResult = await videoFrameIterator.tryToSatisfySeek(newTime);
38051
+ const pendingFrameBehavior = previousTime !== null && isSequentialMediaTimeAdvance({
38052
+ previousTime,
38053
+ newTime,
38054
+ fps,
38055
+ playbackRate,
38056
+ isPlaying
38057
+ }) ? "wait" : "restart-iterator";
38058
+ const videoSatisfyResult = await videoFrameIterator.tryToSatisfySeek(newTime, {
38059
+ pendingFrameBehavior,
38060
+ shouldContinue: () => !nonce.isStale()
38061
+ });
37996
38062
  if (videoSatisfyResult.type === "satisfied") {
37997
38063
  await drawFrame(videoSatisfyResult.frame);
37998
38064
  return;
@@ -38326,7 +38392,10 @@ class MediaPlayer {
38326
38392
  await Promise.all([
38327
38393
  this.videoIteratorManager?.seek({
38328
38394
  newTime,
38329
- nonce
38395
+ nonce,
38396
+ fps: this.fps,
38397
+ playbackRate: this.playbackRate,
38398
+ isPlaying: this.playing
38330
38399
  }),
38331
38400
  this.audioIteratorManager?.seek({
38332
38401
  newTime,
@@ -43737,7 +43806,7 @@ import {
43737
43806
  import { BufferTarget, StreamTarget } from "mediabunny";
43738
43807
 
43739
43808
  // ../core/dist/esm/version.mjs
43740
- var VERSION2 = "4.0.497";
43809
+ var VERSION2 = "4.0.499";
43741
43810
 
43742
43811
  // ../web-renderer/dist/esm/index.mjs
43743
43812
  import { AudioSample, VideoSample } from "mediabunny";
@@ -47123,10 +47192,10 @@ var drawElement = async ({
47123
47192
  finishTransform();
47124
47193
  return {
47125
47194
  cleanupAfterChildren: () => {
47195
+ finishOverflowHidden();
47126
47196
  finishFilter();
47127
47197
  finishOpacity();
47128
47198
  finishClipPath();
47129
- finishOverflowHidden();
47130
47199
  }
47131
47200
  };
47132
47201
  };
@@ -51120,7 +51189,7 @@ var GithubButton = () => {
51120
51189
  " ",
51121
51190
  /* @__PURE__ */ jsx134("div", {
51122
51191
  className: "text-xs inline-block ml-2 leading-none mt-[3px] self-center",
51123
- children: "53k"
51192
+ children: "54k"
51124
51193
  })
51125
51194
  ]
51126
51195
  });
package/dist/design.js CHANGED
@@ -5579,7 +5579,7 @@ var getSingleChildComponent = (children) => {
5579
5579
  }
5580
5580
  return child.type;
5581
5581
  };
5582
- var VERSION = "4.0.497";
5582
+ var VERSION = "4.0.499";
5583
5583
  var checkMultipleRemotionVersions = () => {
5584
5584
  if (typeof globalThis === "undefined") {
5585
5585
  return;
@@ -6417,6 +6417,9 @@ var PremountContext = createContext15({
6417
6417
  premountFramesRemaining: 0
6418
6418
  });
6419
6419
  var ENABLE_V5_BREAKING_CHANGES = false;
6420
+ var resolveV5Default = (value) => {
6421
+ return value ?? ENABLE_V5_BREAKING_CHANGES;
6422
+ };
6420
6423
  var usePremounting = ({
6421
6424
  from,
6422
6425
  durationInFrames,
@@ -12892,6 +12895,7 @@ var AudioRefForwardingFunction = (props, ref) => {
12892
12895
  const { loop, freeze: _freeze, ...propsOtherThanLoop } = propsWithFreeze;
12893
12896
  const { fps } = useVideoConfig();
12894
12897
  const environment = useRemotionEnvironment();
12898
+ const shouldPauseWhenBuffering = resolveV5Default(pauseWhenBuffering);
12895
12899
  if (environment.isClientSideRendering) {
12896
12900
  throw new Error("<Html5Audio> is not supported in @remotion/web-renderer. Use <Audio> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
12897
12901
  }
@@ -12961,7 +12965,7 @@ var AudioRefForwardingFunction = (props, ref) => {
12961
12965
  name,
12962
12966
  children: /* @__PURE__ */ jsx23(Html5Audio, {
12963
12967
  _remotionInternalNeedsDurationCalculation: Boolean(loop),
12964
- pauseWhenBuffering: pauseWhenBuffering ?? false,
12968
+ pauseWhenBuffering: shouldPauseWhenBuffering,
12965
12969
  ...otherProps,
12966
12970
  ref
12967
12971
  })
@@ -12989,7 +12993,7 @@ var AudioRefForwardingFunction = (props, ref) => {
12989
12993
  ref,
12990
12994
  onNativeError: onError,
12991
12995
  onDuration,
12992
- pauseWhenBuffering: pauseWhenBuffering ?? false,
12996
+ pauseWhenBuffering: shouldPauseWhenBuffering,
12993
12997
  _remotionInternalNeedsDurationCalculation: Boolean(loop),
12994
12998
  showInTimeline: showInTimeline ?? true
12995
12999
  });
@@ -14396,6 +14400,7 @@ var ImgInner = ({
14396
14400
  ...props2
14397
14401
  }) => {
14398
14402
  const refForOutline = useRef24(null);
14403
+ const shouldPauseWhenLoading = resolveV5Default(pauseWhenLoading);
14399
14404
  if (effects.length === 0) {
14400
14405
  return /* @__PURE__ */ jsx28(NativeImgInner, {
14401
14406
  ...props2,
@@ -14419,7 +14424,7 @@ var ImgInner = ({
14419
14424
  className,
14420
14425
  style,
14421
14426
  id,
14422
- pauseWhenLoading,
14427
+ pauseWhenLoading: shouldPauseWhenLoading,
14423
14428
  maxRetries,
14424
14429
  delayRenderRetries,
14425
14430
  delayRenderTimeoutInMilliseconds,
@@ -14448,7 +14453,7 @@ var ImgInner = ({
14448
14453
  className,
14449
14454
  style,
14450
14455
  id,
14451
- pauseWhenLoading,
14456
+ pauseWhenLoading: shouldPauseWhenLoading,
14452
14457
  maxRetries,
14453
14458
  delayRenderRetries,
14454
14459
  delayRenderTimeoutInMilliseconds,
@@ -15642,6 +15647,7 @@ var InnerOffthreadVideo = (props2) => {
15642
15647
  ...otherProps
15643
15648
  } = props2;
15644
15649
  const environment = useRemotionEnvironment();
15650
+ const shouldPauseWhenBuffering = resolveV5Default(pauseWhenBuffering);
15645
15651
  if (environment.isClientSideRendering) {
15646
15652
  throw new Error("<OffthreadVideo> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
15647
15653
  }
@@ -15666,7 +15672,7 @@ var InnerOffthreadVideo = (props2) => {
15666
15672
  durationInFrames: trimAfterValue,
15667
15673
  name,
15668
15674
  children: /* @__PURE__ */ jsx35(InnerOffthreadVideo, {
15669
- pauseWhenBuffering: pauseWhenBuffering ?? false,
15675
+ pauseWhenBuffering: shouldPauseWhenBuffering,
15670
15676
  ...otherProps,
15671
15677
  trimAfter: undefined,
15672
15678
  name: undefined,
@@ -15681,7 +15687,7 @@ var InnerOffthreadVideo = (props2) => {
15681
15687
  validateMediaProps(props2, "Video");
15682
15688
  if (environment.isRendering) {
15683
15689
  return /* @__PURE__ */ jsx35(OffthreadVideoForRendering, {
15684
- pauseWhenBuffering: pauseWhenBuffering ?? false,
15690
+ pauseWhenBuffering: shouldPauseWhenBuffering,
15685
15691
  ...otherProps,
15686
15692
  trimAfter: undefined,
15687
15693
  name: undefined,
@@ -15706,7 +15712,7 @@ var InnerOffthreadVideo = (props2) => {
15706
15712
  _remotionInternalStack: stack ?? null,
15707
15713
  onDuration,
15708
15714
  onlyWarnForMediaSeekingError: true,
15709
- pauseWhenBuffering: pauseWhenBuffering ?? false,
15715
+ pauseWhenBuffering: shouldPauseWhenBuffering,
15710
15716
  showInTimeline: showInTimeline ?? true,
15711
15717
  onAutoPlayError: onAutoPlayError ?? undefined,
15712
15718
  onVideoFrame: onVideoFrame ?? null,
@@ -15764,7 +15770,7 @@ var OffthreadVideo = ({
15764
15770
  onAutoPlayError: onAutoPlayError ?? null,
15765
15771
  onError,
15766
15772
  onVideoFrame,
15767
- pauseWhenBuffering: pauseWhenBuffering ?? true,
15773
+ pauseWhenBuffering: resolveV5Default(pauseWhenBuffering),
15768
15774
  playbackRate: playbackRate ?? 1,
15769
15775
  preservePitch,
15770
15776
  toneFrequency: toneFrequency ?? 1,
@@ -16647,6 +16653,7 @@ var VideoForwardingFunction = (props2, ref) => {
16647
16653
  const { loop, ...propsOtherThanLoop } = props2;
16648
16654
  const { fps } = useVideoConfig();
16649
16655
  const environment = useRemotionEnvironment();
16656
+ const shouldPauseWhenBuffering = resolveV5Default(pauseWhenBuffering);
16650
16657
  if (environment.isClientSideRendering) {
16651
16658
  throw new Error("<Html5Video> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
16652
16659
  }
@@ -16705,7 +16712,7 @@ var VideoForwardingFunction = (props2, ref) => {
16705
16712
  durationInFrames: trimAfterValue === undefined ? undefined : trimAfterValue / (props2.playbackRate ?? 1),
16706
16713
  name,
16707
16714
  children: /* @__PURE__ */ jsx39(Html5Video, {
16708
- pauseWhenBuffering: pauseWhenBuffering ?? false,
16715
+ pauseWhenBuffering: shouldPauseWhenBuffering,
16709
16716
  onVideoFrame,
16710
16717
  ...otherProps,
16711
16718
  ref,
@@ -16731,7 +16738,7 @@ var VideoForwardingFunction = (props2, ref) => {
16731
16738
  ...otherProps,
16732
16739
  ref,
16733
16740
  onVideoFrame: onVideoFrame ?? null,
16734
- pauseWhenBuffering: pauseWhenBuffering ?? false,
16741
+ pauseWhenBuffering: shouldPauseWhenBuffering,
16735
16742
  onDuration,
16736
16743
  _remotionInternalStack: stack ?? null,
16737
16744
  _remotionInternalNativeLoopPassed: _remotionInternalNativeLoopPassed ?? false,
package/dist/experts.js CHANGED
@@ -2349,7 +2349,7 @@ var getSingleChildComponent = (children) => {
2349
2349
  }
2350
2350
  return child.type;
2351
2351
  };
2352
- var VERSION = "4.0.497";
2352
+ var VERSION = "4.0.499";
2353
2353
  var checkMultipleRemotionVersions = () => {
2354
2354
  if (typeof globalThis === "undefined") {
2355
2355
  return;
@@ -3187,6 +3187,9 @@ var PremountContext = createContext15({
3187
3187
  premountFramesRemaining: 0
3188
3188
  });
3189
3189
  var ENABLE_V5_BREAKING_CHANGES = false;
3190
+ var resolveV5Default = (value) => {
3191
+ return value ?? ENABLE_V5_BREAKING_CHANGES;
3192
+ };
3190
3193
  var usePremounting = ({
3191
3194
  from,
3192
3195
  durationInFrames,
@@ -9662,6 +9665,7 @@ var AudioRefForwardingFunction = (props, ref) => {
9662
9665
  const { loop, freeze: _freeze, ...propsOtherThanLoop } = propsWithFreeze;
9663
9666
  const { fps } = useVideoConfig();
9664
9667
  const environment = useRemotionEnvironment();
9668
+ const shouldPauseWhenBuffering = resolveV5Default(pauseWhenBuffering);
9665
9669
  if (environment.isClientSideRendering) {
9666
9670
  throw new Error("<Html5Audio> is not supported in @remotion/web-renderer. Use <Audio> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
9667
9671
  }
@@ -9731,7 +9735,7 @@ var AudioRefForwardingFunction = (props, ref) => {
9731
9735
  name,
9732
9736
  children: /* @__PURE__ */ jsx23(Html5Audio, {
9733
9737
  _remotionInternalNeedsDurationCalculation: Boolean(loop),
9734
- pauseWhenBuffering: pauseWhenBuffering ?? false,
9738
+ pauseWhenBuffering: shouldPauseWhenBuffering,
9735
9739
  ...otherProps,
9736
9740
  ref
9737
9741
  })
@@ -9759,7 +9763,7 @@ var AudioRefForwardingFunction = (props, ref) => {
9759
9763
  ref,
9760
9764
  onNativeError: onError,
9761
9765
  onDuration,
9762
- pauseWhenBuffering: pauseWhenBuffering ?? false,
9766
+ pauseWhenBuffering: shouldPauseWhenBuffering,
9763
9767
  _remotionInternalNeedsDurationCalculation: Boolean(loop),
9764
9768
  showInTimeline: showInTimeline ?? true
9765
9769
  });
@@ -11166,6 +11170,7 @@ var ImgInner = ({
11166
11170
  ...props2
11167
11171
  }) => {
11168
11172
  const refForOutline = useRef24(null);
11173
+ const shouldPauseWhenLoading = resolveV5Default(pauseWhenLoading);
11169
11174
  if (effects.length === 0) {
11170
11175
  return /* @__PURE__ */ jsx28(NativeImgInner, {
11171
11176
  ...props2,
@@ -11189,7 +11194,7 @@ var ImgInner = ({
11189
11194
  className,
11190
11195
  style,
11191
11196
  id,
11192
- pauseWhenLoading,
11197
+ pauseWhenLoading: shouldPauseWhenLoading,
11193
11198
  maxRetries,
11194
11199
  delayRenderRetries,
11195
11200
  delayRenderTimeoutInMilliseconds,
@@ -11218,7 +11223,7 @@ var ImgInner = ({
11218
11223
  className,
11219
11224
  style,
11220
11225
  id,
11221
- pauseWhenLoading,
11226
+ pauseWhenLoading: shouldPauseWhenLoading,
11222
11227
  maxRetries,
11223
11228
  delayRenderRetries,
11224
11229
  delayRenderTimeoutInMilliseconds,
@@ -12412,6 +12417,7 @@ var InnerOffthreadVideo = (props2) => {
12412
12417
  ...otherProps
12413
12418
  } = props2;
12414
12419
  const environment = useRemotionEnvironment();
12420
+ const shouldPauseWhenBuffering = resolveV5Default(pauseWhenBuffering);
12415
12421
  if (environment.isClientSideRendering) {
12416
12422
  throw new Error("<OffthreadVideo> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
12417
12423
  }
@@ -12436,7 +12442,7 @@ var InnerOffthreadVideo = (props2) => {
12436
12442
  durationInFrames: trimAfterValue,
12437
12443
  name,
12438
12444
  children: /* @__PURE__ */ jsx35(InnerOffthreadVideo, {
12439
- pauseWhenBuffering: pauseWhenBuffering ?? false,
12445
+ pauseWhenBuffering: shouldPauseWhenBuffering,
12440
12446
  ...otherProps,
12441
12447
  trimAfter: undefined,
12442
12448
  name: undefined,
@@ -12451,7 +12457,7 @@ var InnerOffthreadVideo = (props2) => {
12451
12457
  validateMediaProps(props2, "Video");
12452
12458
  if (environment.isRendering) {
12453
12459
  return /* @__PURE__ */ jsx35(OffthreadVideoForRendering, {
12454
- pauseWhenBuffering: pauseWhenBuffering ?? false,
12460
+ pauseWhenBuffering: shouldPauseWhenBuffering,
12455
12461
  ...otherProps,
12456
12462
  trimAfter: undefined,
12457
12463
  name: undefined,
@@ -12476,7 +12482,7 @@ var InnerOffthreadVideo = (props2) => {
12476
12482
  _remotionInternalStack: stack ?? null,
12477
12483
  onDuration,
12478
12484
  onlyWarnForMediaSeekingError: true,
12479
- pauseWhenBuffering: pauseWhenBuffering ?? false,
12485
+ pauseWhenBuffering: shouldPauseWhenBuffering,
12480
12486
  showInTimeline: showInTimeline ?? true,
12481
12487
  onAutoPlayError: onAutoPlayError ?? undefined,
12482
12488
  onVideoFrame: onVideoFrame ?? null,
@@ -12534,7 +12540,7 @@ var OffthreadVideo = ({
12534
12540
  onAutoPlayError: onAutoPlayError ?? null,
12535
12541
  onError,
12536
12542
  onVideoFrame,
12537
- pauseWhenBuffering: pauseWhenBuffering ?? true,
12543
+ pauseWhenBuffering: resolveV5Default(pauseWhenBuffering),
12538
12544
  playbackRate: playbackRate ?? 1,
12539
12545
  preservePitch,
12540
12546
  toneFrequency: toneFrequency ?? 1,
@@ -13417,6 +13423,7 @@ var VideoForwardingFunction = (props2, ref) => {
13417
13423
  const { loop, ...propsOtherThanLoop } = props2;
13418
13424
  const { fps } = useVideoConfig();
13419
13425
  const environment = useRemotionEnvironment();
13426
+ const shouldPauseWhenBuffering = resolveV5Default(pauseWhenBuffering);
13420
13427
  if (environment.isClientSideRendering) {
13421
13428
  throw new Error("<Html5Video> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
13422
13429
  }
@@ -13475,7 +13482,7 @@ var VideoForwardingFunction = (props2, ref) => {
13475
13482
  durationInFrames: trimAfterValue === undefined ? undefined : trimAfterValue / (props2.playbackRate ?? 1),
13476
13483
  name,
13477
13484
  children: /* @__PURE__ */ jsx39(Html5Video, {
13478
- pauseWhenBuffering: pauseWhenBuffering ?? false,
13485
+ pauseWhenBuffering: shouldPauseWhenBuffering,
13479
13486
  onVideoFrame,
13480
13487
  ...otherProps,
13481
13488
  ref,
@@ -13501,7 +13508,7 @@ var VideoForwardingFunction = (props2, ref) => {
13501
13508
  ...otherProps,
13502
13509
  ref,
13503
13510
  onVideoFrame: onVideoFrame ?? null,
13504
- pauseWhenBuffering: pauseWhenBuffering ?? false,
13511
+ pauseWhenBuffering: shouldPauseWhenBuffering,
13505
13512
  onDuration,
13506
13513
  _remotionInternalStack: stack ?? null,
13507
13514
  _remotionInternalNativeLoopPassed: _remotionInternalNativeLoopPassed ?? false,