@remotion/studio 4.0.317 → 4.0.318

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.
@@ -21610,18 +21610,37 @@ var Log = {
21610
21610
  return console.error(...args);
21611
21611
  }
21612
21612
  };
21613
+
21614
+ class ResizableBuffer {
21615
+ buffer;
21616
+ uintarray;
21617
+ constructor(buffer) {
21618
+ this.buffer = buffer;
21619
+ this.uintarray = new Uint8Array(buffer);
21620
+ }
21621
+ resize(newLength) {
21622
+ if (typeof this.buffer.resize === "function") {
21623
+ this.buffer.resize(newLength);
21624
+ } else {
21625
+ const newBuffer = new ArrayBuffer(newLength);
21626
+ new Uint8Array(newBuffer).set(new Uint8Array(this.buffer).subarray(0, Math.min(this.buffer.byteLength, newLength)));
21627
+ this.buffer = newBuffer;
21628
+ this.uintarray = new Uint8Array(newBuffer);
21629
+ }
21630
+ }
21631
+ }
21613
21632
  var makeBufferWithMaxBytes = (initialData, maxBytes) => {
21614
21633
  const maxByteLength = Math.min(maxBytes, 2 ** 31);
21615
21634
  try {
21616
21635
  const buf = new ArrayBuffer(initialData.byteLength, {
21617
21636
  maxByteLength
21618
21637
  });
21619
- return buf;
21638
+ return new ResizableBuffer(buf);
21620
21639
  } catch (e) {
21621
21640
  if (e instanceof RangeError && maxBytes > 2 ** 27) {
21622
- return new ArrayBuffer(initialData.byteLength, {
21641
+ return new ResizableBuffer(new ArrayBuffer(initialData.byteLength, {
21623
21642
  maxByteLength: 2 ** 27
21624
- });
21643
+ }));
21625
21644
  }
21626
21645
  throw e;
21627
21646
  }
@@ -21629,17 +21648,17 @@ var makeBufferWithMaxBytes = (initialData, maxBytes) => {
21629
21648
  var bufferManager = ({
21630
21649
  initialData,
21631
21650
  maxBytes,
21632
- counter
21651
+ counter,
21652
+ logLevel
21633
21653
  }) => {
21634
21654
  const buf = makeBufferWithMaxBytes(initialData, maxBytes);
21635
- if (!buf.resize) {
21636
- throw new Error("`ArrayBuffer.resize` is not supported in this Runtime. On the server: Use at least Node.js 20 or Bun. In the browser: Chrome 111, Edge 111, Safari 16.4, Firefox 128, Opera 111");
21655
+ if (!buf.buffer.resize) {
21656
+ Log.warn(logLevel, "`ArrayBuffer.resize` is not supported in this Runtime. Using slow polyfill.");
21637
21657
  }
21638
- let uintArray = new Uint8Array(buf);
21639
- uintArray.set(initialData);
21640
- let view = new DataView(uintArray.buffer);
21658
+ buf.uintarray.set(initialData);
21659
+ let view = new DataView(buf.uintarray.buffer);
21641
21660
  const destroy = () => {
21642
- uintArray = new Uint8Array(0);
21661
+ buf.uintarray = new Uint8Array(0);
21643
21662
  buf.resize(0);
21644
21663
  };
21645
21664
  const flushBytesRead = (force, mode) => {
@@ -21651,11 +21670,11 @@ var bufferManager = ({
21651
21670
  return { bytesRemoved: 0, removedData: null };
21652
21671
  }
21653
21672
  counter.discardBytes(bytesToRemove);
21654
- const removedData = mode === "download" ? uintArray.slice(0, bytesToRemove) : null;
21655
- const newData = uintArray.slice(bytesToRemove);
21656
- uintArray.set(newData);
21673
+ const removedData = mode === "download" ? buf.uintarray.slice(0, bytesToRemove) : null;
21674
+ const newData = buf.uintarray.slice(bytesToRemove);
21675
+ buf.uintarray.set(newData);
21657
21676
  buf.resize(newData.byteLength);
21658
- view = new DataView(uintArray.buffer);
21677
+ view = new DataView(buf.uintarray.buffer);
21659
21678
  return { bytesRemoved: bytesToRemove, removedData };
21660
21679
  };
21661
21680
  const skipTo = (offset) => {
@@ -21671,7 +21690,7 @@ var bufferManager = ({
21671
21690
  counter.increment(offset - currentOffset);
21672
21691
  };
21673
21692
  const addData = (newData) => {
21674
- const oldLength = buf.byteLength;
21693
+ const oldLength = buf.buffer.byteLength;
21675
21694
  const newLength = oldLength + newData.byteLength;
21676
21695
  if (newLength < oldLength) {
21677
21696
  throw new Error("Cannot decrement size");
@@ -21680,22 +21699,22 @@ var bufferManager = ({
21680
21699
  throw new Error(`Exceeded maximum byte length ${maxBytes} with ${newLength}`);
21681
21700
  }
21682
21701
  buf.resize(newLength);
21683
- uintArray = new Uint8Array(buf);
21684
- uintArray.set(newData, oldLength);
21685
- view = new DataView(uintArray.buffer);
21702
+ buf.uintarray = new Uint8Array(buf.buffer);
21703
+ buf.uintarray.set(newData, oldLength);
21704
+ view = new DataView(buf.uintarray.buffer);
21686
21705
  };
21687
21706
  const replaceData = (newData, seekTo) => {
21688
21707
  buf.resize(newData.byteLength);
21689
- uintArray = new Uint8Array(buf);
21690
- uintArray.set(newData);
21691
- view = new DataView(uintArray.buffer);
21708
+ buf.uintarray = new Uint8Array(buf.buffer);
21709
+ buf.uintarray.set(newData);
21710
+ view = new DataView(buf.uintarray.buffer);
21692
21711
  counter.setDiscardedOffset(seekTo);
21693
21712
  counter.decrement(counter.getOffset());
21694
21713
  counter.increment(seekTo);
21695
21714
  };
21696
21715
  return {
21697
- view,
21698
- uintArray,
21716
+ getView: () => view,
21717
+ getUint8Array: () => buf.uintarray,
21699
21718
  destroy,
21700
21719
  addData,
21701
21720
  skipTo,
@@ -21730,17 +21749,21 @@ var makeOffsetCounter = (initial) => {
21730
21749
  }
21731
21750
  };
21732
21751
  };
21733
- var getArrayBufferIterator = (initialData, maxBytes) => {
21752
+ var getArrayBufferIterator = ({
21753
+ initialData,
21754
+ maxBytes,
21755
+ logLevel
21756
+ }) => {
21734
21757
  const counter = makeOffsetCounter(0);
21735
21758
  const {
21736
- uintArray,
21737
- view,
21759
+ getUint8Array,
21760
+ getView,
21738
21761
  addData,
21739
21762
  destroy,
21740
21763
  removeBytesRead,
21741
21764
  skipTo,
21742
21765
  replaceData
21743
- } = bufferManager({ initialData, maxBytes, counter });
21766
+ } = bufferManager({ initialData, maxBytes, counter, logLevel });
21744
21767
  const startCheckpoint = () => {
21745
21768
  const checkpoint = counter.getOffset();
21746
21769
  return {
@@ -21750,7 +21773,7 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
21750
21773
  };
21751
21774
  };
21752
21775
  const getSlice = (amount) => {
21753
- const value = uintArray.slice(counter.getDiscardedOffset(), counter.getDiscardedOffset() + amount);
21776
+ const value = getUint8Array().slice(counter.getDiscardedOffset(), counter.getDiscardedOffset() + amount);
21754
21777
  counter.increment(value.length);
21755
21778
  return value;
21756
21779
  };
@@ -21782,7 +21805,7 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
21782
21805
  return str;
21783
21806
  };
21784
21807
  const getUint8 = () => {
21785
- const val = view.getUint8(counter.getDiscardedOffset());
21808
+ const val = getView().getUint8(counter.getDiscardedOffset());
21786
21809
  counter.increment(1);
21787
21810
  return val;
21788
21811
  };
@@ -21827,22 +21850,22 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
21827
21850
  return lastInt;
21828
21851
  };
21829
21852
  const getUint32 = () => {
21830
- const val = view.getUint32(counter.getDiscardedOffset());
21853
+ const val = getView().getUint32(counter.getDiscardedOffset());
21831
21854
  counter.increment(4);
21832
21855
  return val;
21833
21856
  };
21834
21857
  const getSyncSafeInt32 = () => {
21835
- const val = view.getUint32(counter.getDiscardedOffset());
21858
+ const val = getView().getUint32(counter.getDiscardedOffset());
21836
21859
  counter.increment(4);
21837
21860
  return (val & 2130706432) >> 3 | (val & 8323072) >> 2 | (val & 32512) >> 1 | val & 127;
21838
21861
  };
21839
21862
  const getUint64 = (littleEndian = false) => {
21840
- const val = view.getBigUint64(counter.getDiscardedOffset(), littleEndian);
21863
+ const val = getView().getBigUint64(counter.getDiscardedOffset(), littleEndian);
21841
21864
  counter.increment(8);
21842
21865
  return val;
21843
21866
  };
21844
21867
  const getInt64 = (littleEndian = false) => {
21845
- const val = view.getBigInt64(counter.getDiscardedOffset(), littleEndian);
21868
+ const val = getView().getBigInt64(counter.getDiscardedOffset(), littleEndian);
21846
21869
  counter.increment(8);
21847
21870
  return val;
21848
21871
  };
@@ -21859,22 +21882,22 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
21859
21882
  };
21860
21883
  };
21861
21884
  const getUint32Le = () => {
21862
- const val = view.getUint32(counter.getDiscardedOffset(), true);
21885
+ const val = getView().getUint32(counter.getDiscardedOffset(), true);
21863
21886
  counter.increment(4);
21864
21887
  return val;
21865
21888
  };
21866
21889
  const getInt32Le = () => {
21867
- const val = view.getInt32(counter.getDiscardedOffset(), true);
21890
+ const val = getView().getInt32(counter.getDiscardedOffset(), true);
21868
21891
  counter.increment(4);
21869
21892
  return val;
21870
21893
  };
21871
21894
  const getInt32 = () => {
21872
- const val = view.getInt32(counter.getDiscardedOffset());
21895
+ const val = getView().getInt32(counter.getDiscardedOffset());
21873
21896
  counter.increment(4);
21874
21897
  return val;
21875
21898
  };
21876
21899
  const bytesRemaining = () => {
21877
- return uintArray.byteLength - counter.getDiscardedOffset();
21900
+ return getUint8Array().byteLength - counter.getDiscardedOffset();
21878
21901
  };
21879
21902
  const readExpGolomb = () => {
21880
21903
  if (!bitReadingMode) {
@@ -21989,7 +22012,7 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
21989
22012
  return new TextDecoder().decode(atom);
21990
22013
  },
21991
22014
  detectFileType: () => {
21992
- return detectFileType(uintArray);
22015
+ return detectFileType(getUint8Array());
21993
22016
  },
21994
22017
  getPaddedFourByteNumber,
21995
22018
  getMatroskaSegmentId: () => {
@@ -22067,36 +22090,36 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
22067
22090
  return actualValue;
22068
22091
  },
22069
22092
  getInt8: () => {
22070
- const val = view.getInt8(counter.getDiscardedOffset());
22093
+ const val = getView().getInt8(counter.getDiscardedOffset());
22071
22094
  counter.increment(1);
22072
22095
  return val;
22073
22096
  },
22074
22097
  getUint16: () => {
22075
- const val = view.getUint16(counter.getDiscardedOffset());
22098
+ const val = getView().getUint16(counter.getDiscardedOffset());
22076
22099
  counter.increment(2);
22077
22100
  return val;
22078
22101
  },
22079
22102
  getUint16Le: () => {
22080
- const val = view.getUint16(counter.getDiscardedOffset(), true);
22103
+ const val = getView().getUint16(counter.getDiscardedOffset(), true);
22081
22104
  counter.increment(2);
22082
22105
  return val;
22083
22106
  },
22084
22107
  getUint24: () => {
22085
- const val1 = view.getUint8(counter.getDiscardedOffset());
22086
- const val2 = view.getUint8(counter.getDiscardedOffset() + 1);
22087
- const val3 = view.getUint8(counter.getDiscardedOffset() + 2);
22108
+ const val1 = getView().getUint8(counter.getDiscardedOffset());
22109
+ const val2 = getView().getUint8(counter.getDiscardedOffset() + 1);
22110
+ const val3 = getView().getUint8(counter.getDiscardedOffset() + 2);
22088
22111
  counter.increment(3);
22089
22112
  return val1 << 16 | val2 << 8 | val3;
22090
22113
  },
22091
22114
  getInt24: () => {
22092
- const val1 = view.getInt8(counter.getDiscardedOffset());
22093
- const val2 = view.getUint8(counter.getDiscardedOffset() + 1);
22094
- const val3 = view.getUint8(counter.getDiscardedOffset() + 2);
22115
+ const val1 = getView().getInt8(counter.getDiscardedOffset());
22116
+ const val2 = getView().getUint8(counter.getDiscardedOffset() + 1);
22117
+ const val3 = getView().getUint8(counter.getDiscardedOffset() + 2);
22095
22118
  counter.increment(3);
22096
22119
  return val1 << 16 | val2 << 8 | val3;
22097
22120
  },
22098
22121
  getInt16: () => {
22099
- const val = view.getInt16(counter.getDiscardedOffset());
22122
+ const val = getView().getInt16(counter.getDiscardedOffset());
22100
22123
  counter.increment(2);
22101
22124
  return val;
22102
22125
  },
@@ -22144,13 +22167,13 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
22144
22167
  };
22145
22168
  },
22146
22169
  getFloat64: () => {
22147
- const val = view.getFloat64(counter.getDiscardedOffset());
22170
+ const val = getView().getFloat64(counter.getDiscardedOffset());
22148
22171
  counter.increment(8);
22149
22172
  return val;
22150
22173
  },
22151
22174
  readUntilNullTerminator,
22152
22175
  getFloat32: () => {
22153
- const val = view.getFloat32(counter.getDiscardedOffset());
22176
+ const val = getView().getFloat32(counter.getDiscardedOffset());
22154
22177
  counter.increment(4);
22155
22178
  return val;
22156
22179
  },
@@ -22187,10 +22210,18 @@ var parseMvhd = ({
22187
22210
  const durationInUnits = version === 1 ? iterator.getUint64() : iterator.getUint32();
22188
22211
  const durationInSeconds = Number(durationInUnits) / timeScale;
22189
22212
  const rateArray = iterator.getSlice(4);
22190
- const rateView = getArrayBufferIterator(rateArray, rateArray.length);
22213
+ const rateView = getArrayBufferIterator({
22214
+ initialData: rateArray,
22215
+ maxBytes: rateArray.length,
22216
+ logLevel: "error"
22217
+ });
22191
22218
  const rate = rateView.getInt8() * 10 + rateView.getInt8() + rateView.getInt8() * 0.1 + rateView.getInt8() * 0.01;
22192
22219
  const volumeArray = iterator.getSlice(2);
22193
- const volumeView = getArrayBufferIterator(volumeArray, volumeArray.length);
22220
+ const volumeView = getArrayBufferIterator({
22221
+ initialData: volumeArray,
22222
+ maxBytes: volumeArray.length,
22223
+ logLevel: "error"
22224
+ });
22194
22225
  const volume = volumeView.getInt8() + volumeView.getInt8() * 0.1;
22195
22226
  iterator.discard(2);
22196
22227
  iterator.discard(4);
@@ -23001,7 +23032,11 @@ var mediaParserAdvancedColorToWebCodecsColor = (color2) => {
23001
23032
  };
23002
23033
  };
23003
23034
  var parseAv1PrivateData = (data, colrAtom) => {
23004
- const iterator = getArrayBufferIterator(data, data.byteLength);
23035
+ const iterator = getArrayBufferIterator({
23036
+ initialData: data,
23037
+ maxBytes: data.byteLength,
23038
+ logLevel: "error"
23039
+ });
23005
23040
  iterator.startReadingBits();
23006
23041
  if (iterator.getBits(1) !== 1) {
23007
23042
  iterator.destroy();
@@ -23376,7 +23411,11 @@ var getAudioDescription = (track) => {
23376
23411
  throw new Error("Error parsing vorbis codec private");
23377
23412
  }
23378
23413
  const vorbisBooks = privateData.slice(offset);
23379
- const bufferIterator = getArrayBufferIterator(vorbisInfo.slice(0), vorbisInfo.length);
23414
+ const bufferIterator = getArrayBufferIterator({
23415
+ initialData: vorbisInfo.slice(0),
23416
+ maxBytes: vorbisInfo.length,
23417
+ logLevel: "error"
23418
+ });
23380
23419
  bufferIterator.getUint8();
23381
23420
  const vorbis = bufferIterator.getByteString(6, false);
23382
23421
  if (vorbis !== "vorbis") {
@@ -23473,7 +23512,11 @@ var getMatroskaVideoCodecString = ({
23473
23512
  }
23474
23513
  if (codec.value === "V_MPEGH/ISO/HEVC") {
23475
23514
  const priv = getPrivateData(track);
23476
- const iterator = getArrayBufferIterator(priv, priv.length);
23515
+ const iterator = getArrayBufferIterator({
23516
+ initialData: priv,
23517
+ maxBytes: priv.length,
23518
+ logLevel: "error"
23519
+ });
23477
23520
  return "hvc1." + getHvc1CodecString(iterator);
23478
23521
  }
23479
23522
  if (codec.value === "V_AV1") {
@@ -23545,7 +23588,11 @@ var getMatroskaAudioCodecString = (track) => {
23545
23588
  }
23546
23589
  if (codec.value === "A_AAC") {
23547
23590
  const priv = getPrivateData(track);
23548
- const iterator = getArrayBufferIterator(priv, priv.length);
23591
+ const iterator = getArrayBufferIterator({
23592
+ initialData: priv,
23593
+ maxBytes: priv.length,
23594
+ logLevel: "error"
23595
+ });
23549
23596
  iterator.startReadingBits();
23550
23597
  const profile = iterator.getBits(5);
23551
23598
  iterator.stopReadingBits();
@@ -24932,7 +24979,11 @@ var parseAvcc = ({
24932
24979
  };
24933
24980
  };
24934
24981
  var parseIccProfile = (data) => {
24935
- const iterator = getArrayBufferIterator(data, data.length);
24982
+ const iterator = getArrayBufferIterator({
24983
+ initialData: data,
24984
+ maxBytes: data.length,
24985
+ logLevel: "error"
24986
+ });
24936
24987
  const size4 = iterator.getUint32();
24937
24988
  if (size4 !== data.length) {
24938
24989
  throw new Error("Invalid ICC profile size");
@@ -24977,7 +25028,11 @@ var parseIccProfile = (data) => {
24977
25028
  for (const entry of entries) {
24978
25029
  const found = data.slice(entry.offset, entry.offset + entry.size);
24979
25030
  if (entry.tag === "rXYZ" || entry.tag === "gXYZ" || entry.tag === "bXYZ" || entry.tag === "wtpt") {
24980
- const it = getArrayBufferIterator(found, found.length);
25031
+ const it = getArrayBufferIterator({
25032
+ initialData: found,
25033
+ maxBytes: found.length,
25034
+ logLevel: "error"
25035
+ });
24981
25036
  it.discard(4);
24982
25037
  const x = it.getInt32() / 65536;
24983
25038
  const y = it.getInt32() / 65536;
@@ -26492,7 +26547,11 @@ var findEnd = (buffer) => {
26492
26547
  return null;
26493
26548
  };
26494
26549
  var inspect = (buffer, avcState) => {
26495
- const iterator = getArrayBufferIterator(buffer, buffer.byteLength);
26550
+ const iterator = getArrayBufferIterator({
26551
+ initialData: buffer,
26552
+ maxBytes: buffer.byteLength,
26553
+ logLevel: "error"
26554
+ });
26496
26555
  iterator.startReadingBits();
26497
26556
  iterator.getBits(1);
26498
26557
  const nal_ref_idc = iterator.getBits(2);
@@ -26686,7 +26745,11 @@ var getSampleFromBlock = async ({
26686
26745
  onVideoTrack,
26687
26746
  avcState
26688
26747
  }) => {
26689
- const iterator = getArrayBufferIterator(ebml.value, ebml.value.length);
26748
+ const iterator = getArrayBufferIterator({
26749
+ initialData: ebml.value,
26750
+ maxBytes: ebml.value.length,
26751
+ logLevel: "error"
26752
+ });
26690
26753
  const trackNumber2 = iterator.getVint();
26691
26754
  if (trackNumber2 === null) {
26692
26755
  throw new Error("Not enough data to get track number, should not happen");
@@ -31052,7 +31115,11 @@ var emitSample = async ({
31052
31115
  data,
31053
31116
  offset
31054
31117
  }) => {
31055
- const iterator = getArrayBufferIterator(data, data.length);
31118
+ const iterator = getArrayBufferIterator({
31119
+ initialData: data,
31120
+ maxBytes: data.length,
31121
+ logLevel: "error"
31122
+ });
31056
31123
  const parsed = parseFrameHeader({ iterator, state });
31057
31124
  if (!parsed) {
31058
31125
  throw new Error("Invalid CRC");
@@ -31585,7 +31652,11 @@ var getMoovAtom = async ({
31585
31652
  });
31586
31653
  return null;
31587
31654
  } : null;
31588
- const iterator = getArrayBufferIterator(new Uint8Array([]), state.contentLength - endOfMdat);
31655
+ const iterator = getArrayBufferIterator({
31656
+ initialData: new Uint8Array([]),
31657
+ maxBytes: state.contentLength - endOfMdat,
31658
+ logLevel: "error"
31659
+ });
31589
31660
  while (true) {
31590
31661
  const result = await reader.reader.read();
31591
31662
  if (result.value) {
@@ -34485,7 +34556,11 @@ var readAdtsHeader = (buffer) => {
34485
34556
  if (buffer.byteLength < 9) {
34486
34557
  return null;
34487
34558
  }
34488
- const iterator = getArrayBufferIterator(buffer, buffer.byteLength);
34559
+ const iterator = getArrayBufferIterator({
34560
+ initialData: buffer,
34561
+ maxBytes: buffer.byteLength,
34562
+ logLevel: "error"
34563
+ });
34489
34564
  iterator.startReadingBits();
34490
34565
  const bits = iterator.getBits(12);
34491
34566
  if (bits !== 4095) {
@@ -35028,6 +35103,64 @@ var parseData = ({
35028
35103
  }
35029
35104
  return Promise.resolve(null);
35030
35105
  };
35106
+ var parseFact = ({
35107
+ state
35108
+ }) => {
35109
+ const { iterator } = state;
35110
+ const size4 = iterator.getUint32Le();
35111
+ if (size4 !== 4) {
35112
+ throw new Error(`Expected size 4 for fact box, got ${size4}`);
35113
+ }
35114
+ const numberOfSamplesPerChannel = iterator.getUint32Le();
35115
+ const factBox = {
35116
+ type: "wav-fact",
35117
+ numberOfSamplesPerChannel
35118
+ };
35119
+ state.structure.getWavStructure().boxes.push(factBox);
35120
+ return Promise.resolve(null);
35121
+ };
35122
+ var WMMEDIASUBTYPE_PCM = [
35123
+ 1,
35124
+ 0,
35125
+ 0,
35126
+ 0,
35127
+ 0,
35128
+ 0,
35129
+ 16,
35130
+ 0,
35131
+ 128,
35132
+ 0,
35133
+ 0,
35134
+ 170,
35135
+ 0,
35136
+ 56,
35137
+ 155,
35138
+ 113
35139
+ ];
35140
+ var KSDATAFORMAT_SUBTYPE_IEEE_FLOAT = [
35141
+ 3,
35142
+ 0,
35143
+ 0,
35144
+ 0,
35145
+ 0,
35146
+ 0,
35147
+ 16,
35148
+ 0,
35149
+ 128,
35150
+ 0,
35151
+ 0,
35152
+ 170,
35153
+ 0,
35154
+ 56,
35155
+ 155,
35156
+ 113
35157
+ ];
35158
+ var subformatIsPcm = (subformat) => {
35159
+ return subformat.every((value, index) => value === WMMEDIASUBTYPE_PCM[index]);
35160
+ };
35161
+ var subformatIsIeeeFloat = (subformat) => {
35162
+ return subformat.every((value, index) => value === KSDATAFORMAT_SUBTYPE_IEEE_FLOAT[index]);
35163
+ };
35031
35164
  var CHANNELS = {
35032
35165
  0: "Front Left",
35033
35166
  1: "Front Right",
@@ -35101,10 +35234,8 @@ var parseFmt = async ({
35101
35234
  if (subFormat.length !== 16) {
35102
35235
  throw new Error(`Only supporting WAVE with PCM audio format, but got ${subFormat.length}`);
35103
35236
  }
35104
- for (let i = 0;i < 16; i++) {
35105
- if (subFormat[i] !== [1, 0, 0, 0, 0, 0, 16, 0, 128, 0, 0, 170, 0, 56, 155, 113][i]) {
35106
- throw new Error(`Only supporting WAVE with PCM audio format, but got subformat ${subFormat[i]}`);
35107
- }
35237
+ if (subformatIsPcm(subFormat)) {} else if (subformatIsIeeeFloat(subFormat)) {} else {
35238
+ throw new Error(`Unsupported subformat: ${subFormat}`);
35108
35239
  }
35109
35240
  const channels2 = getChannelsFromMask(channelMask);
35110
35241
  wavHeader.numberOfChannels = channels2.length;
@@ -35264,6 +35395,9 @@ var parseWav = (state) => {
35264
35395
  if (type === "JUNK" || type === "FLLR") {
35265
35396
  return parseJunk({ state });
35266
35397
  }
35398
+ if (type === "fact") {
35399
+ return parseFact({ state });
35400
+ }
35267
35401
  if (type === "\x00") {
35268
35402
  return Promise.resolve(null);
35269
35403
  }
@@ -35796,8 +35930,8 @@ var warnIfRemotionLicenseNotAcknowledged = ({
35796
35930
  return;
35797
35931
  }
35798
35932
  warningShown = true;
35799
- Log.warn(logLevel, "Note: Some companies are required to obtain a license to use @remotion/media-parser. See: https://remotion.dev/license");
35800
- Log.warn(logLevel, `Pass \`acknowledgeRemotionLicense: true\` to \`${apiName}\` function to make this message disappear.`);
35933
+ Log.warn(logLevel, `Note: Some companies are required to obtain a license to use @remotion/media-parser. See: https://remotion.dev/license
35934
+ Pass \`acknowledgeRemotionLicense: true\` to \`${apiName}\` function to make this message disappear.`);
35801
35935
  };
35802
35936
  var setSeekingHints = ({
35803
35937
  hints,
@@ -36060,7 +36194,11 @@ var getMfraAtom = async ({
36060
36194
  logLevel,
36061
36195
  prefetchCache
36062
36196
  });
36063
- const iterator = getArrayBufferIterator(new Uint8Array, parentSize);
36197
+ const iterator = getArrayBufferIterator({
36198
+ initialData: new Uint8Array,
36199
+ maxBytes: parentSize,
36200
+ logLevel: "error"
36201
+ });
36064
36202
  while (true) {
36065
36203
  const res = await result.reader.reader.read();
36066
36204
  if (res.value) {
@@ -36092,7 +36230,11 @@ var getMfroAtom = async ({
36092
36230
  return null;
36093
36231
  }
36094
36232
  result.reader.abort();
36095
- const iterator = getArrayBufferIterator(value, value.length);
36233
+ const iterator = getArrayBufferIterator({
36234
+ initialData: value,
36235
+ maxBytes: value.length,
36236
+ logLevel: "error"
36237
+ });
36096
36238
  const size4 = iterator.getUint32();
36097
36239
  if (size4 !== 16) {
36098
36240
  iterator.destroy();
@@ -36527,7 +36669,11 @@ var fetchWebmCues = async ({
36527
36669
  return null;
36528
36670
  }
36529
36671
  result.reader.abort();
36530
- const iterator = getArrayBufferIterator(value, value.length);
36672
+ const iterator = getArrayBufferIterator({
36673
+ initialData: value,
36674
+ maxBytes: value.length,
36675
+ logLevel: "error"
36676
+ });
36531
36677
  const segment = await expectSegment({
36532
36678
  iterator,
36533
36679
  logLevel,
@@ -36784,7 +36930,11 @@ var fetchIdx1 = async ({
36784
36930
  if (result.contentLength === null) {
36785
36931
  throw new Error("Content length is null");
36786
36932
  }
36787
- const iterator = getArrayBufferIterator(new Uint8Array, contentLength - position + 1);
36933
+ const iterator = getArrayBufferIterator({
36934
+ initialData: new Uint8Array,
36935
+ maxBytes: contentLength - position + 1,
36936
+ logLevel: "error"
36937
+ });
36788
36938
  while (true) {
36789
36939
  const res = await result.reader.reader.read();
36790
36940
  if (res.value) {
@@ -37379,7 +37529,11 @@ var makeParserState = ({
37379
37529
  }) => {
37380
37530
  let skippedBytes = 0;
37381
37531
  const returnValue = {};
37382
- const iterator = getArrayBufferIterator(new Uint8Array([]), contentLength);
37532
+ const iterator = getArrayBufferIterator({
37533
+ initialData: new Uint8Array([]),
37534
+ maxBytes: contentLength,
37535
+ logLevel
37536
+ });
37383
37537
  const increaseSkippedBytes = (bytes) => {
37384
37538
  skippedBytes += bytes;
37385
37539
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  __require,
3
3
  __toESM
4
- } from "./chunk-bgfkgcmg.js";
4
+ } from "./chunk-cf4g1482.js";
5
5
 
6
6
  // src/renderEntry.tsx
7
7
  import { useContext, useEffect, useRef, useState } from "react";
@@ -183,7 +183,7 @@ var renderContent = (Root) => {
183
183
  renderToDOM(/* @__PURE__ */ jsx("div", {
184
184
  children: /* @__PURE__ */ jsx(DelayedSpinner, {})
185
185
  }));
186
- import("./chunk-brwvbj4j.js").then(({ StudioInternals }) => {
186
+ import("./chunk-3jqyahs2.js").then(({ StudioInternals }) => {
187
187
  renderToDOM(/* @__PURE__ */ jsx(StudioInternals.Studio, {
188
188
  readOnly: true,
189
189
  rootComponent: Root
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio"
4
4
  },
5
5
  "name": "@remotion/studio",
6
- "version": "4.0.317",
6
+ "version": "4.0.318",
7
7
  "description": "APIs for interacting with the Remotion Studio",
8
8
  "main": "dist",
9
9
  "sideEffects": false,
@@ -23,21 +23,21 @@
23
23
  "source-map": "0.7.3",
24
24
  "open": "^8.4.2",
25
25
  "zod": "3.22.3",
26
- "remotion": "4.0.317",
27
- "@remotion/player": "4.0.317",
28
- "@remotion/renderer": "4.0.317",
29
- "@remotion/media-parser": "4.0.317",
30
- "@remotion/webcodecs": "4.0.317",
31
- "@remotion/zod-types": "4.0.317",
32
- "@remotion/media-utils": "4.0.317",
33
- "@remotion/studio-shared": "4.0.317"
26
+ "remotion": "4.0.318",
27
+ "@remotion/player": "4.0.318",
28
+ "@remotion/media-utils": "4.0.318",
29
+ "@remotion/media-parser": "4.0.318",
30
+ "@remotion/renderer": "4.0.318",
31
+ "@remotion/studio-shared": "4.0.318",
32
+ "@remotion/webcodecs": "4.0.318",
33
+ "@remotion/zod-types": "4.0.318"
34
34
  },
35
35
  "devDependencies": {
36
36
  "react": "19.0.0",
37
37
  "react-dom": "19.0.0",
38
38
  "@types/semver": "^7.3.4",
39
39
  "eslint": "9.19.0",
40
- "@remotion/eslint-config-internal": "4.0.317"
40
+ "@remotion/eslint-config-internal": "4.0.318"
41
41
  },
42
42
  "publishConfig": {
43
43
  "access": "public"