@remotion/media-parser 4.0.234 → 4.0.236
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/aac-codecprivate.d.ts +19 -0
- package/dist/aac-codecprivate.js +122 -0
- package/dist/add-avc-profile-to-track.d.ts +1 -1
- package/dist/boxes/iso-base-media/get-actual-number-of-channels.d.ts +13 -0
- package/dist/boxes/iso-base-media/get-actual-number-of-channels.js +22 -0
- package/dist/boxes/iso-base-media/make-track.js +16 -7
- package/dist/boxes/iso-base-media/meta/hdlr.d.ts +12 -0
- package/dist/boxes/iso-base-media/meta/hdlr.js +33 -0
- package/dist/boxes/iso-base-media/meta/ilst.d.ts +28 -0
- package/dist/boxes/iso-base-media/meta/ilst.js +86 -0
- package/dist/boxes/iso-base-media/meta/keys.d.ts +10 -0
- package/dist/boxes/iso-base-media/meta/keys.js +17 -0
- package/dist/boxes/iso-base-media/meta/list.d.ts +12 -0
- package/dist/boxes/iso-base-media/meta/list.js +33 -0
- package/dist/boxes/iso-base-media/moov/moov.d.ts +3 -1
- package/dist/boxes/iso-base-media/moov/moov.js +2 -1
- package/dist/boxes/iso-base-media/process-box.d.ts +5 -2
- package/dist/boxes/iso-base-media/process-box.js +66 -8
- package/dist/boxes/iso-base-media/stsd/keys.d.ts +15 -1
- package/dist/boxes/iso-base-media/stsd/keys.js +25 -12
- package/dist/boxes/iso-base-media/stsd/mebx.d.ts +3 -1
- package/dist/boxes/iso-base-media/stsd/mebx.js +2 -1
- package/dist/boxes/iso-base-media/stsd/samples.d.ts +5 -2
- package/dist/boxes/iso-base-media/stsd/samples.js +7 -2
- package/dist/boxes/iso-base-media/stsd/stsd.d.ts +3 -1
- package/dist/boxes/iso-base-media/stsd/stsd.js +2 -1
- package/dist/boxes/iso-base-media/trak/trak.d.ts +3 -1
- package/dist/boxes/iso-base-media/trak/trak.js +2 -1
- package/dist/boxes/riff/expect-riff-box.d.ts +1 -0
- package/dist/boxes/riff/expect-riff-box.js +1 -1
- package/dist/boxes/riff/get-tracks-from-avi.d.ts +2 -1
- package/dist/boxes/riff/get-tracks-from-avi.js +14 -8
- package/dist/boxes/riff/parse-box.d.ts +3 -1
- package/dist/boxes/riff/parse-box.js +38 -5
- package/dist/boxes/riff/parse-isft.d.ts +6 -0
- package/dist/boxes/riff/parse-isft.js +17 -0
- package/dist/boxes/riff/parse-movi.js +31 -20
- package/dist/boxes/riff/parse-riff-box.js +4 -0
- package/dist/boxes/riff/riff-box.d.ts +5 -1
- package/dist/boxes/webm/parse-ebml.js +2 -1
- package/dist/boxes/webm/parse-webm-header.d.ts +6 -1
- package/dist/boxes/webm/parse-webm-header.js +3 -1
- package/dist/boxes/webm/segments/all-segments.d.ts +42 -2
- package/dist/boxes/webm/segments/all-segments.js +28 -3
- package/dist/boxes/webm/segments/parse-children.d.ts +8 -3
- package/dist/boxes/webm/segments/parse-children.js +39 -4
- package/dist/boxes/webm/segments.d.ts +5 -2
- package/dist/boxes/webm/segments.js +23 -3
- package/dist/boxes/webm/traversal.d.ts +1 -0
- package/dist/boxes/webm/traversal.js +18 -2
- package/dist/buffer-iterator.d.ts +3 -0
- package/dist/buffer-iterator.js +23 -0
- package/dist/create/iso-base-media/codec-specific/mp4a.js +1 -17
- package/dist/create/iso-base-media/mp4-header.js +2 -1
- package/dist/emit-available-info.d.ts +1 -1
- package/dist/emit-available-info.js +17 -6
- package/dist/esm/index.mjs +992 -162
- package/dist/get-audio-codec.d.ts +1 -1
- package/dist/get-dimensions.d.ts +1 -1
- package/dist/get-duration.d.ts +1 -1
- package/dist/get-is-hdr.d.ts +1 -1
- package/dist/get-metadata.d.ts +7 -0
- package/dist/get-metadata.js +63 -0
- package/dist/get-tracks.d.ts +1 -1
- package/dist/get-tracks.js +1 -1
- package/dist/get-video-codec.d.ts +1 -1
- package/dist/has-all-info.d.ts +8 -3
- package/dist/has-all-info.js +21 -12
- package/dist/index.d.ts +6 -0
- package/dist/index.js +2 -0
- package/dist/metadata/get-metadata.d.ts +7 -0
- package/dist/metadata/get-metadata.js +16 -0
- package/dist/metadata/metadata-from-iso.d.ts +4 -0
- package/dist/metadata/metadata-from-iso.js +148 -0
- package/dist/metadata/metadata-from-matroska.d.ts +3 -0
- package/dist/metadata/metadata-from-matroska.js +53 -0
- package/dist/metadata/metadata-from-riff.d.ts +3 -0
- package/dist/metadata/metadata-from-riff.js +24 -0
- package/dist/options.d.ts +9 -3
- package/dist/parse-media.js +32 -29
- package/dist/parse-result.d.ts +3 -1
- package/dist/parse-video.d.ts +3 -1
- package/dist/parse-video.js +5 -3
- package/dist/parser-context.d.ts +1 -2
- package/dist/register-track.d.ts +1 -1
- package/dist/state/can-skip-tracks.d.ts +9 -0
- package/dist/state/can-skip-tracks.js +33 -0
- package/dist/state/has-tracks-section.d.ts +6 -0
- package/dist/state/has-tracks-section.js +21 -0
- package/dist/state/parser-state.d.ts +51 -0
- package/dist/state/parser-state.js +170 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +9 -9
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getClusterSegment = exports.getPrivateData = exports.getBitDepth = exports.getNumberOfChannels = exports.getSampleRate = exports.getAudioSegment = exports.getVideoSegment = exports.getTimescaleSegment = exports.getTracksSegment = exports.getDisplayWidthSegment = exports.getHeightSegment = exports.getWidthSegment = exports.getTrackTypeSegment = exports.getDisplayHeightSegment = exports.getRangeSegment = exports.getPrimariesSegment = exports.getMatrixCoefficientsSegment = exports.getTransferCharacteristicsSegment = exports.getColourSegment = exports.getCodecSegment = exports.getTrackId = exports.getTrackByNumber = exports.getTrackTimestampScale = exports.getTrackCodec = exports.getTrackNumber = exports.getMainSegment = void 0;
|
|
3
|
+
exports.getClusterSegment = exports.getPrivateData = exports.getBitDepth = exports.getNumberOfChannels = exports.getSampleRate = exports.getAudioSegment = exports.getVideoSegment = exports.getTimescaleSegment = exports.getTrackWithUid = exports.getTracksSegment = exports.getDisplayWidthSegment = exports.getHeightSegment = exports.getWidthSegment = exports.getTrackTypeSegment = exports.getDisplayHeightSegment = exports.getRangeSegment = exports.getPrimariesSegment = exports.getMatrixCoefficientsSegment = exports.getTransferCharacteristicsSegment = exports.getColourSegment = exports.getCodecSegment = exports.getTrackId = exports.getTrackByNumber = exports.getTrackTimestampScale = exports.getTrackCodec = exports.getTrackNumber = exports.getMainSegment = void 0;
|
|
4
4
|
const getMainSegment = (segments) => {
|
|
5
5
|
return segments.find((s) => s.type === 'Segment');
|
|
6
6
|
};
|
|
@@ -164,12 +164,28 @@ const getDisplayWidthSegment = (track) => {
|
|
|
164
164
|
exports.getDisplayWidthSegment = getDisplayWidthSegment;
|
|
165
165
|
const getTracksSegment = (segment) => {
|
|
166
166
|
const tracksSegment = segment.value.find((b) => b.type === 'Tracks');
|
|
167
|
-
if (!tracksSegment
|
|
167
|
+
if (!tracksSegment) {
|
|
168
168
|
return null;
|
|
169
169
|
}
|
|
170
170
|
return tracksSegment;
|
|
171
171
|
};
|
|
172
172
|
exports.getTracksSegment = getTracksSegment;
|
|
173
|
+
const getTrackWithUid = (segment, trackUid) => {
|
|
174
|
+
var _a, _b;
|
|
175
|
+
const tracksSegment = (0, exports.getTracksSegment)(segment);
|
|
176
|
+
if (!tracksSegment) {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
const trackEntries = tracksSegment.value.filter((t) => t.type === 'TrackEntry');
|
|
180
|
+
const trackEntry = trackEntries.find((entry) => {
|
|
181
|
+
return entry === null || entry === void 0 ? void 0 : entry.value.find((t) => t.type === 'TrackUID' && t.value === trackUid);
|
|
182
|
+
});
|
|
183
|
+
if (!trackEntry) {
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
return ((_b = (_a = trackEntry.value.find((t) => t.type === 'TrackNumber')) === null || _a === void 0 ? void 0 : _a.value.value) !== null && _b !== void 0 ? _b : null);
|
|
187
|
+
};
|
|
188
|
+
exports.getTrackWithUid = getTrackWithUid;
|
|
173
189
|
const getTimescaleSegment = (segment) => {
|
|
174
190
|
const infoSegment = segment.value.find((b) => b.type === 'Info');
|
|
175
191
|
if (!infoSegment || infoSegment.type !== 'Info') {
|
|
@@ -39,9 +39,11 @@ export declare const getArrayBufferIterator: (initialData: Uint8Array, maxBytes:
|
|
|
39
39
|
getUint16: () => number;
|
|
40
40
|
getUint16Le: () => number;
|
|
41
41
|
getUint24: () => number;
|
|
42
|
+
getInt24: () => number;
|
|
42
43
|
getInt16: () => number;
|
|
43
44
|
getUint32: () => number;
|
|
44
45
|
getUint64: (littleEndian?: boolean) => bigint;
|
|
46
|
+
getInt64: (littleEndian?: boolean) => bigint;
|
|
45
47
|
getFixedPointUnsigned1616Number: () => number;
|
|
46
48
|
getFixedPointSigned1616Number: () => number;
|
|
47
49
|
getFixedPointSigned230Number: () => number;
|
|
@@ -49,6 +51,7 @@ export declare const getArrayBufferIterator: (initialData: Uint8Array, maxBytes:
|
|
|
49
51
|
getUint(length: number): number;
|
|
50
52
|
getByteString(length: number): string;
|
|
51
53
|
getFloat64: () => number;
|
|
54
|
+
readUntilNullTerminator: () => string;
|
|
52
55
|
getFloat32: () => number;
|
|
53
56
|
getUint32Le: () => number;
|
|
54
57
|
getInt32Le: () => number;
|
package/dist/buffer-iterator.js
CHANGED
|
@@ -92,6 +92,15 @@ const getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
92
92
|
const discard = (length) => {
|
|
93
93
|
counter.increment(length);
|
|
94
94
|
};
|
|
95
|
+
const readUntilNullTerminator = () => {
|
|
96
|
+
const bytes = [];
|
|
97
|
+
let byte;
|
|
98
|
+
while ((byte = getUint8()) !== 0) {
|
|
99
|
+
bytes.push(byte);
|
|
100
|
+
}
|
|
101
|
+
counter.decrement(1);
|
|
102
|
+
return new TextDecoder().decode(new Uint8Array(bytes));
|
|
103
|
+
};
|
|
95
104
|
const getUint8 = () => {
|
|
96
105
|
const val = view.getUint8(counter.getDiscardedOffset());
|
|
97
106
|
counter.increment(1);
|
|
@@ -155,6 +164,11 @@ const getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
155
164
|
counter.increment(8);
|
|
156
165
|
return val;
|
|
157
166
|
};
|
|
167
|
+
const getInt64 = (littleEndian = false) => {
|
|
168
|
+
const val = view.getBigInt64(counter.getDiscardedOffset(), littleEndian);
|
|
169
|
+
counter.increment(8);
|
|
170
|
+
return val;
|
|
171
|
+
};
|
|
158
172
|
const startBox = (size) => {
|
|
159
173
|
const startOffset = counter.getOffset();
|
|
160
174
|
return {
|
|
@@ -439,6 +453,13 @@ const getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
439
453
|
counter.increment(3);
|
|
440
454
|
return (val1 << 16) | (val2 << 8) | val3;
|
|
441
455
|
},
|
|
456
|
+
getInt24: () => {
|
|
457
|
+
const val1 = view.getInt8(counter.getDiscardedOffset());
|
|
458
|
+
const val2 = view.getUint8(counter.getDiscardedOffset() + 1);
|
|
459
|
+
const val3 = view.getUint8(counter.getDiscardedOffset() + 2);
|
|
460
|
+
counter.increment(3);
|
|
461
|
+
return (val1 << 16) | (val2 << 8) | val3;
|
|
462
|
+
},
|
|
442
463
|
getInt16: () => {
|
|
443
464
|
const val = view.getInt16(counter.getDiscardedOffset());
|
|
444
465
|
counter.increment(2);
|
|
@@ -446,6 +467,7 @@ const getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
446
467
|
},
|
|
447
468
|
getUint32,
|
|
448
469
|
getUint64,
|
|
470
|
+
getInt64,
|
|
449
471
|
// https://developer.apple.com/documentation/quicktime-file-format/sound_sample_description_version_1
|
|
450
472
|
// A 32-bit unsigned fixed-point number (16.16) that indicates the rate at which the sound samples were obtained.
|
|
451
473
|
getFixedPointUnsigned1616Number: () => {
|
|
@@ -478,6 +500,7 @@ const getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
478
500
|
counter.increment(8);
|
|
479
501
|
return val;
|
|
480
502
|
},
|
|
503
|
+
readUntilNullTerminator,
|
|
481
504
|
getFloat32: () => {
|
|
482
505
|
const val = view.getFloat32(counter.getDiscardedOffset());
|
|
483
506
|
counter.increment(4);
|
|
@@ -36,23 +36,7 @@ const createMp4a = ({ sampleRate, channelCount, avgBitrate, maxBitrate, codecPri
|
|
|
36
36
|
(0, primitives_1.numberTo32BitUIntOrInt)(avgBitrate),
|
|
37
37
|
// DecoderSpecificInfoTag
|
|
38
38
|
new Uint8Array([5]),
|
|
39
|
-
//
|
|
40
|
-
// audioObjectType = 2 = 'AAC LC'
|
|
41
|
-
// samplingFrequencyIndex = 3 = '48000 Hz'
|
|
42
|
-
// channelConfiguration = 2 = '2 channels'
|
|
43
|
-
/**
|
|
44
|
-
* Byte 1 (17): 0001 0001
|
|
45
|
-
^^^^^ ^^^^
|
|
46
|
-
| |
|
|
47
|
-
| +-- Start of samplingFrequencyIndex (3)
|
|
48
|
-
+-- audioConfigType (2)
|
|
49
|
-
|
|
50
|
-
Byte 2 (144): 1001 0000
|
|
51
|
-
^^^^ ^^^^
|
|
52
|
-
| |
|
|
53
|
-
| +-- Remaining bits/padding
|
|
54
|
-
+-- channelConfiguration (2)
|
|
55
|
-
*/
|
|
39
|
+
// see create-aac-codecprivate.ts
|
|
56
40
|
(0, primitives_1.addLeading128Size)(codecPrivate),
|
|
57
41
|
])),
|
|
58
42
|
// SLConfigDescrTag
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createPaddedMoovAtom = void 0;
|
|
4
|
+
const version_1 = require("../../version");
|
|
4
5
|
const create_ilst_1 = require("./create-ilst");
|
|
5
6
|
const create_moov_1 = require("./create-moov");
|
|
6
7
|
const create_mvhd_1 = require("./create-mvhd");
|
|
@@ -39,7 +40,7 @@ const createPaddedMoovAtom = ({ durationInUnits, trackInfo, timescale, }) => {
|
|
|
39
40
|
hdlr: (0, create_hdlr_1.createHdlr)('mdir'),
|
|
40
41
|
ilst: (0, create_ilst_1.createIlst)([
|
|
41
42
|
(0, create_too_1.createToo)('WebCodecs'),
|
|
42
|
-
(0, create_cmt_1.createCmt)(
|
|
43
|
+
(0, create_cmt_1.createCmt)(`Made with @remotion/webcodecs ${version_1.VERSION}`),
|
|
43
44
|
]),
|
|
44
45
|
})),
|
|
45
46
|
}), HEADER_LENGTH);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AllParseMediaFields, Options, ParseMediaCallbacks, ParseMediaFields, ParseMediaResult } from './options';
|
|
2
2
|
import type { ParseResult, Structure } from './parse-result';
|
|
3
|
-
import type { ParserState } from './parser-state';
|
|
3
|
+
import type { ParserState } from './state/parser-state';
|
|
4
4
|
export declare const emitAvailableInfo: ({ hasInfo, parseResult, moreFields, state, returnValue, contentLength, name, }: {
|
|
5
5
|
hasInfo: Record<keyof Options<ParseMediaFields>, boolean>;
|
|
6
6
|
parseResult: ParseResult<Structure> | null;
|
|
@@ -9,6 +9,7 @@ const get_fps_1 = require("./get-fps");
|
|
|
9
9
|
const get_is_hdr_1 = require("./get-is-hdr");
|
|
10
10
|
const get_tracks_1 = require("./get-tracks");
|
|
11
11
|
const get_video_codec_1 = require("./get-video-codec");
|
|
12
|
+
const get_metadata_1 = require("./metadata/get-metadata");
|
|
12
13
|
const emitAvailableInfo = ({ hasInfo, parseResult, moreFields, state, returnValue, contentLength, name, }) => {
|
|
13
14
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
14
15
|
const keys = Object.keys(hasInfo);
|
|
@@ -112,23 +113,23 @@ const emitAvailableInfo = ({ hasInfo, parseResult, moreFields, state, returnValu
|
|
|
112
113
|
continue;
|
|
113
114
|
}
|
|
114
115
|
if (key === 'internalStats') {
|
|
115
|
-
|
|
116
|
+
// Special case: Always emitting internal stats at the end
|
|
117
|
+
if (hasInfo.internalStats) {
|
|
116
118
|
const internalStats = state.getInternalStats();
|
|
117
|
-
(_k = moreFields.onInternalStats) === null || _k === void 0 ? void 0 : _k.call(moreFields, internalStats);
|
|
118
119
|
returnValue.internalStats = internalStats;
|
|
119
120
|
}
|
|
120
121
|
continue;
|
|
121
122
|
}
|
|
122
123
|
if (key === 'size') {
|
|
123
124
|
if (returnValue.size === undefined && hasInfo.size) {
|
|
124
|
-
(
|
|
125
|
+
(_k = moreFields.onSize) === null || _k === void 0 ? void 0 : _k.call(moreFields, contentLength);
|
|
125
126
|
returnValue.size = contentLength;
|
|
126
127
|
}
|
|
127
128
|
continue;
|
|
128
129
|
}
|
|
129
130
|
if (key === 'name') {
|
|
130
131
|
if (returnValue.name === undefined && hasInfo.name) {
|
|
131
|
-
(
|
|
132
|
+
(_l = moreFields.onName) === null || _l === void 0 ? void 0 : _l.call(moreFields, name);
|
|
132
133
|
returnValue.name = name;
|
|
133
134
|
}
|
|
134
135
|
continue;
|
|
@@ -136,7 +137,7 @@ const emitAvailableInfo = ({ hasInfo, parseResult, moreFields, state, returnValu
|
|
|
136
137
|
if (key === 'isHdr') {
|
|
137
138
|
if (returnValue.isHdr === undefined && hasInfo.isHdr && parseResult) {
|
|
138
139
|
const isHdr = (0, get_is_hdr_1.getIsHdr)(parseResult.segments, state);
|
|
139
|
-
(
|
|
140
|
+
(_m = moreFields.onIsHdr) === null || _m === void 0 ? void 0 : _m.call(moreFields, isHdr);
|
|
140
141
|
returnValue.isHdr = isHdr;
|
|
141
142
|
}
|
|
142
143
|
continue;
|
|
@@ -146,11 +147,21 @@ const emitAvailableInfo = ({ hasInfo, parseResult, moreFields, state, returnValu
|
|
|
146
147
|
hasInfo.container &&
|
|
147
148
|
parseResult) {
|
|
148
149
|
const container = (0, get_container_1.getContainer)(parseResult.segments);
|
|
149
|
-
(
|
|
150
|
+
(_o = moreFields.onContainer) === null || _o === void 0 ? void 0 : _o.call(moreFields, container);
|
|
150
151
|
returnValue.container = container;
|
|
151
152
|
}
|
|
152
153
|
continue;
|
|
153
154
|
}
|
|
155
|
+
if (key === 'metadata') {
|
|
156
|
+
if (returnValue.metadata === undefined &&
|
|
157
|
+
hasInfo.metadata &&
|
|
158
|
+
parseResult) {
|
|
159
|
+
const metadata = (0, get_metadata_1.getMetadata)(parseResult.segments);
|
|
160
|
+
(_p = moreFields.onMetadata) === null || _p === void 0 ? void 0 : _p.call(moreFields, metadata);
|
|
161
|
+
returnValue.metadata = metadata;
|
|
162
|
+
}
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
154
165
|
throw new Error(`Unhandled key: ${key}`);
|
|
155
166
|
}
|
|
156
167
|
};
|