@remotion/media-parser 4.0.256 → 4.0.258
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/abort.d.ts +1 -0
- package/dist/abort.js +7 -0
- package/dist/containers/flac/get-channel-count.d.ts +1 -1
- package/dist/controller.d.ts +17 -0
- package/dist/controller.js +31 -0
- package/dist/esm/index.mjs +1 -1
- package/dist/parse-and-download-media.d.ts +2 -0
- package/dist/parse-and-download-media.js +57 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
- package/dist/add-new-matroska-tracks.d.ts +0 -8
- package/dist/add-new-matroska-tracks.js +0 -14
- package/dist/boxes/avc/parse-avc.d.ts +0 -18
- package/dist/boxes/avc/parse-avc.js +0 -96
- package/dist/boxes/iso-base-media/base-type.d.ts +0 -4
- package/dist/boxes/iso-base-media/base-type.js +0 -2
- package/dist/boxes/iso-base-media/esds/decoder-specific-config.d.ts +0 -14
- package/dist/boxes/iso-base-media/esds/decoder-specific-config.js +0 -38
- package/dist/boxes/iso-base-media/esds/esds-descriptors.d.ts +0 -29
- package/dist/boxes/iso-base-media/esds/esds-descriptors.js +0 -82
- package/dist/boxes/iso-base-media/esds/esds.d.ts +0 -15
- package/dist/boxes/iso-base-media/esds/esds.js +0 -27
- package/dist/boxes/iso-base-media/ftyp.d.ts +0 -13
- package/dist/boxes/iso-base-media/ftyp.js +0 -22
- package/dist/boxes/iso-base-media/get-actual-number-of-channels.d.ts +0 -13
- package/dist/boxes/iso-base-media/get-actual-number-of-channels.js +0 -22
- package/dist/boxes/iso-base-media/get-sample-positions-from-track.d.ts +0 -4
- package/dist/boxes/iso-base-media/get-sample-positions-from-track.js +0 -54
- package/dist/boxes/iso-base-media/make-track.d.ts +0 -3
- package/dist/boxes/iso-base-media/make-track.js +0 -107
- package/dist/boxes/iso-base-media/mdat/mdat.d.ts +0 -25
- package/dist/boxes/iso-base-media/mdat/mdat.js +0 -122
- package/dist/boxes/iso-base-media/mdhd.d.ts +0 -16
- package/dist/boxes/iso-base-media/mdhd.js +0 -32
- package/dist/boxes/iso-base-media/meta/hdlr.d.ts +0 -12
- package/dist/boxes/iso-base-media/meta/hdlr.js +0 -33
- package/dist/boxes/iso-base-media/meta/ilst.d.ts +0 -28
- package/dist/boxes/iso-base-media/meta/ilst.js +0 -86
- package/dist/boxes/iso-base-media/moov/moov.d.ts +0 -19
- package/dist/boxes/iso-base-media/moov/moov.js +0 -27
- package/dist/boxes/iso-base-media/mvhd.d.ts +0 -30
- package/dist/boxes/iso-base-media/mvhd.js +0 -65
- package/dist/boxes/iso-base-media/parse-icc-profile.d.ts +0 -36
- package/dist/boxes/iso-base-media/parse-icc-profile.js +0 -115
- package/dist/boxes/iso-base-media/process-box.d.ts +0 -34
- package/dist/boxes/iso-base-media/process-box.js +0 -710
- package/dist/boxes/iso-base-media/stsd/av1c.d.ts +0 -9
- package/dist/boxes/iso-base-media/stsd/av1c.js +0 -10
- package/dist/boxes/iso-base-media/stsd/avcc.d.ts +0 -10
- package/dist/boxes/iso-base-media/stsd/avcc.js +0 -21
- package/dist/boxes/iso-base-media/stsd/colr.d.ts +0 -21
- package/dist/boxes/iso-base-media/stsd/colr.js +0 -47
- package/dist/boxes/iso-base-media/stsd/ctts.d.ts +0 -19
- package/dist/boxes/iso-base-media/stsd/ctts.js +0 -34
- package/dist/boxes/iso-base-media/stsd/hvcc.d.ts +0 -11
- package/dist/boxes/iso-base-media/stsd/hvcc.js +0 -17
- package/dist/boxes/iso-base-media/stsd/keys.d.ts +0 -19
- package/dist/boxes/iso-base-media/stsd/keys.js +0 -35
- package/dist/boxes/iso-base-media/stsd/mebx.d.ts +0 -19
- package/dist/boxes/iso-base-media/stsd/mebx.js +0 -32
- package/dist/boxes/iso-base-media/stsd/pasp.d.ts +0 -12
- package/dist/boxes/iso-base-media/stsd/pasp.js +0 -17
- package/dist/boxes/iso-base-media/stsd/samples.d.ts +0 -68
- package/dist/boxes/iso-base-media/stsd/samples.js +0 -320
- package/dist/boxes/iso-base-media/stsd/stco.d.ts +0 -15
- package/dist/boxes/iso-base-media/stsd/stco.js +0 -30
- package/dist/boxes/iso-base-media/stsd/stsc.d.ts +0 -19
- package/dist/boxes/iso-base-media/stsd/stsc.js +0 -34
- package/dist/boxes/iso-base-media/stsd/stsd.d.ts +0 -18
- package/dist/boxes/iso-base-media/stsd/stsd.js +0 -33
- package/dist/boxes/iso-base-media/stsd/stss.d.ts +0 -13
- package/dist/boxes/iso-base-media/stsd/stss.js +0 -28
- package/dist/boxes/iso-base-media/stsd/stsz.d.ts +0 -21
- package/dist/boxes/iso-base-media/stsd/stsz.js +0 -44
- package/dist/boxes/iso-base-media/stsd/stts.d.ts +0 -15
- package/dist/boxes/iso-base-media/stsd/stts.js +0 -35
- package/dist/boxes/iso-base-media/tfdt.d.ts +0 -12
- package/dist/boxes/iso-base-media/tfdt.js +0 -20
- package/dist/boxes/iso-base-media/tfhd.d.ts +0 -16
- package/dist/boxes/iso-base-media/tfhd.js +0 -41
- package/dist/boxes/iso-base-media/tkhd.d.ts +0 -25
- package/dist/boxes/iso-base-media/tkhd.js +0 -87
- package/dist/boxes/iso-base-media/to-date.d.ts +0 -2
- package/dist/boxes/iso-base-media/to-date.js +0 -19
- package/dist/boxes/iso-base-media/trak/trak.d.ts +0 -19
- package/dist/boxes/iso-base-media/trak/trak.js +0 -27
- package/dist/boxes/iso-base-media/traversal.d.ts +0 -39
- package/dist/boxes/iso-base-media/traversal.js +0 -201
- package/dist/boxes/iso-base-media/trun.d.ts +0 -21
- package/dist/boxes/iso-base-media/trun.js +0 -44
- package/dist/boxes/iso-base-media/void-box.d.ts +0 -4
- package/dist/boxes/iso-base-media/void-box.js +0 -2
- package/dist/boxes/riff/expect-riff-box.d.ts +0 -17
- package/dist/boxes/riff/expect-riff-box.js +0 -49
- package/dist/boxes/riff/get-tracks-from-avi.d.ts +0 -22
- package/dist/boxes/riff/get-tracks-from-avi.js +0 -114
- package/dist/boxes/riff/is-movi.d.ts +0 -2
- package/dist/boxes/riff/is-movi.js +0 -12
- package/dist/boxes/riff/parse-avih.d.ts +0 -6
- package/dist/boxes/riff/parse-avih.js +0 -32
- package/dist/boxes/riff/parse-box.d.ts +0 -15
- package/dist/boxes/riff/parse-box.js +0 -146
- package/dist/boxes/riff/parse-fmt-box.d.ts +0 -7
- package/dist/boxes/riff/parse-fmt-box.js +0 -33
- package/dist/boxes/riff/parse-isft.d.ts +0 -6
- package/dist/boxes/riff/parse-isft.js +0 -17
- package/dist/boxes/riff/parse-list-box.d.ts +0 -8
- package/dist/boxes/riff/parse-list-box.js +0 -30
- package/dist/boxes/riff/parse-movi.d.ts +0 -17
- package/dist/boxes/riff/parse-movi.js +0 -133
- package/dist/boxes/riff/parse-riff-box.d.ts +0 -10
- package/dist/boxes/riff/parse-riff-box.js +0 -37
- package/dist/boxes/riff/parse-strf.d.ts +0 -7
- package/dist/boxes/riff/parse-strf.js +0 -67
- package/dist/boxes/riff/parse-strh.d.ts +0 -6
- package/dist/boxes/riff/parse-strh.js +0 -46
- package/dist/boxes/riff/riff-box.d.ts +0 -85
- package/dist/boxes/riff/riff-box.js +0 -2
- package/dist/boxes/riff/timescale.d.ts +0 -1
- package/dist/boxes/riff/timescale.js +0 -4
- package/dist/boxes/riff/traversal.d.ts +0 -8
- package/dist/boxes/riff/traversal.js +0 -36
- package/dist/boxes/webm/allowed-partial-segments.d.ts +0 -1
- package/dist/boxes/webm/allowed-partial-segments.js +0 -4
- package/dist/boxes/webm/av1-codec-private.d.ts +0 -2
- package/dist/boxes/webm/av1-codec-private.js +0 -95
- package/dist/boxes/webm/color.d.ts +0 -4
- package/dist/boxes/webm/color.js +0 -127
- package/dist/boxes/webm/description.d.ts +0 -2
- package/dist/boxes/webm/description.js +0 -83
- package/dist/boxes/webm/ebml.d.ts +0 -2
- package/dist/boxes/webm/ebml.js +0 -94
- package/dist/boxes/webm/get-ready-tracks.d.ts +0 -3
- package/dist/boxes/webm/get-ready-tracks.js +0 -29
- package/dist/boxes/webm/get-sample-from-block.d.ts +0 -17
- package/dist/boxes/webm/get-sample-from-block.js +0 -81
- package/dist/boxes/webm/make-header.d.ts +0 -8
- package/dist/boxes/webm/make-header.js +0 -187
- package/dist/boxes/webm/make-track.d.ts +0 -9
- package/dist/boxes/webm/make-track.js +0 -261
- package/dist/boxes/webm/parse-ebml.d.ts +0 -12
- package/dist/boxes/webm/parse-ebml.js +0 -185
- package/dist/boxes/webm/parse-webm-header.d.ts +0 -9
- package/dist/boxes/webm/parse-webm-header.js +0 -36
- package/dist/boxes/webm/segments/all-segments.d.ts +0 -976
- package/dist/boxes/webm/segments/all-segments.js +0 -724
- package/dist/boxes/webm/segments/block-simple-block-flags.d.ts +0 -9
- package/dist/boxes/webm/segments/block-simple-block-flags.js +0 -38
- package/dist/boxes/webm/segments/parse-children.d.ts +0 -23
- package/dist/boxes/webm/segments/parse-children.js +0 -145
- package/dist/boxes/webm/segments/track-entry.d.ts +0 -9
- package/dist/boxes/webm/segments/track-entry.js +0 -24
- package/dist/boxes/webm/segments.d.ts +0 -15
- package/dist/boxes/webm/segments.js +0 -161
- package/dist/boxes/webm/traversal.d.ts +0 -33
- package/dist/boxes/webm/traversal.js +0 -265
- package/dist/create/cluster-segment.d.ts +0 -10
- package/dist/create/cluster-segment.js +0 -39
- package/dist/create/cluster.d.ts +0 -19
- package/dist/create/cluster.js +0 -55
- package/dist/create/create-media.d.ts +0 -15
- package/dist/create/create-media.js +0 -165
- package/dist/create/event-emitter.d.ts +0 -31
- package/dist/create/event-emitter.js +0 -25
- package/dist/create/iso-base-media/codec-specific/avc1.d.ts +0 -2
- package/dist/create/iso-base-media/codec-specific/avc1.js +0 -48
- package/dist/create/iso-base-media/codec-specific/create-codec-specific-data.d.ts +0 -22
- package/dist/create/iso-base-media/codec-specific/create-codec-specific-data.js +0 -36
- package/dist/create/iso-base-media/codec-specific/mp4a.d.ts +0 -2
- package/dist/create/iso-base-media/codec-specific/mp4a.js +0 -74
- package/dist/create/iso-base-media/create-colr.d.ts +0 -6
- package/dist/create/iso-base-media/create-colr.js +0 -26
- package/dist/create/iso-base-media/create-ftyp.d.ts +0 -10
- package/dist/create/iso-base-media/create-ftyp.js +0 -22
- package/dist/create/iso-base-media/create-ilst.d.ts +0 -1
- package/dist/create/iso-base-media/create-ilst.js +0 -14
- package/dist/create/iso-base-media/create-iso-base-media.d.ts +0 -2
- package/dist/create/iso-base-media/create-iso-base-media.js +0 -165
- package/dist/create/iso-base-media/create-mdia.d.ts +0 -5
- package/dist/create/iso-base-media/create-mdia.js +0 -18
- package/dist/create/iso-base-media/create-moov.d.ts +0 -5
- package/dist/create/iso-base-media/create-moov.js +0 -18
- package/dist/create/iso-base-media/create-mvhd.d.ts +0 -10
- package/dist/create/iso-base-media/create-mvhd.js +0 -48
- package/dist/create/iso-base-media/create-trak.d.ts +0 -4
- package/dist/create/iso-base-media/create-trak.js +0 -17
- package/dist/create/iso-base-media/create-udta.d.ts +0 -1
- package/dist/create/iso-base-media/create-udta.js +0 -14
- package/dist/create/iso-base-media/create-url.d.ts +0 -1
- package/dist/create/iso-base-media/create-url.js +0 -16
- package/dist/create/iso-base-media/example-stts.d.ts +0 -3
- package/dist/create/iso-base-media/example-stts.js +0 -2797
- package/dist/create/iso-base-media/ilst/create-cmt.d.ts +0 -1
- package/dist/create/iso-base-media/ilst/create-cmt.js +0 -26
- package/dist/create/iso-base-media/ilst/create-too.d.ts +0 -1
- package/dist/create/iso-base-media/ilst/create-too.js +0 -27
- package/dist/create/iso-base-media/mdia/create-mdhd.d.ts +0 -6
- package/dist/create/iso-base-media/mdia/create-mdhd.js +0 -33
- package/dist/create/iso-base-media/mp4-header.d.ts +0 -6
- package/dist/create/iso-base-media/mp4-header.js +0 -48
- package/dist/create/iso-base-media/primitives.d.ts +0 -15
- package/dist/create/iso-base-media/primitives.js +0 -133
- package/dist/create/iso-base-media/serialize-track.d.ts +0 -9
- package/dist/create/iso-base-media/serialize-track.js +0 -63
- package/dist/create/iso-base-media/trak/create-tkhd.d.ts +0 -27
- package/dist/create/iso-base-media/trak/create-tkhd.js +0 -97
- package/dist/create/iso-base-media/trak/mdia/create-minf.d.ts +0 -4
- package/dist/create/iso-base-media/trak/mdia/create-minf.js +0 -19
- package/dist/create/iso-base-media/trak/mdia/minf/create-dinf.d.ts +0 -1
- package/dist/create/iso-base-media/trak/mdia/minf/create-dinf.js +0 -22
- package/dist/create/iso-base-media/trak/mdia/minf/create-smhd.d.ts +0 -1
- package/dist/create/iso-base-media/trak/mdia/minf/create-smhd.js +0 -20
- package/dist/create/iso-base-media/trak/mdia/minf/create-stbl.d.ts +0 -6
- package/dist/create/iso-base-media/trak/mdia/minf/create-stbl.js +0 -35
- package/dist/create/iso-base-media/trak/mdia/minf/create-vmhd.d.ts +0 -1
- package/dist/create/iso-base-media/trak/mdia/minf/create-vmhd.js +0 -20
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-ctts.d.ts +0 -2
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-ctts.js +0 -45
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stco.d.ts +0 -2
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stco.js +0 -28
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsc.d.ts +0 -2
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsc.js +0 -56
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stss.d.ts +0 -2
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stss.js +0 -23
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsz.d.ts +0 -2
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsz.js +0 -25
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stts.d.ts +0 -2
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stts.js +0 -48
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avc1.d.ts +0 -1
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avc1.js +0 -20
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avcc.d.ts +0 -1
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avcc.js +0 -16
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-pasp.d.ts +0 -1
- package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-pasp.js +0 -13
- package/dist/create/iso-base-media/udta/create-meta.d.ts +0 -4
- package/dist/create/iso-base-media/udta/create-meta.js +0 -20
- package/dist/create/iso-base-media/udta/meta/create-hdlr.d.ts +0 -1
- package/dist/create/iso-base-media/udta/meta/create-hdlr.js +0 -32
- package/dist/create/make-duration-with-padding.d.ts +0 -1
- package/dist/create/make-duration-with-padding.js +0 -15
- package/dist/create/make-track-info.d.ts +0 -20
- package/dist/create/make-track-info.js +0 -2
- package/dist/create/matroska/cluster-segment.d.ts +0 -10
- package/dist/create/matroska/cluster-segment.js +0 -39
- package/dist/create/matroska/cluster.d.ts +0 -25
- package/dist/create/matroska/cluster.js +0 -77
- package/dist/create/matroska/create-matroska-media.d.ts +0 -2
- package/dist/create/matroska/create-matroska-media.js +0 -187
- package/dist/create/matroska/make-duration-with-padding.d.ts +0 -1
- package/dist/create/matroska/make-duration-with-padding.js +0 -15
- package/dist/create/matroska/matroska-cues.d.ts +0 -6
- package/dist/create/matroska/matroska-cues.js +0 -49
- package/dist/create/matroska/matroska-header.d.ts +0 -1
- package/dist/create/matroska/matroska-header.js +0 -66
- package/dist/create/matroska/matroska-info.d.ts +0 -3
- package/dist/create/matroska/matroska-info.js +0 -33
- package/dist/create/matroska/matroska-seek.d.ts +0 -6
- package/dist/create/matroska/matroska-seek.js +0 -32
- package/dist/create/matroska/matroska-segment.d.ts +0 -3
- package/dist/create/matroska/matroska-segment.js +0 -13
- package/dist/create/matroska/matroska-trackentry.d.ts +0 -10
- package/dist/create/matroska/matroska-trackentry.js +0 -249
- package/dist/create/matroska-cues.d.ts +0 -6
- package/dist/create/matroska-cues.js +0 -49
- package/dist/create/matroska-header.d.ts +0 -1
- package/dist/create/matroska-header.js +0 -66
- package/dist/create/matroska-info.d.ts +0 -3
- package/dist/create/matroska-info.js +0 -33
- package/dist/create/matroska-seek.d.ts +0 -6
- package/dist/create/matroska-seek.js +0 -32
- package/dist/create/matroska-segment.d.ts +0 -3
- package/dist/create/matroska-segment.js +0 -13
- package/dist/create/matroska-trackentry.d.ts +0 -27
- package/dist/create/matroska-trackentry.js +0 -243
- package/dist/create/media-fn.d.ts +0 -33
- package/dist/create/media-fn.js +0 -2
- package/dist/create/progress-tracker.d.ts +0 -7
- package/dist/create/progress-tracker.js +0 -43
- package/dist/create/timescale.d.ts +0 -1
- package/dist/create/timescale.js +0 -4
- package/dist/create/wav/create-wav.d.ts +0 -2
- package/dist/create/wav/create-wav.js +0 -110
- package/dist/create/with-resolvers.d.ts +0 -10
- package/dist/create/with-resolvers.js +0 -28
- package/dist/esm/buffer.mjs +0 -56
- package/dist/esm/web-fs.mjs +0 -73
- package/dist/parse-video.d.ts +0 -25
- package/dist/parse-video.js +0 -39
- package/dist/parser-context.d.ts +0 -10
- package/dist/parser-context.js +0 -2
- package/dist/parser-state.d.ts +0 -22
- package/dist/parser-state.js +0 -132
- package/dist/writers/buffer-implementation/writer.d.ts +0 -2
- package/dist/writers/buffer-implementation/writer.js +0 -54
- package/dist/writers/buffer.d.ts +0 -2
- package/dist/writers/buffer.js +0 -7
- package/dist/writers/web-fs.d.ts +0 -3
- package/dist/writers/web-fs.js +0 -74
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTfhd = void 0;
|
|
4
|
-
const getTfhd = ({ iterator, offset, size, }) => {
|
|
5
|
-
const version = iterator.getUint8();
|
|
6
|
-
const flags = iterator.getUint24();
|
|
7
|
-
const trackId = iterator.getUint32();
|
|
8
|
-
const baseDataOffsetPresent = flags & 0x01;
|
|
9
|
-
const baseDataOffset = baseDataOffsetPresent
|
|
10
|
-
? Number(iterator.getUint64())
|
|
11
|
-
: 0;
|
|
12
|
-
const baseSampleDescriptionIndexPresent = flags & 0x02;
|
|
13
|
-
const baseSampleDescriptionIndex = baseSampleDescriptionIndexPresent
|
|
14
|
-
? iterator.getUint32()
|
|
15
|
-
: 0;
|
|
16
|
-
const defaultSampleDurationPresent = flags & 0x08;
|
|
17
|
-
const defaultSampleDuration = defaultSampleDurationPresent
|
|
18
|
-
? iterator.getUint32()
|
|
19
|
-
: 0;
|
|
20
|
-
const defaultSampleSizePresent = flags & 0x10;
|
|
21
|
-
const defaultSampleSize = defaultSampleSizePresent ? iterator.getUint32() : 0;
|
|
22
|
-
const defaultSampleFlagsPresent = flags & 0x20;
|
|
23
|
-
const defaultSampleFlags = defaultSampleFlagsPresent
|
|
24
|
-
? iterator.getUint32()
|
|
25
|
-
: 0;
|
|
26
|
-
const bytesRemaining = size - (iterator.counter.getOffset() - offset);
|
|
27
|
-
if (bytesRemaining !== 0) {
|
|
28
|
-
throw new Error('expected 0 bytes ' + bytesRemaining);
|
|
29
|
-
}
|
|
30
|
-
return {
|
|
31
|
-
type: 'tfhd-box',
|
|
32
|
-
version,
|
|
33
|
-
trackId,
|
|
34
|
-
baseDataOffset,
|
|
35
|
-
baseSampleDescriptionIndex,
|
|
36
|
-
defaultSampleDuration,
|
|
37
|
-
defaultSampleSize,
|
|
38
|
-
defaultSampleFlags,
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
exports.getTfhd = getTfhd;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../buffer-iterator';
|
|
2
|
-
import type { BaseBox } from './base-type';
|
|
3
|
-
import type { ThreeDMatrix } from './mvhd';
|
|
4
|
-
export interface TkhdBox extends BaseBox {
|
|
5
|
-
type: 'tkhd-box';
|
|
6
|
-
alternateGroup: number;
|
|
7
|
-
creationTime: number | null;
|
|
8
|
-
duration: number;
|
|
9
|
-
modificationTime: number | null;
|
|
10
|
-
trackId: number;
|
|
11
|
-
version: number;
|
|
12
|
-
layer: number;
|
|
13
|
-
volume: number;
|
|
14
|
-
matrix: ThreeDMatrix;
|
|
15
|
-
width: number;
|
|
16
|
-
height: number;
|
|
17
|
-
unrotatedWidth: number;
|
|
18
|
-
unrotatedHeight: number;
|
|
19
|
-
rotation: number;
|
|
20
|
-
}
|
|
21
|
-
export declare const parseTkhd: ({ iterator, offset, size, }: {
|
|
22
|
-
iterator: BufferIterator;
|
|
23
|
-
offset: number;
|
|
24
|
-
size: number;
|
|
25
|
-
}) => TkhdBox;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseTkhd = void 0;
|
|
4
|
-
const to_date_1 = require("./to-date");
|
|
5
|
-
function getRotationAngleFromMatrix(matrix) {
|
|
6
|
-
// Extract elements from the matrix
|
|
7
|
-
const [a, b, c, d] = matrix;
|
|
8
|
-
if (a === 0 && b === 0 && c === 0 && d === 0) {
|
|
9
|
-
return 0;
|
|
10
|
-
}
|
|
11
|
-
// Check if the matrix is a valid rotation matrix
|
|
12
|
-
if (Math.round(a * a + b * b) !== 1 || Math.round(c * c + d * d) !== 1) {
|
|
13
|
-
throw new Error('The provided matrix is not a valid rotation matrix.');
|
|
14
|
-
}
|
|
15
|
-
// Calculate the angle using the atan2 function
|
|
16
|
-
const angleRadians = Math.atan2(c, a); // atan2(sin(θ), cos(θ))
|
|
17
|
-
const angleDegrees = angleRadians * (180 / Math.PI); // Convert radians to degrees
|
|
18
|
-
return angleDegrees;
|
|
19
|
-
}
|
|
20
|
-
const applyRotation = ({ matrix, width, height, }) => {
|
|
21
|
-
const newWidth = matrix[0] * width + matrix[1] * height; // 0*3840 + 1*2160
|
|
22
|
-
const newHeight = matrix[2] * width + matrix[3] * height; // -1*3840 + 0*2160
|
|
23
|
-
return {
|
|
24
|
-
width: Math.abs(newWidth),
|
|
25
|
-
height: Math.abs(newHeight),
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
const parseTkhd = ({ iterator, offset, size, }) => {
|
|
29
|
-
const version = iterator.getUint8();
|
|
30
|
-
// Flags, we discard them
|
|
31
|
-
iterator.discard(3);
|
|
32
|
-
const creationTime = version === 1 ? iterator.getUint64() : iterator.getUint32();
|
|
33
|
-
const modificationTime = version === 1 ? iterator.getUint64() : iterator.getUint32();
|
|
34
|
-
const trackId = iterator.getUint32();
|
|
35
|
-
// reserved
|
|
36
|
-
iterator.discard(4);
|
|
37
|
-
const duration = version === 1 ? iterator.getUint64() : iterator.getUint32();
|
|
38
|
-
// reserved 2
|
|
39
|
-
iterator.discard(4);
|
|
40
|
-
// reserved 3
|
|
41
|
-
iterator.discard(4);
|
|
42
|
-
const layer = iterator.getUint16();
|
|
43
|
-
const alternateGroup = iterator.getUint16();
|
|
44
|
-
const volume = iterator.getUint16();
|
|
45
|
-
// reserved 4
|
|
46
|
-
iterator.discard(2);
|
|
47
|
-
const matrix = [
|
|
48
|
-
iterator.getFixedPointSigned1616Number(),
|
|
49
|
-
iterator.getFixedPointSigned1616Number(),
|
|
50
|
-
iterator.getFixedPointSigned230Number(),
|
|
51
|
-
iterator.getFixedPointSigned1616Number(),
|
|
52
|
-
iterator.getFixedPointSigned1616Number(),
|
|
53
|
-
iterator.getFixedPointSigned230Number(),
|
|
54
|
-
iterator.getFixedPointSigned1616Number(),
|
|
55
|
-
iterator.getFixedPointSigned1616Number(),
|
|
56
|
-
iterator.getFixedPointSigned230Number(),
|
|
57
|
-
];
|
|
58
|
-
const rotationMatrix = [matrix[0], matrix[1], matrix[3], matrix[4]];
|
|
59
|
-
const widthWithoutRotationApplied = iterator.getFixedPointUnsigned1616Number();
|
|
60
|
-
const heightWithoutRotationApplied = iterator.getFixedPointSigned1616Number();
|
|
61
|
-
const { width, height } = applyRotation({
|
|
62
|
-
matrix: rotationMatrix,
|
|
63
|
-
width: widthWithoutRotationApplied,
|
|
64
|
-
height: heightWithoutRotationApplied,
|
|
65
|
-
});
|
|
66
|
-
const rotation = getRotationAngleFromMatrix(rotationMatrix);
|
|
67
|
-
return {
|
|
68
|
-
offset,
|
|
69
|
-
boxSize: size,
|
|
70
|
-
type: 'tkhd-box',
|
|
71
|
-
creationTime: (0, to_date_1.toUnixTimestamp)(Number(creationTime)),
|
|
72
|
-
modificationTime: (0, to_date_1.toUnixTimestamp)(Number(modificationTime)),
|
|
73
|
-
trackId,
|
|
74
|
-
duration: Number(duration),
|
|
75
|
-
layer,
|
|
76
|
-
alternateGroup,
|
|
77
|
-
volume,
|
|
78
|
-
matrix: matrix,
|
|
79
|
-
width,
|
|
80
|
-
height,
|
|
81
|
-
version,
|
|
82
|
-
rotation,
|
|
83
|
-
unrotatedWidth: widthWithoutRotationApplied,
|
|
84
|
-
unrotatedHeight: heightWithoutRotationApplied,
|
|
85
|
-
};
|
|
86
|
-
};
|
|
87
|
-
exports.parseTkhd = parseTkhd;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fromUnixTimestamp = exports.toUnixTimestamp = void 0;
|
|
4
|
-
const toUnixTimestamp = (value) => {
|
|
5
|
-
if (value === 0) {
|
|
6
|
-
return null;
|
|
7
|
-
}
|
|
8
|
-
const baseDate = new Date('1904-01-01T00:00:00Z');
|
|
9
|
-
return Math.floor(value + baseDate.getTime() / 1000) * 1000;
|
|
10
|
-
};
|
|
11
|
-
exports.toUnixTimestamp = toUnixTimestamp;
|
|
12
|
-
const fromUnixTimestamp = (value) => {
|
|
13
|
-
if (value === null) {
|
|
14
|
-
return 0;
|
|
15
|
-
}
|
|
16
|
-
const baseDate = new Date('1904-01-01T00:00:00Z');
|
|
17
|
-
return Math.floor(value / 1000 - baseDate.getTime() / 1000);
|
|
18
|
-
};
|
|
19
|
-
exports.fromUnixTimestamp = fromUnixTimestamp;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../../buffer-iterator';
|
|
2
|
-
import type { LogLevel } from '../../../log';
|
|
3
|
-
import type { Options, ParseMediaFields } from '../../../options';
|
|
4
|
-
import type { AnySegment } from '../../../parse-result';
|
|
5
|
-
import type { ParserContext } from '../../../parser-context';
|
|
6
|
-
import type { BaseBox } from '../base-type';
|
|
7
|
-
export interface TrakBox extends BaseBox {
|
|
8
|
-
type: 'trak-box';
|
|
9
|
-
children: AnySegment[];
|
|
10
|
-
}
|
|
11
|
-
export declare const parseTrak: ({ data, size, offsetAtStart, options, signal, logLevel, fields, }: {
|
|
12
|
-
data: BufferIterator;
|
|
13
|
-
size: number;
|
|
14
|
-
offsetAtStart: number;
|
|
15
|
-
options: ParserContext;
|
|
16
|
-
signal: AbortSignal | null;
|
|
17
|
-
logLevel: LogLevel;
|
|
18
|
-
fields: Options<ParseMediaFields>;
|
|
19
|
-
}) => Promise<TrakBox>;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseTrak = void 0;
|
|
4
|
-
const process_box_1 = require("../process-box");
|
|
5
|
-
const parseTrak = async ({ data, size, offsetAtStart, options, signal, logLevel, fields, }) => {
|
|
6
|
-
const children = await (0, process_box_1.parseIsoBaseMediaBoxes)({
|
|
7
|
-
iterator: data,
|
|
8
|
-
maxBytes: size - (data.counter.getOffset() - offsetAtStart),
|
|
9
|
-
allowIncompleteBoxes: false,
|
|
10
|
-
initialBoxes: [],
|
|
11
|
-
options,
|
|
12
|
-
continueMdat: false,
|
|
13
|
-
signal,
|
|
14
|
-
logLevel,
|
|
15
|
-
fields,
|
|
16
|
-
});
|
|
17
|
-
if (children.status === 'incomplete') {
|
|
18
|
-
throw new Error('Incomplete boxes are not allowed');
|
|
19
|
-
}
|
|
20
|
-
return {
|
|
21
|
-
offset: offsetAtStart,
|
|
22
|
-
boxSize: size,
|
|
23
|
-
type: 'trak-box',
|
|
24
|
-
children: children.segments.boxes,
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
exports.parseTrak = parseTrak;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { AnySegment, IsoBaseMediaBox, RegularBox } from '../../parse-result';
|
|
2
|
-
import type { FtypBox } from './ftyp';
|
|
3
|
-
import type { MdatBox } from './mdat/mdat';
|
|
4
|
-
import type { MdhdBox } from './mdhd';
|
|
5
|
-
import type { MoovBox } from './moov/moov';
|
|
6
|
-
import type { MvhdBox } from './mvhd';
|
|
7
|
-
import type { CttsBox } from './stsd/ctts';
|
|
8
|
-
import type { StcoBox } from './stsd/stco';
|
|
9
|
-
import type { StscBox } from './stsd/stsc';
|
|
10
|
-
import type { StsdBox } from './stsd/stsd';
|
|
11
|
-
import type { StssBox } from './stsd/stss';
|
|
12
|
-
import type { StszBox } from './stsd/stsz';
|
|
13
|
-
import type { SttsBox } from './stsd/stts';
|
|
14
|
-
import type { TfdtBox } from './tfdt';
|
|
15
|
-
import type { TfhdBox } from './tfhd';
|
|
16
|
-
import type { TkhdBox } from './tkhd';
|
|
17
|
-
import type { TrakBox } from './trak/trak';
|
|
18
|
-
import type { TrunBox } from './trun';
|
|
19
|
-
export declare const getFtypBox: (segments: AnySegment[]) => FtypBox | null;
|
|
20
|
-
export declare const getMoovBox: (segments: IsoBaseMediaBox[]) => MoovBox | null;
|
|
21
|
-
export declare const getMoofBox: (main: AnySegment[]) => IsoBaseMediaBox | null;
|
|
22
|
-
export declare const getMvhdBox: (moovBox: MoovBox) => MvhdBox | null;
|
|
23
|
-
export declare const getTraks: (moovBox: MoovBox) => TrakBox[];
|
|
24
|
-
export declare const getTkhdBox: (trakBox: TrakBox) => TkhdBox | null;
|
|
25
|
-
export declare const getMdiaBox: (trakBox: TrakBox) => RegularBox | null;
|
|
26
|
-
export declare const getMdhdBox: (trakBox: TrakBox) => MdhdBox | null;
|
|
27
|
-
export declare const getStblBox: (trakBox: TrakBox) => RegularBox | null;
|
|
28
|
-
export declare const getStsdBox: (trakBox: TrakBox) => StsdBox | null;
|
|
29
|
-
export declare const getVideoDescriptors: (trakBox: TrakBox) => Uint8Array | null;
|
|
30
|
-
export declare const getStcoBox: (trakBox: TrakBox) => StcoBox | null;
|
|
31
|
-
export declare const getSttsBox: (trakBox: TrakBox) => SttsBox | null;
|
|
32
|
-
export declare const getCttsBox: (trakBox: TrakBox) => CttsBox | null;
|
|
33
|
-
export declare const getStszBox: (trakBox: TrakBox) => StszBox | null;
|
|
34
|
-
export declare const getStscBox: (trakBox: TrakBox) => StscBox | null;
|
|
35
|
-
export declare const getStssBox: (trakBox: TrakBox) => StssBox | null;
|
|
36
|
-
export declare const getTfdtBox: (segment: IsoBaseMediaBox) => TfdtBox | null;
|
|
37
|
-
export declare const getTfhdBox: (segment: IsoBaseMediaBox) => TfhdBox | null;
|
|
38
|
-
export declare const getTrunBoxes: (segment: IsoBaseMediaBox) => TrunBox[];
|
|
39
|
-
export declare const getMdatBox: (anySegment: AnySegment[]) => MdatBox | null;
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getMdatBox = exports.getTrunBoxes = exports.getTfhdBox = exports.getTfdtBox = exports.getStssBox = exports.getStscBox = exports.getStszBox = exports.getCttsBox = exports.getSttsBox = exports.getStcoBox = exports.getVideoDescriptors = exports.getStsdBox = exports.getStblBox = exports.getMdhdBox = exports.getMdiaBox = exports.getTkhdBox = exports.getTraks = exports.getMvhdBox = exports.getMoofBox = exports.getMoovBox = exports.getFtypBox = void 0;
|
|
4
|
-
const getFtypBox = (segments) => {
|
|
5
|
-
const ftypBox = segments.find((s) => s.type === 'ftyp-box');
|
|
6
|
-
if (!ftypBox || ftypBox.type !== 'ftyp-box') {
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
|
-
return ftypBox;
|
|
10
|
-
};
|
|
11
|
-
exports.getFtypBox = getFtypBox;
|
|
12
|
-
const getMoovBox = (segments) => {
|
|
13
|
-
const moovBox = segments.find((s) => s.type === 'moov-box');
|
|
14
|
-
if (!moovBox || moovBox.type !== 'moov-box') {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
return moovBox;
|
|
18
|
-
};
|
|
19
|
-
exports.getMoovBox = getMoovBox;
|
|
20
|
-
const getMoofBox = (main) => {
|
|
21
|
-
const moofBox = main.find((s) => s.type === 'regular-box' && s.boxType === 'moof');
|
|
22
|
-
if (!moofBox || moofBox.type !== 'regular-box') {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
return moofBox;
|
|
26
|
-
};
|
|
27
|
-
exports.getMoofBox = getMoofBox;
|
|
28
|
-
const getMvhdBox = (moovBox) => {
|
|
29
|
-
const mvHdBox = moovBox.children.find((s) => s.type === 'mvhd-box');
|
|
30
|
-
if (!mvHdBox || mvHdBox.type !== 'mvhd-box') {
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
return mvHdBox;
|
|
34
|
-
};
|
|
35
|
-
exports.getMvhdBox = getMvhdBox;
|
|
36
|
-
const getTraks = (moovBox) => {
|
|
37
|
-
return moovBox.children.filter((s) => s.type === 'trak-box');
|
|
38
|
-
};
|
|
39
|
-
exports.getTraks = getTraks;
|
|
40
|
-
const getTkhdBox = (trakBox) => {
|
|
41
|
-
const tkhdBox = trakBox.children.find((s) => s.type === 'tkhd-box');
|
|
42
|
-
return tkhdBox;
|
|
43
|
-
};
|
|
44
|
-
exports.getTkhdBox = getTkhdBox;
|
|
45
|
-
const getMdiaBox = (trakBox) => {
|
|
46
|
-
const mdiaBox = trakBox.children.find((s) => s.type === 'regular-box' && s.boxType === 'mdia');
|
|
47
|
-
if (!mdiaBox || mdiaBox.type !== 'regular-box') {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
return mdiaBox;
|
|
51
|
-
};
|
|
52
|
-
exports.getMdiaBox = getMdiaBox;
|
|
53
|
-
const getMdhdBox = (trakBox) => {
|
|
54
|
-
const mdiaBox = (0, exports.getMdiaBox)(trakBox);
|
|
55
|
-
if (!mdiaBox) {
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
const mdhdBox = mdiaBox.children.find((c) => c.type === 'mdhd-box');
|
|
59
|
-
return mdhdBox;
|
|
60
|
-
};
|
|
61
|
-
exports.getMdhdBox = getMdhdBox;
|
|
62
|
-
const getStblBox = (trakBox) => {
|
|
63
|
-
const mdiaBox = (0, exports.getMdiaBox)(trakBox);
|
|
64
|
-
if (!mdiaBox) {
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
const minfBox = mdiaBox.children.find((s) => s.type === 'regular-box' && s.boxType === 'minf');
|
|
68
|
-
if (!minfBox || minfBox.type !== 'regular-box') {
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
const stblBox = minfBox.children.find((s) => s.type === 'regular-box' && s.boxType === 'stbl');
|
|
72
|
-
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
return stblBox;
|
|
76
|
-
};
|
|
77
|
-
exports.getStblBox = getStblBox;
|
|
78
|
-
const getStsdBox = (trakBox) => {
|
|
79
|
-
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
80
|
-
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
const stsdBox = stblBox.children.find((s) => s.type === 'stsd-box');
|
|
84
|
-
return stsdBox;
|
|
85
|
-
};
|
|
86
|
-
exports.getStsdBox = getStsdBox;
|
|
87
|
-
const getVideoDescriptors = (trakBox) => {
|
|
88
|
-
var _a;
|
|
89
|
-
const stsdBox = (0, exports.getStsdBox)(trakBox);
|
|
90
|
-
if (!stsdBox) {
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
const descriptors = stsdBox.samples.map((s) => {
|
|
94
|
-
return s.type === 'video'
|
|
95
|
-
? s.descriptors.map((d) => {
|
|
96
|
-
return d.type === 'avcc-box'
|
|
97
|
-
? d.privateData
|
|
98
|
-
: d.type === 'hvcc-box'
|
|
99
|
-
? d.privateData
|
|
100
|
-
: null;
|
|
101
|
-
})
|
|
102
|
-
: [];
|
|
103
|
-
});
|
|
104
|
-
return (_a = descriptors.flat(1).filter(Boolean)[0]) !== null && _a !== void 0 ? _a : null;
|
|
105
|
-
};
|
|
106
|
-
exports.getVideoDescriptors = getVideoDescriptors;
|
|
107
|
-
const getStcoBox = (trakBox) => {
|
|
108
|
-
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
109
|
-
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
const stcoBox = stblBox.children.find((s) => s.type === 'stco-box');
|
|
113
|
-
return stcoBox;
|
|
114
|
-
};
|
|
115
|
-
exports.getStcoBox = getStcoBox;
|
|
116
|
-
const getSttsBox = (trakBox) => {
|
|
117
|
-
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
118
|
-
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
119
|
-
return null;
|
|
120
|
-
}
|
|
121
|
-
const sttsBox = stblBox.children.find((s) => s.type === 'stts-box');
|
|
122
|
-
return sttsBox;
|
|
123
|
-
};
|
|
124
|
-
exports.getSttsBox = getSttsBox;
|
|
125
|
-
const getCttsBox = (trakBox) => {
|
|
126
|
-
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
127
|
-
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
128
|
-
return null;
|
|
129
|
-
}
|
|
130
|
-
const cttsBox = stblBox.children.find((s) => s.type === 'ctts-box');
|
|
131
|
-
return cttsBox;
|
|
132
|
-
};
|
|
133
|
-
exports.getCttsBox = getCttsBox;
|
|
134
|
-
const getStszBox = (trakBox) => {
|
|
135
|
-
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
136
|
-
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
137
|
-
return null;
|
|
138
|
-
}
|
|
139
|
-
const stszBox = stblBox.children.find((s) => s.type === 'stsz-box');
|
|
140
|
-
return stszBox;
|
|
141
|
-
};
|
|
142
|
-
exports.getStszBox = getStszBox;
|
|
143
|
-
const getStscBox = (trakBox) => {
|
|
144
|
-
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
145
|
-
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
146
|
-
return null;
|
|
147
|
-
}
|
|
148
|
-
const stcoBox = stblBox.children.find((b) => b.type === 'stsc-box');
|
|
149
|
-
return stcoBox;
|
|
150
|
-
};
|
|
151
|
-
exports.getStscBox = getStscBox;
|
|
152
|
-
const getStssBox = (trakBox) => {
|
|
153
|
-
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
154
|
-
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
155
|
-
return null;
|
|
156
|
-
}
|
|
157
|
-
const stssBox = stblBox.children.find((b) => b.type === 'stss-box');
|
|
158
|
-
return stssBox;
|
|
159
|
-
};
|
|
160
|
-
exports.getStssBox = getStssBox;
|
|
161
|
-
const getTfdtBox = (segment) => {
|
|
162
|
-
if (segment.type !== 'regular-box' || segment.boxType !== 'traf') {
|
|
163
|
-
throw new Error('Expected traf-box');
|
|
164
|
-
}
|
|
165
|
-
const tfhdBox = segment.children.find((c) => c.type === 'tfdt-box');
|
|
166
|
-
if (!tfhdBox || tfhdBox.type !== 'tfdt-box') {
|
|
167
|
-
throw new Error('Expected tfhd-box');
|
|
168
|
-
}
|
|
169
|
-
return tfhdBox;
|
|
170
|
-
};
|
|
171
|
-
exports.getTfdtBox = getTfdtBox;
|
|
172
|
-
const getTfhdBox = (segment) => {
|
|
173
|
-
if (segment.type !== 'regular-box' || segment.boxType !== 'traf') {
|
|
174
|
-
throw new Error('Expected traf-box');
|
|
175
|
-
}
|
|
176
|
-
const tfhdBox = segment.children.find((c) => c.type === 'tfhd-box');
|
|
177
|
-
if (!tfhdBox || tfhdBox.type !== 'tfhd-box') {
|
|
178
|
-
throw new Error('Expected tfhd-box');
|
|
179
|
-
}
|
|
180
|
-
return tfhdBox;
|
|
181
|
-
};
|
|
182
|
-
exports.getTfhdBox = getTfhdBox;
|
|
183
|
-
const getTrunBoxes = (segment) => {
|
|
184
|
-
if (segment.type !== 'regular-box' || segment.boxType !== 'traf') {
|
|
185
|
-
throw new Error('Expected traf-box');
|
|
186
|
-
}
|
|
187
|
-
const trunBoxes = segment.children.filter((c) => c.type === 'trun-box');
|
|
188
|
-
return trunBoxes;
|
|
189
|
-
};
|
|
190
|
-
exports.getTrunBoxes = getTrunBoxes;
|
|
191
|
-
const getMdatBox = (anySegment) => {
|
|
192
|
-
const mdat = anySegment.find((b) => b.type === 'mdat-box');
|
|
193
|
-
if (!mdat) {
|
|
194
|
-
return null;
|
|
195
|
-
}
|
|
196
|
-
if (mdat.type !== 'mdat-box') {
|
|
197
|
-
throw new Error('Expected mdat-box');
|
|
198
|
-
}
|
|
199
|
-
return mdat;
|
|
200
|
-
};
|
|
201
|
-
exports.getMdatBox = getMdatBox;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../buffer-iterator';
|
|
2
|
-
export interface TrunBox {
|
|
3
|
-
type: 'trun-box';
|
|
4
|
-
version: number;
|
|
5
|
-
sampleCount: number;
|
|
6
|
-
dataOffset: number | null;
|
|
7
|
-
firstSampleFlags: number | null;
|
|
8
|
-
samples: TRunSample[];
|
|
9
|
-
}
|
|
10
|
-
type TRunSample = {
|
|
11
|
-
sampleDuration: number | null;
|
|
12
|
-
sampleSize: number | null;
|
|
13
|
-
sampleFlags: number | null;
|
|
14
|
-
sampleCompositionTimeOffset: number | null;
|
|
15
|
-
};
|
|
16
|
-
export declare const parseTrun: ({ iterator, offset, size, }: {
|
|
17
|
-
iterator: BufferIterator;
|
|
18
|
-
offset: number;
|
|
19
|
-
size: number;
|
|
20
|
-
}) => TrunBox;
|
|
21
|
-
export {};
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseTrun = void 0;
|
|
4
|
-
const parseTrun = ({ iterator, offset, size, }) => {
|
|
5
|
-
const version = iterator.getUint8();
|
|
6
|
-
if (version !== 0) {
|
|
7
|
-
throw new Error(`Unsupported TRUN version ${version}`);
|
|
8
|
-
}
|
|
9
|
-
const flags = iterator.getUint24();
|
|
10
|
-
const sampleCount = iterator.getUint32();
|
|
11
|
-
const dataOffset = flags & 0x01 ? iterator.getInt32() : null;
|
|
12
|
-
const firstSampleFlags = flags & 0x04 ? iterator.getUint32() : null;
|
|
13
|
-
const samples = [];
|
|
14
|
-
for (let i = 0; i < sampleCount; i++) {
|
|
15
|
-
const sampleDuration = flags & 0x100 ? iterator.getUint32() : null;
|
|
16
|
-
const sampleSize = flags & 0x200 ? iterator.getUint32() : null;
|
|
17
|
-
const sampleFlags = flags & 0x400 ? iterator.getUint32() : null;
|
|
18
|
-
const sampleCompositionTimeOffset = flags & 0x800
|
|
19
|
-
? version === 0
|
|
20
|
-
? iterator.getUint32()
|
|
21
|
-
: iterator.getInt32Le()
|
|
22
|
-
: null;
|
|
23
|
-
samples.push({
|
|
24
|
-
sampleDuration,
|
|
25
|
-
sampleSize,
|
|
26
|
-
sampleFlags,
|
|
27
|
-
sampleCompositionTimeOffset,
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
const currentOffset = iterator.counter.getOffset();
|
|
31
|
-
const left = size - (currentOffset - offset);
|
|
32
|
-
if (left !== 0) {
|
|
33
|
-
throw new Error(`Unexpected data left in TRUN box: ${left}`);
|
|
34
|
-
}
|
|
35
|
-
return {
|
|
36
|
-
type: 'trun-box',
|
|
37
|
-
version,
|
|
38
|
-
sampleCount,
|
|
39
|
-
dataOffset,
|
|
40
|
-
firstSampleFlags,
|
|
41
|
-
samples,
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
exports.parseTrun = parseTrun;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../buffer-iterator';
|
|
2
|
-
import type { RiffStructure } from '../../parse-result';
|
|
3
|
-
import type { ParserContext } from '../../parser-context';
|
|
4
|
-
import type { RiffBox } from './riff-box';
|
|
5
|
-
export type RiffResult = {
|
|
6
|
-
type: 'incomplete';
|
|
7
|
-
continueParsing: () => Promise<RiffResult>;
|
|
8
|
-
} | {
|
|
9
|
-
type: 'complete';
|
|
10
|
-
box: RiffBox | null;
|
|
11
|
-
skipTo: number | null;
|
|
12
|
-
};
|
|
13
|
-
export declare const expectRiffBox: ({ iterator, options, structure, }: {
|
|
14
|
-
iterator: BufferIterator;
|
|
15
|
-
options: ParserContext;
|
|
16
|
-
structure: RiffStructure;
|
|
17
|
-
}) => Promise<RiffResult>;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.expectRiffBox = void 0;
|
|
4
|
-
const is_movi_1 = require("./is-movi");
|
|
5
|
-
const parse_movi_1 = require("./parse-movi");
|
|
6
|
-
const parse_riff_box_1 = require("./parse-riff-box");
|
|
7
|
-
const expectRiffBox = async ({ iterator, options, structure, }) => {
|
|
8
|
-
// Need at least 16 bytes to read LIST,size,movi,size
|
|
9
|
-
if (iterator.bytesRemaining() < 16) {
|
|
10
|
-
return {
|
|
11
|
-
type: 'incomplete',
|
|
12
|
-
continueParsing() {
|
|
13
|
-
return (0, exports.expectRiffBox)({ structure, iterator, options });
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
const ckId = iterator.getByteString(4);
|
|
18
|
-
const ckSize = iterator.getUint32Le();
|
|
19
|
-
if ((0, is_movi_1.isMoviAtom)(iterator, ckId)) {
|
|
20
|
-
iterator.discard(4);
|
|
21
|
-
return (0, parse_movi_1.parseMovi)({
|
|
22
|
-
iterator,
|
|
23
|
-
maxOffset: ckSize + iterator.counter.getOffset() - 4,
|
|
24
|
-
options,
|
|
25
|
-
structure,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
if (iterator.bytesRemaining() < ckSize) {
|
|
29
|
-
iterator.counter.decrement(8);
|
|
30
|
-
return {
|
|
31
|
-
type: 'incomplete',
|
|
32
|
-
continueParsing: () => {
|
|
33
|
-
return (0, exports.expectRiffBox)({ structure, iterator, options });
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
return {
|
|
38
|
-
type: 'complete',
|
|
39
|
-
box: await (0, parse_riff_box_1.parseRiffBox)({
|
|
40
|
-
id: ckId,
|
|
41
|
-
iterator,
|
|
42
|
-
size: ckSize,
|
|
43
|
-
boxes: structure.boxes,
|
|
44
|
-
options,
|
|
45
|
-
}),
|
|
46
|
-
skipTo: null,
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
exports.expectRiffBox = expectRiffBox;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { AudioTrack, OtherTrack, VideoTrack } from '../../get-tracks';
|
|
2
|
-
import type { RiffStructure } from '../../parse-result';
|
|
3
|
-
import type { ParserState } from '../../state/parser-state';
|
|
4
|
-
import type { StrfBoxAudio, StrfBoxVideo, StrhBox } from './riff-box';
|
|
5
|
-
export type AllTracks = {
|
|
6
|
-
videoTracks: VideoTrack[];
|
|
7
|
-
audioTracks: AudioTrack[];
|
|
8
|
-
otherTracks: OtherTrack[];
|
|
9
|
-
};
|
|
10
|
-
export declare const TO_BE_OVERRIDDEN_LATER = "to-be-overriden-later";
|
|
11
|
-
export declare const getNumberOfTracks: (structure: RiffStructure) => number;
|
|
12
|
-
export declare const makeAviAudioTrack: ({ strf, index, }: {
|
|
13
|
-
strf: StrfBoxAudio;
|
|
14
|
-
index: number;
|
|
15
|
-
}) => AudioTrack;
|
|
16
|
-
export declare const makeAviVideoTrack: ({ strh, strf, index, }: {
|
|
17
|
-
strh: StrhBox;
|
|
18
|
-
strf: StrfBoxVideo;
|
|
19
|
-
index: number;
|
|
20
|
-
}) => VideoTrack;
|
|
21
|
-
export declare const getTracksFromAvi: (structure: RiffStructure, state: ParserState) => AllTracks;
|
|
22
|
-
export declare const hasAllTracksFromAvi: (structure: RiffStructure, state: ParserState) => boolean;
|