@remotion/media-parser 4.0.194 → 4.0.196
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/add-new-matroska-tracks.d.ts +8 -0
- package/dist/add-new-matroska-tracks.js +14 -0
- package/dist/av1-codec-string.d.ts +3 -0
- package/dist/av1-codec-string.js +91 -0
- package/dist/boxes/iso-base-media/esds/decoder-specific-config.d.ts +14 -0
- package/dist/boxes/iso-base-media/esds/decoder-specific-config.js +38 -0
- package/dist/boxes/iso-base-media/esds/esds-descriptors.d.ts +8 -0
- package/dist/boxes/iso-base-media/esds/esds-descriptors.js +22 -2
- package/dist/boxes/iso-base-media/ftype.d.ts +9 -0
- package/dist/boxes/iso-base-media/ftype.js +31 -0
- package/dist/boxes/iso-base-media/make-track.d.ts +3 -0
- package/dist/boxes/iso-base-media/make-track.js +112 -0
- package/dist/boxes/iso-base-media/mdat/mdat.d.ts +6 -2
- package/dist/boxes/iso-base-media/mdat/mdat.js +90 -6
- package/dist/boxes/iso-base-media/moov/moov.d.ts +4 -2
- package/dist/boxes/iso-base-media/moov/moov.js +4 -2
- package/dist/boxes/iso-base-media/mvhd.js +7 -1
- package/dist/boxes/iso-base-media/process-box.d.ts +20 -3
- package/dist/boxes/iso-base-media/process-box.js +322 -34
- package/dist/boxes/iso-base-media/stsd/av1c.d.ts +9 -0
- package/dist/boxes/iso-base-media/stsd/av1c.js +10 -0
- package/dist/boxes/iso-base-media/stsd/avcc-hvcc.d.ts +20 -0
- package/dist/boxes/iso-base-media/stsd/avcc-hvcc.js +73 -0
- package/dist/boxes/iso-base-media/stsd/avcc.d.ts +10 -0
- package/dist/boxes/iso-base-media/stsd/avcc.js +21 -0
- package/dist/boxes/iso-base-media/stsd/colr.d.ts +11 -0
- package/dist/boxes/iso-base-media/stsd/colr.js +35 -0
- package/dist/boxes/iso-base-media/stsd/ctts.d.ts +19 -0
- package/dist/boxes/iso-base-media/stsd/ctts.js +30 -0
- package/dist/boxes/iso-base-media/stsd/hvcc.d.ts +11 -0
- package/dist/boxes/iso-base-media/stsd/hvcc.js +17 -0
- package/dist/boxes/iso-base-media/stsd/keys.js +1 -0
- package/dist/boxes/iso-base-media/stsd/mebx.d.ts +4 -2
- package/dist/boxes/iso-base-media/stsd/mebx.js +4 -2
- package/dist/boxes/iso-base-media/stsd/pasp.d.ts +12 -0
- package/dist/boxes/iso-base-media/stsd/pasp.js +17 -0
- package/dist/boxes/iso-base-media/stsd/samples.d.ts +12 -5
- package/dist/boxes/iso-base-media/stsd/samples.js +27 -10
- package/dist/boxes/iso-base-media/stsd/stsd.d.ts +4 -2
- package/dist/boxes/iso-base-media/stsd/stsd.js +6 -2
- package/dist/boxes/iso-base-media/stsd/stss.d.ts +13 -0
- package/dist/boxes/iso-base-media/stsd/stss.js +28 -0
- package/dist/boxes/iso-base-media/stsd/stsz.d.ts +9 -3
- package/dist/boxes/iso-base-media/stsd/stsz.js +14 -2
- package/dist/boxes/iso-base-media/stsd/stts.d.ts +15 -0
- package/dist/boxes/iso-base-media/stsd/stts.js +35 -0
- package/dist/boxes/iso-base-media/tkhd.d.ts +3 -0
- package/dist/boxes/iso-base-media/tkhd.js +41 -14
- package/dist/boxes/iso-base-media/trak/trak.d.ts +4 -2
- package/dist/boxes/iso-base-media/trak/trak.js +4 -2
- package/dist/boxes/iso-base-media/void-box.d.ts +4 -0
- package/dist/boxes/iso-base-media/void-box.js +2 -0
- package/dist/boxes/webm/allowed-partial-segments.d.ts +1 -0
- package/dist/boxes/webm/allowed-partial-segments.js +4 -0
- package/dist/boxes/webm/av1-codec-private.d.ts +2 -0
- package/dist/boxes/webm/av1-codec-private.js +95 -0
- package/dist/boxes/webm/bitstream/av1/bitstream-frame-header.d.ts +14 -0
- package/dist/boxes/webm/bitstream/av1/bitstream-frame-header.js +67 -0
- package/dist/boxes/webm/bitstream/av1/bitstream-frame.d.ts +11 -0
- package/dist/boxes/webm/bitstream/av1/bitstream-frame.js +14 -0
- package/dist/boxes/webm/bitstream/av1/chroma-sample-position.d.ts +6 -0
- package/dist/boxes/webm/bitstream/av1/chroma-sample-position.js +9 -0
- package/dist/boxes/webm/bitstream/av1/color-config.d.ts +16 -0
- package/dist/boxes/webm/bitstream/av1/color-config.js +103 -0
- package/dist/boxes/webm/bitstream/av1/color-primaries.d.ts +14 -0
- package/dist/boxes/webm/bitstream/av1/color-primaries.js +17 -0
- package/dist/boxes/webm/bitstream/av1/decoder-model-info.d.ts +9 -0
- package/dist/boxes/webm/bitstream/av1/decoder-model-info.js +17 -0
- package/dist/boxes/webm/bitstream/av1/header-segment.d.ts +51 -0
- package/dist/boxes/webm/bitstream/av1/header-segment.js +183 -0
- package/dist/boxes/webm/bitstream/av1/matrix-coefficients.d.ts +17 -0
- package/dist/boxes/webm/bitstream/av1/matrix-coefficients.js +20 -0
- package/dist/boxes/webm/bitstream/av1/operating-parameters-info.d.ts +10 -0
- package/dist/boxes/webm/bitstream/av1/operating-parameters-info.js +15 -0
- package/dist/boxes/webm/bitstream/av1/temporal-point-info.d.ts +5 -0
- package/dist/boxes/webm/bitstream/av1/temporal-point-info.js +8 -0
- package/dist/boxes/webm/bitstream/av1/timing-info.d.ts +8 -0
- package/dist/boxes/webm/bitstream/av1/timing-info.js +20 -0
- package/dist/boxes/webm/bitstream/av1/transfer-characteristics.d.ts +21 -0
- package/dist/boxes/webm/bitstream/av1/transfer-characteristics.js +24 -0
- package/dist/boxes/webm/bitstream/av1/uvlc.d.ts +2 -0
- package/dist/boxes/webm/bitstream/av1/uvlc.js +20 -0
- package/dist/boxes/webm/bitstream/av1.d.ts +20 -0
- package/dist/boxes/webm/bitstream/av1.js +118 -0
- package/dist/boxes/webm/bitstream/h264/get-h264-descriptor.d.ts +0 -0
- package/dist/boxes/webm/bitstream/h264/get-h264-descriptor.js +1 -0
- package/dist/boxes/webm/description.d.ts +2 -0
- package/dist/boxes/webm/description.js +83 -0
- package/dist/boxes/webm/get-ready-tracks.d.ts +3 -0
- package/dist/boxes/webm/get-ready-tracks.js +29 -0
- package/dist/boxes/webm/get-track.d.ts +6 -0
- package/dist/boxes/webm/get-track.js +183 -0
- package/dist/boxes/webm/parse-webm-header.d.ts +2 -1
- package/dist/boxes/webm/parse-webm-header.js +2 -2
- package/dist/boxes/webm/segments/all-segments.d.ts +269 -0
- package/dist/boxes/webm/segments/all-segments.js +277 -0
- package/dist/boxes/webm/segments/duration.d.ts +1 -1
- package/dist/boxes/webm/segments/duration.js +13 -9
- package/dist/boxes/webm/segments/info.d.ts +2 -1
- package/dist/boxes/webm/segments/info.js +12 -4
- package/dist/boxes/webm/segments/main.d.ts +0 -2
- package/dist/boxes/webm/segments/main.js +0 -11
- package/dist/boxes/webm/segments/muxing.d.ts +1 -1
- package/dist/boxes/webm/segments/muxing.js +1 -2
- package/dist/boxes/webm/segments/parse-children.d.ts +11 -1
- package/dist/boxes/webm/segments/parse-children.js +82 -6
- package/dist/boxes/webm/segments/seek-head.d.ts +2 -1
- package/dist/boxes/webm/segments/seek-head.js +12 -3
- package/dist/boxes/webm/segments/seek-position.d.ts +1 -1
- package/dist/boxes/webm/segments/seek-position.js +1 -2
- package/dist/boxes/webm/segments/seek.d.ts +7 -2
- package/dist/boxes/webm/segments/seek.js +22 -9
- package/dist/boxes/webm/segments/track-entry.d.ts +102 -22
- package/dist/boxes/webm/segments/track-entry.js +269 -57
- package/dist/boxes/webm/segments/tracks.d.ts +2 -1
- package/dist/boxes/webm/segments/tracks.js +12 -4
- package/dist/boxes/webm/segments/void.d.ts +1 -1
- package/dist/boxes/webm/segments/void.js +1 -2
- package/dist/boxes/webm/segments/writing.d.ts +1 -1
- package/dist/boxes/webm/segments/writing.js +1 -2
- package/dist/boxes/webm/segments.d.ts +8 -4
- package/dist/boxes/webm/segments.js +176 -40
- package/dist/boxes/webm/traversal.d.ts +7 -0
- package/dist/boxes/webm/traversal.js +25 -0
- package/dist/buffer-iterator.d.ts +15 -1
- package/dist/buffer-iterator.js +115 -46
- package/dist/combine-uint8array.d.ts +1 -0
- package/dist/combine-uint8array.js +13 -0
- package/dist/from-fetch.d.ts +2 -0
- package/dist/from-fetch.js +54 -0
- package/dist/from-node.js +6 -0
- package/dist/from-web-file.d.ts +2 -0
- package/dist/from-web-file.js +34 -0
- package/dist/from-web.js +6 -9
- package/dist/get-audio-codec.d.ts +19 -0
- package/dist/get-audio-codec.js +153 -60
- package/dist/get-dimensions.d.ts +8 -2
- package/dist/get-dimensions.js +13 -91
- package/dist/get-duration.js +4 -7
- package/dist/get-fps.d.ts +4 -3
- package/dist/get-fps.js +17 -116
- package/dist/get-sample-aspect-ratio.d.ts +37 -0
- package/dist/get-sample-aspect-ratio.js +137 -0
- package/dist/get-sample-positions.d.ts +11 -1
- package/dist/get-sample-positions.js +31 -2
- package/dist/get-tracks.d.ts +44 -5
- package/dist/get-tracks.js +66 -48
- package/dist/get-video-codec.d.ts +2 -0
- package/dist/get-video-codec.js +47 -31
- package/dist/get-video-metadata.d.ts +2 -0
- package/dist/get-video-metadata.js +44 -0
- package/dist/has-all-info.d.ts +2 -1
- package/dist/has-all-info.js +14 -5
- package/dist/index.d.ts +1 -0
- package/dist/make-hvc1-codec-strings.d.ts +2 -0
- package/dist/make-hvc1-codec-strings.js +47 -0
- package/dist/options.d.ts +26 -4
- package/dist/parse-media.js +62 -17
- package/dist/parse-result.d.ts +16 -5
- package/dist/parse-video.d.ts +11 -2
- package/dist/parse-video.js +14 -6
- package/dist/parser-context.d.ts +8 -0
- package/dist/parser-context.js +2 -0
- package/dist/parser-state.d.ts +23 -0
- package/dist/parser-state.js +112 -0
- package/dist/read-and-increment-offset.d.ts +28 -0
- package/dist/read-and-increment-offset.js +177 -0
- package/dist/reader.d.ts +2 -2
- package/dist/traversal.d.ts +37 -0
- package/dist/traversal.js +244 -1
- package/dist/understand-vorbis.d.ts +1 -0
- package/dist/understand-vorbis.js +12 -0
- package/dist/webcodec-sample-types.d.ts +21 -0
- package/dist/webcodec-sample-types.js +2 -0
- package/package.json +10 -2
- package/src/add-new-matroska-tracks.ts +23 -0
- package/src/boxes/iso-base-media/esds/decoder-specific-config.ts +61 -0
- package/src/boxes/iso-base-media/esds/esds-descriptors.ts +33 -2
- package/src/boxes/iso-base-media/make-track.ts +157 -0
- package/src/boxes/iso-base-media/mdat/mdat.ts +131 -0
- package/src/boxes/iso-base-media/moov/moov.ts +8 -3
- package/src/boxes/iso-base-media/mvhd.ts +7 -1
- package/src/boxes/iso-base-media/process-box.ts +388 -38
- package/src/boxes/iso-base-media/stsd/av1c.ts +19 -0
- package/src/boxes/iso-base-media/stsd/avcc.ts +36 -0
- package/src/boxes/iso-base-media/stsd/colr.ts +49 -0
- package/src/boxes/iso-base-media/stsd/ctts.ts +55 -0
- package/src/boxes/iso-base-media/stsd/hvcc.ts +32 -0
- package/src/boxes/iso-base-media/stsd/keys.ts +2 -0
- package/src/boxes/iso-base-media/stsd/mebx.ts +8 -3
- package/src/boxes/iso-base-media/stsd/pasp.ts +32 -0
- package/src/boxes/iso-base-media/stsd/samples.ts +43 -16
- package/src/boxes/iso-base-media/stsd/stco.ts +50 -0
- package/src/boxes/iso-base-media/stsd/stsc.ts +61 -0
- package/src/boxes/iso-base-media/stsd/stsd.ts +10 -3
- package/src/boxes/iso-base-media/stsd/stss.ts +47 -0
- package/src/boxes/iso-base-media/stsd/stsz.ts +75 -0
- package/src/boxes/iso-base-media/tkhd.ts +63 -16
- package/src/boxes/iso-base-media/trak/trak.ts +8 -3
- package/src/boxes/iso-base-media/void-box.ts +4 -0
- package/src/boxes/webm/allowed-partial-segments.ts +1 -0
- package/src/boxes/webm/av1-codec-private.ts +113 -0
- package/src/boxes/webm/description.ts +101 -0
- package/src/boxes/webm/get-ready-tracks.ts +36 -0
- package/src/boxes/webm/get-track.ts +250 -0
- package/src/boxes/webm/parse-webm-header.ts +6 -2
- package/src/boxes/webm/segments/all-segments.ts +285 -0
- package/src/boxes/webm/segments/duration.ts +15 -8
- package/src/boxes/webm/segments/info.ts +18 -4
- package/src/boxes/webm/segments/main.ts +0 -13
- package/src/boxes/webm/segments/muxing.ts +1 -1
- package/src/boxes/webm/segments/parse-children.ts +132 -9
- package/src/boxes/webm/segments/seek-head.ts +17 -4
- package/src/boxes/webm/segments/seek-position.ts +1 -2
- package/src/boxes/webm/segments/seek.ts +31 -9
- package/src/boxes/webm/segments/track-entry.ts +475 -65
- package/src/boxes/webm/segments/tracks.ts +17 -7
- package/src/boxes/webm/segments/void.ts +4 -2
- package/src/boxes/webm/segments/writing.ts +1 -1
- package/src/boxes/webm/segments.ts +266 -42
- package/src/boxes/webm/traversal.ts +32 -0
- package/src/buffer-iterator.ts +140 -45
- package/src/combine-uint8array.ts +13 -0
- package/src/{from-web.ts → from-fetch.ts} +9 -1
- package/src/from-node.ts +8 -0
- package/src/from-web-file.ts +39 -0
- package/src/get-audio-codec.ts +213 -84
- package/src/get-dimensions.ts +25 -132
- package/src/get-duration.ts +4 -8
- package/src/get-fps.ts +27 -172
- package/src/get-sample-aspect-ratio.ts +204 -0
- package/src/get-sample-positions.ts +93 -0
- package/src/get-tracks.ts +147 -0
- package/src/get-video-codec.ts +62 -47
- package/src/has-all-info.ts +35 -5
- package/src/index.ts +8 -0
- package/src/make-hvc1-codec-strings.ts +55 -0
- package/src/options.ts +48 -9
- package/src/parse-media.ts +90 -21
- package/src/parse-result.ts +28 -4
- package/src/parse-video.ts +30 -7
- package/src/parser-context.ts +9 -0
- package/src/parser-state.ts +151 -0
- package/src/reader.ts +2 -2
- package/src/test/aspect-ratio.test.ts +42 -0
- package/src/test/av1.test.ts +108 -0
- package/src/test/duration.test.ts +5 -21
- package/src/test/matroska.test.ts +350 -31
- package/src/test/mvhd.test.ts +6 -1
- package/src/test/parse-esds.test.ts +29 -6
- package/src/test/parse-stco.test.ts +59 -0
- package/src/test/parse-stsc.test.ts +104 -0
- package/src/test/parse-stsz.test.ts +57 -0
- package/src/test/parse-stts.test.ts +1 -1
- package/src/test/parse-video.test.ts +23 -35
- package/src/test/parse-webm.test.ts +5 -5
- package/src/test/stream-local.test.ts +542 -46
- package/src/test/stream-remote.test.ts +15 -13
- package/src/test/stream-samples.test.ts +259 -0
- package/src/test/stsd.test.ts +60 -8
- package/src/test/tkhd.test.ts +4 -1
- package/src/traversal.ts +496 -0
- package/src/webcodec-sample-types.ts +30 -0
- package/tsconfig.json +5 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/boxes.json +0 -1
- package/dist/boxes/iso-base-media/esds-descriptors.d.ts +0 -21
- package/dist/boxes/iso-base-media/esds-descriptors.js +0 -62
- package/dist/boxes/iso-base-media/esds.d.ts +0 -15
- package/dist/boxes/iso-base-media/esds.js +0 -27
- package/dist/get-codec.d.ts +0 -4
- package/dist/get-codec.js +0 -22
- /package/dist/{get-samples.d.ts → boxes/webm/bitstream/av1/frame.d.ts} +0 -0
- /package/dist/{get-samples.js → boxes/webm/bitstream/av1/frame.js} +0 -0
- /package/src/boxes/iso-base-media/{stts → stsd}/stts.ts +0 -0
|
@@ -1,30 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseDefaultFlagSegment = exports.parseSegmentUUIDSegment = exports.parseCrc32Segment = exports.parseCodecPrivateSegment = exports.parseInterlacedSegment = exports.parseTitleSegment = exports.parseColorSegment = exports.parseMaxBlockAdditionId = exports.parseAlphaModeSegment = exports.parseHeightSegment = exports.parseWidthSegment = exports.parseVideoSegment = exports.parseDefaultDurationSegment = exports.parseTrackTypeSegment = exports.parseCodecSegment = exports.parseLanguageSegment = exports.parseFlagLacing = exports.parseTrackUID = exports.
|
|
3
|
+
exports.parseBitDepthSegment = exports.parseChannelsSegment = exports.parseSamplingFrequencySegment = exports.parseBlockElementSegment = exports.parseBlockGroupSegment = exports.parseTrackNumber = exports.parseSimpleBlockSegment = exports.parseTimestampSegment = exports.parseTagSegment = exports.parseTagsSegment = exports.parseDefaultFlagSegment = exports.parseSegmentUUIDSegment = exports.parseCrc32Segment = exports.parseCodecPrivateSegment = exports.parseInterlacedSegment = exports.parseTitleSegment = exports.parseColorSegment = exports.parseMaxBlockAdditionId = exports.parseAlphaModeSegment = exports.parseDisplayHeightSegment = exports.parseDisplayWidthSegment = exports.parseHeightSegment = exports.parseWidthSegment = exports.parseAudioSegment = exports.parseVideoSegment = exports.parseDefaultDurationSegment = exports.parseTrackTypeSegment = exports.parseCodecSegment = exports.parseLanguageSegment = exports.parseFlagLacing = exports.parseTrackUID = exports.parseTrackEntry = void 0;
|
|
4
4
|
const parse_children_1 = require("./parse-children");
|
|
5
|
-
const parseTrackEntry = (iterator) => {
|
|
6
|
-
const
|
|
7
|
-
|
|
5
|
+
const parseTrackEntry = async (iterator, length, parserContext) => {
|
|
6
|
+
const children = await (0, parse_children_1.expectChildren)({
|
|
7
|
+
iterator,
|
|
8
|
+
length,
|
|
9
|
+
initialChildren: [],
|
|
10
|
+
wrap: null,
|
|
11
|
+
parserContext,
|
|
12
|
+
});
|
|
13
|
+
if (children.status === 'incomplete') {
|
|
14
|
+
throw new Error('Incomplete children ' + length);
|
|
15
|
+
}
|
|
8
16
|
return {
|
|
9
17
|
type: 'track-entry-segment',
|
|
10
|
-
children:
|
|
18
|
+
children: children.segments,
|
|
11
19
|
};
|
|
12
20
|
};
|
|
13
21
|
exports.parseTrackEntry = parseTrackEntry;
|
|
14
|
-
const
|
|
15
|
-
const length = iterator.getVint();
|
|
16
|
-
if (length !== 1) {
|
|
17
|
-
throw new Error('Expected track number to be 1 byte');
|
|
18
|
-
}
|
|
19
|
-
const trackNumber = iterator.getUint8();
|
|
20
|
-
return {
|
|
21
|
-
type: 'track-number-segment',
|
|
22
|
-
trackNumber,
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
exports.parseTrackNumber = parseTrackNumber;
|
|
26
|
-
const parseTrackUID = (iterator) => {
|
|
27
|
-
const length = iterator.getVint();
|
|
22
|
+
const parseTrackUID = (iterator, length) => {
|
|
28
23
|
const bytes = iterator.getSlice(length);
|
|
29
24
|
const asString = [...bytes]
|
|
30
25
|
.map((b) => b.toString(16).padStart(2, '0'))
|
|
@@ -35,8 +30,7 @@ const parseTrackUID = (iterator) => {
|
|
|
35
30
|
};
|
|
36
31
|
};
|
|
37
32
|
exports.parseTrackUID = parseTrackUID;
|
|
38
|
-
const parseFlagLacing = (iterator) => {
|
|
39
|
-
const length = iterator.getVint();
|
|
33
|
+
const parseFlagLacing = (iterator, length) => {
|
|
40
34
|
if (length !== 1) {
|
|
41
35
|
throw new Error('Expected flag lacing to be 1 byte');
|
|
42
36
|
}
|
|
@@ -50,8 +44,7 @@ const parseFlagLacing = (iterator) => {
|
|
|
50
44
|
};
|
|
51
45
|
};
|
|
52
46
|
exports.parseFlagLacing = parseFlagLacing;
|
|
53
|
-
const parseLanguageSegment = (iterator) => {
|
|
54
|
-
const length = iterator.getVint();
|
|
47
|
+
const parseLanguageSegment = (iterator, length) => {
|
|
55
48
|
if (length !== 3) {
|
|
56
49
|
throw new Error('Expected language segment to be 3 bytes');
|
|
57
50
|
}
|
|
@@ -62,8 +55,7 @@ const parseLanguageSegment = (iterator) => {
|
|
|
62
55
|
};
|
|
63
56
|
};
|
|
64
57
|
exports.parseLanguageSegment = parseLanguageSegment;
|
|
65
|
-
const parseCodecSegment = (iterator) => {
|
|
66
|
-
const length = iterator.getVint();
|
|
58
|
+
const parseCodecSegment = (iterator, length) => {
|
|
67
59
|
// Could make a TypeScript enum with it
|
|
68
60
|
// https://www.matroska.org/technical/codec_specs.html
|
|
69
61
|
const codec = iterator.getByteString(length);
|
|
@@ -73,12 +65,32 @@ const parseCodecSegment = (iterator) => {
|
|
|
73
65
|
};
|
|
74
66
|
};
|
|
75
67
|
exports.parseCodecSegment = parseCodecSegment;
|
|
76
|
-
const
|
|
77
|
-
|
|
68
|
+
const trackTypeToString = (trackType) => {
|
|
69
|
+
switch (trackType) {
|
|
70
|
+
case 1:
|
|
71
|
+
return 'video';
|
|
72
|
+
case 2:
|
|
73
|
+
return 'audio';
|
|
74
|
+
case 3:
|
|
75
|
+
return 'complex';
|
|
76
|
+
case 4:
|
|
77
|
+
return 'subtitle';
|
|
78
|
+
case 5:
|
|
79
|
+
return 'button';
|
|
80
|
+
case 6:
|
|
81
|
+
return 'control';
|
|
82
|
+
case 7:
|
|
83
|
+
return 'metadata';
|
|
84
|
+
default:
|
|
85
|
+
throw new Error(`Unknown track type: ${trackType}`);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
const parseTrackTypeSegment = (iterator, length) => {
|
|
78
89
|
if (length !== 1) {
|
|
79
90
|
throw new Error('Expected track type segment to be 1 byte');
|
|
80
91
|
}
|
|
81
92
|
const trackType = iterator.getUint8();
|
|
93
|
+
const trackTypeString = trackTypeToString(trackType);
|
|
82
94
|
// Could make the return type nicer
|
|
83
95
|
/* 1 - video,
|
|
84
96
|
2 - audio,
|
|
@@ -91,12 +103,11 @@ const parseTrackTypeSegment = (iterator) => {
|
|
|
91
103
|
*/
|
|
92
104
|
return {
|
|
93
105
|
type: 'track-type-segment',
|
|
94
|
-
trackType,
|
|
106
|
+
trackType: trackTypeString,
|
|
95
107
|
};
|
|
96
108
|
};
|
|
97
109
|
exports.parseTrackTypeSegment = parseTrackTypeSegment;
|
|
98
|
-
const parseDefaultDurationSegment = (iterator) => {
|
|
99
|
-
const length = iterator.getVint();
|
|
110
|
+
const parseDefaultDurationSegment = (iterator, length) => {
|
|
100
111
|
const defaultDuration = iterator.getDecimalBytes(length);
|
|
101
112
|
return {
|
|
102
113
|
type: 'default-duration-segment',
|
|
@@ -104,16 +115,41 @@ const parseDefaultDurationSegment = (iterator) => {
|
|
|
104
115
|
};
|
|
105
116
|
};
|
|
106
117
|
exports.parseDefaultDurationSegment = parseDefaultDurationSegment;
|
|
107
|
-
const parseVideoSegment = (iterator) => {
|
|
108
|
-
const
|
|
118
|
+
const parseVideoSegment = async (iterator, length, parserContext) => {
|
|
119
|
+
const children = await (0, parse_children_1.expectChildren)({
|
|
120
|
+
iterator,
|
|
121
|
+
length,
|
|
122
|
+
initialChildren: [],
|
|
123
|
+
wrap: null,
|
|
124
|
+
parserContext,
|
|
125
|
+
});
|
|
126
|
+
if (children.status === 'incomplete') {
|
|
127
|
+
throw new Error('Incomplete children');
|
|
128
|
+
}
|
|
109
129
|
return {
|
|
110
130
|
type: 'video-segment',
|
|
111
|
-
children:
|
|
131
|
+
children: children.segments,
|
|
112
132
|
};
|
|
113
133
|
};
|
|
114
134
|
exports.parseVideoSegment = parseVideoSegment;
|
|
115
|
-
const
|
|
116
|
-
const
|
|
135
|
+
const parseAudioSegment = async (iterator, length, parserContext) => {
|
|
136
|
+
const children = await (0, parse_children_1.expectChildren)({
|
|
137
|
+
iterator,
|
|
138
|
+
length,
|
|
139
|
+
initialChildren: [],
|
|
140
|
+
wrap: null,
|
|
141
|
+
parserContext,
|
|
142
|
+
});
|
|
143
|
+
if (children.status === 'incomplete') {
|
|
144
|
+
throw new Error('Incomplete children');
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
type: 'audio-segment',
|
|
148
|
+
children: children.segments,
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
exports.parseAudioSegment = parseAudioSegment;
|
|
152
|
+
const parseWidthSegment = (iterator, length) => {
|
|
117
153
|
if (length !== 2) {
|
|
118
154
|
throw new Error('Expected width segment to be 2 bytes');
|
|
119
155
|
}
|
|
@@ -124,8 +160,7 @@ const parseWidthSegment = (iterator) => {
|
|
|
124
160
|
};
|
|
125
161
|
};
|
|
126
162
|
exports.parseWidthSegment = parseWidthSegment;
|
|
127
|
-
const parseHeightSegment = (iterator) => {
|
|
128
|
-
const length = iterator.getVint();
|
|
163
|
+
const parseHeightSegment = (iterator, length) => {
|
|
129
164
|
if (length !== 2) {
|
|
130
165
|
throw new Error('Expected height segment to be 2 bytes');
|
|
131
166
|
}
|
|
@@ -136,8 +171,29 @@ const parseHeightSegment = (iterator) => {
|
|
|
136
171
|
};
|
|
137
172
|
};
|
|
138
173
|
exports.parseHeightSegment = parseHeightSegment;
|
|
139
|
-
const
|
|
140
|
-
|
|
174
|
+
const parseDisplayWidthSegment = (iterator, length) => {
|
|
175
|
+
if (length !== 2) {
|
|
176
|
+
throw new Error(`Expected display width segment to be 2 bytes, got ${length}`);
|
|
177
|
+
}
|
|
178
|
+
const displayWidth = iterator.getUint16();
|
|
179
|
+
return {
|
|
180
|
+
type: 'display-width-segment',
|
|
181
|
+
displayWidth,
|
|
182
|
+
};
|
|
183
|
+
};
|
|
184
|
+
exports.parseDisplayWidthSegment = parseDisplayWidthSegment;
|
|
185
|
+
const parseDisplayHeightSegment = (iterator, length) => {
|
|
186
|
+
if (length !== 2) {
|
|
187
|
+
throw new Error(`Expected display height segment to be 2 bytes, got ${length}`);
|
|
188
|
+
}
|
|
189
|
+
const displayHeight = iterator.getUint16();
|
|
190
|
+
return {
|
|
191
|
+
type: 'display-height-segment',
|
|
192
|
+
displayHeight,
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
exports.parseDisplayHeightSegment = parseDisplayHeightSegment;
|
|
196
|
+
const parseAlphaModeSegment = (iterator, length) => {
|
|
141
197
|
if (length !== 1) {
|
|
142
198
|
throw new Error('Expected alpha mode segment to be 1 byte');
|
|
143
199
|
}
|
|
@@ -148,8 +204,7 @@ const parseAlphaModeSegment = (iterator) => {
|
|
|
148
204
|
};
|
|
149
205
|
};
|
|
150
206
|
exports.parseAlphaModeSegment = parseAlphaModeSegment;
|
|
151
|
-
const parseMaxBlockAdditionId = (iterator) => {
|
|
152
|
-
const length = iterator.getVint();
|
|
207
|
+
const parseMaxBlockAdditionId = (iterator, length) => {
|
|
153
208
|
if (length !== 1) {
|
|
154
209
|
throw new Error('Expected alpha mode segment to be 1 byte');
|
|
155
210
|
}
|
|
@@ -160,16 +215,15 @@ const parseMaxBlockAdditionId = (iterator) => {
|
|
|
160
215
|
};
|
|
161
216
|
};
|
|
162
217
|
exports.parseMaxBlockAdditionId = parseMaxBlockAdditionId;
|
|
163
|
-
const parseColorSegment = (iterator) => {
|
|
164
|
-
const length = iterator.getVint();
|
|
218
|
+
const parseColorSegment = (iterator, length) => {
|
|
165
219
|
iterator.discard(length);
|
|
166
220
|
return {
|
|
167
221
|
type: 'color-segment',
|
|
222
|
+
length,
|
|
168
223
|
};
|
|
169
224
|
};
|
|
170
225
|
exports.parseColorSegment = parseColorSegment;
|
|
171
|
-
const parseTitleSegment = (iterator) => {
|
|
172
|
-
const length = iterator.getVint();
|
|
226
|
+
const parseTitleSegment = (iterator, length) => {
|
|
173
227
|
const title = iterator.getByteString(length);
|
|
174
228
|
return {
|
|
175
229
|
type: 'title-segment',
|
|
@@ -177,10 +231,9 @@ const parseTitleSegment = (iterator) => {
|
|
|
177
231
|
};
|
|
178
232
|
};
|
|
179
233
|
exports.parseTitleSegment = parseTitleSegment;
|
|
180
|
-
const parseInterlacedSegment = (iterator) => {
|
|
181
|
-
const length = iterator.getVint();
|
|
234
|
+
const parseInterlacedSegment = (iterator, length) => {
|
|
182
235
|
if (length !== 1) {
|
|
183
|
-
throw new Error('Expected interlaced segment to be 1 byte');
|
|
236
|
+
throw new Error('Expected interlaced segment to be 1 byte, but is ' + length);
|
|
184
237
|
}
|
|
185
238
|
const interlaced = iterator.getUint8();
|
|
186
239
|
return {
|
|
@@ -189,32 +242,28 @@ const parseInterlacedSegment = (iterator) => {
|
|
|
189
242
|
};
|
|
190
243
|
};
|
|
191
244
|
exports.parseInterlacedSegment = parseInterlacedSegment;
|
|
192
|
-
const parseCodecPrivateSegment = (iterator) => {
|
|
193
|
-
const length = iterator.getVint();
|
|
245
|
+
const parseCodecPrivateSegment = (iterator, length) => {
|
|
194
246
|
return {
|
|
195
247
|
type: 'codec-private-segment',
|
|
196
|
-
codecPrivateData:
|
|
248
|
+
codecPrivateData: iterator.getSlice(length),
|
|
197
249
|
};
|
|
198
250
|
};
|
|
199
251
|
exports.parseCodecPrivateSegment = parseCodecPrivateSegment;
|
|
200
|
-
const parseCrc32Segment = (iterator) => {
|
|
201
|
-
const length = iterator.getVint();
|
|
252
|
+
const parseCrc32Segment = (iterator, length) => {
|
|
202
253
|
return {
|
|
203
254
|
type: 'crc32-segment',
|
|
204
255
|
crc32: [...iterator.getSlice(length)],
|
|
205
256
|
};
|
|
206
257
|
};
|
|
207
258
|
exports.parseCrc32Segment = parseCrc32Segment;
|
|
208
|
-
const parseSegmentUUIDSegment = (iterator) => {
|
|
209
|
-
const length = iterator.getVint();
|
|
259
|
+
const parseSegmentUUIDSegment = (iterator, length) => {
|
|
210
260
|
return {
|
|
211
261
|
type: 'segment-uuid-segment',
|
|
212
262
|
segmentUUID: iterator.getSlice(length).toString(),
|
|
213
263
|
};
|
|
214
264
|
};
|
|
215
265
|
exports.parseSegmentUUIDSegment = parseSegmentUUIDSegment;
|
|
216
|
-
const parseDefaultFlagSegment = (iterator) => {
|
|
217
|
-
const length = iterator.getVint();
|
|
266
|
+
const parseDefaultFlagSegment = (iterator, length) => {
|
|
218
267
|
if (length !== 1) {
|
|
219
268
|
throw new Error('Expected default flag segment to be 1 byte');
|
|
220
269
|
}
|
|
@@ -224,3 +273,166 @@ const parseDefaultFlagSegment = (iterator) => {
|
|
|
224
273
|
};
|
|
225
274
|
};
|
|
226
275
|
exports.parseDefaultFlagSegment = parseDefaultFlagSegment;
|
|
276
|
+
const parseTagsSegment = async (iterator, length, parserContext) => {
|
|
277
|
+
const children = await (0, parse_children_1.expectChildren)({
|
|
278
|
+
iterator,
|
|
279
|
+
length,
|
|
280
|
+
initialChildren: [],
|
|
281
|
+
wrap: null,
|
|
282
|
+
parserContext,
|
|
283
|
+
});
|
|
284
|
+
if (children.status === 'incomplete') {
|
|
285
|
+
throw new Error('Incomplete children');
|
|
286
|
+
}
|
|
287
|
+
return {
|
|
288
|
+
type: 'tags-segment',
|
|
289
|
+
children: children.segments,
|
|
290
|
+
};
|
|
291
|
+
};
|
|
292
|
+
exports.parseTagsSegment = parseTagsSegment;
|
|
293
|
+
const parseTagSegment = (iterator, length) => {
|
|
294
|
+
iterator.discard(length);
|
|
295
|
+
return {
|
|
296
|
+
type: 'tag-segment',
|
|
297
|
+
length,
|
|
298
|
+
};
|
|
299
|
+
};
|
|
300
|
+
exports.parseTagSegment = parseTagSegment;
|
|
301
|
+
const parseTimestampSegment = (iterator, length) => {
|
|
302
|
+
if (length > 2) {
|
|
303
|
+
throw new Error('Expected timestamp segment to be 1 byte or 2 bytes');
|
|
304
|
+
}
|
|
305
|
+
const value = length === 2 ? iterator.getUint16() : iterator.getUint8();
|
|
306
|
+
return {
|
|
307
|
+
type: 'timestamp-segment',
|
|
308
|
+
timestamp: value,
|
|
309
|
+
};
|
|
310
|
+
};
|
|
311
|
+
exports.parseTimestampSegment = parseTimestampSegment;
|
|
312
|
+
const parseSimpleBlockSegment = async ({ iterator, length, parserContext, }) => {
|
|
313
|
+
const start = iterator.counter.getOffset();
|
|
314
|
+
const trackNumber = iterator.getVint();
|
|
315
|
+
const timecode = iterator.getUint16();
|
|
316
|
+
const headerFlags = iterator.getUint8();
|
|
317
|
+
const invisible = Boolean((headerFlags >> 5) & 1);
|
|
318
|
+
const pos6 = (headerFlags >> 6) & 1;
|
|
319
|
+
const pos7 = (headerFlags >> 6) & 1;
|
|
320
|
+
const keyframe = Boolean((headerFlags >> 7) & 1);
|
|
321
|
+
const codec = parserContext.parserState.getTrackInfoByNumber(trackNumber);
|
|
322
|
+
if (!codec) {
|
|
323
|
+
throw new Error('Could not find codec for track ' + trackNumber);
|
|
324
|
+
}
|
|
325
|
+
const children = [];
|
|
326
|
+
if (codec.codec.startsWith('V_')) {
|
|
327
|
+
const remainingNow = length - (iterator.counter.getOffset() - start);
|
|
328
|
+
await parserContext.parserState.onVideoSample(trackNumber, {
|
|
329
|
+
data: iterator.getSlice(remainingNow),
|
|
330
|
+
cts: null,
|
|
331
|
+
dts: null,
|
|
332
|
+
duration: undefined,
|
|
333
|
+
type: keyframe ? 'key' : 'delta',
|
|
334
|
+
trackId: trackNumber,
|
|
335
|
+
timestamp: timecode,
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
if (codec.codec.startsWith('A_')) {
|
|
339
|
+
const vorbisRemaining = length - (iterator.counter.getOffset() - start);
|
|
340
|
+
await parserContext.parserState.onAudioSample(trackNumber, {
|
|
341
|
+
data: iterator.getSlice(vorbisRemaining),
|
|
342
|
+
offset: timecode,
|
|
343
|
+
trackId: trackNumber,
|
|
344
|
+
timestamp: timecode,
|
|
345
|
+
type: 'key',
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
const remainingNowAfter = length - (iterator.counter.getOffset() - start);
|
|
349
|
+
if (remainingNowAfter > 0) {
|
|
350
|
+
iterator.discard(remainingNowAfter);
|
|
351
|
+
}
|
|
352
|
+
return {
|
|
353
|
+
type: 'simple-block-segment',
|
|
354
|
+
length,
|
|
355
|
+
trackNumber,
|
|
356
|
+
timecode,
|
|
357
|
+
headerFlags,
|
|
358
|
+
keyframe,
|
|
359
|
+
lacing: [pos6, pos7],
|
|
360
|
+
invisible,
|
|
361
|
+
children,
|
|
362
|
+
};
|
|
363
|
+
};
|
|
364
|
+
exports.parseSimpleBlockSegment = parseSimpleBlockSegment;
|
|
365
|
+
const parseTrackNumber = (iterator, length) => {
|
|
366
|
+
if (length !== 1) {
|
|
367
|
+
throw new Error('Expected track number to be 1 byte');
|
|
368
|
+
}
|
|
369
|
+
const trackNumber = iterator.getUint8();
|
|
370
|
+
return {
|
|
371
|
+
type: 'track-number-segment',
|
|
372
|
+
trackNumber,
|
|
373
|
+
};
|
|
374
|
+
};
|
|
375
|
+
exports.parseTrackNumber = parseTrackNumber;
|
|
376
|
+
const parseBlockGroupSegment = async (iterator, length, parserContext) => {
|
|
377
|
+
const children = await (0, parse_children_1.expectChildren)({
|
|
378
|
+
iterator,
|
|
379
|
+
length,
|
|
380
|
+
initialChildren: [],
|
|
381
|
+
wrap: null,
|
|
382
|
+
parserContext,
|
|
383
|
+
});
|
|
384
|
+
if (children.status === 'incomplete') {
|
|
385
|
+
throw new Error('Incomplete boxes are not allowed');
|
|
386
|
+
}
|
|
387
|
+
return {
|
|
388
|
+
type: 'block-group-segment',
|
|
389
|
+
children: children.segments,
|
|
390
|
+
};
|
|
391
|
+
};
|
|
392
|
+
exports.parseBlockGroupSegment = parseBlockGroupSegment;
|
|
393
|
+
const parseBlockElementSegment = (iterator, length) => {
|
|
394
|
+
iterator.discard(length);
|
|
395
|
+
return {
|
|
396
|
+
type: 'block-element-segment',
|
|
397
|
+
length,
|
|
398
|
+
};
|
|
399
|
+
};
|
|
400
|
+
exports.parseBlockElementSegment = parseBlockElementSegment;
|
|
401
|
+
const parseSamplingFrequencySegment = (iterator, length) => {
|
|
402
|
+
if (length === 4) {
|
|
403
|
+
return {
|
|
404
|
+
type: 'sampling-frequency-segment',
|
|
405
|
+
samplingFrequency: iterator.getFloat32(),
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
if (length === 8) {
|
|
409
|
+
return {
|
|
410
|
+
type: 'sampling-frequency-segment',
|
|
411
|
+
samplingFrequency: iterator.getFloat64(),
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
throw new Error(`Expected length of sampling frequency segment to be 4 or 8, got ${length}`);
|
|
415
|
+
};
|
|
416
|
+
exports.parseSamplingFrequencySegment = parseSamplingFrequencySegment;
|
|
417
|
+
const parseChannelsSegment = (iterator, length) => {
|
|
418
|
+
if (length !== 1) {
|
|
419
|
+
throw new Error(`Expected length of channels segment to be 1, got ${length}`);
|
|
420
|
+
}
|
|
421
|
+
const channels = iterator.getUint8();
|
|
422
|
+
return {
|
|
423
|
+
type: 'channels-segment',
|
|
424
|
+
channels,
|
|
425
|
+
};
|
|
426
|
+
};
|
|
427
|
+
exports.parseChannelsSegment = parseChannelsSegment;
|
|
428
|
+
const parseBitDepthSegment = (iterator, length) => {
|
|
429
|
+
if (length !== 1) {
|
|
430
|
+
throw new Error(`Expected length of bit depth segment to be 1, got ${length}`);
|
|
431
|
+
}
|
|
432
|
+
const bitDepth = iterator.getUint8();
|
|
433
|
+
return {
|
|
434
|
+
type: 'bit-depth-segment',
|
|
435
|
+
bitDepth,
|
|
436
|
+
};
|
|
437
|
+
};
|
|
438
|
+
exports.parseBitDepthSegment = parseBitDepthSegment;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { BufferIterator } from '../../../buffer-iterator';
|
|
2
|
+
import type { ParserContext } from '../../../parser-context';
|
|
2
3
|
import type { MatroskaSegment } from '../segments';
|
|
3
4
|
export type TracksSegment = {
|
|
4
5
|
type: 'tracks-segment';
|
|
5
6
|
children: MatroskaSegment[];
|
|
6
7
|
};
|
|
7
|
-
export declare const parseTracksSegment: (iterator: BufferIterator) => TracksSegment
|
|
8
|
+
export declare const parseTracksSegment: (iterator: BufferIterator, length: number, parserContext: ParserContext) => Promise<TracksSegment>;
|
|
@@ -2,12 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseTracksSegment = void 0;
|
|
4
4
|
const parse_children_1 = require("./parse-children");
|
|
5
|
-
const parseTracksSegment = (iterator) => {
|
|
6
|
-
const
|
|
7
|
-
|
|
5
|
+
const parseTracksSegment = async (iterator, length, parserContext) => {
|
|
6
|
+
const children = await (0, parse_children_1.expectChildren)({
|
|
7
|
+
iterator,
|
|
8
|
+
length,
|
|
9
|
+
initialChildren: [],
|
|
10
|
+
wrap: null,
|
|
11
|
+
parserContext,
|
|
12
|
+
});
|
|
13
|
+
if (children.status === 'incomplete') {
|
|
14
|
+
throw new Error('Incomplete children');
|
|
15
|
+
}
|
|
8
16
|
return {
|
|
9
17
|
type: 'tracks-segment',
|
|
10
|
-
children:
|
|
18
|
+
children: children.segments,
|
|
11
19
|
};
|
|
12
20
|
};
|
|
13
21
|
exports.parseTracksSegment = parseTracksSegment;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseVoidSegment = void 0;
|
|
4
|
-
const parseVoidSegment = (iterator) => {
|
|
5
|
-
const length = iterator.getVint();
|
|
4
|
+
const parseVoidSegment = (iterator, length) => {
|
|
6
5
|
iterator.discard(length);
|
|
7
6
|
return {
|
|
8
7
|
type: 'void-segment',
|
|
@@ -3,4 +3,4 @@ export type WritingAppSegment = {
|
|
|
3
3
|
type: 'writing-app-segment';
|
|
4
4
|
value: string;
|
|
5
5
|
};
|
|
6
|
-
export declare const parseWritingSegment: (iterator: BufferIterator) => WritingAppSegment;
|
|
6
|
+
export declare const parseWritingSegment: (iterator: BufferIterator, length: number) => WritingAppSegment;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseWritingSegment = void 0;
|
|
4
|
-
const parseWritingSegment = (iterator) => {
|
|
5
|
-
const length = iterator.getVint();
|
|
4
|
+
const parseWritingSegment = (iterator, length) => {
|
|
6
5
|
const value = iterator.getByteString(length);
|
|
7
6
|
return {
|
|
8
7
|
type: 'writing-app-segment',
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import type { BufferIterator } from '../../buffer-iterator';
|
|
2
|
+
import type { ParseResult } from '../../parse-result';
|
|
3
|
+
import type { ParserContext } from '../../parser-context';
|
|
2
4
|
import type { DurationSegment } from './segments/duration';
|
|
3
5
|
import type { InfoSegment } from './segments/info';
|
|
4
|
-
import type
|
|
6
|
+
import { type MainSegment } from './segments/main';
|
|
5
7
|
import { type MuxingAppSegment } from './segments/muxing';
|
|
8
|
+
import type { SeekIdSegment } from './segments/seek';
|
|
6
9
|
import { type SeekSegment } from './segments/seek';
|
|
7
10
|
import type { SeekHeadSegment } from './segments/seek-head';
|
|
8
11
|
import { type SeekPositionSegment } from './segments/seek-position';
|
|
9
12
|
import type { TimestampScaleSegment } from './segments/timestamp-scale';
|
|
10
|
-
import type { AlphaModeSegment, CodecPrivateSegment, CodecSegment, ColorSegment, Crc32Segment, DefaultDurationSegment, DefaultFlagSegment, FlagLacingSegment, HeightSegment, InterlacedSegment, LanguageSegment, MaxBlockAdditionId, SegmentUUIDSegment, TitleSegment, TrackEntrySegment, TrackNumberSegment, TrackTypeSegment, TrackUIDSegment, VideoSegment, WidthSegment } from './segments/track-entry';
|
|
13
|
+
import type { AlphaModeSegment, AudioSegment, BitDepthSegment, BlockElement, BlockGroupSegment, ChannelsSegment, ClusterSegment, CodecPrivateSegment, CodecSegment, ColorSegment, Crc32Segment, DefaultDurationSegment, DefaultFlagSegment, DisplayHeightSegment, DisplayWidthSegment, FlagLacingSegment, HeightSegment, InterlacedSegment, LanguageSegment, MaxBlockAdditionId, SamplingFrequencySegment, SegmentUUIDSegment, SimpleBlockSegment, TagSegment, TagsSegment, TimestampSegment, TitleSegment, TrackEntrySegment, TrackNumberSegment, TrackTypeSegment, TrackUIDSegment, VideoSegment, WidthSegment } from './segments/track-entry';
|
|
11
14
|
import type { TracksSegment } from './segments/tracks';
|
|
12
15
|
import type { UnknownSegment } from './segments/unknown';
|
|
13
16
|
import type { VoidSegment } from './segments/void';
|
|
14
17
|
import type { WritingAppSegment } from './segments/writing';
|
|
15
|
-
export type MatroskaSegment = MainSegment | UnknownSegment | SeekHeadSegment | SeekSegment | SeekPositionSegment | VoidSegment | InfoSegment | TimestampScaleSegment | MuxingAppSegment | WritingAppSegment | DurationSegment | TracksSegment | TrackEntrySegment | TrackNumberSegment | TrackUIDSegment | FlagLacingSegment | LanguageSegment | CodecSegment | TrackTypeSegment | DefaultDurationSegment | VideoSegment | WidthSegment | HeightSegment | AlphaModeSegment | MaxBlockAdditionId | ColorSegment | TitleSegment | InterlacedSegment | CodecPrivateSegment | Crc32Segment | SegmentUUIDSegment | DefaultFlagSegment;
|
|
16
|
-
export
|
|
18
|
+
export type MatroskaSegment = MainSegment | UnknownSegment | SeekHeadSegment | SeekSegment | SeekPositionSegment | VoidSegment | InfoSegment | TimestampScaleSegment | MuxingAppSegment | WritingAppSegment | DurationSegment | TracksSegment | TrackEntrySegment | TrackNumberSegment | TrackUIDSegment | FlagLacingSegment | LanguageSegment | CodecSegment | TrackTypeSegment | DefaultDurationSegment | VideoSegment | WidthSegment | HeightSegment | DisplayWidthSegment | DisplayHeightSegment | AlphaModeSegment | MaxBlockAdditionId | ColorSegment | TitleSegment | InterlacedSegment | CodecPrivateSegment | Crc32Segment | SegmentUUIDSegment | DefaultFlagSegment | TagsSegment | TagSegment | ClusterSegment | TimestampSegment | SimpleBlockSegment | BlockGroupSegment | BlockElement | SeekIdSegment | AudioSegment | SamplingFrequencySegment | ChannelsSegment | BitDepthSegment;
|
|
19
|
+
export type OnTrackEntrySegment = (trackEntry: TrackEntrySegment) => void;
|
|
20
|
+
export declare const expectSegment: (iterator: BufferIterator, parserContext: ParserContext) => Promise<ParseResult>;
|