@remotion/media-parser 4.0.316 → 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.
- package/dist/containers/avc/parse-avc.js +5 -1
- package/dist/containers/flac/parse-flac-frame.js +5 -1
- package/dist/containers/iso-base-media/get-moov-atom.js +5 -1
- package/dist/containers/iso-base-media/mfra/get-mfra-atom.js +5 -1
- package/dist/containers/iso-base-media/mfra/get-mfro-atom.js +5 -1
- package/dist/containers/iso-base-media/moov/mvhd.js +10 -2
- package/dist/containers/iso-base-media/parse-icc-profile.js +10 -2
- package/dist/containers/riff/seek/fetch-idx1.js +5 -1
- package/dist/containers/transport-stream/adts-header.js +5 -1
- package/dist/containers/wav/parse-fact.d.ts +5 -0
- package/dist/containers/wav/parse-fact.js +18 -0
- package/dist/containers/wav/parse-fmt.js +9 -5
- package/dist/containers/wav/parse-wav.js +4 -0
- package/dist/containers/wav/subformats.d.ts +4 -0
- package/dist/containers/wav/subformats.js +17 -0
- package/dist/containers/wav/types.d.ts +5 -1
- package/dist/containers/webm/av1-codec-private.js +5 -1
- package/dist/containers/webm/description.js +5 -1
- package/dist/containers/webm/get-sample-from-block.js +5 -1
- package/dist/containers/webm/make-track.js +10 -2
- package/dist/containers/webm/seek/fetch-web-cues.js +5 -1
- package/dist/esm/index.mjs +234 -75
- package/dist/esm/worker-server-entry.mjs +233 -74
- package/dist/esm/worker-web-entry.mjs +233 -74
- package/dist/index.d.ts +5 -1
- package/dist/iterator/buffer-iterator.d.ts +6 -1
- package/dist/iterator/buffer-iterator.js +25 -25
- package/dist/iterator/buffer-manager.d.ts +5 -3
- package/dist/iterator/buffer-manager.js +24 -23
- package/dist/iterator/polyfilled-arraybuffer.d.ts +6 -0
- package/dist/iterator/polyfilled-arraybuffer.js +21 -0
- package/dist/remotion-license-acknowledge.js +1 -2
- package/dist/state/parser-state.js +5 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
package/dist/esm/index.mjs
CHANGED
|
@@ -1163,6 +1163,26 @@ var Log = {
|
|
|
1163
1163
|
}
|
|
1164
1164
|
};
|
|
1165
1165
|
|
|
1166
|
+
// src/iterator/polyfilled-arraybuffer.ts
|
|
1167
|
+
class ResizableBuffer {
|
|
1168
|
+
buffer;
|
|
1169
|
+
uintarray;
|
|
1170
|
+
constructor(buffer) {
|
|
1171
|
+
this.buffer = buffer;
|
|
1172
|
+
this.uintarray = new Uint8Array(buffer);
|
|
1173
|
+
}
|
|
1174
|
+
resize(newLength) {
|
|
1175
|
+
if (typeof this.buffer.resize === "function") {
|
|
1176
|
+
this.buffer.resize(newLength);
|
|
1177
|
+
} else {
|
|
1178
|
+
const newBuffer = new ArrayBuffer(newLength);
|
|
1179
|
+
new Uint8Array(newBuffer).set(new Uint8Array(this.buffer).subarray(0, Math.min(this.buffer.byteLength, newLength)));
|
|
1180
|
+
this.buffer = newBuffer;
|
|
1181
|
+
this.uintarray = new Uint8Array(newBuffer);
|
|
1182
|
+
}
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1166
1186
|
// src/iterator/buffer-manager.ts
|
|
1167
1187
|
var makeBufferWithMaxBytes = (initialData, maxBytes) => {
|
|
1168
1188
|
const maxByteLength = Math.min(maxBytes, 2 ** 31);
|
|
@@ -1170,12 +1190,12 @@ var makeBufferWithMaxBytes = (initialData, maxBytes) => {
|
|
|
1170
1190
|
const buf = new ArrayBuffer(initialData.byteLength, {
|
|
1171
1191
|
maxByteLength
|
|
1172
1192
|
});
|
|
1173
|
-
return buf;
|
|
1193
|
+
return new ResizableBuffer(buf);
|
|
1174
1194
|
} catch (e) {
|
|
1175
1195
|
if (e instanceof RangeError && maxBytes > 2 ** 27) {
|
|
1176
|
-
return new ArrayBuffer(initialData.byteLength, {
|
|
1196
|
+
return new ResizableBuffer(new ArrayBuffer(initialData.byteLength, {
|
|
1177
1197
|
maxByteLength: 2 ** 27
|
|
1178
|
-
});
|
|
1198
|
+
}));
|
|
1179
1199
|
}
|
|
1180
1200
|
throw e;
|
|
1181
1201
|
}
|
|
@@ -1183,17 +1203,17 @@ var makeBufferWithMaxBytes = (initialData, maxBytes) => {
|
|
|
1183
1203
|
var bufferManager = ({
|
|
1184
1204
|
initialData,
|
|
1185
1205
|
maxBytes,
|
|
1186
|
-
counter
|
|
1206
|
+
counter,
|
|
1207
|
+
logLevel
|
|
1187
1208
|
}) => {
|
|
1188
1209
|
const buf = makeBufferWithMaxBytes(initialData, maxBytes);
|
|
1189
|
-
if (!buf.resize) {
|
|
1190
|
-
|
|
1210
|
+
if (!buf.buffer.resize) {
|
|
1211
|
+
Log.warn(logLevel, "`ArrayBuffer.resize` is not supported in this Runtime. Using slow polyfill.");
|
|
1191
1212
|
}
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
let view = new DataView(uintArray.buffer);
|
|
1213
|
+
buf.uintarray.set(initialData);
|
|
1214
|
+
let view = new DataView(buf.uintarray.buffer);
|
|
1195
1215
|
const destroy = () => {
|
|
1196
|
-
|
|
1216
|
+
buf.uintarray = new Uint8Array(0);
|
|
1197
1217
|
buf.resize(0);
|
|
1198
1218
|
};
|
|
1199
1219
|
const flushBytesRead = (force, mode) => {
|
|
@@ -1205,11 +1225,11 @@ var bufferManager = ({
|
|
|
1205
1225
|
return { bytesRemoved: 0, removedData: null };
|
|
1206
1226
|
}
|
|
1207
1227
|
counter.discardBytes(bytesToRemove);
|
|
1208
|
-
const removedData = mode === "download" ?
|
|
1209
|
-
const newData =
|
|
1210
|
-
|
|
1228
|
+
const removedData = mode === "download" ? buf.uintarray.slice(0, bytesToRemove) : null;
|
|
1229
|
+
const newData = buf.uintarray.slice(bytesToRemove);
|
|
1230
|
+
buf.uintarray.set(newData);
|
|
1211
1231
|
buf.resize(newData.byteLength);
|
|
1212
|
-
view = new DataView(
|
|
1232
|
+
view = new DataView(buf.uintarray.buffer);
|
|
1213
1233
|
return { bytesRemoved: bytesToRemove, removedData };
|
|
1214
1234
|
};
|
|
1215
1235
|
const skipTo = (offset) => {
|
|
@@ -1225,7 +1245,7 @@ var bufferManager = ({
|
|
|
1225
1245
|
counter.increment(offset - currentOffset);
|
|
1226
1246
|
};
|
|
1227
1247
|
const addData = (newData) => {
|
|
1228
|
-
const oldLength = buf.byteLength;
|
|
1248
|
+
const oldLength = buf.buffer.byteLength;
|
|
1229
1249
|
const newLength = oldLength + newData.byteLength;
|
|
1230
1250
|
if (newLength < oldLength) {
|
|
1231
1251
|
throw new Error("Cannot decrement size");
|
|
@@ -1234,22 +1254,22 @@ var bufferManager = ({
|
|
|
1234
1254
|
throw new Error(`Exceeded maximum byte length ${maxBytes} with ${newLength}`);
|
|
1235
1255
|
}
|
|
1236
1256
|
buf.resize(newLength);
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
view = new DataView(
|
|
1257
|
+
buf.uintarray = new Uint8Array(buf.buffer);
|
|
1258
|
+
buf.uintarray.set(newData, oldLength);
|
|
1259
|
+
view = new DataView(buf.uintarray.buffer);
|
|
1240
1260
|
};
|
|
1241
1261
|
const replaceData = (newData, seekTo) => {
|
|
1242
1262
|
buf.resize(newData.byteLength);
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
view = new DataView(
|
|
1263
|
+
buf.uintarray = new Uint8Array(buf.buffer);
|
|
1264
|
+
buf.uintarray.set(newData);
|
|
1265
|
+
view = new DataView(buf.uintarray.buffer);
|
|
1246
1266
|
counter.setDiscardedOffset(seekTo);
|
|
1247
1267
|
counter.decrement(counter.getOffset());
|
|
1248
1268
|
counter.increment(seekTo);
|
|
1249
1269
|
};
|
|
1250
1270
|
return {
|
|
1251
|
-
view,
|
|
1252
|
-
|
|
1271
|
+
getView: () => view,
|
|
1272
|
+
getUint8Array: () => buf.uintarray,
|
|
1253
1273
|
destroy,
|
|
1254
1274
|
addData,
|
|
1255
1275
|
skipTo,
|
|
@@ -1288,17 +1308,21 @@ var makeOffsetCounter = (initial) => {
|
|
|
1288
1308
|
};
|
|
1289
1309
|
|
|
1290
1310
|
// src/iterator/buffer-iterator.ts
|
|
1291
|
-
var getArrayBufferIterator = (
|
|
1311
|
+
var getArrayBufferIterator = ({
|
|
1312
|
+
initialData,
|
|
1313
|
+
maxBytes,
|
|
1314
|
+
logLevel
|
|
1315
|
+
}) => {
|
|
1292
1316
|
const counter = makeOffsetCounter(0);
|
|
1293
1317
|
const {
|
|
1294
|
-
|
|
1295
|
-
|
|
1318
|
+
getUint8Array,
|
|
1319
|
+
getView,
|
|
1296
1320
|
addData,
|
|
1297
1321
|
destroy,
|
|
1298
1322
|
removeBytesRead,
|
|
1299
1323
|
skipTo,
|
|
1300
1324
|
replaceData
|
|
1301
|
-
} = bufferManager({ initialData, maxBytes, counter });
|
|
1325
|
+
} = bufferManager({ initialData, maxBytes, counter, logLevel });
|
|
1302
1326
|
const startCheckpoint = () => {
|
|
1303
1327
|
const checkpoint = counter.getOffset();
|
|
1304
1328
|
return {
|
|
@@ -1308,7 +1332,7 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
1308
1332
|
};
|
|
1309
1333
|
};
|
|
1310
1334
|
const getSlice = (amount) => {
|
|
1311
|
-
const value =
|
|
1335
|
+
const value = getUint8Array().slice(counter.getDiscardedOffset(), counter.getDiscardedOffset() + amount);
|
|
1312
1336
|
counter.increment(value.length);
|
|
1313
1337
|
return value;
|
|
1314
1338
|
};
|
|
@@ -1340,7 +1364,7 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
1340
1364
|
return str;
|
|
1341
1365
|
};
|
|
1342
1366
|
const getUint8 = () => {
|
|
1343
|
-
const val =
|
|
1367
|
+
const val = getView().getUint8(counter.getDiscardedOffset());
|
|
1344
1368
|
counter.increment(1);
|
|
1345
1369
|
return val;
|
|
1346
1370
|
};
|
|
@@ -1385,22 +1409,22 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
1385
1409
|
return lastInt;
|
|
1386
1410
|
};
|
|
1387
1411
|
const getUint32 = () => {
|
|
1388
|
-
const val =
|
|
1412
|
+
const val = getView().getUint32(counter.getDiscardedOffset());
|
|
1389
1413
|
counter.increment(4);
|
|
1390
1414
|
return val;
|
|
1391
1415
|
};
|
|
1392
1416
|
const getSyncSafeInt32 = () => {
|
|
1393
|
-
const val =
|
|
1417
|
+
const val = getView().getUint32(counter.getDiscardedOffset());
|
|
1394
1418
|
counter.increment(4);
|
|
1395
1419
|
return (val & 2130706432) >> 3 | (val & 8323072) >> 2 | (val & 32512) >> 1 | val & 127;
|
|
1396
1420
|
};
|
|
1397
1421
|
const getUint64 = (littleEndian = false) => {
|
|
1398
|
-
const val =
|
|
1422
|
+
const val = getView().getBigUint64(counter.getDiscardedOffset(), littleEndian);
|
|
1399
1423
|
counter.increment(8);
|
|
1400
1424
|
return val;
|
|
1401
1425
|
};
|
|
1402
1426
|
const getInt64 = (littleEndian = false) => {
|
|
1403
|
-
const val =
|
|
1427
|
+
const val = getView().getBigInt64(counter.getDiscardedOffset(), littleEndian);
|
|
1404
1428
|
counter.increment(8);
|
|
1405
1429
|
return val;
|
|
1406
1430
|
};
|
|
@@ -1417,22 +1441,22 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
1417
1441
|
};
|
|
1418
1442
|
};
|
|
1419
1443
|
const getUint32Le = () => {
|
|
1420
|
-
const val =
|
|
1444
|
+
const val = getView().getUint32(counter.getDiscardedOffset(), true);
|
|
1421
1445
|
counter.increment(4);
|
|
1422
1446
|
return val;
|
|
1423
1447
|
};
|
|
1424
1448
|
const getInt32Le = () => {
|
|
1425
|
-
const val =
|
|
1449
|
+
const val = getView().getInt32(counter.getDiscardedOffset(), true);
|
|
1426
1450
|
counter.increment(4);
|
|
1427
1451
|
return val;
|
|
1428
1452
|
};
|
|
1429
1453
|
const getInt32 = () => {
|
|
1430
|
-
const val =
|
|
1454
|
+
const val = getView().getInt32(counter.getDiscardedOffset());
|
|
1431
1455
|
counter.increment(4);
|
|
1432
1456
|
return val;
|
|
1433
1457
|
};
|
|
1434
1458
|
const bytesRemaining = () => {
|
|
1435
|
-
return
|
|
1459
|
+
return getUint8Array().byteLength - counter.getDiscardedOffset();
|
|
1436
1460
|
};
|
|
1437
1461
|
const readExpGolomb = () => {
|
|
1438
1462
|
if (!bitReadingMode) {
|
|
@@ -1547,7 +1571,7 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
1547
1571
|
return new TextDecoder().decode(atom);
|
|
1548
1572
|
},
|
|
1549
1573
|
detectFileType: () => {
|
|
1550
|
-
return detectFileType(
|
|
1574
|
+
return detectFileType(getUint8Array());
|
|
1551
1575
|
},
|
|
1552
1576
|
getPaddedFourByteNumber,
|
|
1553
1577
|
getMatroskaSegmentId: () => {
|
|
@@ -1625,36 +1649,36 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
1625
1649
|
return actualValue;
|
|
1626
1650
|
},
|
|
1627
1651
|
getInt8: () => {
|
|
1628
|
-
const val =
|
|
1652
|
+
const val = getView().getInt8(counter.getDiscardedOffset());
|
|
1629
1653
|
counter.increment(1);
|
|
1630
1654
|
return val;
|
|
1631
1655
|
},
|
|
1632
1656
|
getUint16: () => {
|
|
1633
|
-
const val =
|
|
1657
|
+
const val = getView().getUint16(counter.getDiscardedOffset());
|
|
1634
1658
|
counter.increment(2);
|
|
1635
1659
|
return val;
|
|
1636
1660
|
},
|
|
1637
1661
|
getUint16Le: () => {
|
|
1638
|
-
const val =
|
|
1662
|
+
const val = getView().getUint16(counter.getDiscardedOffset(), true);
|
|
1639
1663
|
counter.increment(2);
|
|
1640
1664
|
return val;
|
|
1641
1665
|
},
|
|
1642
1666
|
getUint24: () => {
|
|
1643
|
-
const val1 =
|
|
1644
|
-
const val2 =
|
|
1645
|
-
const val3 =
|
|
1667
|
+
const val1 = getView().getUint8(counter.getDiscardedOffset());
|
|
1668
|
+
const val2 = getView().getUint8(counter.getDiscardedOffset() + 1);
|
|
1669
|
+
const val3 = getView().getUint8(counter.getDiscardedOffset() + 2);
|
|
1646
1670
|
counter.increment(3);
|
|
1647
1671
|
return val1 << 16 | val2 << 8 | val3;
|
|
1648
1672
|
},
|
|
1649
1673
|
getInt24: () => {
|
|
1650
|
-
const val1 =
|
|
1651
|
-
const val2 =
|
|
1652
|
-
const val3 =
|
|
1674
|
+
const val1 = getView().getInt8(counter.getDiscardedOffset());
|
|
1675
|
+
const val2 = getView().getUint8(counter.getDiscardedOffset() + 1);
|
|
1676
|
+
const val3 = getView().getUint8(counter.getDiscardedOffset() + 2);
|
|
1653
1677
|
counter.increment(3);
|
|
1654
1678
|
return val1 << 16 | val2 << 8 | val3;
|
|
1655
1679
|
},
|
|
1656
1680
|
getInt16: () => {
|
|
1657
|
-
const val =
|
|
1681
|
+
const val = getView().getInt16(counter.getDiscardedOffset());
|
|
1658
1682
|
counter.increment(2);
|
|
1659
1683
|
return val;
|
|
1660
1684
|
},
|
|
@@ -1702,13 +1726,13 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
1702
1726
|
};
|
|
1703
1727
|
},
|
|
1704
1728
|
getFloat64: () => {
|
|
1705
|
-
const val =
|
|
1729
|
+
const val = getView().getFloat64(counter.getDiscardedOffset());
|
|
1706
1730
|
counter.increment(8);
|
|
1707
1731
|
return val;
|
|
1708
1732
|
},
|
|
1709
1733
|
readUntilNullTerminator,
|
|
1710
1734
|
getFloat32: () => {
|
|
1711
|
-
const val =
|
|
1735
|
+
const val = getView().getFloat32(counter.getDiscardedOffset());
|
|
1712
1736
|
counter.increment(4);
|
|
1713
1737
|
return val;
|
|
1714
1738
|
},
|
|
@@ -1749,10 +1773,18 @@ var parseMvhd = ({
|
|
|
1749
1773
|
const durationInUnits = version === 1 ? iterator.getUint64() : iterator.getUint32();
|
|
1750
1774
|
const durationInSeconds = Number(durationInUnits) / timeScale;
|
|
1751
1775
|
const rateArray = iterator.getSlice(4);
|
|
1752
|
-
const rateView = getArrayBufferIterator(
|
|
1776
|
+
const rateView = getArrayBufferIterator({
|
|
1777
|
+
initialData: rateArray,
|
|
1778
|
+
maxBytes: rateArray.length,
|
|
1779
|
+
logLevel: "error"
|
|
1780
|
+
});
|
|
1753
1781
|
const rate = rateView.getInt8() * 10 + rateView.getInt8() + rateView.getInt8() * 0.1 + rateView.getInt8() * 0.01;
|
|
1754
1782
|
const volumeArray = iterator.getSlice(2);
|
|
1755
|
-
const volumeView = getArrayBufferIterator(
|
|
1783
|
+
const volumeView = getArrayBufferIterator({
|
|
1784
|
+
initialData: volumeArray,
|
|
1785
|
+
maxBytes: volumeArray.length,
|
|
1786
|
+
logLevel: "error"
|
|
1787
|
+
});
|
|
1756
1788
|
const volume = volumeView.getInt8() + volumeView.getInt8() * 0.1;
|
|
1757
1789
|
iterator.discard(2);
|
|
1758
1790
|
iterator.discard(4);
|
|
@@ -2609,7 +2641,11 @@ var mediaParserAdvancedColorToWebCodecsColor = (color2) => {
|
|
|
2609
2641
|
|
|
2610
2642
|
// src/containers/webm/av1-codec-private.ts
|
|
2611
2643
|
var parseAv1PrivateData = (data, colrAtom) => {
|
|
2612
|
-
const iterator = getArrayBufferIterator(
|
|
2644
|
+
const iterator = getArrayBufferIterator({
|
|
2645
|
+
initialData: data,
|
|
2646
|
+
maxBytes: data.byteLength,
|
|
2647
|
+
logLevel: "error"
|
|
2648
|
+
});
|
|
2613
2649
|
iterator.startReadingBits();
|
|
2614
2650
|
if (iterator.getBits(1) !== 1) {
|
|
2615
2651
|
iterator.destroy();
|
|
@@ -2992,7 +3028,11 @@ var getAudioDescription = (track) => {
|
|
|
2992
3028
|
throw new Error("Error parsing vorbis codec private");
|
|
2993
3029
|
}
|
|
2994
3030
|
const vorbisBooks = privateData.slice(offset);
|
|
2995
|
-
const bufferIterator = getArrayBufferIterator(
|
|
3031
|
+
const bufferIterator = getArrayBufferIterator({
|
|
3032
|
+
initialData: vorbisInfo.slice(0),
|
|
3033
|
+
maxBytes: vorbisInfo.length,
|
|
3034
|
+
logLevel: "error"
|
|
3035
|
+
});
|
|
2996
3036
|
bufferIterator.getUint8();
|
|
2997
3037
|
const vorbis = bufferIterator.getByteString(6, false);
|
|
2998
3038
|
if (vorbis !== "vorbis") {
|
|
@@ -3093,7 +3133,11 @@ var getMatroskaVideoCodecString = ({
|
|
|
3093
3133
|
}
|
|
3094
3134
|
if (codec.value === "V_MPEGH/ISO/HEVC") {
|
|
3095
3135
|
const priv = getPrivateData(track);
|
|
3096
|
-
const iterator = getArrayBufferIterator(
|
|
3136
|
+
const iterator = getArrayBufferIterator({
|
|
3137
|
+
initialData: priv,
|
|
3138
|
+
maxBytes: priv.length,
|
|
3139
|
+
logLevel: "error"
|
|
3140
|
+
});
|
|
3097
3141
|
return "hvc1." + getHvc1CodecString(iterator);
|
|
3098
3142
|
}
|
|
3099
3143
|
if (codec.value === "V_AV1") {
|
|
@@ -3165,7 +3209,11 @@ var getMatroskaAudioCodecString = (track) => {
|
|
|
3165
3209
|
}
|
|
3166
3210
|
if (codec.value === "A_AAC") {
|
|
3167
3211
|
const priv = getPrivateData(track);
|
|
3168
|
-
const iterator = getArrayBufferIterator(
|
|
3212
|
+
const iterator = getArrayBufferIterator({
|
|
3213
|
+
initialData: priv,
|
|
3214
|
+
maxBytes: priv.length,
|
|
3215
|
+
logLevel: "error"
|
|
3216
|
+
});
|
|
3169
3217
|
iterator.startReadingBits();
|
|
3170
3218
|
const profile = iterator.getBits(5);
|
|
3171
3219
|
iterator.stopReadingBits();
|
|
@@ -4590,7 +4638,11 @@ var parseAvcc = ({
|
|
|
4590
4638
|
|
|
4591
4639
|
// src/containers/iso-base-media/parse-icc-profile.ts
|
|
4592
4640
|
var parseIccProfile = (data) => {
|
|
4593
|
-
const iterator = getArrayBufferIterator(
|
|
4641
|
+
const iterator = getArrayBufferIterator({
|
|
4642
|
+
initialData: data,
|
|
4643
|
+
maxBytes: data.length,
|
|
4644
|
+
logLevel: "error"
|
|
4645
|
+
});
|
|
4594
4646
|
const size = iterator.getUint32();
|
|
4595
4647
|
if (size !== data.length) {
|
|
4596
4648
|
throw new Error("Invalid ICC profile size");
|
|
@@ -4635,7 +4687,11 @@ var parseIccProfile = (data) => {
|
|
|
4635
4687
|
for (const entry of entries) {
|
|
4636
4688
|
const found = data.slice(entry.offset, entry.offset + entry.size);
|
|
4637
4689
|
if (entry.tag === "rXYZ" || entry.tag === "gXYZ" || entry.tag === "bXYZ" || entry.tag === "wtpt") {
|
|
4638
|
-
const it = getArrayBufferIterator(
|
|
4690
|
+
const it = getArrayBufferIterator({
|
|
4691
|
+
initialData: found,
|
|
4692
|
+
maxBytes: found.length,
|
|
4693
|
+
logLevel: "error"
|
|
4694
|
+
});
|
|
4639
4695
|
it.discard(4);
|
|
4640
4696
|
const x = it.getInt32() / 65536;
|
|
4641
4697
|
const y = it.getInt32() / 65536;
|
|
@@ -6192,7 +6248,11 @@ var findEnd = (buffer) => {
|
|
|
6192
6248
|
return null;
|
|
6193
6249
|
};
|
|
6194
6250
|
var inspect = (buffer, avcState) => {
|
|
6195
|
-
const iterator = getArrayBufferIterator(
|
|
6251
|
+
const iterator = getArrayBufferIterator({
|
|
6252
|
+
initialData: buffer,
|
|
6253
|
+
maxBytes: buffer.byteLength,
|
|
6254
|
+
logLevel: "error"
|
|
6255
|
+
});
|
|
6196
6256
|
iterator.startReadingBits();
|
|
6197
6257
|
iterator.getBits(1);
|
|
6198
6258
|
const nal_ref_idc = iterator.getBits(2);
|
|
@@ -6390,7 +6450,11 @@ var getSampleFromBlock = async ({
|
|
|
6390
6450
|
onVideoTrack,
|
|
6391
6451
|
avcState
|
|
6392
6452
|
}) => {
|
|
6393
|
-
const iterator = getArrayBufferIterator(
|
|
6453
|
+
const iterator = getArrayBufferIterator({
|
|
6454
|
+
initialData: ebml.value,
|
|
6455
|
+
maxBytes: ebml.value.length,
|
|
6456
|
+
logLevel: "error"
|
|
6457
|
+
});
|
|
6394
6458
|
const trackNumber2 = iterator.getVint();
|
|
6395
6459
|
if (trackNumber2 === null) {
|
|
6396
6460
|
throw new Error("Not enough data to get track number, should not happen");
|
|
@@ -10946,7 +11010,11 @@ var emitSample = async ({
|
|
|
10946
11010
|
data,
|
|
10947
11011
|
offset
|
|
10948
11012
|
}) => {
|
|
10949
|
-
const iterator = getArrayBufferIterator(
|
|
11013
|
+
const iterator = getArrayBufferIterator({
|
|
11014
|
+
initialData: data,
|
|
11015
|
+
maxBytes: data.length,
|
|
11016
|
+
logLevel: "error"
|
|
11017
|
+
});
|
|
10950
11018
|
const parsed = parseFrameHeader({ iterator, state });
|
|
10951
11019
|
if (!parsed) {
|
|
10952
11020
|
throw new Error("Invalid CRC");
|
|
@@ -11503,7 +11571,11 @@ var getMoovAtom = async ({
|
|
|
11503
11571
|
});
|
|
11504
11572
|
return null;
|
|
11505
11573
|
} : null;
|
|
11506
|
-
const iterator = getArrayBufferIterator(
|
|
11574
|
+
const iterator = getArrayBufferIterator({
|
|
11575
|
+
initialData: new Uint8Array([]),
|
|
11576
|
+
maxBytes: state.contentLength - endOfMdat,
|
|
11577
|
+
logLevel: "error"
|
|
11578
|
+
});
|
|
11507
11579
|
while (true) {
|
|
11508
11580
|
const result = await reader.reader.read();
|
|
11509
11581
|
if (result.value) {
|
|
@@ -14512,7 +14584,11 @@ var readAdtsHeader = (buffer) => {
|
|
|
14512
14584
|
if (buffer.byteLength < 9) {
|
|
14513
14585
|
return null;
|
|
14514
14586
|
}
|
|
14515
|
-
const iterator = getArrayBufferIterator(
|
|
14587
|
+
const iterator = getArrayBufferIterator({
|
|
14588
|
+
initialData: buffer,
|
|
14589
|
+
maxBytes: buffer.byteLength,
|
|
14590
|
+
logLevel: "error"
|
|
14591
|
+
});
|
|
14516
14592
|
iterator.startReadingBits();
|
|
14517
14593
|
const bits = iterator.getBits(12);
|
|
14518
14594
|
if (bits !== 4095) {
|
|
@@ -15074,6 +15150,68 @@ var parseData = ({
|
|
|
15074
15150
|
return Promise.resolve(null);
|
|
15075
15151
|
};
|
|
15076
15152
|
|
|
15153
|
+
// src/containers/wav/parse-fact.ts
|
|
15154
|
+
var parseFact = ({
|
|
15155
|
+
state
|
|
15156
|
+
}) => {
|
|
15157
|
+
const { iterator } = state;
|
|
15158
|
+
const size = iterator.getUint32Le();
|
|
15159
|
+
if (size !== 4) {
|
|
15160
|
+
throw new Error(`Expected size 4 for fact box, got ${size}`);
|
|
15161
|
+
}
|
|
15162
|
+
const numberOfSamplesPerChannel = iterator.getUint32Le();
|
|
15163
|
+
const factBox = {
|
|
15164
|
+
type: "wav-fact",
|
|
15165
|
+
numberOfSamplesPerChannel
|
|
15166
|
+
};
|
|
15167
|
+
state.structure.getWavStructure().boxes.push(factBox);
|
|
15168
|
+
return Promise.resolve(null);
|
|
15169
|
+
};
|
|
15170
|
+
|
|
15171
|
+
// src/containers/wav/subformats.ts
|
|
15172
|
+
var WMMEDIASUBTYPE_PCM = [
|
|
15173
|
+
1,
|
|
15174
|
+
0,
|
|
15175
|
+
0,
|
|
15176
|
+
0,
|
|
15177
|
+
0,
|
|
15178
|
+
0,
|
|
15179
|
+
16,
|
|
15180
|
+
0,
|
|
15181
|
+
128,
|
|
15182
|
+
0,
|
|
15183
|
+
0,
|
|
15184
|
+
170,
|
|
15185
|
+
0,
|
|
15186
|
+
56,
|
|
15187
|
+
155,
|
|
15188
|
+
113
|
|
15189
|
+
];
|
|
15190
|
+
var KSDATAFORMAT_SUBTYPE_IEEE_FLOAT = [
|
|
15191
|
+
3,
|
|
15192
|
+
0,
|
|
15193
|
+
0,
|
|
15194
|
+
0,
|
|
15195
|
+
0,
|
|
15196
|
+
0,
|
|
15197
|
+
16,
|
|
15198
|
+
0,
|
|
15199
|
+
128,
|
|
15200
|
+
0,
|
|
15201
|
+
0,
|
|
15202
|
+
170,
|
|
15203
|
+
0,
|
|
15204
|
+
56,
|
|
15205
|
+
155,
|
|
15206
|
+
113
|
|
15207
|
+
];
|
|
15208
|
+
var subformatIsPcm = (subformat) => {
|
|
15209
|
+
return subformat.every((value, index) => value === WMMEDIASUBTYPE_PCM[index]);
|
|
15210
|
+
};
|
|
15211
|
+
var subformatIsIeeeFloat = (subformat) => {
|
|
15212
|
+
return subformat.every((value, index) => value === KSDATAFORMAT_SUBTYPE_IEEE_FLOAT[index]);
|
|
15213
|
+
};
|
|
15214
|
+
|
|
15077
15215
|
// src/containers/wav/parse-fmt.ts
|
|
15078
15216
|
var CHANNELS = {
|
|
15079
15217
|
0: "Front Left",
|
|
@@ -15148,10 +15286,8 @@ var parseFmt = async ({
|
|
|
15148
15286
|
if (subFormat.length !== 16) {
|
|
15149
15287
|
throw new Error(`Only supporting WAVE with PCM audio format, but got ${subFormat.length}`);
|
|
15150
15288
|
}
|
|
15151
|
-
|
|
15152
|
-
|
|
15153
|
-
throw new Error(`Only supporting WAVE with PCM audio format, but got subformat ${subFormat[i]}`);
|
|
15154
|
-
}
|
|
15289
|
+
if (subformatIsPcm(subFormat)) {} else if (subformatIsIeeeFloat(subFormat)) {} else {
|
|
15290
|
+
throw new Error(`Unsupported subformat: ${subFormat}`);
|
|
15155
15291
|
}
|
|
15156
15292
|
const channels2 = getChannelsFromMask(channelMask);
|
|
15157
15293
|
wavHeader.numberOfChannels = channels2.length;
|
|
@@ -15323,6 +15459,9 @@ var parseWav = (state) => {
|
|
|
15323
15459
|
if (type === "JUNK" || type === "FLLR") {
|
|
15324
15460
|
return parseJunk({ state });
|
|
15325
15461
|
}
|
|
15462
|
+
if (type === "fact") {
|
|
15463
|
+
return parseFact({ state });
|
|
15464
|
+
}
|
|
15326
15465
|
if (type === "\x00") {
|
|
15327
15466
|
return Promise.resolve(null);
|
|
15328
15467
|
}
|
|
@@ -15873,8 +16012,8 @@ var warnIfRemotionLicenseNotAcknowledged = ({
|
|
|
15873
16012
|
return;
|
|
15874
16013
|
}
|
|
15875
16014
|
warningShown = true;
|
|
15876
|
-
Log.warn(logLevel,
|
|
15877
|
-
|
|
16015
|
+
Log.warn(logLevel, `Note: Some companies are required to obtain a license to use @remotion/media-parser. See: https://remotion.dev/license
|
|
16016
|
+
Pass \`acknowledgeRemotionLicense: true\` to \`${apiName}\` function to make this message disappear.`);
|
|
15878
16017
|
};
|
|
15879
16018
|
|
|
15880
16019
|
// src/set-seeking-hints.ts
|
|
@@ -16159,7 +16298,11 @@ var getMfraAtom = async ({
|
|
|
16159
16298
|
logLevel,
|
|
16160
16299
|
prefetchCache
|
|
16161
16300
|
});
|
|
16162
|
-
const iterator = getArrayBufferIterator(
|
|
16301
|
+
const iterator = getArrayBufferIterator({
|
|
16302
|
+
initialData: new Uint8Array,
|
|
16303
|
+
maxBytes: parentSize,
|
|
16304
|
+
logLevel: "error"
|
|
16305
|
+
});
|
|
16163
16306
|
while (true) {
|
|
16164
16307
|
const res = await result.reader.reader.read();
|
|
16165
16308
|
if (res.value) {
|
|
@@ -16193,7 +16336,11 @@ var getMfroAtom = async ({
|
|
|
16193
16336
|
return null;
|
|
16194
16337
|
}
|
|
16195
16338
|
result.reader.abort();
|
|
16196
|
-
const iterator = getArrayBufferIterator(
|
|
16339
|
+
const iterator = getArrayBufferIterator({
|
|
16340
|
+
initialData: value,
|
|
16341
|
+
maxBytes: value.length,
|
|
16342
|
+
logLevel: "error"
|
|
16343
|
+
});
|
|
16197
16344
|
const size = iterator.getUint32();
|
|
16198
16345
|
if (size !== 16) {
|
|
16199
16346
|
iterator.destroy();
|
|
@@ -16648,7 +16795,11 @@ var fetchWebmCues = async ({
|
|
|
16648
16795
|
return null;
|
|
16649
16796
|
}
|
|
16650
16797
|
result.reader.abort();
|
|
16651
|
-
const iterator = getArrayBufferIterator(
|
|
16798
|
+
const iterator = getArrayBufferIterator({
|
|
16799
|
+
initialData: value,
|
|
16800
|
+
maxBytes: value.length,
|
|
16801
|
+
logLevel: "error"
|
|
16802
|
+
});
|
|
16652
16803
|
const segment = await expectSegment({
|
|
16653
16804
|
iterator,
|
|
16654
16805
|
logLevel,
|
|
@@ -16913,7 +17064,11 @@ var fetchIdx1 = async ({
|
|
|
16913
17064
|
if (result.contentLength === null) {
|
|
16914
17065
|
throw new Error("Content length is null");
|
|
16915
17066
|
}
|
|
16916
|
-
const iterator = getArrayBufferIterator(
|
|
17067
|
+
const iterator = getArrayBufferIterator({
|
|
17068
|
+
initialData: new Uint8Array,
|
|
17069
|
+
maxBytes: contentLength - position + 1,
|
|
17070
|
+
logLevel: "error"
|
|
17071
|
+
});
|
|
16917
17072
|
while (true) {
|
|
16918
17073
|
const res = await result.reader.reader.read();
|
|
16919
17074
|
if (res.value) {
|
|
@@ -17536,7 +17691,11 @@ var makeParserState = ({
|
|
|
17536
17691
|
}) => {
|
|
17537
17692
|
let skippedBytes = 0;
|
|
17538
17693
|
const returnValue = {};
|
|
17539
|
-
const iterator = getArrayBufferIterator(
|
|
17694
|
+
const iterator = getArrayBufferIterator({
|
|
17695
|
+
initialData: new Uint8Array([]),
|
|
17696
|
+
maxBytes: contentLength,
|
|
17697
|
+
logLevel
|
|
17698
|
+
});
|
|
17540
17699
|
const increaseSkippedBytes = (bytes) => {
|
|
17541
17700
|
skippedBytes += bytes;
|
|
17542
17701
|
};
|
|
@@ -17946,7 +18105,7 @@ var downloadAndParseMedia = async (options) => {
|
|
|
17946
18105
|
return returnValue;
|
|
17947
18106
|
};
|
|
17948
18107
|
// src/version.ts
|
|
17949
|
-
var VERSION = "4.0.
|
|
18108
|
+
var VERSION = "4.0.318";
|
|
17950
18109
|
|
|
17951
18110
|
// src/index.ts
|
|
17952
18111
|
var MediaParserInternals = {
|