@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
package/dist/get-is-hdr.js
CHANGED
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.hasHdr = exports.getIsHdr = void 0;
|
|
4
|
-
const get_tracks_1 = require("./get-tracks");
|
|
1
|
+
import { getHasTracks, getTracks } from './get-tracks';
|
|
5
2
|
const isVideoTrackHdr = (track) => {
|
|
6
3
|
return (track.color.matrixCoefficients === 'bt2020' &&
|
|
7
4
|
track.color.transferCharacteristics === 'arib-std-b67' &&
|
|
8
5
|
track.color.primaries === 'bt2020');
|
|
9
6
|
};
|
|
10
|
-
const getIsHdr = (state) => {
|
|
11
|
-
const { videoTracks } =
|
|
7
|
+
export const getIsHdr = (state) => {
|
|
8
|
+
const { videoTracks } = getTracks(state);
|
|
12
9
|
return videoTracks.some((track) => isVideoTrackHdr(track));
|
|
13
10
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return (0, get_tracks_1.getHasTracks)(state);
|
|
11
|
+
export const hasHdr = (state) => {
|
|
12
|
+
return getHasTracks(state);
|
|
17
13
|
};
|
|
18
|
-
exports.hasHdr = hasHdr;
|
package/dist/get-keyframes.js
CHANGED
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const get_keyframes_1 = require("./containers/iso-base-media/get-keyframes");
|
|
5
|
-
const get_tracks_1 = require("./get-tracks");
|
|
6
|
-
const getKeyframes = (state) => {
|
|
1
|
+
import { getKeyframesFromIsoBaseMedia } from './containers/iso-base-media/get-keyframes';
|
|
2
|
+
import { getHasTracks } from './get-tracks';
|
|
3
|
+
export const getKeyframes = (state) => {
|
|
7
4
|
const structure = state.getStructure();
|
|
8
5
|
if (structure.type === 'iso-base-media') {
|
|
9
|
-
return
|
|
6
|
+
return getKeyframesFromIsoBaseMedia(state);
|
|
10
7
|
}
|
|
11
8
|
return null;
|
|
12
9
|
};
|
|
13
|
-
|
|
14
|
-
const hasKeyframes = (parserState) => {
|
|
10
|
+
export const hasKeyframes = (parserState) => {
|
|
15
11
|
const structure = parserState.getStructure();
|
|
16
12
|
if (structure.type === 'iso-base-media') {
|
|
17
|
-
return
|
|
13
|
+
return getHasTracks(parserState);
|
|
18
14
|
}
|
|
19
15
|
// Has, but will be null
|
|
20
16
|
return true;
|
|
21
17
|
};
|
|
22
|
-
exports.hasKeyframes = hasKeyframes;
|
package/dist/get-location.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getLocation = void 0;
|
|
4
|
-
exports.parseLocation = parseLocation;
|
|
5
|
-
const get_metadata_1 = require("./metadata/get-metadata");
|
|
6
|
-
function parseLocation(locationString) {
|
|
1
|
+
import { getMetadata } from './metadata/get-metadata';
|
|
2
|
+
export function parseLocation(locationString) {
|
|
7
3
|
const locationPattern = /^([+-]\d{2}\.?\d{0,10})([+-]\d{3}\.?\d{0,10})([+-]\d+(\.\d+)?)?\/$/;
|
|
8
4
|
const match = locationString.match(locationPattern);
|
|
9
5
|
if (!match) {
|
|
@@ -19,8 +15,8 @@ function parseLocation(locationString) {
|
|
|
19
15
|
altitude,
|
|
20
16
|
};
|
|
21
17
|
}
|
|
22
|
-
const getLocation = (state) => {
|
|
23
|
-
const metadata =
|
|
18
|
+
export const getLocation = (state) => {
|
|
19
|
+
const metadata = getMetadata(state);
|
|
24
20
|
const locationEntry = metadata.find((entry) => entry.key === 'com.apple.quicktime.location.ISO6709');
|
|
25
21
|
const horizontalAccuracy = metadata.find((entry) => entry.key === 'com.apple.quicktime.location.accuracy.horizontal');
|
|
26
22
|
if (locationEntry) {
|
|
@@ -37,4 +33,3 @@ const getLocation = (state) => {
|
|
|
37
33
|
}
|
|
38
34
|
return null;
|
|
39
35
|
};
|
|
40
|
-
exports.getLocation = getLocation;
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.hasNumberOfAudioChannels = exports.getNumberOfAudioChannels = void 0;
|
|
4
|
-
const getNumberOfAudioChannels = (state) => {
|
|
1
|
+
export const getNumberOfAudioChannels = (state) => {
|
|
5
2
|
var _a, _b;
|
|
6
3
|
return ((_b = (_a = state.callbacks.tracks.getTracks().find((track) => {
|
|
7
4
|
return track.type === 'audio';
|
|
8
5
|
})) === null || _a === void 0 ? void 0 : _a.numberOfChannels) !== null && _b !== void 0 ? _b : null);
|
|
9
6
|
};
|
|
10
|
-
|
|
11
|
-
const hasNumberOfAudioChannels = (state) => {
|
|
7
|
+
export const hasNumberOfAudioChannels = (state) => {
|
|
12
8
|
return state.callbacks.tracks.hasAllTracks();
|
|
13
9
|
};
|
|
14
|
-
exports.hasNumberOfAudioChannels = hasNumberOfAudioChannels;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const traversal_1 = require("./containers/iso-base-media/traversal");
|
|
5
|
-
const getStsdVideoConfig = (trakBox) => {
|
|
6
|
-
const stsdBox = (0, traversal_1.getStsdBox)(trakBox);
|
|
1
|
+
import { getStsdBox } from './containers/iso-base-media/traversal';
|
|
2
|
+
export const getStsdVideoConfig = (trakBox) => {
|
|
3
|
+
const stsdBox = getStsdBox(trakBox);
|
|
7
4
|
if (!stsdBox) {
|
|
8
5
|
return null;
|
|
9
6
|
}
|
|
@@ -13,9 +10,8 @@ const getStsdVideoConfig = (trakBox) => {
|
|
|
13
10
|
}
|
|
14
11
|
return videoConfig;
|
|
15
12
|
};
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
const videoConfig = (0, exports.getStsdVideoConfig)(trakBox);
|
|
13
|
+
export const getAvccBox = (trakBox) => {
|
|
14
|
+
const videoConfig = getStsdVideoConfig(trakBox);
|
|
19
15
|
if (!videoConfig) {
|
|
20
16
|
return null;
|
|
21
17
|
}
|
|
@@ -25,9 +21,8 @@ const getAvccBox = (trakBox) => {
|
|
|
25
21
|
}
|
|
26
22
|
return avccBox;
|
|
27
23
|
};
|
|
28
|
-
|
|
29
|
-
const
|
|
30
|
-
const videoConfig = (0, exports.getStsdVideoConfig)(trakBox);
|
|
24
|
+
export const getAv1CBox = (trakBox) => {
|
|
25
|
+
const videoConfig = getStsdVideoConfig(trakBox);
|
|
31
26
|
if (!videoConfig) {
|
|
32
27
|
return null;
|
|
33
28
|
}
|
|
@@ -37,9 +32,8 @@ const getAv1CBox = (trakBox) => {
|
|
|
37
32
|
}
|
|
38
33
|
return av1cBox;
|
|
39
34
|
};
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
const videoConfig = (0, exports.getStsdVideoConfig)(trakBox);
|
|
35
|
+
export const getPaspBox = (trakBox) => {
|
|
36
|
+
const videoConfig = getStsdVideoConfig(trakBox);
|
|
43
37
|
if (!videoConfig) {
|
|
44
38
|
return null;
|
|
45
39
|
}
|
|
@@ -49,9 +43,8 @@ const getPaspBox = (trakBox) => {
|
|
|
49
43
|
}
|
|
50
44
|
return paspBox;
|
|
51
45
|
};
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
const videoConfig = (0, exports.getStsdVideoConfig)(trakBox);
|
|
46
|
+
export const getHvccBox = (trakBox) => {
|
|
47
|
+
const videoConfig = getStsdVideoConfig(trakBox);
|
|
55
48
|
if (!videoConfig) {
|
|
56
49
|
return null;
|
|
57
50
|
}
|
|
@@ -61,9 +54,8 @@ const getHvccBox = (trakBox) => {
|
|
|
61
54
|
}
|
|
62
55
|
return hvccBox;
|
|
63
56
|
};
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
const paspBox = (0, exports.getPaspBox)(trakBox);
|
|
57
|
+
export const getSampleAspectRatio = (trakBox) => {
|
|
58
|
+
const paspBox = getPaspBox(trakBox);
|
|
67
59
|
if (!paspBox) {
|
|
68
60
|
return {
|
|
69
61
|
numerator: 1,
|
|
@@ -75,16 +67,14 @@ const getSampleAspectRatio = (trakBox) => {
|
|
|
75
67
|
denominator: paspBox.vSpacing,
|
|
76
68
|
};
|
|
77
69
|
};
|
|
78
|
-
|
|
79
|
-
const getColrBox = (videoSample) => {
|
|
70
|
+
export const getColrBox = (videoSample) => {
|
|
80
71
|
const colrBox = videoSample.descriptors.find((c) => c.type === 'colr-box');
|
|
81
72
|
if (!colrBox || colrBox.type !== 'colr-box') {
|
|
82
73
|
return null;
|
|
83
74
|
}
|
|
84
75
|
return colrBox;
|
|
85
76
|
};
|
|
86
|
-
|
|
87
|
-
const applyTkhdBox = (aspectRatioApplied, tkhdBox) => {
|
|
77
|
+
export const applyTkhdBox = (aspectRatioApplied, tkhdBox) => {
|
|
88
78
|
if (tkhdBox === null || tkhdBox.rotation === 0) {
|
|
89
79
|
return {
|
|
90
80
|
displayAspectWidth: aspectRatioApplied.width,
|
|
@@ -102,8 +92,7 @@ const applyTkhdBox = (aspectRatioApplied, tkhdBox) => {
|
|
|
102
92
|
displayAspectHeight: aspectRatioApplied.height,
|
|
103
93
|
};
|
|
104
94
|
};
|
|
105
|
-
|
|
106
|
-
const applyAspectRatios = ({ dimensions, sampleAspectRatio, displayAspectRatio, }) => {
|
|
95
|
+
export const applyAspectRatios = ({ dimensions, sampleAspectRatio, displayAspectRatio, }) => {
|
|
107
96
|
if (displayAspectRatio.numerator === 0) {
|
|
108
97
|
return dimensions;
|
|
109
98
|
}
|
|
@@ -118,7 +107,6 @@ const applyAspectRatios = ({ dimensions, sampleAspectRatio, displayAspectRatio,
|
|
|
118
107
|
height: newHeight,
|
|
119
108
|
};
|
|
120
109
|
};
|
|
121
|
-
exports.applyAspectRatios = applyAspectRatios;
|
|
122
110
|
function gcd(a, b) {
|
|
123
111
|
return b === 0 ? a : gcd(b, a % b);
|
|
124
112
|
}
|
|
@@ -129,9 +117,8 @@ function reduceFraction(numerator, denominator) {
|
|
|
129
117
|
denominator: denominator / greatestCommonDivisor,
|
|
130
118
|
};
|
|
131
119
|
}
|
|
132
|
-
const getDisplayAspectRatio = ({ sampleAspectRatio, nativeDimensions, }) => {
|
|
120
|
+
export const getDisplayAspectRatio = ({ sampleAspectRatio, nativeDimensions, }) => {
|
|
133
121
|
const num = Math.round(nativeDimensions.width * sampleAspectRatio.numerator);
|
|
134
122
|
const den = Math.round(nativeDimensions.height * sampleAspectRatio.denominator);
|
|
135
123
|
return reduceFraction(num, den);
|
|
136
124
|
};
|
|
137
|
-
exports.getDisplayAspectRatio = getDisplayAspectRatio;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// If an audio is of type, LPCM, the data structure will include 44100-48000 samples per second
|
|
3
2
|
// We need to handle this case differently and treat each chunk as a sample instead
|
|
4
|
-
|
|
5
|
-
exports.getSamplePositionsFromLpcm = void 0;
|
|
6
|
-
const traversal_1 = require("./containers/iso-base-media/traversal");
|
|
3
|
+
import { getStcoBox, getStscBox, getStszBox, } from './containers/iso-base-media/traversal';
|
|
7
4
|
// example video: mehmet.mov
|
|
8
|
-
const getSamplePositionsFromLpcm = (trakBox) => {
|
|
9
|
-
const stscBox =
|
|
10
|
-
const stszBox =
|
|
11
|
-
const stcoBox =
|
|
5
|
+
export const getSamplePositionsFromLpcm = (trakBox) => {
|
|
6
|
+
const stscBox = getStscBox(trakBox);
|
|
7
|
+
const stszBox = getStszBox(trakBox);
|
|
8
|
+
const stcoBox = getStcoBox(trakBox);
|
|
12
9
|
if (!stscBox) {
|
|
13
10
|
throw new Error('Expected stsc box in trak box');
|
|
14
11
|
}
|
|
@@ -43,4 +40,3 @@ const getSamplePositionsFromLpcm = (trakBox) => {
|
|
|
43
40
|
}
|
|
44
41
|
return samples;
|
|
45
42
|
};
|
|
46
|
-
exports.getSamplePositionsFromLpcm = getSamplePositionsFromLpcm;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSamplePositions = void 0;
|
|
4
|
-
const getSamplePositions = ({ stcoBox, stszBox, stscBox, stssBox, sttsBox, cttsBox, }) => {
|
|
1
|
+
export const getSamplePositions = ({ stcoBox, stszBox, stscBox, stssBox, sttsBox, cttsBox, }) => {
|
|
5
2
|
var _a;
|
|
6
3
|
const sttsDeltas = [];
|
|
7
4
|
for (const distribution of sttsBox.sampleDistribution) {
|
|
@@ -52,4 +49,3 @@ const getSamplePositions = ({ stcoBox, stszBox, stscBox, stssBox, sttsBox, cttsB
|
|
|
52
49
|
}
|
|
53
50
|
return samples;
|
|
54
51
|
};
|
|
55
|
-
exports.getSamplePositions = getSamplePositions;
|
package/dist/get-sample-rate.js
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.hasSampleRate = exports.getSampleRate = void 0;
|
|
4
|
-
const getSampleRate = (state) => {
|
|
1
|
+
export const getSampleRate = (state) => {
|
|
5
2
|
var _a, _b;
|
|
6
3
|
return ((_b = (_a = state.callbacks.tracks.getTracks().find((track) => {
|
|
7
4
|
return track.type === 'audio';
|
|
8
5
|
})) === null || _a === void 0 ? void 0 : _a.sampleRate) !== null && _b !== void 0 ? _b : null);
|
|
9
6
|
};
|
|
10
|
-
|
|
11
|
-
const hasSampleRate = (state) => {
|
|
7
|
+
export const hasSampleRate = (state) => {
|
|
12
8
|
return state.callbacks.tracks.hasAllTracks();
|
|
13
9
|
};
|
|
14
|
-
exports.hasSampleRate = hasSampleRate;
|
package/dist/get-tracks.d.ts
CHANGED
|
@@ -57,6 +57,11 @@ export type Track = VideoTrack | AudioTrack | OtherTrack;
|
|
|
57
57
|
export declare const getNumberOfTracks: (moovBox: MoovBox) => number;
|
|
58
58
|
export declare const isoBaseMediaHasTracks: (state: ParserState) => boolean;
|
|
59
59
|
export declare const getHasTracks: (state: ParserState) => boolean;
|
|
60
|
+
export declare const getTracksFromMoovBox: (moovBox: MoovBox) => {
|
|
61
|
+
videoTracks: VideoTrack[];
|
|
62
|
+
audioTracks: AudioTrack[];
|
|
63
|
+
otherTracks: OtherTrack[];
|
|
64
|
+
};
|
|
60
65
|
export declare const getTracksFromIsoBaseMedia: (state: ParserState) => {
|
|
61
66
|
videoTracks: VideoTrack[];
|
|
62
67
|
audioTracks: AudioTrack[];
|
package/dist/get-tracks.js
CHANGED
|
@@ -1,36 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const get_ready_tracks_1 = require("./containers/webm/get-ready-tracks");
|
|
9
|
-
const getNumberOfTracks = (moovBox) => {
|
|
10
|
-
const mvHdBox = (0, traversal_1.getMvhdBox)(moovBox);
|
|
1
|
+
import { makeBaseMediaTrack } from './containers/iso-base-media/make-track';
|
|
2
|
+
import { getMoovBoxFromState, getMvhdBox, getTraks, } from './containers/iso-base-media/traversal';
|
|
3
|
+
import { getTracksFromAvi, hasAllTracksFromAvi, } from './containers/riff/get-tracks-from-avi';
|
|
4
|
+
import { getTracksFromTransportStream, hasAllTracksFromTransportStream, } from './containers/transport-stream/get-tracks';
|
|
5
|
+
import { getTracksFromMatroska, matroskaHasTracks, } from './containers/webm/get-ready-tracks';
|
|
6
|
+
export const getNumberOfTracks = (moovBox) => {
|
|
7
|
+
const mvHdBox = getMvhdBox(moovBox);
|
|
11
8
|
if (!mvHdBox) {
|
|
12
9
|
return 0;
|
|
13
10
|
}
|
|
14
11
|
return mvHdBox.nextTrackId - 1;
|
|
15
12
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return Boolean((0, traversal_1.getMoovBox)(state));
|
|
13
|
+
export const isoBaseMediaHasTracks = (state) => {
|
|
14
|
+
return Boolean(getMoovBoxFromState(state));
|
|
19
15
|
};
|
|
20
|
-
|
|
21
|
-
const getHasTracks = (state) => {
|
|
16
|
+
export const getHasTracks = (state) => {
|
|
22
17
|
const structure = state.getStructure();
|
|
23
18
|
if (structure.type === 'matroska') {
|
|
24
|
-
return
|
|
19
|
+
return matroskaHasTracks(state);
|
|
25
20
|
}
|
|
26
21
|
if (structure.type === 'iso-base-media') {
|
|
27
|
-
return
|
|
22
|
+
return isoBaseMediaHasTracks(state);
|
|
28
23
|
}
|
|
29
24
|
if (structure.type === 'riff') {
|
|
30
|
-
return
|
|
25
|
+
return hasAllTracksFromAvi(state);
|
|
31
26
|
}
|
|
32
27
|
if (structure.type === 'transport-stream') {
|
|
33
|
-
return
|
|
28
|
+
return hasAllTracksFromTransportStream(state);
|
|
34
29
|
}
|
|
35
30
|
if (structure.type === 'mp3') {
|
|
36
31
|
return state.callbacks.tracks.getTracks().length > 0;
|
|
@@ -49,12 +44,11 @@ const getHasTracks = (state) => {
|
|
|
49
44
|
}
|
|
50
45
|
throw new Error('Unknown container ' + structure);
|
|
51
46
|
};
|
|
52
|
-
exports.getHasTracks = getHasTracks;
|
|
53
47
|
const getCategorizedTracksFromMatroska = (state) => {
|
|
54
48
|
const videoTracks = [];
|
|
55
49
|
const audioTracks = [];
|
|
56
50
|
const otherTracks = [];
|
|
57
|
-
const { resolved } =
|
|
51
|
+
const { resolved } = getTracksFromMatroska({
|
|
58
52
|
state,
|
|
59
53
|
});
|
|
60
54
|
for (const track of resolved) {
|
|
@@ -74,21 +68,13 @@ const getCategorizedTracksFromMatroska = (state) => {
|
|
|
74
68
|
otherTracks,
|
|
75
69
|
};
|
|
76
70
|
};
|
|
77
|
-
const
|
|
71
|
+
export const getTracksFromMoovBox = (moovBox) => {
|
|
78
72
|
const videoTracks = [];
|
|
79
73
|
const audioTracks = [];
|
|
80
74
|
const otherTracks = [];
|
|
81
|
-
const
|
|
82
|
-
if (!moovBox) {
|
|
83
|
-
return {
|
|
84
|
-
videoTracks,
|
|
85
|
-
audioTracks,
|
|
86
|
-
otherTracks,
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
const tracks = (0, traversal_1.getTraks)(moovBox);
|
|
75
|
+
const tracks = getTraks(moovBox);
|
|
90
76
|
for (const trakBox of tracks) {
|
|
91
|
-
const track =
|
|
77
|
+
const track = makeBaseMediaTrack(trakBox);
|
|
92
78
|
if (!track) {
|
|
93
79
|
continue;
|
|
94
80
|
}
|
|
@@ -108,8 +94,18 @@ const getTracksFromIsoBaseMedia = (state) => {
|
|
|
108
94
|
otherTracks,
|
|
109
95
|
};
|
|
110
96
|
};
|
|
111
|
-
|
|
112
|
-
const
|
|
97
|
+
export const getTracksFromIsoBaseMedia = (state) => {
|
|
98
|
+
const moovBox = getMoovBoxFromState(state);
|
|
99
|
+
if (!moovBox) {
|
|
100
|
+
return {
|
|
101
|
+
videoTracks: [],
|
|
102
|
+
audioTracks: [],
|
|
103
|
+
otherTracks: [],
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
return getTracksFromMoovBox(moovBox);
|
|
107
|
+
};
|
|
108
|
+
export const defaultGetTracks = (parserState) => {
|
|
113
109
|
const tracks = parserState.callbacks.tracks.getTracks();
|
|
114
110
|
if (tracks.length === 0) {
|
|
115
111
|
throw new Error('No tracks found');
|
|
@@ -120,38 +116,35 @@ const defaultGetTracks = (parserState) => {
|
|
|
120
116
|
videoTracks: tracks.filter((t) => t.type === 'video'),
|
|
121
117
|
};
|
|
122
118
|
};
|
|
123
|
-
|
|
124
|
-
const defaultHasallTracks = (parserState) => {
|
|
119
|
+
export const defaultHasallTracks = (parserState) => {
|
|
125
120
|
try {
|
|
126
|
-
|
|
121
|
+
defaultGetTracks(parserState);
|
|
127
122
|
return true;
|
|
128
123
|
}
|
|
129
124
|
catch (_a) {
|
|
130
125
|
return false;
|
|
131
126
|
}
|
|
132
127
|
};
|
|
133
|
-
|
|
134
|
-
const getTracks = (state) => {
|
|
128
|
+
export const getTracks = (state) => {
|
|
135
129
|
const structure = state.getStructure();
|
|
136
130
|
if (structure.type === 'matroska') {
|
|
137
131
|
return getCategorizedTracksFromMatroska(state);
|
|
138
132
|
}
|
|
139
133
|
if (structure.type === 'iso-base-media') {
|
|
140
|
-
return
|
|
134
|
+
return getTracksFromIsoBaseMedia(state);
|
|
141
135
|
}
|
|
142
136
|
if (structure.type === 'riff') {
|
|
143
|
-
return
|
|
137
|
+
return getTracksFromAvi(structure, state);
|
|
144
138
|
}
|
|
145
139
|
if (structure.type === 'transport-stream') {
|
|
146
|
-
return
|
|
140
|
+
return getTracksFromTransportStream(state);
|
|
147
141
|
}
|
|
148
142
|
if (structure.type === 'mp3' ||
|
|
149
143
|
structure.type === 'wav' ||
|
|
150
144
|
structure.type === 'flac' ||
|
|
151
145
|
structure.type === 'aac' ||
|
|
152
146
|
structure.type === 'm3u') {
|
|
153
|
-
return
|
|
147
|
+
return defaultGetTracks(state);
|
|
154
148
|
}
|
|
155
149
|
throw new Error(`Unknown container${structure}`);
|
|
156
150
|
};
|
|
157
|
-
exports.getTracks = getTracks;
|
package/dist/get-video-codec.js
CHANGED
|
@@ -1,25 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const get_sample_aspect_ratio_1 = require("./get-sample-aspect-ratio");
|
|
7
|
-
const get_tracks_1 = require("./get-tracks");
|
|
8
|
-
const getVideoCodec = (state) => {
|
|
1
|
+
import { getMatrixCoefficientsFromIndex, getPrimariesFromIndex, getTransferCharacteristicsFromIndex, } from './containers/avc/color';
|
|
2
|
+
import { parseAv1PrivateData } from './containers/webm/av1-codec-private';
|
|
3
|
+
import { getAv1CBox, getAvccBox, getColrBox, getHvccBox, getStsdVideoConfig, } from './get-sample-aspect-ratio';
|
|
4
|
+
import { getHasTracks, getTracks, } from './get-tracks';
|
|
5
|
+
export const getVideoCodec = (state) => {
|
|
9
6
|
var _a, _b;
|
|
10
|
-
const track =
|
|
7
|
+
const track = getTracks(state);
|
|
11
8
|
return (_b = (_a = track.videoTracks[0]) === null || _a === void 0 ? void 0 : _a.codecWithoutConfig) !== null && _b !== void 0 ? _b : null;
|
|
12
9
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return (0, get_tracks_1.getHasTracks)(state);
|
|
10
|
+
export const hasVideoCodec = (state) => {
|
|
11
|
+
return getHasTracks(state);
|
|
16
12
|
};
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const av1cBox = (0, get_sample_aspect_ratio_1.getAv1CBox)(trakBox);
|
|
13
|
+
export const getVideoPrivateData = (trakBox) => {
|
|
14
|
+
const videoSample = getStsdVideoConfig(trakBox);
|
|
15
|
+
const avccBox = getAvccBox(trakBox);
|
|
16
|
+
const hvccBox = getHvccBox(trakBox);
|
|
17
|
+
const av1cBox = getAv1CBox(trakBox);
|
|
23
18
|
if (!videoSample) {
|
|
24
19
|
return null;
|
|
25
20
|
}
|
|
@@ -34,13 +29,12 @@ const getVideoPrivateData = (trakBox) => {
|
|
|
34
29
|
}
|
|
35
30
|
return null;
|
|
36
31
|
};
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
const videoSample = (0, get_sample_aspect_ratio_1.getStsdVideoConfig)(trakBox);
|
|
32
|
+
export const getIsoBmColrConfig = (trakBox) => {
|
|
33
|
+
const videoSample = getStsdVideoConfig(trakBox);
|
|
40
34
|
if (!videoSample) {
|
|
41
35
|
return null;
|
|
42
36
|
}
|
|
43
|
-
const colrAtom =
|
|
37
|
+
const colrAtom = getColrBox(videoSample);
|
|
44
38
|
if (!colrAtom) {
|
|
45
39
|
return null;
|
|
46
40
|
}
|
|
@@ -51,17 +45,16 @@ const getIsoBmColrConfig = (trakBox) => {
|
|
|
51
45
|
// https://github.com/bbc/qtff-parameter-editor
|
|
52
46
|
return {
|
|
53
47
|
fullRange: colrAtom.fullRangeFlag,
|
|
54
|
-
matrixCoefficients:
|
|
55
|
-
primaries:
|
|
56
|
-
transferCharacteristics:
|
|
48
|
+
matrixCoefficients: getMatrixCoefficientsFromIndex(colrAtom.matrixIndex),
|
|
49
|
+
primaries: getPrimariesFromIndex(colrAtom.primaries),
|
|
50
|
+
transferCharacteristics: getTransferCharacteristicsFromIndex(colrAtom.transfer),
|
|
57
51
|
};
|
|
58
52
|
};
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
-
const
|
|
64
|
-
const av1cBox = (0, get_sample_aspect_ratio_1.getAv1CBox)(trakBox);
|
|
53
|
+
export const getVideoCodecString = (trakBox) => {
|
|
54
|
+
const videoSample = getStsdVideoConfig(trakBox);
|
|
55
|
+
const avccBox = getAvccBox(trakBox);
|
|
56
|
+
const hvccBox = getHvccBox(trakBox);
|
|
57
|
+
const av1cBox = getAv1CBox(trakBox);
|
|
65
58
|
if (!videoSample) {
|
|
66
59
|
return null;
|
|
67
60
|
}
|
|
@@ -72,9 +65,8 @@ const getVideoCodecString = (trakBox) => {
|
|
|
72
65
|
return `${videoSample.format}.${hvccBox.configurationString}`;
|
|
73
66
|
}
|
|
74
67
|
if (av1cBox) {
|
|
75
|
-
const colrAtom =
|
|
76
|
-
return
|
|
68
|
+
const colrAtom = getColrBox(videoSample);
|
|
69
|
+
return parseAv1PrivateData(av1cBox.privateData, colrAtom);
|
|
77
70
|
}
|
|
78
71
|
return videoSample.format;
|
|
79
72
|
};
|
|
80
|
-
exports.getVideoCodecString = getVideoCodecString;
|