@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
|
@@ -2351,6 +2351,26 @@ var detectFileType = (data) => {
|
|
|
2351
2351
|
return { type: "unknown" };
|
|
2352
2352
|
};
|
|
2353
2353
|
|
|
2354
|
+
// src/iterator/polyfilled-arraybuffer.ts
|
|
2355
|
+
class ResizableBuffer {
|
|
2356
|
+
buffer;
|
|
2357
|
+
uintarray;
|
|
2358
|
+
constructor(buffer) {
|
|
2359
|
+
this.buffer = buffer;
|
|
2360
|
+
this.uintarray = new Uint8Array(buffer);
|
|
2361
|
+
}
|
|
2362
|
+
resize(newLength) {
|
|
2363
|
+
if (typeof this.buffer.resize === "function") {
|
|
2364
|
+
this.buffer.resize(newLength);
|
|
2365
|
+
} else {
|
|
2366
|
+
const newBuffer = new ArrayBuffer(newLength);
|
|
2367
|
+
new Uint8Array(newBuffer).set(new Uint8Array(this.buffer).subarray(0, Math.min(this.buffer.byteLength, newLength)));
|
|
2368
|
+
this.buffer = newBuffer;
|
|
2369
|
+
this.uintarray = new Uint8Array(newBuffer);
|
|
2370
|
+
}
|
|
2371
|
+
}
|
|
2372
|
+
}
|
|
2373
|
+
|
|
2354
2374
|
// src/iterator/buffer-manager.ts
|
|
2355
2375
|
var makeBufferWithMaxBytes = (initialData, maxBytes) => {
|
|
2356
2376
|
const maxByteLength = Math.min(maxBytes, 2 ** 31);
|
|
@@ -2358,12 +2378,12 @@ var makeBufferWithMaxBytes = (initialData, maxBytes) => {
|
|
|
2358
2378
|
const buf = new ArrayBuffer(initialData.byteLength, {
|
|
2359
2379
|
maxByteLength
|
|
2360
2380
|
});
|
|
2361
|
-
return buf;
|
|
2381
|
+
return new ResizableBuffer(buf);
|
|
2362
2382
|
} catch (e) {
|
|
2363
2383
|
if (e instanceof RangeError && maxBytes > 2 ** 27) {
|
|
2364
|
-
return new ArrayBuffer(initialData.byteLength, {
|
|
2384
|
+
return new ResizableBuffer(new ArrayBuffer(initialData.byteLength, {
|
|
2365
2385
|
maxByteLength: 2 ** 27
|
|
2366
|
-
});
|
|
2386
|
+
}));
|
|
2367
2387
|
}
|
|
2368
2388
|
throw e;
|
|
2369
2389
|
}
|
|
@@ -2371,17 +2391,17 @@ var makeBufferWithMaxBytes = (initialData, maxBytes) => {
|
|
|
2371
2391
|
var bufferManager = ({
|
|
2372
2392
|
initialData,
|
|
2373
2393
|
maxBytes,
|
|
2374
|
-
counter
|
|
2394
|
+
counter,
|
|
2395
|
+
logLevel
|
|
2375
2396
|
}) => {
|
|
2376
2397
|
const buf = makeBufferWithMaxBytes(initialData, maxBytes);
|
|
2377
|
-
if (!buf.resize) {
|
|
2378
|
-
|
|
2398
|
+
if (!buf.buffer.resize) {
|
|
2399
|
+
Log.warn(logLevel, "`ArrayBuffer.resize` is not supported in this Runtime. Using slow polyfill.");
|
|
2379
2400
|
}
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
let view = new DataView(uintArray.buffer);
|
|
2401
|
+
buf.uintarray.set(initialData);
|
|
2402
|
+
let view = new DataView(buf.uintarray.buffer);
|
|
2383
2403
|
const destroy = () => {
|
|
2384
|
-
|
|
2404
|
+
buf.uintarray = new Uint8Array(0);
|
|
2385
2405
|
buf.resize(0);
|
|
2386
2406
|
};
|
|
2387
2407
|
const flushBytesRead = (force, mode) => {
|
|
@@ -2393,11 +2413,11 @@ var bufferManager = ({
|
|
|
2393
2413
|
return { bytesRemoved: 0, removedData: null };
|
|
2394
2414
|
}
|
|
2395
2415
|
counter.discardBytes(bytesToRemove);
|
|
2396
|
-
const removedData = mode === "download" ?
|
|
2397
|
-
const newData =
|
|
2398
|
-
|
|
2416
|
+
const removedData = mode === "download" ? buf.uintarray.slice(0, bytesToRemove) : null;
|
|
2417
|
+
const newData = buf.uintarray.slice(bytesToRemove);
|
|
2418
|
+
buf.uintarray.set(newData);
|
|
2399
2419
|
buf.resize(newData.byteLength);
|
|
2400
|
-
view = new DataView(
|
|
2420
|
+
view = new DataView(buf.uintarray.buffer);
|
|
2401
2421
|
return { bytesRemoved: bytesToRemove, removedData };
|
|
2402
2422
|
};
|
|
2403
2423
|
const skipTo = (offset) => {
|
|
@@ -2413,7 +2433,7 @@ var bufferManager = ({
|
|
|
2413
2433
|
counter.increment(offset - currentOffset);
|
|
2414
2434
|
};
|
|
2415
2435
|
const addData = (newData) => {
|
|
2416
|
-
const oldLength = buf.byteLength;
|
|
2436
|
+
const oldLength = buf.buffer.byteLength;
|
|
2417
2437
|
const newLength = oldLength + newData.byteLength;
|
|
2418
2438
|
if (newLength < oldLength) {
|
|
2419
2439
|
throw new Error("Cannot decrement size");
|
|
@@ -2422,22 +2442,22 @@ var bufferManager = ({
|
|
|
2422
2442
|
throw new Error(`Exceeded maximum byte length ${maxBytes} with ${newLength}`);
|
|
2423
2443
|
}
|
|
2424
2444
|
buf.resize(newLength);
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
view = new DataView(
|
|
2445
|
+
buf.uintarray = new Uint8Array(buf.buffer);
|
|
2446
|
+
buf.uintarray.set(newData, oldLength);
|
|
2447
|
+
view = new DataView(buf.uintarray.buffer);
|
|
2428
2448
|
};
|
|
2429
2449
|
const replaceData = (newData, seekTo) => {
|
|
2430
2450
|
buf.resize(newData.byteLength);
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
view = new DataView(
|
|
2451
|
+
buf.uintarray = new Uint8Array(buf.buffer);
|
|
2452
|
+
buf.uintarray.set(newData);
|
|
2453
|
+
view = new DataView(buf.uintarray.buffer);
|
|
2434
2454
|
counter.setDiscardedOffset(seekTo);
|
|
2435
2455
|
counter.decrement(counter.getOffset());
|
|
2436
2456
|
counter.increment(seekTo);
|
|
2437
2457
|
};
|
|
2438
2458
|
return {
|
|
2439
|
-
view,
|
|
2440
|
-
|
|
2459
|
+
getView: () => view,
|
|
2460
|
+
getUint8Array: () => buf.uintarray,
|
|
2441
2461
|
destroy,
|
|
2442
2462
|
addData,
|
|
2443
2463
|
skipTo,
|
|
@@ -2476,17 +2496,21 @@ var makeOffsetCounter = (initial) => {
|
|
|
2476
2496
|
};
|
|
2477
2497
|
|
|
2478
2498
|
// src/iterator/buffer-iterator.ts
|
|
2479
|
-
var getArrayBufferIterator = (
|
|
2499
|
+
var getArrayBufferIterator = ({
|
|
2500
|
+
initialData,
|
|
2501
|
+
maxBytes,
|
|
2502
|
+
logLevel
|
|
2503
|
+
}) => {
|
|
2480
2504
|
const counter = makeOffsetCounter(0);
|
|
2481
2505
|
const {
|
|
2482
|
-
|
|
2483
|
-
|
|
2506
|
+
getUint8Array,
|
|
2507
|
+
getView,
|
|
2484
2508
|
addData,
|
|
2485
2509
|
destroy,
|
|
2486
2510
|
removeBytesRead,
|
|
2487
2511
|
skipTo,
|
|
2488
2512
|
replaceData
|
|
2489
|
-
} = bufferManager({ initialData, maxBytes, counter });
|
|
2513
|
+
} = bufferManager({ initialData, maxBytes, counter, logLevel });
|
|
2490
2514
|
const startCheckpoint = () => {
|
|
2491
2515
|
const checkpoint = counter.getOffset();
|
|
2492
2516
|
return {
|
|
@@ -2496,7 +2520,7 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
2496
2520
|
};
|
|
2497
2521
|
};
|
|
2498
2522
|
const getSlice = (amount) => {
|
|
2499
|
-
const value =
|
|
2523
|
+
const value = getUint8Array().slice(counter.getDiscardedOffset(), counter.getDiscardedOffset() + amount);
|
|
2500
2524
|
counter.increment(value.length);
|
|
2501
2525
|
return value;
|
|
2502
2526
|
};
|
|
@@ -2528,7 +2552,7 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
2528
2552
|
return str;
|
|
2529
2553
|
};
|
|
2530
2554
|
const getUint8 = () => {
|
|
2531
|
-
const val =
|
|
2555
|
+
const val = getView().getUint8(counter.getDiscardedOffset());
|
|
2532
2556
|
counter.increment(1);
|
|
2533
2557
|
return val;
|
|
2534
2558
|
};
|
|
@@ -2573,22 +2597,22 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
2573
2597
|
return lastInt;
|
|
2574
2598
|
};
|
|
2575
2599
|
const getUint32 = () => {
|
|
2576
|
-
const val =
|
|
2600
|
+
const val = getView().getUint32(counter.getDiscardedOffset());
|
|
2577
2601
|
counter.increment(4);
|
|
2578
2602
|
return val;
|
|
2579
2603
|
};
|
|
2580
2604
|
const getSyncSafeInt32 = () => {
|
|
2581
|
-
const val =
|
|
2605
|
+
const val = getView().getUint32(counter.getDiscardedOffset());
|
|
2582
2606
|
counter.increment(4);
|
|
2583
2607
|
return (val & 2130706432) >> 3 | (val & 8323072) >> 2 | (val & 32512) >> 1 | val & 127;
|
|
2584
2608
|
};
|
|
2585
2609
|
const getUint64 = (littleEndian = false) => {
|
|
2586
|
-
const val =
|
|
2610
|
+
const val = getView().getBigUint64(counter.getDiscardedOffset(), littleEndian);
|
|
2587
2611
|
counter.increment(8);
|
|
2588
2612
|
return val;
|
|
2589
2613
|
};
|
|
2590
2614
|
const getInt64 = (littleEndian = false) => {
|
|
2591
|
-
const val =
|
|
2615
|
+
const val = getView().getBigInt64(counter.getDiscardedOffset(), littleEndian);
|
|
2592
2616
|
counter.increment(8);
|
|
2593
2617
|
return val;
|
|
2594
2618
|
};
|
|
@@ -2605,22 +2629,22 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
2605
2629
|
};
|
|
2606
2630
|
};
|
|
2607
2631
|
const getUint32Le = () => {
|
|
2608
|
-
const val =
|
|
2632
|
+
const val = getView().getUint32(counter.getDiscardedOffset(), true);
|
|
2609
2633
|
counter.increment(4);
|
|
2610
2634
|
return val;
|
|
2611
2635
|
};
|
|
2612
2636
|
const getInt32Le = () => {
|
|
2613
|
-
const val =
|
|
2637
|
+
const val = getView().getInt32(counter.getDiscardedOffset(), true);
|
|
2614
2638
|
counter.increment(4);
|
|
2615
2639
|
return val;
|
|
2616
2640
|
};
|
|
2617
2641
|
const getInt32 = () => {
|
|
2618
|
-
const val =
|
|
2642
|
+
const val = getView().getInt32(counter.getDiscardedOffset());
|
|
2619
2643
|
counter.increment(4);
|
|
2620
2644
|
return val;
|
|
2621
2645
|
};
|
|
2622
2646
|
const bytesRemaining = () => {
|
|
2623
|
-
return
|
|
2647
|
+
return getUint8Array().byteLength - counter.getDiscardedOffset();
|
|
2624
2648
|
};
|
|
2625
2649
|
const readExpGolomb = () => {
|
|
2626
2650
|
if (!bitReadingMode) {
|
|
@@ -2735,7 +2759,7 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
2735
2759
|
return new TextDecoder().decode(atom);
|
|
2736
2760
|
},
|
|
2737
2761
|
detectFileType: () => {
|
|
2738
|
-
return detectFileType(
|
|
2762
|
+
return detectFileType(getUint8Array());
|
|
2739
2763
|
},
|
|
2740
2764
|
getPaddedFourByteNumber,
|
|
2741
2765
|
getMatroskaSegmentId: () => {
|
|
@@ -2813,36 +2837,36 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
2813
2837
|
return actualValue;
|
|
2814
2838
|
},
|
|
2815
2839
|
getInt8: () => {
|
|
2816
|
-
const val =
|
|
2840
|
+
const val = getView().getInt8(counter.getDiscardedOffset());
|
|
2817
2841
|
counter.increment(1);
|
|
2818
2842
|
return val;
|
|
2819
2843
|
},
|
|
2820
2844
|
getUint16: () => {
|
|
2821
|
-
const val =
|
|
2845
|
+
const val = getView().getUint16(counter.getDiscardedOffset());
|
|
2822
2846
|
counter.increment(2);
|
|
2823
2847
|
return val;
|
|
2824
2848
|
},
|
|
2825
2849
|
getUint16Le: () => {
|
|
2826
|
-
const val =
|
|
2850
|
+
const val = getView().getUint16(counter.getDiscardedOffset(), true);
|
|
2827
2851
|
counter.increment(2);
|
|
2828
2852
|
return val;
|
|
2829
2853
|
},
|
|
2830
2854
|
getUint24: () => {
|
|
2831
|
-
const val1 =
|
|
2832
|
-
const val2 =
|
|
2833
|
-
const val3 =
|
|
2855
|
+
const val1 = getView().getUint8(counter.getDiscardedOffset());
|
|
2856
|
+
const val2 = getView().getUint8(counter.getDiscardedOffset() + 1);
|
|
2857
|
+
const val3 = getView().getUint8(counter.getDiscardedOffset() + 2);
|
|
2834
2858
|
counter.increment(3);
|
|
2835
2859
|
return val1 << 16 | val2 << 8 | val3;
|
|
2836
2860
|
},
|
|
2837
2861
|
getInt24: () => {
|
|
2838
|
-
const val1 =
|
|
2839
|
-
const val2 =
|
|
2840
|
-
const val3 =
|
|
2862
|
+
const val1 = getView().getInt8(counter.getDiscardedOffset());
|
|
2863
|
+
const val2 = getView().getUint8(counter.getDiscardedOffset() + 1);
|
|
2864
|
+
const val3 = getView().getUint8(counter.getDiscardedOffset() + 2);
|
|
2841
2865
|
counter.increment(3);
|
|
2842
2866
|
return val1 << 16 | val2 << 8 | val3;
|
|
2843
2867
|
},
|
|
2844
2868
|
getInt16: () => {
|
|
2845
|
-
const val =
|
|
2869
|
+
const val = getView().getInt16(counter.getDiscardedOffset());
|
|
2846
2870
|
counter.increment(2);
|
|
2847
2871
|
return val;
|
|
2848
2872
|
},
|
|
@@ -2890,13 +2914,13 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
2890
2914
|
};
|
|
2891
2915
|
},
|
|
2892
2916
|
getFloat64: () => {
|
|
2893
|
-
const val =
|
|
2917
|
+
const val = getView().getFloat64(counter.getDiscardedOffset());
|
|
2894
2918
|
counter.increment(8);
|
|
2895
2919
|
return val;
|
|
2896
2920
|
},
|
|
2897
2921
|
readUntilNullTerminator,
|
|
2898
2922
|
getFloat32: () => {
|
|
2899
|
-
const val =
|
|
2923
|
+
const val = getView().getFloat32(counter.getDiscardedOffset());
|
|
2900
2924
|
counter.increment(4);
|
|
2901
2925
|
return val;
|
|
2902
2926
|
},
|
|
@@ -2916,7 +2940,11 @@ var getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
2916
2940
|
|
|
2917
2941
|
// src/containers/webm/av1-codec-private.ts
|
|
2918
2942
|
var parseAv1PrivateData = (data, colrAtom) => {
|
|
2919
|
-
const iterator = getArrayBufferIterator(
|
|
2943
|
+
const iterator = getArrayBufferIterator({
|
|
2944
|
+
initialData: data,
|
|
2945
|
+
maxBytes: data.byteLength,
|
|
2946
|
+
logLevel: "error"
|
|
2947
|
+
});
|
|
2920
2948
|
iterator.startReadingBits();
|
|
2921
2949
|
if (iterator.getBits(1) !== 1) {
|
|
2922
2950
|
iterator.destroy();
|
|
@@ -3944,7 +3972,11 @@ var getAudioDescription = (track) => {
|
|
|
3944
3972
|
throw new Error("Error parsing vorbis codec private");
|
|
3945
3973
|
}
|
|
3946
3974
|
const vorbisBooks = privateData.slice(offset);
|
|
3947
|
-
const bufferIterator = getArrayBufferIterator(
|
|
3975
|
+
const bufferIterator = getArrayBufferIterator({
|
|
3976
|
+
initialData: vorbisInfo.slice(0),
|
|
3977
|
+
maxBytes: vorbisInfo.length,
|
|
3978
|
+
logLevel: "error"
|
|
3979
|
+
});
|
|
3948
3980
|
bufferIterator.getUint8();
|
|
3949
3981
|
const vorbis = bufferIterator.getByteString(6, false);
|
|
3950
3982
|
if (vorbis !== "vorbis") {
|
|
@@ -4045,7 +4077,11 @@ var getMatroskaVideoCodecString = ({
|
|
|
4045
4077
|
}
|
|
4046
4078
|
if (codec.value === "V_MPEGH/ISO/HEVC") {
|
|
4047
4079
|
const priv = getPrivateData(track);
|
|
4048
|
-
const iterator = getArrayBufferIterator(
|
|
4080
|
+
const iterator = getArrayBufferIterator({
|
|
4081
|
+
initialData: priv,
|
|
4082
|
+
maxBytes: priv.length,
|
|
4083
|
+
logLevel: "error"
|
|
4084
|
+
});
|
|
4049
4085
|
return "hvc1." + getHvc1CodecString(iterator);
|
|
4050
4086
|
}
|
|
4051
4087
|
if (codec.value === "V_AV1") {
|
|
@@ -4117,7 +4153,11 @@ var getMatroskaAudioCodecString = (track) => {
|
|
|
4117
4153
|
}
|
|
4118
4154
|
if (codec.value === "A_AAC") {
|
|
4119
4155
|
const priv = getPrivateData(track);
|
|
4120
|
-
const iterator = getArrayBufferIterator(
|
|
4156
|
+
const iterator = getArrayBufferIterator({
|
|
4157
|
+
initialData: priv,
|
|
4158
|
+
maxBytes: priv.length,
|
|
4159
|
+
logLevel: "error"
|
|
4160
|
+
});
|
|
4121
4161
|
iterator.startReadingBits();
|
|
4122
4162
|
const profile = iterator.getBits(5);
|
|
4123
4163
|
iterator.stopReadingBits();
|
|
@@ -6897,7 +6937,11 @@ var findEnd = (buffer) => {
|
|
|
6897
6937
|
return null;
|
|
6898
6938
|
};
|
|
6899
6939
|
var inspect = (buffer, avcState) => {
|
|
6900
|
-
const iterator = getArrayBufferIterator(
|
|
6940
|
+
const iterator = getArrayBufferIterator({
|
|
6941
|
+
initialData: buffer,
|
|
6942
|
+
maxBytes: buffer.byteLength,
|
|
6943
|
+
logLevel: "error"
|
|
6944
|
+
});
|
|
6901
6945
|
iterator.startReadingBits();
|
|
6902
6946
|
iterator.getBits(1);
|
|
6903
6947
|
const nal_ref_idc = iterator.getBits(2);
|
|
@@ -8927,7 +8971,11 @@ var emitSample = async ({
|
|
|
8927
8971
|
data,
|
|
8928
8972
|
offset
|
|
8929
8973
|
}) => {
|
|
8930
|
-
const iterator = getArrayBufferIterator(
|
|
8974
|
+
const iterator = getArrayBufferIterator({
|
|
8975
|
+
initialData: data,
|
|
8976
|
+
maxBytes: data.length,
|
|
8977
|
+
logLevel: "error"
|
|
8978
|
+
});
|
|
8931
8979
|
const parsed = parseFrameHeader({ iterator, state });
|
|
8932
8980
|
if (!parsed) {
|
|
8933
8981
|
throw new Error("Invalid CRC");
|
|
@@ -9961,10 +10009,18 @@ var parseMvhd = ({
|
|
|
9961
10009
|
const durationInUnits = version === 1 ? iterator.getUint64() : iterator.getUint32();
|
|
9962
10010
|
const durationInSeconds = Number(durationInUnits) / timeScale;
|
|
9963
10011
|
const rateArray = iterator.getSlice(4);
|
|
9964
|
-
const rateView = getArrayBufferIterator(
|
|
10012
|
+
const rateView = getArrayBufferIterator({
|
|
10013
|
+
initialData: rateArray,
|
|
10014
|
+
maxBytes: rateArray.length,
|
|
10015
|
+
logLevel: "error"
|
|
10016
|
+
});
|
|
9965
10017
|
const rate = rateView.getInt8() * 10 + rateView.getInt8() + rateView.getInt8() * 0.1 + rateView.getInt8() * 0.01;
|
|
9966
10018
|
const volumeArray = iterator.getSlice(2);
|
|
9967
|
-
const volumeView = getArrayBufferIterator(
|
|
10019
|
+
const volumeView = getArrayBufferIterator({
|
|
10020
|
+
initialData: volumeArray,
|
|
10021
|
+
maxBytes: volumeArray.length,
|
|
10022
|
+
logLevel: "error"
|
|
10023
|
+
});
|
|
9968
10024
|
const volume = volumeView.getInt8() + volumeView.getInt8() * 0.1;
|
|
9969
10025
|
iterator.discard(2);
|
|
9970
10026
|
iterator.discard(4);
|
|
@@ -10066,7 +10122,11 @@ var parseAvcc = ({
|
|
|
10066
10122
|
|
|
10067
10123
|
// src/containers/iso-base-media/parse-icc-profile.ts
|
|
10068
10124
|
var parseIccProfile = (data) => {
|
|
10069
|
-
const iterator = getArrayBufferIterator(
|
|
10125
|
+
const iterator = getArrayBufferIterator({
|
|
10126
|
+
initialData: data,
|
|
10127
|
+
maxBytes: data.length,
|
|
10128
|
+
logLevel: "error"
|
|
10129
|
+
});
|
|
10070
10130
|
const size = iterator.getUint32();
|
|
10071
10131
|
if (size !== data.length) {
|
|
10072
10132
|
throw new Error("Invalid ICC profile size");
|
|
@@ -10111,7 +10171,11 @@ var parseIccProfile = (data) => {
|
|
|
10111
10171
|
for (const entry of entries) {
|
|
10112
10172
|
const found = data.slice(entry.offset, entry.offset + entry.size);
|
|
10113
10173
|
if (entry.tag === "rXYZ" || entry.tag === "gXYZ" || entry.tag === "bXYZ" || entry.tag === "wtpt") {
|
|
10114
|
-
const it = getArrayBufferIterator(
|
|
10174
|
+
const it = getArrayBufferIterator({
|
|
10175
|
+
initialData: found,
|
|
10176
|
+
maxBytes: found.length,
|
|
10177
|
+
logLevel: "error"
|
|
10178
|
+
});
|
|
10115
10179
|
it.discard(4);
|
|
10116
10180
|
const x = it.getInt32() / 65536;
|
|
10117
10181
|
const y = it.getInt32() / 65536;
|
|
@@ -11489,7 +11553,11 @@ var getMoovAtom = async ({
|
|
|
11489
11553
|
});
|
|
11490
11554
|
return null;
|
|
11491
11555
|
} : null;
|
|
11492
|
-
const iterator = getArrayBufferIterator(
|
|
11556
|
+
const iterator = getArrayBufferIterator({
|
|
11557
|
+
initialData: new Uint8Array([]),
|
|
11558
|
+
maxBytes: state.contentLength - endOfMdat,
|
|
11559
|
+
logLevel: "error"
|
|
11560
|
+
});
|
|
11493
11561
|
while (true) {
|
|
11494
11562
|
const result = await reader.reader.read();
|
|
11495
11563
|
if (result.value) {
|
|
@@ -14116,7 +14184,11 @@ var readAdtsHeader = (buffer) => {
|
|
|
14116
14184
|
if (buffer.byteLength < 9) {
|
|
14117
14185
|
return null;
|
|
14118
14186
|
}
|
|
14119
|
-
const iterator = getArrayBufferIterator(
|
|
14187
|
+
const iterator = getArrayBufferIterator({
|
|
14188
|
+
initialData: buffer,
|
|
14189
|
+
maxBytes: buffer.byteLength,
|
|
14190
|
+
logLevel: "error"
|
|
14191
|
+
});
|
|
14120
14192
|
iterator.startReadingBits();
|
|
14121
14193
|
const bits = iterator.getBits(12);
|
|
14122
14194
|
if (bits !== 4095) {
|
|
@@ -14678,6 +14750,68 @@ var parseData = ({
|
|
|
14678
14750
|
return Promise.resolve(null);
|
|
14679
14751
|
};
|
|
14680
14752
|
|
|
14753
|
+
// src/containers/wav/parse-fact.ts
|
|
14754
|
+
var parseFact = ({
|
|
14755
|
+
state
|
|
14756
|
+
}) => {
|
|
14757
|
+
const { iterator } = state;
|
|
14758
|
+
const size = iterator.getUint32Le();
|
|
14759
|
+
if (size !== 4) {
|
|
14760
|
+
throw new Error(`Expected size 4 for fact box, got ${size}`);
|
|
14761
|
+
}
|
|
14762
|
+
const numberOfSamplesPerChannel = iterator.getUint32Le();
|
|
14763
|
+
const factBox = {
|
|
14764
|
+
type: "wav-fact",
|
|
14765
|
+
numberOfSamplesPerChannel
|
|
14766
|
+
};
|
|
14767
|
+
state.structure.getWavStructure().boxes.push(factBox);
|
|
14768
|
+
return Promise.resolve(null);
|
|
14769
|
+
};
|
|
14770
|
+
|
|
14771
|
+
// src/containers/wav/subformats.ts
|
|
14772
|
+
var WMMEDIASUBTYPE_PCM = [
|
|
14773
|
+
1,
|
|
14774
|
+
0,
|
|
14775
|
+
0,
|
|
14776
|
+
0,
|
|
14777
|
+
0,
|
|
14778
|
+
0,
|
|
14779
|
+
16,
|
|
14780
|
+
0,
|
|
14781
|
+
128,
|
|
14782
|
+
0,
|
|
14783
|
+
0,
|
|
14784
|
+
170,
|
|
14785
|
+
0,
|
|
14786
|
+
56,
|
|
14787
|
+
155,
|
|
14788
|
+
113
|
|
14789
|
+
];
|
|
14790
|
+
var KSDATAFORMAT_SUBTYPE_IEEE_FLOAT = [
|
|
14791
|
+
3,
|
|
14792
|
+
0,
|
|
14793
|
+
0,
|
|
14794
|
+
0,
|
|
14795
|
+
0,
|
|
14796
|
+
0,
|
|
14797
|
+
16,
|
|
14798
|
+
0,
|
|
14799
|
+
128,
|
|
14800
|
+
0,
|
|
14801
|
+
0,
|
|
14802
|
+
170,
|
|
14803
|
+
0,
|
|
14804
|
+
56,
|
|
14805
|
+
155,
|
|
14806
|
+
113
|
|
14807
|
+
];
|
|
14808
|
+
var subformatIsPcm = (subformat) => {
|
|
14809
|
+
return subformat.every((value, index) => value === WMMEDIASUBTYPE_PCM[index]);
|
|
14810
|
+
};
|
|
14811
|
+
var subformatIsIeeeFloat = (subformat) => {
|
|
14812
|
+
return subformat.every((value, index) => value === KSDATAFORMAT_SUBTYPE_IEEE_FLOAT[index]);
|
|
14813
|
+
};
|
|
14814
|
+
|
|
14681
14815
|
// src/containers/wav/parse-fmt.ts
|
|
14682
14816
|
var CHANNELS = {
|
|
14683
14817
|
0: "Front Left",
|
|
@@ -14752,10 +14886,8 @@ var parseFmt = async ({
|
|
|
14752
14886
|
if (subFormat.length !== 16) {
|
|
14753
14887
|
throw new Error(`Only supporting WAVE with PCM audio format, but got ${subFormat.length}`);
|
|
14754
14888
|
}
|
|
14755
|
-
|
|
14756
|
-
|
|
14757
|
-
throw new Error(`Only supporting WAVE with PCM audio format, but got subformat ${subFormat[i]}`);
|
|
14758
|
-
}
|
|
14889
|
+
if (subformatIsPcm(subFormat)) {} else if (subformatIsIeeeFloat(subFormat)) {} else {
|
|
14890
|
+
throw new Error(`Unsupported subformat: ${subFormat}`);
|
|
14759
14891
|
}
|
|
14760
14892
|
const channels2 = getChannelsFromMask(channelMask);
|
|
14761
14893
|
wavHeader.numberOfChannels = channels2.length;
|
|
@@ -14927,6 +15059,9 @@ var parseWav = (state) => {
|
|
|
14927
15059
|
if (type === "JUNK" || type === "FLLR") {
|
|
14928
15060
|
return parseJunk({ state });
|
|
14929
15061
|
}
|
|
15062
|
+
if (type === "fact") {
|
|
15063
|
+
return parseFact({ state });
|
|
15064
|
+
}
|
|
14930
15065
|
if (type === "\x00") {
|
|
14931
15066
|
return Promise.resolve(null);
|
|
14932
15067
|
}
|
|
@@ -15053,7 +15188,11 @@ var getSampleFromBlock = async ({
|
|
|
15053
15188
|
onVideoTrack,
|
|
15054
15189
|
avcState
|
|
15055
15190
|
}) => {
|
|
15056
|
-
const iterator = getArrayBufferIterator(
|
|
15191
|
+
const iterator = getArrayBufferIterator({
|
|
15192
|
+
initialData: ebml.value,
|
|
15193
|
+
maxBytes: ebml.value.length,
|
|
15194
|
+
logLevel: "error"
|
|
15195
|
+
});
|
|
15057
15196
|
const trackNumber2 = iterator.getVint();
|
|
15058
15197
|
if (trackNumber2 === null) {
|
|
15059
15198
|
throw new Error("Not enough data to get track number, should not happen");
|
|
@@ -15870,8 +16009,8 @@ var warnIfRemotionLicenseNotAcknowledged = ({
|
|
|
15870
16009
|
return;
|
|
15871
16010
|
}
|
|
15872
16011
|
warningShown = true;
|
|
15873
|
-
Log.warn(logLevel,
|
|
15874
|
-
|
|
16012
|
+
Log.warn(logLevel, `Note: Some companies are required to obtain a license to use @remotion/media-parser. See: https://remotion.dev/license
|
|
16013
|
+
Pass \`acknowledgeRemotionLicense: true\` to \`${apiName}\` function to make this message disappear.`);
|
|
15875
16014
|
};
|
|
15876
16015
|
|
|
15877
16016
|
// src/set-seeking-hints.ts
|
|
@@ -16156,7 +16295,11 @@ var getMfraAtom = async ({
|
|
|
16156
16295
|
logLevel,
|
|
16157
16296
|
prefetchCache
|
|
16158
16297
|
});
|
|
16159
|
-
const iterator = getArrayBufferIterator(
|
|
16298
|
+
const iterator = getArrayBufferIterator({
|
|
16299
|
+
initialData: new Uint8Array,
|
|
16300
|
+
maxBytes: parentSize,
|
|
16301
|
+
logLevel: "error"
|
|
16302
|
+
});
|
|
16160
16303
|
while (true) {
|
|
16161
16304
|
const res = await result.reader.reader.read();
|
|
16162
16305
|
if (res.value) {
|
|
@@ -16190,7 +16333,11 @@ var getMfroAtom = async ({
|
|
|
16190
16333
|
return null;
|
|
16191
16334
|
}
|
|
16192
16335
|
result.reader.abort();
|
|
16193
|
-
const iterator = getArrayBufferIterator(
|
|
16336
|
+
const iterator = getArrayBufferIterator({
|
|
16337
|
+
initialData: value,
|
|
16338
|
+
maxBytes: value.length,
|
|
16339
|
+
logLevel: "error"
|
|
16340
|
+
});
|
|
16194
16341
|
const size = iterator.getUint32();
|
|
16195
16342
|
if (size !== 16) {
|
|
16196
16343
|
iterator.destroy();
|
|
@@ -16645,7 +16792,11 @@ var fetchWebmCues = async ({
|
|
|
16645
16792
|
return null;
|
|
16646
16793
|
}
|
|
16647
16794
|
result.reader.abort();
|
|
16648
|
-
const iterator = getArrayBufferIterator(
|
|
16795
|
+
const iterator = getArrayBufferIterator({
|
|
16796
|
+
initialData: value,
|
|
16797
|
+
maxBytes: value.length,
|
|
16798
|
+
logLevel: "error"
|
|
16799
|
+
});
|
|
16649
16800
|
const segment = await expectSegment({
|
|
16650
16801
|
iterator,
|
|
16651
16802
|
logLevel,
|
|
@@ -16910,7 +17061,11 @@ var fetchIdx1 = async ({
|
|
|
16910
17061
|
if (result.contentLength === null) {
|
|
16911
17062
|
throw new Error("Content length is null");
|
|
16912
17063
|
}
|
|
16913
|
-
const iterator = getArrayBufferIterator(
|
|
17064
|
+
const iterator = getArrayBufferIterator({
|
|
17065
|
+
initialData: new Uint8Array,
|
|
17066
|
+
maxBytes: contentLength - position + 1,
|
|
17067
|
+
logLevel: "error"
|
|
17068
|
+
});
|
|
16914
17069
|
while (true) {
|
|
16915
17070
|
const res = await result.reader.reader.read();
|
|
16916
17071
|
if (res.value) {
|
|
@@ -17533,7 +17688,11 @@ var makeParserState = ({
|
|
|
17533
17688
|
}) => {
|
|
17534
17689
|
let skippedBytes = 0;
|
|
17535
17690
|
const returnValue = {};
|
|
17536
|
-
const iterator = getArrayBufferIterator(
|
|
17691
|
+
const iterator = getArrayBufferIterator({
|
|
17692
|
+
initialData: new Uint8Array([]),
|
|
17693
|
+
maxBytes: contentLength,
|
|
17694
|
+
logLevel
|
|
17695
|
+
});
|
|
17537
17696
|
const increaseSkippedBytes = (bytes) => {
|
|
17538
17697
|
skippedBytes += bytes;
|
|
17539
17698
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -669,7 +669,11 @@ export declare const MediaParserInternals: {
|
|
|
669
669
|
offset: number;
|
|
670
670
|
size: number;
|
|
671
671
|
}) => import("./containers/iso-base-media/tkhd").TkhdBox;
|
|
672
|
-
getArrayBufferIterator: (initialData
|
|
672
|
+
getArrayBufferIterator: ({ initialData, maxBytes, logLevel, }: {
|
|
673
|
+
initialData: Uint8Array;
|
|
674
|
+
maxBytes: number;
|
|
675
|
+
logLevel: MediaParserLogLevel;
|
|
676
|
+
}) => {
|
|
673
677
|
startReadingBits: () => void;
|
|
674
678
|
stopReadingBits: () => void;
|
|
675
679
|
skipTo: (offset: number) => void;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import type { MediaParserLogLevel } from '../log';
|
|
2
|
+
export declare const getArrayBufferIterator: ({ initialData, maxBytes, logLevel, }: {
|
|
3
|
+
initialData: Uint8Array;
|
|
4
|
+
maxBytes: number;
|
|
5
|
+
logLevel: MediaParserLogLevel;
|
|
6
|
+
}) => {
|
|
2
7
|
startReadingBits: () => void;
|
|
3
8
|
stopReadingBits: () => void;
|
|
4
9
|
skipTo: (offset: number) => void;
|