@remotion/media-parser 4.0.256 → 4.0.257
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,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createAvc1Data = void 0;
|
|
4
|
-
const make_header_1 = require("../../../boxes/webm/make-header");
|
|
5
|
-
const primitives_1 = require("../primitives");
|
|
6
|
-
const createAvc1Data = ({ avccBox, pasp, width, height, horizontalResolution, verticalResolution, compressorName, depth, }) => {
|
|
7
|
-
return (0, primitives_1.addSize)((0, make_header_1.combineUint8Arrays)([
|
|
8
|
-
// type
|
|
9
|
-
(0, primitives_1.stringsToUint8Array)('avc1'),
|
|
10
|
-
// reserved
|
|
11
|
-
new Uint8Array([0, 0, 0, 0, 0, 0]),
|
|
12
|
-
// data_reference_index
|
|
13
|
-
new Uint8Array([0, 1]),
|
|
14
|
-
// version
|
|
15
|
-
new Uint8Array([0, 0]),
|
|
16
|
-
// revisionLevel
|
|
17
|
-
new Uint8Array([0, 0]),
|
|
18
|
-
// vendor
|
|
19
|
-
new Uint8Array([0, 0, 0, 0]),
|
|
20
|
-
// temporalQuality
|
|
21
|
-
new Uint8Array([0, 0, 0, 0]),
|
|
22
|
-
// spatialQuality
|
|
23
|
-
new Uint8Array([0, 0, 0, 0]),
|
|
24
|
-
// width
|
|
25
|
-
(0, primitives_1.numberTo16BitUIntOrInt)(width),
|
|
26
|
-
// height
|
|
27
|
-
(0, primitives_1.numberTo16BitUIntOrInt)(height),
|
|
28
|
-
// horizontalResolution
|
|
29
|
-
(0, primitives_1.setFixedPointSignedOrUnsigned1616Number)(horizontalResolution),
|
|
30
|
-
// verticalResolution
|
|
31
|
-
(0, primitives_1.setFixedPointSignedOrUnsigned1616Number)(verticalResolution),
|
|
32
|
-
// dataSize
|
|
33
|
-
new Uint8Array([0, 0, 0, 0]),
|
|
34
|
-
// frame count per sample
|
|
35
|
-
(0, primitives_1.numberTo16BitUIntOrInt)(1),
|
|
36
|
-
// compressor name
|
|
37
|
-
(0, primitives_1.stringToPascalString)(compressorName),
|
|
38
|
-
// depth
|
|
39
|
-
(0, primitives_1.numberTo16BitUIntOrInt)(depth),
|
|
40
|
-
// colorTableId
|
|
41
|
-
(0, primitives_1.numberTo16BitUIntOrInt)(-1),
|
|
42
|
-
// avcc box
|
|
43
|
-
avccBox,
|
|
44
|
-
// pasp
|
|
45
|
-
pasp,
|
|
46
|
-
]));
|
|
47
|
-
};
|
|
48
|
-
exports.createAvc1Data = createAvc1Data;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { MakeTrackAudio, MakeTrackVideo } from '../../make-track-info';
|
|
2
|
-
export type Avc1Data = {
|
|
3
|
-
pasp: Uint8Array;
|
|
4
|
-
avccBox: Uint8Array;
|
|
5
|
-
width: number;
|
|
6
|
-
height: number;
|
|
7
|
-
horizontalResolution: number;
|
|
8
|
-
verticalResolution: number;
|
|
9
|
-
compressorName: string;
|
|
10
|
-
depth: number;
|
|
11
|
-
type: 'avc1-data';
|
|
12
|
-
};
|
|
13
|
-
export type Mp4aData = {
|
|
14
|
-
type: 'mp4a-data';
|
|
15
|
-
sampleRate: number;
|
|
16
|
-
channelCount: number;
|
|
17
|
-
maxBitrate: number;
|
|
18
|
-
avgBitrate: number;
|
|
19
|
-
codecPrivate: Uint8Array | null;
|
|
20
|
-
};
|
|
21
|
-
export type CodecSpecificData = Avc1Data | Mp4aData;
|
|
22
|
-
export declare const createCodecSpecificData: (track: MakeTrackAudio | MakeTrackVideo) => Uint8Array;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createCodecSpecificData = void 0;
|
|
4
|
-
const create_avcc_1 = require("../trak/mdia/minf/stbl/stsd/create-avcc");
|
|
5
|
-
const create_pasp_1 = require("../trak/mdia/minf/stbl/stsd/create-pasp");
|
|
6
|
-
const avc1_1 = require("./avc1");
|
|
7
|
-
const mp4a_1 = require("./mp4a");
|
|
8
|
-
const createCodecSpecificData = (track) => {
|
|
9
|
-
if (track.type === 'video') {
|
|
10
|
-
return (0, avc1_1.createAvc1Data)({
|
|
11
|
-
avccBox: (0, create_avcc_1.createAvccBox)(track.codecPrivate),
|
|
12
|
-
compressorName: 'WebCodecs',
|
|
13
|
-
depth: 24,
|
|
14
|
-
horizontalResolution: 72,
|
|
15
|
-
verticalResolution: 72,
|
|
16
|
-
height: track.height,
|
|
17
|
-
width: track.width,
|
|
18
|
-
pasp: (0, create_pasp_1.createPasp)(1, 1),
|
|
19
|
-
type: 'avc1-data',
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
if (track.type === 'audio') {
|
|
23
|
-
return (0, mp4a_1.createMp4a)({
|
|
24
|
-
type: 'mp4a-data',
|
|
25
|
-
// TODO: Put in values based on real data,
|
|
26
|
-
// this seems to work though
|
|
27
|
-
avgBitrate: 128 * 1024,
|
|
28
|
-
maxBitrate: 128 * 1024,
|
|
29
|
-
channelCount: track.numberOfChannels,
|
|
30
|
-
sampleRate: track.sampleRate,
|
|
31
|
-
codecPrivate: track.codecPrivate,
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
throw new Error('Unsupported codec specific data ' + track);
|
|
35
|
-
};
|
|
36
|
-
exports.createCodecSpecificData = createCodecSpecificData;
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createMp4a = void 0;
|
|
4
|
-
const make_header_1 = require("../../../boxes/webm/make-header");
|
|
5
|
-
const primitives_1 = require("../primitives");
|
|
6
|
-
const createMp4a = ({ sampleRate, channelCount, avgBitrate, maxBitrate, codecPrivate, }) => {
|
|
7
|
-
if (!codecPrivate) {
|
|
8
|
-
throw new Error('Need codecPrivate for mp4a');
|
|
9
|
-
}
|
|
10
|
-
const esdsAtom = (0, primitives_1.addSize)((0, make_header_1.combineUint8Arrays)([
|
|
11
|
-
// type
|
|
12
|
-
(0, primitives_1.stringsToUint8Array)('esds'),
|
|
13
|
-
// version
|
|
14
|
-
new Uint8Array([0]),
|
|
15
|
-
// flags
|
|
16
|
-
new Uint8Array([0, 0, 0]),
|
|
17
|
-
// tag = 'ES_DescrTag'
|
|
18
|
-
new Uint8Array([3]),
|
|
19
|
-
(0, primitives_1.addLeading128Size)((0, make_header_1.combineUint8Arrays)([
|
|
20
|
-
// ES_ID
|
|
21
|
-
(0, primitives_1.numberTo16BitUIntOrInt)(2),
|
|
22
|
-
// streamDependenceFlag, URL_Flag, OCRstreamFlag
|
|
23
|
-
new Uint8Array([0]),
|
|
24
|
-
// DecoderConfigDescrTag
|
|
25
|
-
new Uint8Array([4]),
|
|
26
|
-
(0, primitives_1.addLeading128Size)((0, make_header_1.combineUint8Arrays)([
|
|
27
|
-
// objectTypeIndication
|
|
28
|
-
new Uint8Array([0x40]),
|
|
29
|
-
// streamType, upStream
|
|
30
|
-
new Uint8Array([21]),
|
|
31
|
-
// reserved
|
|
32
|
-
new Uint8Array([0, 0, 0]),
|
|
33
|
-
// maxBitrate
|
|
34
|
-
(0, primitives_1.numberTo32BitUIntOrInt)(maxBitrate),
|
|
35
|
-
// avgBitrate
|
|
36
|
-
(0, primitives_1.numberTo32BitUIntOrInt)(avgBitrate),
|
|
37
|
-
// DecoderSpecificInfoTag
|
|
38
|
-
new Uint8Array([5]),
|
|
39
|
-
// see create-aac-codecprivate.ts
|
|
40
|
-
(0, primitives_1.addLeading128Size)(codecPrivate),
|
|
41
|
-
])),
|
|
42
|
-
// SLConfigDescrTag
|
|
43
|
-
new Uint8Array([6]),
|
|
44
|
-
(0, primitives_1.addLeading128Size)(new Uint8Array([2])),
|
|
45
|
-
])),
|
|
46
|
-
]));
|
|
47
|
-
return (0, primitives_1.addSize)((0, make_header_1.combineUint8Arrays)([
|
|
48
|
-
// type
|
|
49
|
-
(0, primitives_1.stringsToUint8Array)('mp4a'),
|
|
50
|
-
// reserved
|
|
51
|
-
new Uint8Array([0, 0, 0, 0, 0, 0]),
|
|
52
|
-
// data_reference_index
|
|
53
|
-
(0, primitives_1.numberTo16BitUIntOrInt)(1),
|
|
54
|
-
// version
|
|
55
|
-
(0, primitives_1.numberTo16BitUIntOrInt)(0),
|
|
56
|
-
// revision level
|
|
57
|
-
(0, primitives_1.numberTo16BitUIntOrInt)(0),
|
|
58
|
-
// vendor
|
|
59
|
-
new Uint8Array([0, 0, 0, 0]),
|
|
60
|
-
// channelCount
|
|
61
|
-
(0, primitives_1.numberTo16BitUIntOrInt)(channelCount),
|
|
62
|
-
// sampleSize
|
|
63
|
-
(0, primitives_1.numberTo16BitUIntOrInt)(16),
|
|
64
|
-
// compressionId
|
|
65
|
-
(0, primitives_1.numberTo16BitUIntOrInt)(0),
|
|
66
|
-
// packet size
|
|
67
|
-
(0, primitives_1.numberTo16BitUIntOrInt)(0),
|
|
68
|
-
// sample rate
|
|
69
|
-
(0, primitives_1.setFixedPointSignedOrUnsigned1616Number)(sampleRate),
|
|
70
|
-
// esds atom
|
|
71
|
-
esdsAtom,
|
|
72
|
-
]));
|
|
73
|
-
};
|
|
74
|
-
exports.createMp4a = createMp4a;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createColr = void 0;
|
|
4
|
-
const make_header_1 = require("../../boxes/webm/make-header");
|
|
5
|
-
const primitives_1 = require("./primitives");
|
|
6
|
-
// TODO: Not used in creation of MP4 yet
|
|
7
|
-
const createColr = ({ fullRange, matrixIndex, primaries, transferFunction, }) => {
|
|
8
|
-
return (0, primitives_1.addSize)((0, make_header_1.combineUint8Arrays)([
|
|
9
|
-
// type
|
|
10
|
-
(0, primitives_1.stringsToUint8Array)('colr'),
|
|
11
|
-
// colour_type
|
|
12
|
-
(0, primitives_1.stringsToUint8Array)('nclx'),
|
|
13
|
-
// primaries
|
|
14
|
-
// 1 = 'ITU-R BT.7090
|
|
15
|
-
new Uint8Array([0, primaries]),
|
|
16
|
-
// transfer_function
|
|
17
|
-
// 1 = 'ITU-R BT.7090
|
|
18
|
-
new Uint8Array([0, transferFunction]),
|
|
19
|
-
// matrix_index
|
|
20
|
-
// 1 = 'ITU-R BT.7090
|
|
21
|
-
new Uint8Array([0, matrixIndex]),
|
|
22
|
-
// full_range_flag
|
|
23
|
-
new Uint8Array([fullRange ? 1 : 0]),
|
|
24
|
-
]));
|
|
25
|
-
};
|
|
26
|
-
exports.createColr = createColr;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare const createFtyp: ({ majorBrand, minorBrand, compatibleBrands, }: {
|
|
2
|
-
majorBrand: string;
|
|
3
|
-
minorBrand: number;
|
|
4
|
-
compatibleBrands: string[];
|
|
5
|
-
}) => Uint8Array;
|
|
6
|
-
export declare const createIsoBaseMediaFtyp: ({ majorBrand, minorBrand, compatibleBrands, }: {
|
|
7
|
-
majorBrand: string;
|
|
8
|
-
minorBrand: number;
|
|
9
|
-
compatibleBrands: string[];
|
|
10
|
-
}) => Uint8Array;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createIsoBaseMediaFtyp = exports.createFtyp = void 0;
|
|
4
|
-
const make_header_1 = require("../../boxes/webm/make-header");
|
|
5
|
-
const primitives_1 = require("./primitives");
|
|
6
|
-
const createFtyp = ({ majorBrand, minorBrand, compatibleBrands, }) => {
|
|
7
|
-
const type = (0, primitives_1.stringsToUint8Array)('ftyp');
|
|
8
|
-
const majorBrandArr = (0, primitives_1.stringsToUint8Array)(majorBrand);
|
|
9
|
-
const minorBrandArr = (0, primitives_1.numberTo32BitUIntOrInt)(minorBrand);
|
|
10
|
-
const compatibleBrandsArr = (0, make_header_1.combineUint8Arrays)(compatibleBrands.map((b) => (0, primitives_1.stringsToUint8Array)(b)));
|
|
11
|
-
return (0, primitives_1.addSize)((0, make_header_1.combineUint8Arrays)([
|
|
12
|
-
type,
|
|
13
|
-
majorBrandArr,
|
|
14
|
-
minorBrandArr,
|
|
15
|
-
compatibleBrandsArr,
|
|
16
|
-
]));
|
|
17
|
-
};
|
|
18
|
-
exports.createFtyp = createFtyp;
|
|
19
|
-
const createIsoBaseMediaFtyp = ({ majorBrand, minorBrand, compatibleBrands, }) => {
|
|
20
|
-
return (0, exports.createFtyp)({ compatibleBrands, majorBrand, minorBrand });
|
|
21
|
-
};
|
|
22
|
-
exports.createIsoBaseMediaFtyp = createIsoBaseMediaFtyp;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const createIlst: (items: Uint8Array[]) => Uint8Array;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createIlst = void 0;
|
|
4
|
-
const make_header_1 = require("../../boxes/webm/make-header");
|
|
5
|
-
const primitives_1 = require("./primitives");
|
|
6
|
-
const createIlst = (items) => {
|
|
7
|
-
return (0, primitives_1.addSize)((0, make_header_1.combineUint8Arrays)([
|
|
8
|
-
// name
|
|
9
|
-
(0, primitives_1.stringsToUint8Array)('ilst'),
|
|
10
|
-
// items
|
|
11
|
-
...items,
|
|
12
|
-
]));
|
|
13
|
-
};
|
|
14
|
-
exports.createIlst = createIlst;
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createIsoBaseMedia = void 0;
|
|
4
|
-
const make_header_1 = require("../../boxes/webm/make-header");
|
|
5
|
-
const log_1 = require("../../log");
|
|
6
|
-
const create_ftyp_1 = require("./create-ftyp");
|
|
7
|
-
const mp4_header_1 = require("./mp4-header");
|
|
8
|
-
const primitives_1 = require("./primitives");
|
|
9
|
-
const createIsoBaseMedia = async ({ writer, onBytesProgress, onMillisecondsProgress, logLevel, filename, progressTracker, }) => {
|
|
10
|
-
const header = (0, create_ftyp_1.createIsoBaseMediaFtyp)({
|
|
11
|
-
compatibleBrands: ['isom', 'iso2', 'avc1', 'mp42'],
|
|
12
|
-
majorBrand: 'isom',
|
|
13
|
-
minorBrand: 512,
|
|
14
|
-
});
|
|
15
|
-
const w = await writer.createContent({ filename, mimeType: 'video/mp4' });
|
|
16
|
-
await w.write(header);
|
|
17
|
-
let durationInUnits = 0;
|
|
18
|
-
const currentTracks = [];
|
|
19
|
-
const samplePositions = [];
|
|
20
|
-
const sampleChunkIndices = [];
|
|
21
|
-
const moovOffset = w.getWrittenByteCount();
|
|
22
|
-
const getPaddedMoovAtom = () => {
|
|
23
|
-
return (0, mp4_header_1.createPaddedMoovAtom)({
|
|
24
|
-
durationInUnits,
|
|
25
|
-
trackInfo: currentTracks.map((track) => {
|
|
26
|
-
var _a;
|
|
27
|
-
return {
|
|
28
|
-
track,
|
|
29
|
-
durationInUnits,
|
|
30
|
-
samplePositions: (_a = samplePositions[track.trackNumber]) !== null && _a !== void 0 ? _a : [],
|
|
31
|
-
timescale: track.timescale,
|
|
32
|
-
};
|
|
33
|
-
}),
|
|
34
|
-
timescale: 1000,
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
await w.write(getPaddedMoovAtom());
|
|
38
|
-
let mdatSize = 8;
|
|
39
|
-
const mdatSizeOffset = w.getWrittenByteCount();
|
|
40
|
-
await w.write((0, make_header_1.combineUint8Arrays)([
|
|
41
|
-
// size
|
|
42
|
-
(0, primitives_1.numberTo32BitUIntOrInt)(mdatSize),
|
|
43
|
-
// type
|
|
44
|
-
(0, primitives_1.stringsToUint8Array)('mdat'),
|
|
45
|
-
]));
|
|
46
|
-
const updateMdatSize = async () => {
|
|
47
|
-
await w.updateDataAt(mdatSizeOffset, (0, primitives_1.numberTo32BitUIntOrInt)(mdatSize));
|
|
48
|
-
onBytesProgress(w.getWrittenByteCount());
|
|
49
|
-
};
|
|
50
|
-
const operationProm = { current: Promise.resolve() };
|
|
51
|
-
const updateMoov = async () => {
|
|
52
|
-
await w.updateDataAt(moovOffset, getPaddedMoovAtom());
|
|
53
|
-
onBytesProgress(w.getWrittenByteCount());
|
|
54
|
-
};
|
|
55
|
-
const updateDuration = (newDuration) => {
|
|
56
|
-
durationInUnits = newDuration;
|
|
57
|
-
onMillisecondsProgress(newDuration);
|
|
58
|
-
};
|
|
59
|
-
const addCodecPrivateToTrack = ({ trackNumber, codecPrivate, }) => {
|
|
60
|
-
currentTracks.forEach((track) => {
|
|
61
|
-
if (track.trackNumber === trackNumber) {
|
|
62
|
-
track.codecPrivate = codecPrivate;
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
};
|
|
66
|
-
let lastChunkWasVideo = false;
|
|
67
|
-
const addSample = async ({ chunk, trackNumber, isVideo, timescale, codecPrivate, }) => {
|
|
68
|
-
var _a, _b;
|
|
69
|
-
const position = w.getWrittenByteCount();
|
|
70
|
-
await w.write(chunk.data);
|
|
71
|
-
mdatSize += chunk.data.length;
|
|
72
|
-
onBytesProgress(w.getWrittenByteCount());
|
|
73
|
-
progressTracker.updateTrackProgress(trackNumber, chunk.timestamp);
|
|
74
|
-
if (codecPrivate) {
|
|
75
|
-
addCodecPrivateToTrack({ trackNumber, codecPrivate });
|
|
76
|
-
}
|
|
77
|
-
const newDuration = Math.round((chunk.timestamp + ((_a = chunk.duration) !== null && _a !== void 0 ? _a : 0)) / 1000);
|
|
78
|
-
updateDuration(newDuration);
|
|
79
|
-
if (!samplePositions[trackNumber]) {
|
|
80
|
-
samplePositions[trackNumber] = [];
|
|
81
|
-
}
|
|
82
|
-
if (typeof sampleChunkIndices[trackNumber] === 'undefined') {
|
|
83
|
-
sampleChunkIndices[trackNumber] = 0;
|
|
84
|
-
}
|
|
85
|
-
// For video, make a new chunk if it's a keyframe
|
|
86
|
-
if (isVideo && chunk.type === 'key') {
|
|
87
|
-
sampleChunkIndices[trackNumber]++;
|
|
88
|
-
} // For audio, make a new chunk every 22 samples, that's how bbb.mp4 is encoded
|
|
89
|
-
else if (!isVideo && samplePositions[trackNumber].length % 22 === 0) {
|
|
90
|
-
sampleChunkIndices[trackNumber]++;
|
|
91
|
-
}
|
|
92
|
-
// Need to create a new chunk if the last chunk was a different type
|
|
93
|
-
else if (lastChunkWasVideo !== isVideo) {
|
|
94
|
-
sampleChunkIndices[trackNumber]++;
|
|
95
|
-
}
|
|
96
|
-
// media parser and EncodedVideoChunk returns timestamps in microseconds
|
|
97
|
-
// need to normalize the timestamps to milliseconds
|
|
98
|
-
const samplePositionToAdd = {
|
|
99
|
-
isKeyframe: chunk.type === 'key',
|
|
100
|
-
offset: position,
|
|
101
|
-
chunk: sampleChunkIndices[trackNumber],
|
|
102
|
-
cts: Math.round(chunk.cts / (1000000 / timescale)),
|
|
103
|
-
dts: Math.round(chunk.dts / (1000000 / timescale)),
|
|
104
|
-
duration: Math.round(((_b = chunk.duration) !== null && _b !== void 0 ? _b : 0) / (1000000 / timescale)),
|
|
105
|
-
size: chunk.data.length,
|
|
106
|
-
};
|
|
107
|
-
lastChunkWasVideo = isVideo;
|
|
108
|
-
samplePositions[trackNumber].push(samplePositionToAdd);
|
|
109
|
-
};
|
|
110
|
-
const addTrack = (track) => {
|
|
111
|
-
const trackNumber = currentTracks.length + 1;
|
|
112
|
-
currentTracks.push({ ...track, trackNumber });
|
|
113
|
-
progressTracker.registerTrack(trackNumber);
|
|
114
|
-
return Promise.resolve({ trackNumber });
|
|
115
|
-
};
|
|
116
|
-
const waitForFinishPromises = [];
|
|
117
|
-
return {
|
|
118
|
-
save: () => {
|
|
119
|
-
return w.save();
|
|
120
|
-
},
|
|
121
|
-
remove: async () => {
|
|
122
|
-
await w.remove();
|
|
123
|
-
},
|
|
124
|
-
addSample: ({ chunk, trackNumber, isVideo, timescale, codecPrivate }) => {
|
|
125
|
-
operationProm.current = operationProm.current.then(() => {
|
|
126
|
-
return addSample({
|
|
127
|
-
chunk,
|
|
128
|
-
trackNumber,
|
|
129
|
-
isVideo,
|
|
130
|
-
timescale,
|
|
131
|
-
codecPrivate,
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
return operationProm.current;
|
|
135
|
-
},
|
|
136
|
-
addTrack: (track) => {
|
|
137
|
-
operationProm.current = operationProm.current.then(() => addTrack(track));
|
|
138
|
-
return operationProm.current;
|
|
139
|
-
},
|
|
140
|
-
updateTrackSampleRate: ({ sampleRate, trackNumber }) => {
|
|
141
|
-
currentTracks.forEach((track) => {
|
|
142
|
-
if (track.trackNumber === trackNumber) {
|
|
143
|
-
if (track.type !== 'audio') {
|
|
144
|
-
throw new Error(`Tried to update sample rate of track ${trackNumber}, but it's not an audio track`);
|
|
145
|
-
}
|
|
146
|
-
track.sampleRate = sampleRate;
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
},
|
|
150
|
-
addWaitForFinishPromise: (promise) => {
|
|
151
|
-
waitForFinishPromises.push(promise);
|
|
152
|
-
},
|
|
153
|
-
async waitForFinish() {
|
|
154
|
-
log_1.Log.verbose(logLevel, 'All write operations queued. Waiting for finish...');
|
|
155
|
-
await Promise.all(waitForFinishPromises.map((p) => p()));
|
|
156
|
-
log_1.Log.verbose(logLevel, 'Cleanup tasks executed');
|
|
157
|
-
await operationProm.current;
|
|
158
|
-
await updateMoov();
|
|
159
|
-
await updateMdatSize();
|
|
160
|
-
log_1.Log.verbose(logLevel, 'All write operations done. Waiting for finish...');
|
|
161
|
-
await w.waitForFinish();
|
|
162
|
-
},
|
|
163
|
-
};
|
|
164
|
-
};
|
|
165
|
-
exports.createIsoBaseMedia = createIsoBaseMedia;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createMdia = void 0;
|
|
4
|
-
const make_header_1 = require("../../boxes/webm/make-header");
|
|
5
|
-
const primitives_1 = require("./primitives");
|
|
6
|
-
const createMdia = ({ mdhd, hdlr, minf, }) => {
|
|
7
|
-
return (0, primitives_1.addSize)((0, make_header_1.combineUint8Arrays)([
|
|
8
|
-
// type
|
|
9
|
-
(0, primitives_1.stringsToUint8Array)('mdia'),
|
|
10
|
-
// mdhd
|
|
11
|
-
mdhd,
|
|
12
|
-
// hdlr
|
|
13
|
-
hdlr,
|
|
14
|
-
// minf
|
|
15
|
-
minf,
|
|
16
|
-
]));
|
|
17
|
-
};
|
|
18
|
-
exports.createMdia = createMdia;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createMoov = void 0;
|
|
4
|
-
const make_header_1 = require("../../boxes/webm/make-header");
|
|
5
|
-
const primitives_1 = require("./primitives");
|
|
6
|
-
const createMoov = ({ mvhd, traks, udta, }) => {
|
|
7
|
-
return (0, primitives_1.addSize)((0, make_header_1.combineUint8Arrays)([
|
|
8
|
-
// type
|
|
9
|
-
(0, primitives_1.stringsToUint8Array)('moov'),
|
|
10
|
-
// moov atom
|
|
11
|
-
mvhd,
|
|
12
|
-
// traks
|
|
13
|
-
...traks,
|
|
14
|
-
// udta
|
|
15
|
-
udta,
|
|
16
|
-
]));
|
|
17
|
-
};
|
|
18
|
-
exports.createMoov = createMoov;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare const createMvhd: ({ timescale, durationInUnits, rate, volume, nextTrackId, matrix, creationTime, modificationTime, }: {
|
|
2
|
-
timescale: number;
|
|
3
|
-
durationInUnits: number;
|
|
4
|
-
rate: number;
|
|
5
|
-
volume: number;
|
|
6
|
-
nextTrackId: number;
|
|
7
|
-
matrix: number[];
|
|
8
|
-
creationTime: number | null;
|
|
9
|
-
modificationTime: number | null;
|
|
10
|
-
}) => Uint8Array;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createMvhd = void 0;
|
|
4
|
-
const to_date_1 = require("../../boxes/iso-base-media/to-date");
|
|
5
|
-
const make_header_1 = require("../../boxes/webm/make-header");
|
|
6
|
-
const primitives_1 = require("./primitives");
|
|
7
|
-
const createMvhd = ({ timescale, durationInUnits, rate, volume, nextTrackId, matrix, creationTime, modificationTime, }) => {
|
|
8
|
-
if (matrix.length !== 9) {
|
|
9
|
-
throw new Error('Matrix must be 9 elements long');
|
|
10
|
-
}
|
|
11
|
-
const content = (0, make_header_1.combineUint8Arrays)([
|
|
12
|
-
// type
|
|
13
|
-
(0, primitives_1.stringsToUint8Array)('mvhd'),
|
|
14
|
-
// version
|
|
15
|
-
new Uint8Array([0]),
|
|
16
|
-
// flags
|
|
17
|
-
new Uint8Array([0, 0, 0]),
|
|
18
|
-
// creation time
|
|
19
|
-
creationTime === null
|
|
20
|
-
? (0, primitives_1.numberTo32BitUIntOrInt)(0)
|
|
21
|
-
: (0, primitives_1.numberTo32BitUIntOrInt)((0, to_date_1.fromUnixTimestamp)(creationTime)),
|
|
22
|
-
// modification time
|
|
23
|
-
modificationTime === null
|
|
24
|
-
? (0, primitives_1.numberTo32BitUIntOrInt)(0)
|
|
25
|
-
: (0, primitives_1.numberTo32BitUIntOrInt)((0, to_date_1.fromUnixTimestamp)(modificationTime)),
|
|
26
|
-
// timescale
|
|
27
|
-
(0, primitives_1.numberTo32BitUIntOrInt)(timescale),
|
|
28
|
-
// duration in units, 32bit for version 0
|
|
29
|
-
(0, primitives_1.numberTo32BitUIntOrInt)(durationInUnits),
|
|
30
|
-
// rate
|
|
31
|
-
(0, primitives_1.floatTo16Point1632Bit)(rate),
|
|
32
|
-
// volume
|
|
33
|
-
(0, primitives_1.floatTo16Point16_16Bit)(volume),
|
|
34
|
-
// reserved
|
|
35
|
-
new Uint8Array([0, 0]),
|
|
36
|
-
// reserved
|
|
37
|
-
new Uint8Array([0, 0, 0, 0]),
|
|
38
|
-
// reserved
|
|
39
|
-
new Uint8Array([0, 0, 0, 0]),
|
|
40
|
-
(0, primitives_1.serializeMatrix)(matrix),
|
|
41
|
-
// predefined
|
|
42
|
-
(0, make_header_1.combineUint8Arrays)(new Array(6).fill(new Uint8Array([0, 0, 0, 0]))),
|
|
43
|
-
// next track id
|
|
44
|
-
(0, primitives_1.numberTo32BitUIntOrInt)(nextTrackId),
|
|
45
|
-
]);
|
|
46
|
-
return (0, primitives_1.addSize)(content);
|
|
47
|
-
};
|
|
48
|
-
exports.createMvhd = createMvhd;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createTrak = void 0;
|
|
4
|
-
const make_header_1 = require("../../boxes/webm/make-header");
|
|
5
|
-
const truthy_1 = require("../../truthy");
|
|
6
|
-
const primitives_1 = require("./primitives");
|
|
7
|
-
const createTrak = ({ tkhd, mdia, }) => {
|
|
8
|
-
return (0, primitives_1.addSize)((0, make_header_1.combineUint8Arrays)([
|
|
9
|
-
// name
|
|
10
|
-
(0, primitives_1.stringsToUint8Array)('trak'),
|
|
11
|
-
// tkhd
|
|
12
|
-
tkhd,
|
|
13
|
-
// mdia
|
|
14
|
-
mdia,
|
|
15
|
-
].filter(truthy_1.truthy)));
|
|
16
|
-
};
|
|
17
|
-
exports.createTrak = createTrak;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const createUdta: (children: Uint8Array) => Uint8Array;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createUdta = void 0;
|
|
4
|
-
const make_header_1 = require("../../boxes/webm/make-header");
|
|
5
|
-
const primitives_1 = require("./primitives");
|
|
6
|
-
const createUdta = (children) => {
|
|
7
|
-
return (0, primitives_1.addSize)((0, make_header_1.combineUint8Arrays)([
|
|
8
|
-
// type
|
|
9
|
-
(0, primitives_1.stringsToUint8Array)('udta'),
|
|
10
|
-
// children
|
|
11
|
-
children,
|
|
12
|
-
]));
|
|
13
|
-
};
|
|
14
|
-
exports.createUdta = createUdta;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const createUrlAtom: () => Uint8Array;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createUrlAtom = void 0;
|
|
4
|
-
const make_header_1 = require("../../boxes/webm/make-header");
|
|
5
|
-
const primitives_1 = require("./primitives");
|
|
6
|
-
const createUrlAtom = () => {
|
|
7
|
-
return (0, primitives_1.addSize)((0, make_header_1.combineUint8Arrays)([
|
|
8
|
-
// type
|
|
9
|
-
(0, primitives_1.stringsToUint8Array)('url '),
|
|
10
|
-
// version
|
|
11
|
-
new Uint8Array([0]),
|
|
12
|
-
// flags
|
|
13
|
-
new Uint8Array([0, 0, 1]),
|
|
14
|
-
]));
|
|
15
|
-
};
|
|
16
|
-
exports.createUrlAtom = createUrlAtom;
|