@remotion/media-parser 4.0.270 → 4.0.272
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aac-codecprivate.js +6 -13
- package/dist/add-avc-profile-to-track.js +5 -9
- package/dist/buffer-iterator.js +8 -13
- package/dist/combine-uint8-arrays.js +1 -5
- package/dist/containers/aac/parse-aac.js +9 -13
- package/dist/containers/aac/types.js +1 -2
- package/dist/containers/avc/codec-string.js +1 -5
- package/dist/containers/avc/color.js +3 -9
- package/dist/containers/avc/create-sps-pps-data.js +5 -9
- package/dist/containers/avc/interpret-sps.js +7 -13
- package/dist/containers/avc/key.js +1 -5
- package/dist/containers/avc/parse-avc.js +3 -7
- package/dist/containers/avc/sps-and-pps.js +1 -5
- package/dist/containers/flac/get-block-size.js +1 -5
- package/dist/containers/flac/get-channel-count.d.ts +1 -1
- package/dist/containers/flac/get-channel-count.js +1 -5
- package/dist/containers/flac/get-duration-from-flac.js +1 -5
- package/dist/containers/flac/get-metadata-from-flac.d.ts +1 -1
- package/dist/containers/flac/get-metadata-from-flac.js +1 -5
- package/dist/containers/flac/get-sample-rate.js +1 -5
- package/dist/containers/flac/parse-flac-frame.js +14 -19
- package/dist/containers/flac/parse-flac.js +15 -19
- package/dist/containers/flac/parse-header.js +1 -5
- package/dist/containers/flac/parse-metadata.js +1 -5
- package/dist/containers/flac/parse-streaminfo.js +3 -7
- package/dist/containers/flac/parse-unknown-block.js +1 -5
- package/dist/containers/flac/types.d.ts +2 -2
- package/dist/containers/flac/types.js +1 -2
- package/dist/containers/iso-base-media/base-media-box.js +1 -2
- package/dist/containers/iso-base-media/base-type.js +1 -2
- package/dist/containers/iso-base-media/esds/decoder-specific-config.js +1 -5
- package/dist/containers/iso-base-media/esds/esds-descriptors.js +5 -10
- package/dist/containers/iso-base-media/esds/esds.js +3 -7
- package/dist/containers/iso-base-media/ftyp.js +1 -5
- package/dist/containers/iso-base-media/get-actual-number-of-channels.js +4 -8
- package/dist/containers/iso-base-media/get-children.js +3 -7
- package/dist/containers/iso-base-media/get-keyframes.js +7 -11
- package/dist/containers/iso-base-media/get-moov-atom.js +21 -15
- package/dist/containers/iso-base-media/get-sample-positions-from-track.js +20 -24
- package/dist/containers/iso-base-media/get-video-codec-from-iso-track.d.ts +1 -1
- package/dist/containers/iso-base-media/get-video-codec-from-iso-track.js +3 -7
- package/dist/containers/iso-base-media/make-track.js +30 -34
- package/dist/containers/iso-base-media/mdat/mdat.js +16 -20
- package/dist/containers/iso-base-media/mdhd.js +1 -5
- package/dist/containers/iso-base-media/meta/hdlr.js +1 -5
- package/dist/containers/iso-base-media/meta/ilst.js +1 -5
- package/dist/containers/iso-base-media/moov/moov.js +3 -7
- package/dist/containers/iso-base-media/mvhd.js +7 -11
- package/dist/containers/iso-base-media/parse-boxes.js +5 -9
- package/dist/containers/iso-base-media/parse-icc-profile.js +4 -8
- package/dist/containers/iso-base-media/process-box.js +63 -67
- package/dist/containers/iso-base-media/stsd/av1c.js +1 -5
- package/dist/containers/iso-base-media/stsd/avcc.js +1 -5
- package/dist/containers/iso-base-media/stsd/colr.js +3 -7
- package/dist/containers/iso-base-media/stsd/ctts.js +1 -5
- package/dist/containers/iso-base-media/stsd/hvcc.js +3 -7
- package/dist/containers/iso-base-media/stsd/keys.js +1 -5
- package/dist/containers/iso-base-media/stsd/mebx.js +3 -7
- package/dist/containers/iso-base-media/stsd/pasp.js +1 -5
- package/dist/containers/iso-base-media/stsd/samples.js +8 -13
- package/dist/containers/iso-base-media/stsd/stco.js +1 -5
- package/dist/containers/iso-base-media/stsd/stsc.js +1 -5
- package/dist/containers/iso-base-media/stsd/stsd.js +3 -7
- package/dist/containers/iso-base-media/stsd/stss.js +1 -5
- package/dist/containers/iso-base-media/stsd/stsz.js +1 -5
- package/dist/containers/iso-base-media/stsd/stts.js +1 -5
- package/dist/containers/iso-base-media/tfdt.js +1 -5
- package/dist/containers/iso-base-media/tfhd.js +1 -5
- package/dist/containers/iso-base-media/tkhd.js +4 -8
- package/dist/containers/iso-base-media/to-date.js +1 -5
- package/dist/containers/iso-base-media/trak/trak.js +3 -7
- package/dist/containers/iso-base-media/traversal.d.ts +3 -2
- package/dist/containers/iso-base-media/traversal.js +42 -57
- package/dist/containers/iso-base-media/trun.js +2 -6
- package/dist/containers/iso-base-media/void-box.js +1 -2
- package/dist/containers/m3u/after-manifest-fetch.d.ts +5 -3
- package/dist/containers/m3u/after-manifest-fetch.js +13 -17
- package/dist/containers/m3u/fetch-m3u8-stream.d.ts +5 -1
- package/dist/containers/m3u/fetch-m3u8-stream.js +4 -12
- package/dist/containers/m3u/get-chunks.d.ts +1 -0
- package/dist/containers/m3u/get-chunks.js +6 -6
- package/dist/containers/m3u/get-duration-from-m3u.js +4 -8
- package/dist/containers/m3u/get-playlist.js +6 -12
- package/dist/containers/m3u/get-streams.d.ts +11 -5
- package/dist/containers/m3u/get-streams.js +5 -15
- package/dist/containers/m3u/iterate-over-segment-files.d.ts +19 -0
- package/dist/containers/m3u/iterate-over-segment-files.js +110 -0
- package/dist/containers/m3u/parse-directive.js +24 -10
- package/dist/containers/m3u/parse-m3u-manifest.js +3 -7
- package/dist/containers/m3u/parse-m3u-media-directive.d.ts +1 -0
- package/dist/containers/m3u/parse-m3u-media-directive.js +7 -7
- package/dist/containers/m3u/parse-m3u.js +13 -13
- package/dist/containers/m3u/parse-m3u8-text.js +3 -7
- package/dist/containers/m3u/parse-stream-inf.js +2 -7
- package/dist/containers/m3u/return-packets.d.ts +1 -1
- package/dist/containers/m3u/return-packets.js +14 -5
- package/dist/containers/m3u/run-over-m3u.js +68 -57
- package/dist/containers/m3u/sample-sorter.d.ts +2 -0
- package/dist/containers/m3u/sample-sorter.js +17 -9
- package/dist/containers/m3u/select-stream.d.ts +3 -2
- package/dist/containers/m3u/select-stream.js +9 -13
- package/dist/containers/m3u/types.d.ts +9 -2
- package/dist/containers/m3u/types.js +1 -2
- package/dist/containers/mp3/get-duration.js +5 -9
- package/dist/containers/mp3/get-frame-length.js +2 -7
- package/dist/containers/mp3/get-metadata-from-mp3.d.ts +2 -2
- package/dist/containers/mp3/get-metadata-from-mp3.js +1 -5
- package/dist/containers/mp3/id3-v1.js +1 -5
- package/dist/containers/mp3/id3.js +1 -5
- package/dist/containers/mp3/parse-mp3.js +7 -11
- package/dist/containers/mp3/parse-mpeg-header.js +10 -14
- package/dist/containers/mp3/samples-per-mpeg-file.js +1 -5
- package/dist/containers/riff/expect-riff-box.js +11 -15
- package/dist/containers/riff/get-duration.js +7 -12
- package/dist/containers/riff/get-tracks-from-avi.js +20 -28
- package/dist/containers/riff/is-movi.js +1 -5
- package/dist/containers/riff/parse-avih.js +1 -5
- package/dist/containers/riff/parse-isft.js +1 -5
- package/dist/containers/riff/parse-list-box.js +3 -7
- package/dist/containers/riff/parse-movi.js +13 -18
- package/dist/containers/riff/parse-riff-body.js +9 -13
- package/dist/containers/riff/parse-riff-box.js +9 -13
- package/dist/containers/riff/parse-riff-header.js +1 -5
- package/dist/containers/riff/parse-riff.js +5 -9
- package/dist/containers/riff/parse-strf.js +1 -5
- package/dist/containers/riff/parse-strh.js +3 -7
- package/dist/containers/riff/parse-video-section.js +7 -11
- package/dist/containers/riff/riff-box.js +1 -2
- package/dist/containers/riff/timescale.js +1 -4
- package/dist/containers/riff/traversal.js +7 -15
- package/dist/containers/transport-stream/adts-header.js +6 -10
- package/dist/containers/transport-stream/boxes.js +1 -2
- package/dist/containers/transport-stream/discard-rest-of-packet.js +2 -7
- package/dist/containers/transport-stream/find-separator.js +1 -4
- package/dist/containers/transport-stream/get-tracks.d.ts +2 -0
- package/dist/containers/transport-stream/get-tracks.js +13 -14
- package/dist/containers/transport-stream/handle-aac-packet.js +12 -16
- package/dist/containers/transport-stream/handle-avc-packet.js +22 -26
- package/dist/containers/transport-stream/next-pes-header-store.js +1 -5
- package/dist/containers/transport-stream/parse-packet.js +13 -17
- package/dist/containers/transport-stream/parse-pat.js +5 -10
- package/dist/containers/transport-stream/parse-pes.js +1 -5
- package/dist/containers/transport-stream/parse-pmt.js +8 -12
- package/dist/containers/transport-stream/parse-stream-packet.js +13 -17
- package/dist/containers/transport-stream/parse-transport-stream.js +5 -9
- package/dist/containers/transport-stream/process-stream-buffers.js +12 -16
- package/dist/containers/transport-stream/traversal.js +4 -10
- package/dist/containers/wav/get-duration-from-wav.js +3 -8
- package/dist/containers/wav/get-metadata-from-wav.d.ts +2 -2
- package/dist/containers/wav/get-metadata-from-wav.js +1 -5
- package/dist/containers/wav/parse-data.js +5 -9
- package/dist/containers/wav/parse-fmt.js +3 -7
- package/dist/containers/wav/parse-header.js +1 -5
- package/dist/containers/wav/parse-id3.js +1 -5
- package/dist/containers/wav/parse-list.js +1 -5
- package/dist/containers/wav/parse-video-section.js +3 -7
- package/dist/containers/wav/parse-wav.js +15 -19
- package/dist/containers/wav/types.d.ts +2 -2
- package/dist/containers/wav/types.js +1 -2
- package/dist/containers/webm/allowed-partial-segments.js +1 -4
- package/dist/containers/webm/av1-codec-private.js +3 -7
- package/dist/containers/webm/color.js +6 -10
- package/dist/containers/webm/description.js +6 -10
- package/dist/containers/webm/get-ready-tracks.js +13 -18
- package/dist/containers/webm/get-sample-from-block.js +12 -16
- package/dist/containers/webm/make-track.js +43 -48
- package/dist/containers/webm/parse-ebml.js +14 -19
- package/dist/containers/webm/parse-webm-header.js +3 -7
- package/dist/containers/webm/segments/all-segments.js +168 -173
- package/dist/containers/webm/segments/block-simple-block-flags.js +4 -8
- package/dist/containers/webm/segments/track-entry.js +1 -5
- package/dist/containers/webm/segments.js +9 -13
- package/dist/containers/webm/traversal.js +37 -67
- package/dist/convert-audio-or-video-sample.js +1 -5
- package/dist/download-and-parse-media.js +44 -47
- package/dist/emit-available-info.js +38 -38
- package/dist/emitter.js +1 -5
- package/dist/errors.d.ts +2 -17
- package/dist/errors.js +10 -30
- package/dist/esm/fetch.mjs +93 -67
- package/dist/esm/index.mjs +742 -194
- package/dist/esm/node.mjs +59 -36
- package/dist/esm/universal.mjs +323 -0
- package/dist/esm/web-file.mjs +55 -43
- package/dist/esm/web.mjs +257 -0
- package/dist/esm/worker-server-entry.mjs +13100 -0
- package/dist/esm/worker-server.mjs +12914 -0
- package/dist/esm/worker-web-entry.mjs +13013 -0
- package/dist/esm/worker.mjs +439 -0
- package/dist/fetch.js +1 -17
- package/dist/file-types/bmp.js +3 -7
- package/dist/file-types/detect-file-type.js +24 -38
- package/dist/file-types/index.js +22 -26
- package/dist/file-types/jpeg.js +4 -9
- package/dist/file-types/pdf.js +3 -7
- package/dist/file-types/png.js +4 -9
- package/dist/file-types/webp.js +3 -7
- package/dist/forward-controller.js +1 -5
- package/dist/get-audio-codec.js +25 -38
- package/dist/get-container.d.ts +3 -3
- package/dist/get-container.js +5 -10
- package/dist/get-dimensions.js +8 -13
- package/dist/get-duration.js +27 -34
- package/dist/get-fields-from-callbacks.js +1 -5
- package/dist/get-fps.js +24 -34
- package/dist/get-is-hdr.js +5 -10
- package/dist/get-keyframes.js +6 -11
- package/dist/get-location.js +4 -9
- package/dist/get-number-of-audio-channels.js +2 -7
- package/dist/get-sample-aspect-ratio.js +17 -30
- package/dist/get-sample-positions-from-lpcm.js +5 -9
- package/dist/get-sample-positions.js +1 -5
- package/dist/get-sample-rate.js +2 -7
- package/dist/get-tracks.d.ts +5 -0
- package/dist/get-tracks.js +37 -44
- package/dist/get-video-codec.js +26 -34
- package/dist/has-all-info.js +33 -38
- package/dist/index.d.ts +18 -11
- package/dist/index.js +34 -48
- package/dist/init-video.d.ts +1 -1
- package/dist/init-video.js +47 -20
- package/dist/internal-parse-media.js +36 -40
- package/dist/is-audio-structure.d.ts +2 -2
- package/dist/is-audio-structure.js +1 -5
- package/dist/log.js +8 -12
- package/dist/make-hvc1-codec-strings.js +1 -5
- package/dist/media-parser-controller.js +7 -11
- package/dist/metadata/get-metadata.d.ts +4 -4
- package/dist/metadata/get-metadata.js +17 -22
- package/dist/metadata/metadata-from-iso.d.ts +3 -3
- package/dist/metadata/metadata-from-iso.js +12 -17
- package/dist/metadata/metadata-from-matroska.d.ts +2 -2
- package/dist/metadata/metadata-from-matroska.js +3 -7
- package/dist/metadata/metadata-from-riff.d.ts +2 -2
- package/dist/metadata/metadata-from-riff.js +3 -7
- package/dist/node-writer.js +1 -17
- package/dist/node.js +1 -17
- package/dist/options.d.ts +30 -24
- package/dist/options.js +1 -2
- package/dist/parse-media-on-browser-worker.d.ts +2 -0
- package/dist/parse-media-on-browser-worker.js +4 -0
- package/dist/parse-media-on-server-worker.d.ts +2 -0
- package/dist/parse-media-on-server-worker.js +4 -0
- package/dist/parse-media-on-web-worker.d.ts +2 -0
- package/dist/parse-media-on-web-worker.js +4 -0
- package/dist/parse-media-on-worker-entry.d.ts +2 -0
- package/dist/parse-media-on-worker-entry.js +269 -0
- package/dist/parse-media-on-worker.d.ts +2 -0
- package/dist/parse-media-on-worker.js +4 -0
- package/dist/parse-media.js +10 -13
- package/dist/parse-result.d.ts +3 -3
- package/dist/parse-result.js +1 -2
- package/dist/pause-signal.js +1 -5
- package/dist/perform-seek.js +6 -10
- package/dist/readers/fetch/get-body-and-reader.js +1 -5
- package/dist/readers/fetch/resolve-url.d.ts +1 -1
- package/dist/readers/fetch/resolve-url.js +1 -5
- package/dist/readers/from-fetch.d.ts +4 -1
- package/dist/readers/from-fetch.js +109 -94
- package/dist/readers/from-node.d.ts +4 -1
- package/dist/readers/from-node.js +58 -41
- package/dist/readers/from-web-file.d.ts +4 -1
- package/dist/readers/from-web-file.js +55 -49
- package/dist/readers/reader.d.ts +5 -1
- package/dist/readers/reader.js +1 -2
- package/dist/readers/universal.d.ts +2 -0
- package/dist/readers/universal.js +35 -0
- package/dist/readers/web.d.ts +2 -0
- package/dist/readers/web.js +22 -0
- package/dist/register-track.js +9 -15
- package/dist/remotion-license-acknowledge.js +4 -8
- package/dist/run-parse-iteration.js +26 -25
- package/dist/samples-from-moof.js +8 -12
- package/dist/skip.js +1 -5
- package/dist/state/aac-state.js +1 -5
- package/dist/state/can-skip-tracks.d.ts +2 -2
- package/dist/state/can-skip-tracks.js +3 -8
- package/dist/state/emitted-fields.js +1 -5
- package/dist/state/flac-state.js +1 -5
- package/dist/state/has-tracks-section.d.ts +2 -2
- package/dist/state/has-tracks-section.js +6 -8
- package/dist/state/images.js +1 -5
- package/dist/state/iso-base-media/cached-sample-positions.js +8 -13
- package/dist/state/iso-base-media/iso-state.js +5 -9
- package/dist/state/iso-base-media/moov-box.js +1 -5
- package/dist/state/keyframes.js +1 -5
- package/dist/state/last-eventloop-break.js +3 -7
- package/dist/state/m3u-state.d.ts +6 -0
- package/dist/state/m3u-state.js +20 -12
- package/dist/state/may-skip-video-data.js +3 -7
- package/dist/state/mp3.js +1 -5
- package/dist/state/need-samples-for-fields.js +1 -5
- package/dist/state/parser-state.d.ts +15 -10
- package/dist/state/parser-state.js +37 -41
- package/dist/state/riff.js +1 -5
- package/dist/state/sample-callbacks.d.ts +3 -2
- package/dist/state/sample-callbacks.js +8 -12
- package/dist/state/slow-duration-fps.js +1 -5
- package/dist/state/structure.d.ts +4 -4
- package/dist/state/structure.js +1 -5
- package/dist/state/transport-stream.js +3 -7
- package/dist/state/video-section.js +1 -5
- package/dist/state/webm.js +5 -9
- package/dist/throttled-progress.js +1 -5
- package/dist/truthy.js +1 -4
- package/dist/universal.d.ts +1 -0
- package/dist/universal.js +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -4
- package/dist/web-file.js +1 -17
- package/dist/web.d.ts +1 -0
- package/dist/web.js +1 -0
- package/dist/webcodec-sample-types.d.ts +6 -4
- package/dist/webcodec-sample-types.js +1 -2
- package/dist/worker/forward-controller.d.ts +3 -0
- package/dist/worker/forward-controller.js +20 -0
- package/dist/worker/serialize-error.d.ts +4 -0
- package/dist/worker/serialize-error.js +95 -0
- package/dist/worker/worker-types.d.ts +243 -0
- package/dist/worker/worker-types.js +1 -0
- package/dist/worker-bun-entry.d.ts +1 -0
- package/dist/worker-bun-entry.js +5 -0
- package/dist/worker-entry.d.ts +1 -0
- package/dist/worker-entry.js +5 -0
- package/dist/worker-server-entry.d.ts +1 -0
- package/dist/worker-server-entry.js +5 -0
- package/dist/worker-server.d.ts +2 -0
- package/dist/worker-server.js +381 -0
- package/dist/worker-web-entry.d.ts +1 -0
- package/dist/worker-web-entry.js +5 -0
- package/dist/worker.d.ts +2 -0
- package/dist/worker.js +267 -0
- package/dist/writers/node.js +16 -23
- package/dist/writers/writer.js +1 -2
- package/package.json +40 -21
- package/fetch.js +0 -2
- package/test.json +0 -663
- package/web-file.js +0 -2
|
@@ -1,32 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const may_skip_video_data_1 = require("../../../state/may-skip-video-data");
|
|
9
|
-
const get_moov_atom_1 = require("../get-moov-atom");
|
|
10
|
-
const parseMdatSection = async (state) => {
|
|
1
|
+
import { convertAudioOrVideoSampleToWebCodecsTimestamps } from '../../../convert-audio-or-video-sample';
|
|
2
|
+
import { getHasTracks } from '../../../get-tracks';
|
|
3
|
+
import { makeSkip } from '../../../skip';
|
|
4
|
+
import { calculateFlatSamples } from '../../../state/iso-base-media/cached-sample-positions';
|
|
5
|
+
import { maySkipVideoData } from '../../../state/may-skip-video-data';
|
|
6
|
+
import { getMoovAtom } from '../get-moov-atom';
|
|
7
|
+
export const parseMdatSection = async (state) => {
|
|
11
8
|
const videoSection = state.videoSection.getVideoSection();
|
|
12
9
|
const endOfMdat = videoSection.size + videoSection.start;
|
|
13
10
|
// don't need mdat at all, can skip
|
|
14
|
-
if (
|
|
15
|
-
return
|
|
11
|
+
if (maySkipVideoData({ state })) {
|
|
12
|
+
return makeSkip(endOfMdat);
|
|
16
13
|
}
|
|
17
|
-
const alreadyHas =
|
|
14
|
+
const alreadyHas = getHasTracks(state);
|
|
18
15
|
if (!alreadyHas) {
|
|
19
|
-
const moov = await
|
|
16
|
+
const moov = await getMoovAtom({
|
|
20
17
|
endOfMdat,
|
|
21
18
|
state,
|
|
22
19
|
});
|
|
23
20
|
state.iso.moov.setMoovBox(moov);
|
|
24
21
|
state.callbacks.tracks.setIsDone(state.logLevel);
|
|
25
22
|
state.getIsoStructure().boxes.push(moov);
|
|
26
|
-
return
|
|
23
|
+
return parseMdatSection(state);
|
|
27
24
|
}
|
|
28
25
|
if (!state.iso.flatSamples.getSamples(videoSection.start)) {
|
|
29
|
-
state.iso.flatSamples.setSamples(videoSection.start,
|
|
26
|
+
state.iso.flatSamples.setSamples(videoSection.start, calculateFlatSamples(state));
|
|
30
27
|
}
|
|
31
28
|
const flatSamples = state.iso.flatSamples.getSamples(videoSection.start);
|
|
32
29
|
const { iterator } = state;
|
|
@@ -46,7 +43,7 @@ const parseMdatSection = async (state) => {
|
|
|
46
43
|
}
|
|
47
44
|
// guess we reached the end!
|
|
48
45
|
// iphonevideo.mov has extra padding here, so let's make sure to jump ahead
|
|
49
|
-
return
|
|
46
|
+
return makeSkip(endOfMdat);
|
|
50
47
|
}
|
|
51
48
|
if (iterator.bytesRemaining() < samplesWithIndex.samplePosition.size) {
|
|
52
49
|
return null;
|
|
@@ -54,7 +51,7 @@ const parseMdatSection = async (state) => {
|
|
|
54
51
|
const bytes = iterator.getSlice(samplesWithIndex.samplePosition.size);
|
|
55
52
|
const { cts, dts, duration, isKeyframe, offset } = samplesWithIndex.samplePosition;
|
|
56
53
|
if (samplesWithIndex.track.type === 'audio') {
|
|
57
|
-
await state.callbacks.onAudioSample(samplesWithIndex.track.trackId,
|
|
54
|
+
await state.callbacks.onAudioSample(samplesWithIndex.track.trackId, convertAudioOrVideoSampleToWebCodecsTimestamps({
|
|
58
55
|
data: bytes,
|
|
59
56
|
timestamp: cts,
|
|
60
57
|
duration,
|
|
@@ -79,7 +76,7 @@ const parseMdatSection = async (state) => {
|
|
|
79
76
|
const seiType = bytes[5];
|
|
80
77
|
isRecoveryPoint = seiType === 6;
|
|
81
78
|
}
|
|
82
|
-
await state.callbacks.onVideoSample(samplesWithIndex.track.trackId,
|
|
79
|
+
await state.callbacks.onVideoSample(samplesWithIndex.track.trackId, convertAudioOrVideoSampleToWebCodecsTimestamps({
|
|
83
80
|
data: bytes,
|
|
84
81
|
timestamp: cts,
|
|
85
82
|
duration,
|
|
@@ -93,4 +90,3 @@ const parseMdatSection = async (state) => {
|
|
|
93
90
|
}
|
|
94
91
|
return null;
|
|
95
92
|
};
|
|
96
|
-
exports.parseMdatSection = parseMdatSection;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseMdhd = void 0;
|
|
4
|
-
const parseMdhd = ({ data, size, fileOffset, }) => {
|
|
1
|
+
export const parseMdhd = ({ data, size, fileOffset, }) => {
|
|
5
2
|
const version = data.getUint8();
|
|
6
3
|
// flags, we discard them
|
|
7
4
|
data.discard(3);
|
|
@@ -29,4 +26,3 @@ const parseMdhd = ({ data, size, fileOffset, }) => {
|
|
|
29
26
|
modificationTime,
|
|
30
27
|
};
|
|
31
28
|
};
|
|
32
|
-
exports.parseMdhd = parseMdhd;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseHdlr = void 0;
|
|
4
|
-
const parseHdlr = ({ iterator, size, offset, }) => {
|
|
1
|
+
export const parseHdlr = ({ iterator, size, offset, }) => {
|
|
5
2
|
const box = iterator.startBox(size - 8);
|
|
6
3
|
const version = iterator.getUint8();
|
|
7
4
|
if (version !== 0) {
|
|
@@ -30,4 +27,3 @@ const parseHdlr = ({ iterator, size, offset, }) => {
|
|
|
30
27
|
componentName,
|
|
31
28
|
});
|
|
32
29
|
};
|
|
33
|
-
exports.parseHdlr = parseHdlr;
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseIlstBox = void 0;
|
|
4
1
|
// https://developer.apple.com/documentation/quicktime-file-format/well-known_types
|
|
5
2
|
const parseFromWellKnownType = (wellKnownType, iterator, size) => {
|
|
6
3
|
if (wellKnownType === 1) {
|
|
@@ -52,7 +49,7 @@ const parseFromWellKnownType = (wellKnownType, iterator, size) => {
|
|
|
52
49
|
iterator.discard(size);
|
|
53
50
|
return { type: 'unknown', value: null };
|
|
54
51
|
};
|
|
55
|
-
const parseIlstBox = ({ iterator, size, offset, }) => {
|
|
52
|
+
export const parseIlstBox = ({ iterator, size, offset, }) => {
|
|
56
53
|
const box = iterator.startBox(size - 8);
|
|
57
54
|
const entries = [];
|
|
58
55
|
while (iterator.counter.getOffset() < size + offset) {
|
|
@@ -83,4 +80,3 @@ const parseIlstBox = ({ iterator, size, offset, }) => {
|
|
|
83
80
|
entries,
|
|
84
81
|
};
|
|
85
82
|
};
|
|
86
|
-
exports.parseIlstBox = parseIlstBox;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const get_children_1 = require("../get-children");
|
|
5
|
-
const parseMoov = async ({ offset, size, state, }) => {
|
|
6
|
-
const children = await (0, get_children_1.getIsoBaseMediaChildren)({
|
|
1
|
+
import { getIsoBaseMediaChildren } from '../get-children';
|
|
2
|
+
export const parseMoov = async ({ offset, size, state, }) => {
|
|
3
|
+
const children = await getIsoBaseMediaChildren({
|
|
7
4
|
state,
|
|
8
5
|
size: size - 8,
|
|
9
6
|
});
|
|
@@ -14,4 +11,3 @@ const parseMoov = async ({ offset, size, state, }) => {
|
|
|
14
11
|
children,
|
|
15
12
|
};
|
|
16
13
|
};
|
|
17
|
-
exports.parseMoov = parseMoov;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const buffer_iterator_1 = require("../../buffer-iterator");
|
|
5
|
-
const to_date_1 = require("./to-date");
|
|
6
|
-
const parseMvhd = ({ iterator, offset, size, }) => {
|
|
1
|
+
import { getArrayBufferIterator } from '../../buffer-iterator';
|
|
2
|
+
import { toUnixTimestamp } from './to-date';
|
|
3
|
+
export const parseMvhd = ({ iterator, offset, size, }) => {
|
|
7
4
|
const version = iterator.getUint8();
|
|
8
5
|
// Flags, we discard them
|
|
9
6
|
iterator.discard(3);
|
|
@@ -13,13 +10,13 @@ const parseMvhd = ({ iterator, offset, size, }) => {
|
|
|
13
10
|
const durationInUnits = version === 1 ? iterator.getUint64() : iterator.getUint32();
|
|
14
11
|
const durationInSeconds = Number(durationInUnits) / timeScale;
|
|
15
12
|
const rateArray = iterator.getSlice(4);
|
|
16
|
-
const rateView =
|
|
13
|
+
const rateView = getArrayBufferIterator(rateArray, rateArray.length);
|
|
17
14
|
const rate = rateView.getInt8() * 10 +
|
|
18
15
|
rateView.getInt8() +
|
|
19
16
|
rateView.getInt8() * 0.1 +
|
|
20
17
|
rateView.getInt8() * 0.01;
|
|
21
18
|
const volumeArray = iterator.getSlice(2);
|
|
22
|
-
const volumeView =
|
|
19
|
+
const volumeView = getArrayBufferIterator(volumeArray, volumeArray.length);
|
|
23
20
|
const volume = volumeView.getInt8() + volumeView.getInt8() * 0.1;
|
|
24
21
|
// reserved 16bit
|
|
25
22
|
iterator.discard(2);
|
|
@@ -48,8 +45,8 @@ const parseMvhd = ({ iterator, offset, size, }) => {
|
|
|
48
45
|
throw new Error('expected 0 bytes ' + bytesRemaining);
|
|
49
46
|
}
|
|
50
47
|
return {
|
|
51
|
-
creationTime:
|
|
52
|
-
modificationTime:
|
|
48
|
+
creationTime: toUnixTimestamp(Number(creationTime)),
|
|
49
|
+
modificationTime: toUnixTimestamp(Number(modificationTime)),
|
|
53
50
|
timeScale,
|
|
54
51
|
durationInUnits: Number(durationInUnits),
|
|
55
52
|
durationInSeconds,
|
|
@@ -62,4 +59,3 @@ const parseMvhd = ({ iterator, offset, size, }) => {
|
|
|
62
59
|
offset,
|
|
63
60
|
};
|
|
64
61
|
};
|
|
65
|
-
exports.parseMvhd = parseMvhd;
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const mdat_1 = require("./mdat/mdat");
|
|
5
|
-
const process_box_1 = require("./process-box");
|
|
6
|
-
const parseIsoBaseMedia = async (state) => {
|
|
1
|
+
import { parseMdatSection } from './mdat/mdat';
|
|
2
|
+
import { processBox } from './process-box';
|
|
3
|
+
export const parseIsoBaseMedia = async (state) => {
|
|
7
4
|
const videoSectionState = state.videoSection.isInVideoSectionState(state.iterator);
|
|
8
5
|
if (videoSectionState === 'in-section') {
|
|
9
|
-
const skipTo = await
|
|
6
|
+
const skipTo = await parseMdatSection(state);
|
|
10
7
|
return skipTo;
|
|
11
8
|
}
|
|
12
|
-
const result = await
|
|
9
|
+
const result = await processBox(state);
|
|
13
10
|
if (result) {
|
|
14
11
|
state.getIsoStructure().boxes.push(result);
|
|
15
12
|
}
|
|
16
13
|
return null;
|
|
17
14
|
};
|
|
18
|
-
exports.parseIsoBaseMedia = parseIsoBaseMedia;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const buffer_iterator_1 = require("../../buffer-iterator");
|
|
5
|
-
const parseIccProfile = (data) => {
|
|
6
|
-
const iterator = (0, buffer_iterator_1.getArrayBufferIterator)(data, Infinity);
|
|
1
|
+
import { getArrayBufferIterator } from '../../buffer-iterator';
|
|
2
|
+
export const parseIccProfile = (data) => {
|
|
3
|
+
const iterator = getArrayBufferIterator(data, Infinity);
|
|
7
4
|
const size = iterator.getUint32();
|
|
8
5
|
if (size !== data.length) {
|
|
9
6
|
throw new Error('Invalid ICC profile size');
|
|
@@ -52,7 +49,7 @@ const parseIccProfile = (data) => {
|
|
|
52
49
|
entry.tag === 'gXYZ' ||
|
|
53
50
|
entry.tag === 'bXYZ' ||
|
|
54
51
|
entry.tag === 'wtpt') {
|
|
55
|
-
const it =
|
|
52
|
+
const it = getArrayBufferIterator(found, Infinity);
|
|
56
53
|
it.discard(4);
|
|
57
54
|
const x = it.getInt32() / 65536;
|
|
58
55
|
const y = it.getInt32() / 65536;
|
|
@@ -112,4 +109,3 @@ const parseIccProfile = (data) => {
|
|
|
112
109
|
iterator.destroy();
|
|
113
110
|
return profile;
|
|
114
111
|
};
|
|
115
|
-
exports.parseIccProfile = parseIccProfile;
|
|
@@ -1,37 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
const trak_1 = require("./trak/trak");
|
|
33
|
-
const trun_1 = require("./trun");
|
|
34
|
-
const processBox = async (state) => {
|
|
1
|
+
import { Log } from '../../log';
|
|
2
|
+
import { registerAudioTrack, registerVideoTrack } from '../../register-track';
|
|
3
|
+
import { parseEsds } from './esds/esds';
|
|
4
|
+
import { parseFtyp } from './ftyp';
|
|
5
|
+
import { getIsoBaseMediaChildren } from './get-children';
|
|
6
|
+
import { makeBaseMediaTrack } from './make-track';
|
|
7
|
+
import { parseMdhd } from './mdhd';
|
|
8
|
+
import { parseHdlr } from './meta/hdlr';
|
|
9
|
+
import { parseIlstBox } from './meta/ilst';
|
|
10
|
+
import { parseMoov } from './moov/moov';
|
|
11
|
+
import { parseMvhd } from './mvhd';
|
|
12
|
+
import { parseAv1C } from './stsd/av1c';
|
|
13
|
+
import { parseAvcc } from './stsd/avcc';
|
|
14
|
+
import { parseColorParameterBox } from './stsd/colr';
|
|
15
|
+
import { parseCtts } from './stsd/ctts';
|
|
16
|
+
import { parseHvcc } from './stsd/hvcc';
|
|
17
|
+
import { parseKeys } from './stsd/keys';
|
|
18
|
+
import { parseMebx } from './stsd/mebx';
|
|
19
|
+
import { parsePasp } from './stsd/pasp';
|
|
20
|
+
import { parseStco } from './stsd/stco';
|
|
21
|
+
import { parseStsc } from './stsd/stsc';
|
|
22
|
+
import { parseStsd } from './stsd/stsd';
|
|
23
|
+
import { parseStss } from './stsd/stss';
|
|
24
|
+
import { parseStsz } from './stsd/stsz';
|
|
25
|
+
import { parseStts } from './stsd/stts';
|
|
26
|
+
import { parseTfdt } from './tfdt';
|
|
27
|
+
import { getTfhd } from './tfhd';
|
|
28
|
+
import { parseTkhd } from './tkhd';
|
|
29
|
+
import { parseTrak } from './trak/trak';
|
|
30
|
+
import { parseTrun } from './trun';
|
|
31
|
+
export const processBox = async (state) => {
|
|
35
32
|
const { iterator } = state;
|
|
36
33
|
const fileOffset = iterator.counter.getOffset();
|
|
37
34
|
const { returnToCheckpoint } = iterator.startCheckpoint();
|
|
@@ -52,7 +49,7 @@ const processBox = async (state) => {
|
|
|
52
49
|
}
|
|
53
50
|
const boxType = iterator.getByteString(4, false);
|
|
54
51
|
const boxSize = boxSizeRaw === 1 ? iterator.getEightByteNumber() : boxSizeRaw;
|
|
55
|
-
|
|
52
|
+
Log.trace(state.logLevel, 'Found box', boxType, boxSize);
|
|
56
53
|
const headerLength = iterator.counter.getOffset() - startOff;
|
|
57
54
|
if (boxType === 'mdat') {
|
|
58
55
|
state.videoSection.setVideoSection({
|
|
@@ -66,42 +63,42 @@ const processBox = async (state) => {
|
|
|
66
63
|
return null;
|
|
67
64
|
}
|
|
68
65
|
if (boxType === 'ftyp') {
|
|
69
|
-
return
|
|
66
|
+
return parseFtyp({ iterator, size: boxSize, offset: fileOffset });
|
|
70
67
|
}
|
|
71
68
|
if (boxType === 'colr') {
|
|
72
|
-
return
|
|
69
|
+
return parseColorParameterBox({
|
|
73
70
|
iterator,
|
|
74
71
|
size: boxSize,
|
|
75
72
|
});
|
|
76
73
|
}
|
|
77
74
|
if (boxType === 'mvhd') {
|
|
78
|
-
return
|
|
75
|
+
return parseMvhd({ iterator, offset: fileOffset, size: boxSize });
|
|
79
76
|
}
|
|
80
77
|
if (boxType === 'tkhd') {
|
|
81
|
-
return
|
|
78
|
+
return parseTkhd({ iterator, offset: fileOffset, size: boxSize });
|
|
82
79
|
}
|
|
83
80
|
if (boxType === 'trun') {
|
|
84
|
-
return
|
|
81
|
+
return parseTrun({ iterator, offset: fileOffset, size: boxSize });
|
|
85
82
|
}
|
|
86
83
|
if (boxType === 'tfdt') {
|
|
87
|
-
return
|
|
84
|
+
return parseTfdt({ iterator, size: boxSize, offset: fileOffset });
|
|
88
85
|
}
|
|
89
86
|
if (boxType === 'stsd') {
|
|
90
|
-
return
|
|
87
|
+
return parseStsd({
|
|
91
88
|
offset: fileOffset,
|
|
92
89
|
size: boxSize,
|
|
93
90
|
state,
|
|
94
91
|
});
|
|
95
92
|
}
|
|
96
93
|
if (boxType === 'stsz') {
|
|
97
|
-
return
|
|
94
|
+
return parseStsz({
|
|
98
95
|
iterator,
|
|
99
96
|
offset: fileOffset,
|
|
100
97
|
size: boxSize,
|
|
101
98
|
});
|
|
102
99
|
}
|
|
103
100
|
if (boxType === 'stco' || boxType === 'co64') {
|
|
104
|
-
return
|
|
101
|
+
return parseStco({
|
|
105
102
|
iterator,
|
|
106
103
|
offset: fileOffset,
|
|
107
104
|
size: boxSize,
|
|
@@ -109,48 +106,48 @@ const processBox = async (state) => {
|
|
|
109
106
|
});
|
|
110
107
|
}
|
|
111
108
|
if (boxType === 'pasp') {
|
|
112
|
-
return
|
|
109
|
+
return parsePasp({
|
|
113
110
|
iterator,
|
|
114
111
|
offset: fileOffset,
|
|
115
112
|
size: boxSize,
|
|
116
113
|
});
|
|
117
114
|
}
|
|
118
115
|
if (boxType === 'stss') {
|
|
119
|
-
return
|
|
116
|
+
return parseStss({
|
|
120
117
|
iterator,
|
|
121
118
|
offset: fileOffset,
|
|
122
119
|
boxSize,
|
|
123
120
|
});
|
|
124
121
|
}
|
|
125
122
|
if (boxType === 'ctts') {
|
|
126
|
-
return
|
|
123
|
+
return parseCtts({
|
|
127
124
|
iterator,
|
|
128
125
|
offset: fileOffset,
|
|
129
126
|
size: boxSize,
|
|
130
127
|
});
|
|
131
128
|
}
|
|
132
129
|
if (boxType === 'stsc') {
|
|
133
|
-
return
|
|
130
|
+
return parseStsc({
|
|
134
131
|
iterator,
|
|
135
132
|
offset: fileOffset,
|
|
136
133
|
size: boxSize,
|
|
137
134
|
});
|
|
138
135
|
}
|
|
139
136
|
if (boxType === 'mebx') {
|
|
140
|
-
return
|
|
137
|
+
return parseMebx({
|
|
141
138
|
offset: fileOffset,
|
|
142
139
|
size: boxSize,
|
|
143
140
|
state,
|
|
144
141
|
});
|
|
145
142
|
}
|
|
146
143
|
if (boxType === 'hdlr') {
|
|
147
|
-
return
|
|
144
|
+
return parseHdlr({ iterator, size: boxSize, offset: fileOffset });
|
|
148
145
|
}
|
|
149
146
|
if (boxType === 'keys') {
|
|
150
|
-
return
|
|
147
|
+
return parseKeys({ iterator, size: boxSize, offset: fileOffset });
|
|
151
148
|
}
|
|
152
149
|
if (boxType === 'ilst') {
|
|
153
|
-
return
|
|
150
|
+
return parseIlstBox({
|
|
154
151
|
iterator,
|
|
155
152
|
offset: fileOffset,
|
|
156
153
|
size: boxSize,
|
|
@@ -162,11 +159,11 @@ const processBox = async (state) => {
|
|
|
162
159
|
return null;
|
|
163
160
|
}
|
|
164
161
|
if (state.iso.moov.getMoovBox()) {
|
|
165
|
-
|
|
162
|
+
Log.verbose(state.logLevel, 'Moov box already parsed, skipping');
|
|
166
163
|
iterator.discard(boxSize - 8);
|
|
167
164
|
return null;
|
|
168
165
|
}
|
|
169
|
-
const box = await
|
|
166
|
+
const box = await parseMoov({
|
|
170
167
|
offset: fileOffset,
|
|
171
168
|
size: boxSize,
|
|
172
169
|
state,
|
|
@@ -175,21 +172,21 @@ const processBox = async (state) => {
|
|
|
175
172
|
return box;
|
|
176
173
|
}
|
|
177
174
|
if (boxType === 'trak') {
|
|
178
|
-
const box = await
|
|
175
|
+
const box = await parseTrak({
|
|
179
176
|
size: boxSize,
|
|
180
177
|
offsetAtStart: fileOffset,
|
|
181
178
|
state,
|
|
182
179
|
});
|
|
183
|
-
const transformedTrack =
|
|
180
|
+
const transformedTrack = makeBaseMediaTrack(box);
|
|
184
181
|
if (transformedTrack && transformedTrack.type === 'video') {
|
|
185
|
-
await
|
|
182
|
+
await registerVideoTrack({
|
|
186
183
|
state,
|
|
187
184
|
track: transformedTrack,
|
|
188
185
|
container: 'mp4',
|
|
189
186
|
});
|
|
190
187
|
}
|
|
191
188
|
if (transformedTrack && transformedTrack.type === 'audio') {
|
|
192
|
-
await
|
|
189
|
+
await registerAudioTrack({
|
|
193
190
|
state,
|
|
194
191
|
track: transformedTrack,
|
|
195
192
|
container: 'mp4',
|
|
@@ -198,47 +195,47 @@ const processBox = async (state) => {
|
|
|
198
195
|
return box;
|
|
199
196
|
}
|
|
200
197
|
if (boxType === 'stts') {
|
|
201
|
-
return
|
|
198
|
+
return parseStts({
|
|
202
199
|
data: iterator,
|
|
203
200
|
size: boxSize,
|
|
204
201
|
fileOffset,
|
|
205
202
|
});
|
|
206
203
|
}
|
|
207
204
|
if (boxType === 'avcC') {
|
|
208
|
-
return
|
|
205
|
+
return parseAvcc({
|
|
209
206
|
data: iterator,
|
|
210
207
|
size: boxSize,
|
|
211
208
|
});
|
|
212
209
|
}
|
|
213
210
|
if (boxType === 'av1C') {
|
|
214
|
-
return
|
|
211
|
+
return parseAv1C({
|
|
215
212
|
data: iterator,
|
|
216
213
|
size: boxSize,
|
|
217
214
|
});
|
|
218
215
|
}
|
|
219
216
|
if (boxType === 'hvcC') {
|
|
220
|
-
return
|
|
217
|
+
return parseHvcc({
|
|
221
218
|
data: iterator,
|
|
222
219
|
size: boxSize,
|
|
223
220
|
offset: fileOffset,
|
|
224
221
|
});
|
|
225
222
|
}
|
|
226
223
|
if (boxType === 'tfhd') {
|
|
227
|
-
return
|
|
224
|
+
return getTfhd({
|
|
228
225
|
iterator,
|
|
229
226
|
offset: fileOffset,
|
|
230
227
|
size: boxSize,
|
|
231
228
|
});
|
|
232
229
|
}
|
|
233
230
|
if (boxType === 'mdhd') {
|
|
234
|
-
return
|
|
231
|
+
return parseMdhd({
|
|
235
232
|
data: iterator,
|
|
236
233
|
size: boxSize,
|
|
237
234
|
fileOffset,
|
|
238
235
|
});
|
|
239
236
|
}
|
|
240
237
|
if (boxType === 'esds') {
|
|
241
|
-
return
|
|
238
|
+
return parseEsds({
|
|
242
239
|
data: iterator,
|
|
243
240
|
size: boxSize,
|
|
244
241
|
fileOffset,
|
|
@@ -254,7 +251,7 @@ const processBox = async (state) => {
|
|
|
254
251
|
boxType === 'wave' ||
|
|
255
252
|
boxType === 'traf' ||
|
|
256
253
|
boxType === 'stsb') {
|
|
257
|
-
const children = await
|
|
254
|
+
const children = await getIsoBaseMediaChildren({
|
|
258
255
|
state,
|
|
259
256
|
size: boxSize - 8,
|
|
260
257
|
});
|
|
@@ -275,4 +272,3 @@ const processBox = async (state) => {
|
|
|
275
272
|
offset: fileOffset,
|
|
276
273
|
};
|
|
277
274
|
};
|
|
278
|
-
exports.processBox = processBox;
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseAv1C = void 0;
|
|
4
|
-
const parseAv1C = ({ data, size, }) => {
|
|
1
|
+
export const parseAv1C = ({ data, size, }) => {
|
|
5
2
|
return {
|
|
6
3
|
type: 'av1C-box',
|
|
7
4
|
privateData: data.getSlice(size - 8),
|
|
8
5
|
};
|
|
9
6
|
};
|
|
10
|
-
exports.parseAv1C = parseAv1C;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseAvcc = void 0;
|
|
4
|
-
const parseAvcc = ({ data, size, }) => {
|
|
1
|
+
export const parseAvcc = ({ data, size, }) => {
|
|
5
2
|
const confVersion = data.getUint8();
|
|
6
3
|
if (confVersion !== 1) {
|
|
7
4
|
throw new Error(`Unsupported AVCC version ${confVersion}`);
|
|
@@ -18,4 +15,3 @@ const parseAvcc = ({ data, size, }) => {
|
|
|
18
15
|
configurationString: str,
|
|
19
16
|
};
|
|
20
17
|
};
|
|
21
|
-
exports.parseAvcc = parseAvcc;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.parseColorParameterBox = void 0;
|
|
4
|
-
const parse_icc_profile_1 = require("../parse-icc-profile");
|
|
5
|
-
const parseColorParameterBox = ({ iterator, size, }) => {
|
|
1
|
+
import { parseIccProfile } from '../parse-icc-profile';
|
|
2
|
+
export const parseColorParameterBox = ({ iterator, size, }) => {
|
|
6
3
|
const byteString = iterator.getByteString(4, false);
|
|
7
4
|
if (byteString === 'nclx') {
|
|
8
5
|
const primaries = iterator.getUint16();
|
|
@@ -39,9 +36,8 @@ const parseColorParameterBox = ({ iterator, size, }) => {
|
|
|
39
36
|
type: 'colr-box',
|
|
40
37
|
colorType: 'icc-profile',
|
|
41
38
|
profile,
|
|
42
|
-
parsed:
|
|
39
|
+
parsed: parseIccProfile(profile),
|
|
43
40
|
};
|
|
44
41
|
}
|
|
45
42
|
throw new Error('Unexpected box type ' + byteString);
|
|
46
43
|
};
|
|
47
|
-
exports.parseColorParameterBox = parseColorParameterBox;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseCtts = void 0;
|
|
4
|
-
const parseCtts = ({ iterator, offset, size, }) => {
|
|
1
|
+
export const parseCtts = ({ iterator, offset, size, }) => {
|
|
5
2
|
const version = iterator.getUint8();
|
|
6
3
|
if (version !== 0 && version !== 1) {
|
|
7
4
|
throw new Error(`Unsupported CTTS version ${version}`);
|
|
@@ -31,4 +28,3 @@ const parseCtts = ({ iterator, offset, size, }) => {
|
|
|
31
28
|
entries,
|
|
32
29
|
};
|
|
33
30
|
};
|
|
34
|
-
exports.parseCtts = parseCtts;
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.parseHvcc = void 0;
|
|
4
|
-
const make_hvc1_codec_strings_1 = require("../../../make-hvc1-codec-strings");
|
|
5
|
-
const parseHvcc = ({ data, size, offset, }) => {
|
|
1
|
+
import { getHvc1CodecString } from '../../../make-hvc1-codec-strings';
|
|
2
|
+
export const parseHvcc = ({ data, size, offset, }) => {
|
|
6
3
|
const privateData = data.getSlice(size - 8);
|
|
7
4
|
data.counter.decrement(size - 8);
|
|
8
|
-
const constraintString =
|
|
5
|
+
const constraintString = getHvc1CodecString(data);
|
|
9
6
|
const remaining = size - (data.counter.getOffset() - offset);
|
|
10
7
|
data.discard(remaining);
|
|
11
8
|
return {
|
|
@@ -14,4 +11,3 @@ const parseHvcc = ({ data, size, offset, }) => {
|
|
|
14
11
|
configurationString: constraintString,
|
|
15
12
|
};
|
|
16
13
|
};
|
|
17
|
-
exports.parseHvcc = parseHvcc;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseKeys = void 0;
|
|
4
|
-
const parseKeys = ({ iterator, offset, size, }) => {
|
|
1
|
+
export const parseKeys = ({ iterator, offset, size, }) => {
|
|
5
2
|
const box = iterator.startBox(size - 8);
|
|
6
3
|
const version = iterator.getUint8();
|
|
7
4
|
// flags
|
|
@@ -32,4 +29,3 @@ const parseKeys = ({ iterator, offset, size, }) => {
|
|
|
32
29
|
entries,
|
|
33
30
|
};
|
|
34
31
|
};
|
|
35
|
-
exports.parseKeys = parseKeys;
|