@remotion/media-parser 4.0.249 → 4.0.251
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/add-avc-profile-to-track.js +2 -2
- package/dist/buffer-iterator.d.ts +3 -5
- package/dist/buffer-iterator.js +66 -50
- package/dist/containers/aac/parse-aac.d.ts +3 -0
- package/dist/containers/aac/parse-aac.js +83 -0
- package/dist/containers/aac/types.d.ts +4 -0
- package/dist/{boxes → containers}/avc/key.d.ts +1 -1
- package/dist/containers/flac/get-block-size.d.ts +2 -0
- package/dist/containers/flac/get-block-size.js +26 -0
- package/dist/containers/flac/get-channel-count.d.ts +2 -0
- package/dist/containers/flac/get-channel-count.js +36 -0
- package/dist/containers/flac/get-duration-from-flac.d.ts +2 -0
- package/dist/containers/flac/get-duration-from-flac.js +15 -0
- package/dist/containers/flac/get-metadata-from-flac.d.ts +2 -0
- package/dist/containers/flac/get-metadata-from-flac.js +11 -0
- package/dist/containers/flac/get-sample-rate.d.ts +3 -0
- package/dist/containers/flac/get-sample-rate.js +60 -0
- package/dist/containers/flac/parse-flac-frame.d.ts +15 -0
- package/dist/containers/flac/parse-flac-frame.js +175 -0
- package/dist/{boxes/riff/parse-box.d.ts → containers/flac/parse-flac.d.ts} +1 -3
- package/dist/containers/flac/parse-flac.js +54 -0
- package/dist/{boxes/mp3/parse-mpeg-header.d.ts → containers/flac/parse-header.d.ts} +4 -3
- package/dist/containers/flac/parse-header.js +10 -0
- package/dist/{boxes/mp3/parse-mp3.d.ts → containers/flac/parse-metadata.d.ts} +4 -4
- package/dist/containers/flac/parse-metadata.js +24 -0
- package/dist/{boxes/webm/parse-webm-header.d.ts → containers/flac/parse-streaminfo.d.ts} +2 -4
- package/dist/containers/flac/parse-streaminfo.js +53 -0
- package/dist/containers/flac/parse-unknown-block.d.ts +8 -0
- package/dist/containers/flac/parse-unknown-block.js +11 -0
- package/dist/containers/flac/types.d.ts +26 -0
- package/dist/containers/iso-base-media/base-media-box.d.ts +40 -0
- package/dist/containers/iso-base-media/get-children.d.ts +6 -0
- package/dist/containers/iso-base-media/get-children.js +21 -0
- package/dist/{boxes → containers}/iso-base-media/get-sample-positions-from-track.d.ts +1 -1
- package/dist/containers/iso-base-media/mdat/mdat.d.ts +2 -0
- package/dist/containers/iso-base-media/mdat/mdat.js +91 -0
- package/dist/containers/iso-base-media/moov/moov.d.ts +12 -0
- package/dist/containers/iso-base-media/moov/moov.js +17 -0
- package/dist/containers/iso-base-media/parse-boxes.d.ts +3 -0
- package/dist/containers/iso-base-media/parse-boxes.js +40 -0
- package/dist/containers/iso-base-media/process-box.d.ts +3 -0
- package/dist/{boxes → containers}/iso-base-media/process-box.js +49 -147
- package/dist/{boxes → containers}/iso-base-media/stsd/mebx.d.ts +1 -6
- package/dist/containers/iso-base-media/stsd/mebx.js +22 -0
- package/dist/{boxes → containers}/iso-base-media/stsd/samples.d.ts +6 -16
- package/dist/{boxes → containers}/iso-base-media/stsd/samples.js +26 -71
- package/dist/{boxes → containers}/iso-base-media/stsd/stsd.d.ts +1 -6
- package/dist/{boxes → containers}/iso-base-media/stsd/stsd.js +3 -6
- package/dist/containers/iso-base-media/trak/trak.d.ts +12 -0
- package/dist/containers/iso-base-media/trak/trak.js +17 -0
- package/dist/{boxes → containers}/iso-base-media/traversal.d.ts +2 -3
- package/dist/{boxes → containers}/iso-base-media/traversal.js +1 -12
- package/dist/containers/iso-base-media/void-box.js +2 -0
- package/dist/containers/mp3/get-tracks-from-mp3.d.ts +4 -0
- package/dist/{boxes → containers}/mp3/get-tracks-from-mp3.js +6 -6
- package/dist/containers/mp3/id3.d.ts +4 -0
- package/dist/{boxes → containers}/mp3/id3.js +8 -5
- package/dist/containers/mp3/parse-mp3.d.ts +3 -0
- package/dist/{boxes → containers}/mp3/parse-mp3.js +4 -20
- package/dist/containers/mp3/parse-mpeg-header.d.ts +4 -0
- package/dist/{boxes → containers}/mp3/parse-mpeg-header.js +2 -1
- package/dist/containers/riff/expect-riff-box.d.ts +7 -0
- package/dist/containers/riff/expect-riff-box.js +72 -0
- package/dist/containers/riff/get-duration.d.ts +3 -0
- package/dist/containers/riff/get-duration.js +33 -0
- package/dist/{boxes → containers}/riff/get-tracks-from-avi.d.ts +2 -3
- package/dist/{boxes → containers}/riff/get-tracks-from-avi.js +6 -10
- package/dist/containers/riff/parse-list-box.d.ts +6 -0
- package/dist/containers/riff/parse-list-box.js +29 -0
- package/dist/containers/riff/parse-movi.d.ts +11 -0
- package/dist/{boxes → containers}/riff/parse-movi.js +37 -57
- package/dist/containers/riff/parse-riff-body.d.ts +3 -0
- package/dist/containers/riff/parse-riff-body.js +22 -0
- package/dist/containers/riff/parse-riff-box.d.ts +7 -0
- package/dist/{boxes → containers}/riff/parse-riff-box.js +3 -10
- package/dist/containers/riff/parse-riff-header.d.ts +3 -0
- package/dist/containers/riff/parse-riff-header.js +23 -0
- package/dist/containers/riff/parse-riff.d.ts +3 -0
- package/dist/containers/riff/parse-riff.js +12 -0
- package/dist/containers/riff/parse-strf.d.ts +7 -0
- package/dist/{boxes → containers}/riff/parse-strf.js +4 -8
- package/dist/{boxes → containers}/riff/parse-strh.js +11 -0
- package/dist/containers/riff/parse-video-section.d.ts +2 -0
- package/dist/containers/riff/parse-video-section.js +19 -0
- package/dist/{boxes → containers}/riff/riff-box.d.ts +8 -14
- package/dist/containers/riff/riff-box.js +2 -0
- package/dist/{boxes → containers}/riff/traversal.d.ts +1 -3
- package/dist/{boxes → containers}/riff/traversal.js +1 -6
- package/dist/containers/transport-stream/boxes.js +2 -0
- package/dist/containers/transport-stream/get-tracks.d.ts +4 -0
- package/dist/{boxes → containers}/transport-stream/get-tracks.js +4 -3
- package/dist/containers/transport-stream/parse-packet.d.ts +5 -0
- package/dist/{boxes → containers}/transport-stream/parse-packet.js +4 -5
- package/dist/containers/transport-stream/parse-stream-packet.d.ts +9 -0
- package/dist/{boxes → containers}/transport-stream/parse-stream-packet.js +11 -12
- package/dist/containers/transport-stream/parse-transport-stream.d.ts +3 -0
- package/dist/{boxes → containers}/transport-stream/parse-transport-stream.js +8 -37
- package/dist/{boxes → containers}/transport-stream/process-stream-buffers.d.ts +1 -2
- package/dist/{boxes → containers}/transport-stream/process-stream-buffers.js +3 -3
- package/dist/containers/wav/get-duration-from-wav.d.ts +3 -0
- package/dist/containers/wav/get-duration-from-wav.js +29 -0
- package/dist/containers/wav/get-metadata-from-wav.d.ts +3 -0
- package/dist/containers/wav/get-metadata-from-wav.js +11 -0
- package/dist/containers/wav/parse-data.d.ts +5 -0
- package/dist/containers/wav/parse-data.js +25 -0
- package/dist/containers/wav/parse-fmt.d.ts +5 -0
- package/dist/containers/wav/parse-fmt.js +56 -0
- package/dist/containers/wav/parse-header.d.ts +5 -0
- package/dist/containers/wav/parse-header.js +17 -0
- package/dist/containers/wav/parse-id3.d.ts +5 -0
- package/dist/containers/wav/parse-id3.js +17 -0
- package/dist/containers/wav/parse-list.d.ts +5 -0
- package/dist/containers/wav/parse-list.js +32 -0
- package/dist/containers/wav/parse-video-section.d.ts +5 -0
- package/dist/containers/wav/parse-video-section.js +37 -0
- package/dist/containers/wav/parse-wav.d.ts +3 -0
- package/dist/containers/wav/parse-wav.js +36 -0
- package/dist/containers/wav/types.d.ts +30 -0
- package/dist/containers/wav/types.js +2 -0
- package/dist/{boxes → containers}/webm/parse-ebml.d.ts +1 -2
- package/dist/{boxes → containers}/webm/parse-ebml.js +6 -2
- package/dist/containers/webm/parse-webm-header.d.ts +3 -0
- package/dist/containers/webm/parse-webm-header.js +53 -0
- package/dist/containers/webm/segments.d.ts +9 -0
- package/dist/containers/webm/segments.js +80 -0
- package/dist/emit-available-info.d.ts +1 -3
- package/dist/emit-available-info.js +86 -76
- package/dist/errors.d.ts +1 -1
- package/dist/esm/from-node.mjs +8 -9
- package/dist/esm/index.mjs +4951 -4693
- package/dist/file-types/detect-file-type.d.ts +5 -1
- package/dist/file-types/detect-file-type.js +10 -3
- package/dist/file-types/index.js +3 -0
- package/dist/get-audio-codec.d.ts +4 -5
- package/dist/get-audio-codec.js +5 -5
- package/dist/get-container.d.ts +2 -2
- package/dist/get-container.js +10 -1
- package/dist/get-dimensions.d.ts +2 -3
- package/dist/get-dimensions.js +14 -10
- package/dist/get-duration.d.ts +5 -5
- package/dist/get-duration.js +29 -27
- package/dist/get-fields-from-callbacks.js +4 -0
- package/dist/get-fps.d.ts +1 -1
- package/dist/get-fps.js +12 -4
- package/dist/get-is-hdr.d.ts +2 -3
- package/dist/get-is-hdr.js +4 -4
- package/dist/get-keyframes.d.ts +1 -1
- package/dist/get-keyframes.js +4 -3
- package/dist/get-number-of-audio-channels.d.ts +3 -0
- package/dist/get-number-of-audio-channels.js +14 -0
- package/dist/get-sample-aspect-ratio.d.ts +8 -8
- package/dist/get-sample-aspect-ratio.js +1 -1
- package/dist/get-sample-positions-from-lpcm.d.ts +1 -1
- package/dist/get-sample-positions-from-lpcm.js +1 -1
- package/dist/get-sample-positions.d.ts +6 -6
- package/dist/get-sample-rate.d.ts +3 -0
- package/dist/get-sample-rate.js +14 -0
- package/dist/get-tracks.d.ts +9 -8
- package/dist/get-tracks.js +36 -22
- package/dist/get-video-codec.d.ts +3 -4
- package/dist/get-video-codec.js +6 -6
- package/dist/has-all-info.js +26 -15
- package/dist/index.d.ts +145 -41
- package/dist/index.js +8 -8
- package/dist/init-video.d.ts +7 -0
- package/dist/init-video.js +114 -0
- package/dist/is-audio-structure.d.ts +2 -0
- package/dist/is-audio-structure.js +31 -0
- package/dist/metadata/get-metadata.js +16 -1
- package/dist/metadata/metadata-from-iso.d.ts +2 -1
- package/dist/metadata/metadata-from-iso.js +1 -1
- package/dist/metadata/metadata-from-matroska.js +1 -1
- package/dist/metadata/metadata-from-riff.d.ts +1 -1
- package/dist/options.d.ts +64 -38
- package/dist/parse-media.js +125 -43
- package/dist/parse-result.d.ts +8 -61
- package/dist/perform-seek.d.ts +13 -0
- package/dist/perform-seek.js +29 -0
- package/dist/readers/from-node.js +7 -8
- package/dist/readers/reader.d.ts +1 -1
- package/dist/register-track.d.ts +3 -3
- package/dist/run-parse-iteration.d.ts +8 -0
- package/dist/run-parse-iteration.js +48 -0
- package/dist/samples-from-moof.js +1 -1
- package/dist/state/aac-state.d.ts +13 -0
- package/dist/state/aac-state.js +17 -0
- package/dist/state/can-skip-tracks.d.ts +8 -1
- package/dist/state/can-skip-tracks.js +42 -27
- package/dist/state/emitted-fields.js +4 -0
- package/dist/state/flac-state.d.ts +4 -0
- package/dist/state/flac-state.js +13 -0
- package/dist/state/has-tracks-section.d.ts +2 -1
- package/dist/state/has-tracks-section.js +4 -1
- package/dist/state/iso-base-media/cached-sample-positions.d.ts +15 -0
- package/dist/state/iso-base-media/cached-sample-positions.js +42 -0
- package/dist/state/iso-base-media/iso-state.d.ts +8 -0
- package/dist/state/iso-base-media/iso-state.js +15 -0
- package/dist/{may-skip-video-data → state}/may-skip-video-data.d.ts +1 -1
- package/dist/{may-skip-video-data → state}/may-skip-video-data.js +6 -2
- package/dist/{may-skip-video-data → state}/need-samples-for-fields.js +4 -0
- package/dist/state/parser-state.d.ts +131 -17
- package/dist/state/parser-state.js +18 -5
- package/dist/state/sample-callbacks.d.ts +6 -2
- package/dist/state/sample-callbacks.js +5 -2
- package/dist/state/slow-duration-fps.d.ts +2 -0
- package/dist/state/slow-duration-fps.js +18 -0
- package/dist/state/transport-stream.d.ts +8 -0
- package/dist/state/transport-stream.js +11 -0
- package/dist/state/video-section.d.ts +16 -0
- package/dist/state/video-section.js +37 -0
- package/dist/state/webm.d.ts +17 -2
- package/dist/state/webm.js +33 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webcodec-sample-types.d.ts +3 -3
- package/package.json +3 -3
- package/test.json +663 -0
- package/dist/boxes/iso-base-media/get-children.d.ts +0 -14
- package/dist/boxes/iso-base-media/get-children.js +0 -39
- package/dist/boxes/iso-base-media/mdat/mdat.d.ts +0 -26
- package/dist/boxes/iso-base-media/mdat/mdat.js +0 -141
- 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/parse-boxes.d.ts +0 -15
- package/dist/boxes/iso-base-media/parse-boxes.js +0 -129
- package/dist/boxes/iso-base-media/parse-mdat-partially.d.ts +0 -12
- package/dist/boxes/iso-base-media/parse-mdat-partially.js +0 -33
- package/dist/boxes/iso-base-media/process-box.d.ts +0 -15
- package/dist/boxes/iso-base-media/stsd/mebx.js +0 -32
- 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/mp3/get-tracks-from-mp3.d.ts +0 -4
- package/dist/boxes/mp3/id3-v2.d.ts +0 -0
- package/dist/boxes/mp3/id3-v2.js +0 -1
- package/dist/boxes/mp3/id3.d.ts +0 -8
- package/dist/boxes/riff/continue-after-riff-result.d.ts +0 -13
- package/dist/boxes/riff/continue-after-riff-result.js +0 -34
- package/dist/boxes/riff/expect-riff-box.d.ts +0 -19
- package/dist/boxes/riff/expect-riff-box.js +0 -50
- package/dist/boxes/riff/parse-box.js +0 -35
- 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-list-box.d.ts +0 -10
- package/dist/boxes/riff/parse-list-box.js +0 -31
- package/dist/boxes/riff/parse-movi.d.ts +0 -17
- package/dist/boxes/riff/parse-riff-body.d.ts +0 -11
- package/dist/boxes/riff/parse-riff-body.js +0 -105
- package/dist/boxes/riff/parse-riff-box.d.ts +0 -12
- package/dist/boxes/riff/parse-strf.d.ts +0 -7
- package/dist/boxes/transport-stream/get-tracks.d.ts +0 -5
- package/dist/boxes/transport-stream/parse-packet.d.ts +0 -13
- package/dist/boxes/transport-stream/parse-stream-packet.d.ts +0 -15
- package/dist/boxes/transport-stream/parse-transport-stream.d.ts +0 -13
- package/dist/boxes/webm/parse-webm-header.js +0 -37
- package/dist/boxes/webm/segments/parse-children.d.ts +0 -23
- package/dist/boxes/webm/segments/parse-children.js +0 -144
- package/dist/boxes/webm/segments.d.ts +0 -15
- package/dist/boxes/webm/segments.js +0 -161
- package/dist/continue-mdat-routine.d.ts +0 -17
- package/dist/continue-mdat-routine.js +0 -92
- package/dist/parse-video.d.ts +0 -28
- package/dist/parse-video.js +0 -130
- /package/dist/{boxes/iso-base-media/base-type.js → containers/aac/types.js} +0 -0
- /package/dist/{boxes → containers}/avc/codec-string.d.ts +0 -0
- /package/dist/{boxes → containers}/avc/codec-string.js +0 -0
- /package/dist/{boxes → containers}/avc/color.d.ts +0 -0
- /package/dist/{boxes → containers}/avc/color.js +0 -0
- /package/dist/{boxes → containers}/avc/create-sps-pps-data.d.ts +0 -0
- /package/dist/{boxes → containers}/avc/create-sps-pps-data.js +0 -0
- /package/dist/{boxes → containers}/avc/interpret-sps.d.ts +0 -0
- /package/dist/{boxes → containers}/avc/interpret-sps.js +0 -0
- /package/dist/{boxes → containers}/avc/key.js +0 -0
- /package/dist/{boxes → containers}/avc/parse-avc.d.ts +0 -0
- /package/dist/{boxes → containers}/avc/parse-avc.js +0 -0
- /package/dist/{boxes → containers}/avc/sps-and-pps.d.ts +0 -0
- /package/dist/{boxes → containers}/avc/sps-and-pps.js +0 -0
- /package/dist/{boxes/iso-base-media/void-box.js → containers/flac/types.js} +0 -0
- /package/dist/{boxes/riff/riff-box.js → containers/iso-base-media/base-media-box.js} +0 -0
- /package/dist/{boxes → containers}/iso-base-media/base-type.d.ts +0 -0
- /package/dist/{boxes/transport-stream/boxes.js → containers/iso-base-media/base-type.js} +0 -0
- /package/dist/{boxes → containers}/iso-base-media/esds/decoder-specific-config.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/esds/decoder-specific-config.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/esds/esds-descriptors.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/esds/esds-descriptors.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/esds/esds.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/esds/esds.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/ftyp.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/ftyp.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/get-actual-number-of-channels.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/get-actual-number-of-channels.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/get-keyframes.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/get-keyframes.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/get-sample-positions-from-track.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/get-video-codec-from-iso-track.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/get-video-codec-from-iso-track.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/make-track.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/make-track.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/mdhd.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/mdhd.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/meta/hdlr.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/meta/hdlr.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/meta/ilst.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/meta/ilst.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/mvhd.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/mvhd.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/parse-icc-profile.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/parse-icc-profile.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/av1c.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/av1c.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/avcc.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/avcc.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/colr.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/colr.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/ctts.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/ctts.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/hvcc.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/hvcc.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/keys.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/keys.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/pasp.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/pasp.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/stco.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/stco.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/stsc.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/stsc.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/stss.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/stss.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/stsz.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/stsz.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/stts.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/stsd/stts.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/tfdt.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/tfdt.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/tfhd.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/tfhd.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/tkhd.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/tkhd.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/to-date.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/to-date.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/trun.d.ts +0 -0
- /package/dist/{boxes → containers}/iso-base-media/trun.js +0 -0
- /package/dist/{boxes → containers}/iso-base-media/void-box.d.ts +0 -0
- /package/dist/{boxes → containers}/mp3/get-duration.d.ts +0 -0
- /package/dist/{boxes → containers}/mp3/get-duration.js +0 -0
- /package/dist/{boxes → containers}/mp3/get-frame-length.d.ts +0 -0
- /package/dist/{boxes → containers}/mp3/get-frame-length.js +0 -0
- /package/dist/{boxes → containers}/mp3/get-metadata-from-mp3.d.ts +0 -0
- /package/dist/{boxes → containers}/mp3/get-metadata-from-mp3.js +0 -0
- /package/dist/{boxes → containers}/mp3/id3-v1.d.ts +0 -0
- /package/dist/{boxes → containers}/mp3/id3-v1.js +0 -0
- /package/dist/{boxes → containers}/mp3/samples-per-mpeg-file.d.ts +0 -0
- /package/dist/{boxes → containers}/mp3/samples-per-mpeg-file.js +0 -0
- /package/dist/{boxes → containers}/riff/is-movi.d.ts +0 -0
- /package/dist/{boxes → containers}/riff/is-movi.js +0 -0
- /package/dist/{boxes → containers}/riff/parse-avih.d.ts +0 -0
- /package/dist/{boxes → containers}/riff/parse-avih.js +0 -0
- /package/dist/{boxes → containers}/riff/parse-isft.d.ts +0 -0
- /package/dist/{boxes → containers}/riff/parse-isft.js +0 -0
- /package/dist/{boxes → containers}/riff/parse-strh.d.ts +0 -0
- /package/dist/{boxes → containers}/riff/timescale.d.ts +0 -0
- /package/dist/{boxes → containers}/riff/timescale.js +0 -0
- /package/dist/{boxes → containers}/transport-stream/adts-header.d.ts +0 -0
- /package/dist/{boxes → containers}/transport-stream/adts-header.js +0 -0
- /package/dist/{boxes → containers}/transport-stream/boxes.d.ts +0 -0
- /package/dist/{boxes → containers}/transport-stream/discard-rest-of-packet.d.ts +0 -0
- /package/dist/{boxes → containers}/transport-stream/discard-rest-of-packet.js +0 -0
- /package/dist/{boxes → containers}/transport-stream/find-separator.d.ts +0 -0
- /package/dist/{boxes → containers}/transport-stream/find-separator.js +0 -0
- /package/dist/{boxes → containers}/transport-stream/handle-aac-packet.d.ts +0 -0
- /package/dist/{boxes → containers}/transport-stream/handle-aac-packet.js +0 -0
- /package/dist/{boxes → containers}/transport-stream/handle-avc-packet.d.ts +0 -0
- /package/dist/{boxes → containers}/transport-stream/handle-avc-packet.js +0 -0
- /package/dist/{boxes → containers}/transport-stream/next-pes-header-store.d.ts +0 -0
- /package/dist/{boxes → containers}/transport-stream/next-pes-header-store.js +0 -0
- /package/dist/{boxes → containers}/transport-stream/parse-pat.d.ts +0 -0
- /package/dist/{boxes → containers}/transport-stream/parse-pat.js +0 -0
- /package/dist/{boxes → containers}/transport-stream/parse-pes.d.ts +0 -0
- /package/dist/{boxes → containers}/transport-stream/parse-pes.js +0 -0
- /package/dist/{boxes → containers}/transport-stream/parse-pmt.d.ts +0 -0
- /package/dist/{boxes → containers}/transport-stream/parse-pmt.js +0 -0
- /package/dist/{boxes → containers}/transport-stream/traversal.d.ts +0 -0
- /package/dist/{boxes → containers}/transport-stream/traversal.js +0 -0
- /package/dist/{boxes → containers}/webm/allowed-partial-segments.d.ts +0 -0
- /package/dist/{boxes → containers}/webm/allowed-partial-segments.js +0 -0
- /package/dist/{boxes → containers}/webm/av1-codec-private.d.ts +0 -0
- /package/dist/{boxes → containers}/webm/av1-codec-private.js +0 -0
- /package/dist/{boxes → containers}/webm/color.d.ts +0 -0
- /package/dist/{boxes → containers}/webm/color.js +0 -0
- /package/dist/{boxes → containers}/webm/description.d.ts +0 -0
- /package/dist/{boxes → containers}/webm/description.js +0 -0
- /package/dist/{boxes → containers}/webm/get-ready-tracks.d.ts +0 -0
- /package/dist/{boxes → containers}/webm/get-ready-tracks.js +0 -0
- /package/dist/{boxes → containers}/webm/get-sample-from-block.d.ts +0 -0
- /package/dist/{boxes → containers}/webm/get-sample-from-block.js +0 -0
- /package/dist/{boxes → containers}/webm/make-track.d.ts +0 -0
- /package/dist/{boxes → containers}/webm/make-track.js +0 -0
- /package/dist/{boxes → containers}/webm/segments/all-segments.d.ts +0 -0
- /package/dist/{boxes → containers}/webm/segments/all-segments.js +0 -0
- /package/dist/{boxes → containers}/webm/segments/block-simple-block-flags.d.ts +0 -0
- /package/dist/{boxes → containers}/webm/segments/block-simple-block-flags.js +0 -0
- /package/dist/{boxes → containers}/webm/segments/track-entry.d.ts +0 -0
- /package/dist/{boxes → containers}/webm/segments/track-entry.js +0 -0
- /package/dist/{boxes → containers}/webm/traversal.d.ts +0 -0
- /package/dist/{boxes → containers}/webm/traversal.js +0 -0
- /package/dist/{may-skip-video-data → state}/need-samples-for-fields.d.ts +0 -0
|
@@ -12,6 +12,7 @@ export declare const isTransportStream: (data: Uint8Array) => boolean;
|
|
|
12
12
|
export declare const isMp3: (data: Uint8Array) => boolean;
|
|
13
13
|
export declare const isGif: (data: Uint8Array) => boolean;
|
|
14
14
|
export declare const isAac: (data: Uint8Array) => boolean;
|
|
15
|
+
export declare const isFlac: (data: Uint8Array) => boolean;
|
|
15
16
|
export type RiffType = {
|
|
16
17
|
type: 'riff';
|
|
17
18
|
};
|
|
@@ -36,7 +37,10 @@ export type WavType = {
|
|
|
36
37
|
export type GifType = {
|
|
37
38
|
type: 'gif';
|
|
38
39
|
};
|
|
40
|
+
export type FlacType = {
|
|
41
|
+
type: 'flac';
|
|
42
|
+
};
|
|
39
43
|
export type UnknownType = {
|
|
40
44
|
type: 'unknown';
|
|
41
45
|
};
|
|
42
|
-
export type FileType = JpegType | WebpType | RiffType | WebmType | WavType | PdfType | AacType | IsoBaseMediaType | TransportStreamType | Mp3Type | GifType | PngType | BmpType | AacType | UnknownType;
|
|
46
|
+
export type FileType = JpegType | WebpType | RiffType | WebmType | WavType | PdfType | AacType | IsoBaseMediaType | TransportStreamType | Mp3Type | GifType | PngType | BmpType | AacType | FlacType | UnknownType;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isAac = exports.isGif = exports.isMp3 = exports.isTransportStream = exports.isIsoBaseMedia = exports.isWebm = exports.isRiffWave = exports.isRiffAvi = exports.matchesPattern = void 0;
|
|
3
|
+
exports.isFlac = exports.isAac = exports.isGif = exports.isMp3 = exports.isTransportStream = exports.isIsoBaseMedia = exports.isWebm = exports.isRiffWave = exports.isRiffAvi = exports.matchesPattern = void 0;
|
|
4
4
|
const webmPattern = new Uint8Array([0x1a, 0x45, 0xdf, 0xa3]);
|
|
5
5
|
const matchesPattern = (pattern) => {
|
|
6
6
|
return (data) => {
|
|
@@ -43,10 +43,12 @@ const isTransportStream = (data) => {
|
|
|
43
43
|
exports.isTransportStream = isTransportStream;
|
|
44
44
|
const isMp3 = (data) => {
|
|
45
45
|
const mpegPattern = new Uint8Array([0xff, 0xf3, 0xe4, 0x64]);
|
|
46
|
-
const
|
|
47
|
-
const
|
|
46
|
+
const id3v4Pattern = new Uint8Array([0x49, 0x44, 0x33, 4]);
|
|
47
|
+
const id3v3Pattern = new Uint8Array([0x49, 0x44, 0x33, 3]);
|
|
48
|
+
const id3v2Pattern = new Uint8Array([0x49, 0x44, 0x33, 2]);
|
|
48
49
|
const subarray = data.subarray(0, 4);
|
|
49
50
|
return ((0, exports.matchesPattern)(mpegPattern)(subarray) ||
|
|
51
|
+
(0, exports.matchesPattern)(id3v4Pattern)(subarray) ||
|
|
50
52
|
(0, exports.matchesPattern)(id3v3Pattern)(subarray) ||
|
|
51
53
|
(0, exports.matchesPattern)(id3v2Pattern)(subarray));
|
|
52
54
|
};
|
|
@@ -61,3 +63,8 @@ const isAac = (data) => {
|
|
|
61
63
|
return (0, exports.matchesPattern)(aacPattern)(data.subarray(0, 2));
|
|
62
64
|
};
|
|
63
65
|
exports.isAac = isAac;
|
|
66
|
+
const isFlac = (data) => {
|
|
67
|
+
const flacPattern = new Uint8Array([0x66, 0x4c, 0x61, 0x43]);
|
|
68
|
+
return (0, exports.matchesPattern)(flacPattern)(data.subarray(0, 4));
|
|
69
|
+
};
|
|
70
|
+
exports.isFlac = isFlac;
|
package/dist/file-types/index.js
CHANGED
|
@@ -17,6 +17,9 @@ const detectFileType = (data) => {
|
|
|
17
17
|
if ((0, detect_file_type_1.isAac)(data)) {
|
|
18
18
|
return { type: 'aac' };
|
|
19
19
|
}
|
|
20
|
+
if ((0, detect_file_type_1.isFlac)(data)) {
|
|
21
|
+
return { type: 'flac' };
|
|
22
|
+
}
|
|
20
23
|
const webp = (0, webp_1.isWebp)(data);
|
|
21
24
|
if (webp) {
|
|
22
25
|
return webp;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import type { MoovBox } from './
|
|
2
|
-
import type { TrakBox } from './
|
|
1
|
+
import type { MoovBox } from './containers/iso-base-media/moov/moov';
|
|
2
|
+
import type { TrakBox } from './containers/iso-base-media/trak/trak';
|
|
3
3
|
import { type MediaParserAudioCodec } from './get-tracks';
|
|
4
|
-
import type { Structure } from './parse-result';
|
|
5
4
|
import type { ParserState } from './state/parser-state';
|
|
6
|
-
export declare const getAudioCodec: (
|
|
7
|
-
export declare const hasAudioCodec: (
|
|
5
|
+
export declare const getAudioCodec: (parserState: ParserState) => MediaParserAudioCodec | null;
|
|
6
|
+
export declare const hasAudioCodec: (state: ParserState) => boolean;
|
|
8
7
|
type AudioCodecInfo = {
|
|
9
8
|
format: string;
|
|
10
9
|
primarySpecificator: number | null;
|
package/dist/get-audio-codec.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getAudioCodecFromTrack = exports.getAudioCodecStringFromTrak = exports.getAudioCodecFromIso = exports.isLpcmAudioCodec = exports.getAudioCodecFromTrak = exports.getSampleRate = exports.getNumberOfChannelsFromTrak = exports.getCodecPrivateFromTrak = exports.hasAudioCodec = exports.getAudioCodec = void 0;
|
|
4
|
-
const traversal_1 = require("./
|
|
4
|
+
const traversal_1 = require("./containers/iso-base-media/traversal");
|
|
5
5
|
const get_fps_1 = require("./get-fps");
|
|
6
6
|
const get_tracks_1 = require("./get-tracks");
|
|
7
|
-
const getAudioCodec = (
|
|
8
|
-
const tracks = (0, get_tracks_1.getTracks)(
|
|
7
|
+
const getAudioCodec = (parserState) => {
|
|
8
|
+
const tracks = (0, get_tracks_1.getTracks)(parserState);
|
|
9
9
|
const allTracks = tracks.audioTracks.length +
|
|
10
10
|
tracks.otherTracks.length +
|
|
11
11
|
tracks.videoTracks.length;
|
|
@@ -22,8 +22,8 @@ const getAudioCodec = (boxes, parserState) => {
|
|
|
22
22
|
return null;
|
|
23
23
|
};
|
|
24
24
|
exports.getAudioCodec = getAudioCodec;
|
|
25
|
-
const hasAudioCodec = (
|
|
26
|
-
return (0, get_tracks_1.getHasTracks)(
|
|
25
|
+
const hasAudioCodec = (state) => {
|
|
26
|
+
return (0, get_tracks_1.getHasTracks)(state);
|
|
27
27
|
};
|
|
28
28
|
exports.hasAudioCodec = hasAudioCodec;
|
|
29
29
|
const getCodecSpecificatorFromEsdsBox = ({ child, }) => {
|
package/dist/get-container.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MediaParserContainer } from './options';
|
|
2
2
|
import type { Structure } from './parse-result';
|
|
3
|
-
export declare const getContainer: (segments: Structure) =>
|
|
3
|
+
export declare const getContainer: (segments: Structure) => MediaParserContainer;
|
|
4
4
|
export declare const hasContainer: (boxes: Structure) => boolean;
|
package/dist/get-container.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hasContainer = exports.getContainer = void 0;
|
|
4
|
-
const traversal_1 = require("./
|
|
4
|
+
const traversal_1 = require("./containers/riff/traversal");
|
|
5
5
|
const getContainer = (segments) => {
|
|
6
6
|
if (segments.type === 'iso-base-media') {
|
|
7
7
|
return 'mp4';
|
|
@@ -15,12 +15,21 @@ const getContainer = (segments) => {
|
|
|
15
15
|
if (segments.type === 'mp3') {
|
|
16
16
|
return 'mp3';
|
|
17
17
|
}
|
|
18
|
+
if (segments.type === 'wav') {
|
|
19
|
+
return 'wav';
|
|
20
|
+
}
|
|
21
|
+
if (segments.type === 'flac') {
|
|
22
|
+
return 'flac';
|
|
23
|
+
}
|
|
18
24
|
if (segments.type === 'riff') {
|
|
19
25
|
if ((0, traversal_1.isRiffAvi)(segments)) {
|
|
20
26
|
return 'avi';
|
|
21
27
|
}
|
|
22
28
|
throw new Error('Unknown RIFF container ' + segments.type);
|
|
23
29
|
}
|
|
30
|
+
if (segments.type === 'aac') {
|
|
31
|
+
return 'aac';
|
|
32
|
+
}
|
|
24
33
|
throw new Error('Unknown container ' + segments);
|
|
25
34
|
};
|
|
26
35
|
exports.getContainer = getContainer;
|
package/dist/get-dimensions.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Structure } from './parse-result';
|
|
2
1
|
import type { ParserState } from './state/parser-state';
|
|
3
2
|
export type Dimensions = {
|
|
4
3
|
width: number;
|
|
@@ -9,5 +8,5 @@ export type ExpandedDimensions = Dimensions & {
|
|
|
9
8
|
unrotatedWidth: number;
|
|
10
9
|
unrotatedHeight: number;
|
|
11
10
|
};
|
|
12
|
-
export declare const getDimensions: (
|
|
13
|
-
export declare const hasDimensions: (
|
|
11
|
+
export declare const getDimensions: (state: ParserState) => ExpandedDimensions | null;
|
|
12
|
+
export declare const hasDimensions: (state: ParserState) => boolean;
|
package/dist/get-dimensions.js
CHANGED
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hasDimensions = exports.getDimensions = void 0;
|
|
4
4
|
const get_tracks_1 = require("./get-tracks");
|
|
5
|
-
const
|
|
6
|
-
|
|
5
|
+
const is_audio_structure_1 = require("./is-audio-structure");
|
|
6
|
+
const getDimensions = (state) => {
|
|
7
|
+
const structure = state.structure.getStructureOrNull();
|
|
8
|
+
if (structure && (0, is_audio_structure_1.isAudioStructure)(structure)) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
const { videoTracks } = (0, get_tracks_1.getTracks)(state);
|
|
7
12
|
if (!videoTracks.length) {
|
|
8
|
-
|
|
9
|
-
return null;
|
|
10
|
-
}
|
|
11
|
-
throw new Error('Expected video track');
|
|
13
|
+
return null;
|
|
12
14
|
}
|
|
13
15
|
const firstVideoTrack = videoTracks[0];
|
|
14
16
|
return {
|
|
@@ -20,11 +22,13 @@ const getDimensions = (boxes, state) => {
|
|
|
20
22
|
};
|
|
21
23
|
};
|
|
22
24
|
exports.getDimensions = getDimensions;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
const hasDimensions = (state) => {
|
|
26
|
+
const structure = state.structure.getStructureOrNull();
|
|
27
|
+
if (structure && (0, is_audio_structure_1.isAudioStructure)(structure)) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
26
30
|
try {
|
|
27
|
-
return (0, exports.getDimensions)(
|
|
31
|
+
return (0, exports.getDimensions)(state) !== null;
|
|
28
32
|
}
|
|
29
33
|
catch (_a) {
|
|
30
34
|
return false;
|
package/dist/get-duration.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { AnySegment
|
|
1
|
+
import type { AnySegment } from './parse-result';
|
|
2
2
|
import type { ParserState } from './state/parser-state';
|
|
3
3
|
export declare const isMatroska: (boxes: AnySegment[]) => {
|
|
4
4
|
type: "Segment";
|
|
5
|
-
value: import("./
|
|
5
|
+
value: import("./containers/webm/segments/all-segments").PossibleEbml[];
|
|
6
6
|
minVintWidth: number | null;
|
|
7
7
|
} | undefined;
|
|
8
|
-
export declare const getDuration: (
|
|
9
|
-
export declare const hasDuration: (
|
|
10
|
-
export declare const hasSlowDuration: (
|
|
8
|
+
export declare const getDuration: (parserState: ParserState) => number | null;
|
|
9
|
+
export declare const hasDuration: (parserState: ParserState) => boolean;
|
|
10
|
+
export declare const hasSlowDuration: (parserState: ParserState) => boolean;
|
package/dist/get-duration.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hasSlowDuration = exports.hasDuration = exports.getDuration = exports.isMatroska = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
4
|
+
const get_duration_from_flac_1 = require("./containers/flac/get-duration-from-flac");
|
|
5
|
+
const get_sample_positions_from_track_1 = require("./containers/iso-base-media/get-sample-positions-from-track");
|
|
6
|
+
const traversal_1 = require("./containers/iso-base-media/traversal");
|
|
7
|
+
const get_duration_1 = require("./containers/mp3/get-duration");
|
|
8
|
+
const get_duration_2 = require("./containers/riff/get-duration");
|
|
9
|
+
const get_duration_from_wav_1 = require("./containers/wav/get-duration-from-wav");
|
|
8
10
|
const get_tracks_1 = require("./get-tracks");
|
|
9
11
|
const getDurationFromMatroska = (segments) => {
|
|
10
12
|
const mainSegment = segments.find((s) => s.type === 'Segment');
|
|
@@ -35,7 +37,11 @@ const isMatroska = (boxes) => {
|
|
|
35
37
|
return matroskaBox;
|
|
36
38
|
};
|
|
37
39
|
exports.isMatroska = isMatroska;
|
|
38
|
-
const getDurationFromIsoBaseMedia = (
|
|
40
|
+
const getDurationFromIsoBaseMedia = (parserState) => {
|
|
41
|
+
const structure = parserState.structure.getStructure();
|
|
42
|
+
if (structure.type !== 'iso-base-media') {
|
|
43
|
+
throw new Error('Expected iso-base-media');
|
|
44
|
+
}
|
|
39
45
|
const moovBox = (0, traversal_1.getMoovBox)(structure.boxes);
|
|
40
46
|
if (!moovBox) {
|
|
41
47
|
return null;
|
|
@@ -51,7 +57,7 @@ const getDurationFromIsoBaseMedia = (structure, parserState) => {
|
|
|
51
57
|
if (mvhdBox.durationInSeconds > 0) {
|
|
52
58
|
return mvhdBox.durationInSeconds;
|
|
53
59
|
}
|
|
54
|
-
const tracks = (0, get_tracks_1.getTracks)(
|
|
60
|
+
const tracks = (0, get_tracks_1.getTracks)(parserState);
|
|
55
61
|
const allTracks = [
|
|
56
62
|
...tracks.videoTracks,
|
|
57
63
|
...tracks.audioTracks,
|
|
@@ -66,29 +72,16 @@ const getDurationFromIsoBaseMedia = (structure, parserState) => {
|
|
|
66
72
|
const highestTimestamp = Math.max(...allSamples);
|
|
67
73
|
return highestTimestamp;
|
|
68
74
|
};
|
|
69
|
-
const
|
|
70
|
-
const
|
|
71
|
-
const lengths = [];
|
|
72
|
-
for (const s of strl) {
|
|
73
|
-
const strh = (0, traversal_2.getStrhBox)(s.children);
|
|
74
|
-
if (!strh) {
|
|
75
|
-
throw new Error('No strh box');
|
|
76
|
-
}
|
|
77
|
-
const samplesPerSecond = strh.rate / strh.scale;
|
|
78
|
-
const streamLength = strh.length / samplesPerSecond;
|
|
79
|
-
lengths.push(streamLength);
|
|
80
|
-
}
|
|
81
|
-
return Math.max(...lengths);
|
|
82
|
-
};
|
|
83
|
-
const getDuration = (structure, parserState) => {
|
|
75
|
+
const getDuration = (parserState) => {
|
|
76
|
+
const structure = parserState.structure.getStructure();
|
|
84
77
|
if (structure.type === 'matroska') {
|
|
85
78
|
return getDurationFromMatroska(structure.boxes);
|
|
86
79
|
}
|
|
87
80
|
if (structure.type === 'iso-base-media') {
|
|
88
|
-
return getDurationFromIsoBaseMedia(
|
|
81
|
+
return getDurationFromIsoBaseMedia(parserState);
|
|
89
82
|
}
|
|
90
83
|
if (structure.type === 'riff') {
|
|
91
|
-
return getDurationFromAvi(structure);
|
|
84
|
+
return (0, get_duration_2.getDurationFromAvi)(structure);
|
|
92
85
|
}
|
|
93
86
|
if (structure.type === 'transport-stream') {
|
|
94
87
|
return null;
|
|
@@ -96,20 +89,29 @@ const getDuration = (structure, parserState) => {
|
|
|
96
89
|
if (structure.type === 'mp3') {
|
|
97
90
|
return (0, get_duration_1.getDurationFromMp3)(parserState);
|
|
98
91
|
}
|
|
92
|
+
if (structure.type === 'wav') {
|
|
93
|
+
return (0, get_duration_from_wav_1.getDurationFromWav)(parserState);
|
|
94
|
+
}
|
|
95
|
+
if (structure.type === 'aac') {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
if (structure.type === 'flac') {
|
|
99
|
+
return (0, get_duration_from_flac_1.getDurationFromFlac)(parserState);
|
|
100
|
+
}
|
|
99
101
|
throw new Error('Has no duration ' + structure);
|
|
100
102
|
};
|
|
101
103
|
exports.getDuration = getDuration;
|
|
102
104
|
// `duration` just grabs from metadata, and otherwise returns null
|
|
103
105
|
// Therefore just checking if we have tracks
|
|
104
|
-
const hasDuration = (
|
|
105
|
-
return (0, get_tracks_1.getHasTracks)(
|
|
106
|
+
const hasDuration = (parserState) => {
|
|
107
|
+
return (0, get_tracks_1.getHasTracks)(parserState);
|
|
106
108
|
};
|
|
107
109
|
exports.hasDuration = hasDuration;
|
|
108
110
|
// `slowDuration` does through everything, and therefore is false
|
|
109
111
|
// Unless it it somewhere in the metadata and is non-null
|
|
110
|
-
const hasSlowDuration = (
|
|
112
|
+
const hasSlowDuration = (parserState) => {
|
|
111
113
|
try {
|
|
112
|
-
return (0, exports.getDuration)(
|
|
114
|
+
return (0, exports.getDuration)(parserState) !== null;
|
|
113
115
|
}
|
|
114
116
|
catch (_a) {
|
|
115
117
|
return false;
|
|
@@ -26,6 +26,10 @@ const getFieldsFromCallback = ({ fields, callbacks, }) => {
|
|
|
26
26
|
slowNumberOfFrames: Boolean(callbacks.onSlowNumberOfFrames),
|
|
27
27
|
keyframes: Boolean(callbacks.onKeyframes),
|
|
28
28
|
images: Boolean(callbacks.onImages),
|
|
29
|
+
numberOfAudioChannels: Boolean(callbacks.onNumberOfAudioChannels),
|
|
30
|
+
sampleRate: Boolean(callbacks.onSampleRate),
|
|
31
|
+
slowAudioBitrate: Boolean(callbacks.onSlowAudioBitrate),
|
|
32
|
+
slowVideoBitrate: Boolean(callbacks.onSlowVideoBitrate),
|
|
29
33
|
...fields,
|
|
30
34
|
};
|
|
31
35
|
return newFields;
|
package/dist/get-fps.d.ts
CHANGED
package/dist/get-fps.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hasFps = exports.hasFpsSuitedForSlowFps = exports.getFps = exports.getFpsFromMp4TrakBox = exports.getTimescaleAndDuration = exports.trakBoxContainsVideo = exports.trakBoxContainsAudio = void 0;
|
|
4
|
-
const traversal_1 = require("./
|
|
5
|
-
const traversal_2 = require("./
|
|
4
|
+
const traversal_1 = require("./containers/iso-base-media/traversal");
|
|
5
|
+
const traversal_2 = require("./containers/riff/traversal");
|
|
6
|
+
const is_audio_structure_1 = require("./is-audio-structure");
|
|
6
7
|
const calculateFps = ({ sttsBox, timeScale, durationInSamples, }) => {
|
|
7
8
|
let totalSamples = 0;
|
|
8
9
|
for (const sample of sttsBox.sampleDistribution) {
|
|
@@ -101,10 +102,13 @@ const getFps = (segments) => {
|
|
|
101
102
|
if (segments.type === 'transport-stream') {
|
|
102
103
|
return null;
|
|
103
104
|
}
|
|
104
|
-
if (segments.type === 'mp3'
|
|
105
|
+
if (segments.type === 'mp3' ||
|
|
106
|
+
segments.type === 'wav' ||
|
|
107
|
+
segments.type === 'flac' ||
|
|
108
|
+
segments.type === 'aac') {
|
|
105
109
|
return null;
|
|
106
110
|
}
|
|
107
|
-
throw new Error('Cannot get fps, not implemented');
|
|
111
|
+
throw new Error('Cannot get fps, not implemented: ' + segments);
|
|
108
112
|
};
|
|
109
113
|
exports.getFps = getFps;
|
|
110
114
|
const hasFpsSuitedForSlowFps = (boxes) => {
|
|
@@ -120,6 +124,10 @@ const hasFps = (boxes) => {
|
|
|
120
124
|
// Matroska and Transport stream has no FPS metadata
|
|
121
125
|
// Not bothering to parse
|
|
122
126
|
// Users should use `slowFps` field
|
|
127
|
+
// same goes for audio
|
|
128
|
+
if ((0, is_audio_structure_1.isAudioStructure)(boxes)) {
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
123
131
|
if (boxes.type === 'matroska') {
|
|
124
132
|
return true;
|
|
125
133
|
}
|
package/dist/get-is-hdr.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Structure } from './parse-result';
|
|
2
1
|
import type { ParserState } from './state/parser-state';
|
|
3
|
-
export declare const getIsHdr: (
|
|
4
|
-
export declare const hasHdr: (
|
|
2
|
+
export declare const getIsHdr: (state: ParserState) => boolean;
|
|
3
|
+
export declare const hasHdr: (state: ParserState) => boolean;
|
package/dist/get-is-hdr.js
CHANGED
|
@@ -7,12 +7,12 @@ const isVideoTrackHdr = (track) => {
|
|
|
7
7
|
track.color.transferCharacteristics === 'arib-std-b67' &&
|
|
8
8
|
track.color.primaries === 'bt2020');
|
|
9
9
|
};
|
|
10
|
-
const getIsHdr = (
|
|
11
|
-
const { videoTracks } = (0, get_tracks_1.getTracks)(
|
|
10
|
+
const getIsHdr = (state) => {
|
|
11
|
+
const { videoTracks } = (0, get_tracks_1.getTracks)(state);
|
|
12
12
|
return videoTracks.some((track) => isVideoTrackHdr(track));
|
|
13
13
|
};
|
|
14
14
|
exports.getIsHdr = getIsHdr;
|
|
15
|
-
const hasHdr = (
|
|
16
|
-
return (0, get_tracks_1.getHasTracks)(
|
|
15
|
+
const hasHdr = (state) => {
|
|
16
|
+
return (0, get_tracks_1.getHasTracks)(state);
|
|
17
17
|
};
|
|
18
18
|
exports.hasHdr = hasHdr;
|
package/dist/get-keyframes.d.ts
CHANGED
|
@@ -2,4 +2,4 @@ import type { MediaParserKeyframe } from './options';
|
|
|
2
2
|
import type { Structure } from './parse-result';
|
|
3
3
|
import type { ParserState } from './state/parser-state';
|
|
4
4
|
export declare const getKeyframes: (structure: Structure) => MediaParserKeyframe[] | null;
|
|
5
|
-
export declare const hasKeyframes: (
|
|
5
|
+
export declare const hasKeyframes: (parserState: ParserState) => boolean;
|
package/dist/get-keyframes.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hasKeyframes = exports.getKeyframes = void 0;
|
|
4
|
-
const get_keyframes_1 = require("./
|
|
4
|
+
const get_keyframes_1 = require("./containers/iso-base-media/get-keyframes");
|
|
5
5
|
const get_tracks_1 = require("./get-tracks");
|
|
6
6
|
const getKeyframes = (structure) => {
|
|
7
7
|
if (structure.type === 'iso-base-media') {
|
|
@@ -10,9 +10,10 @@ const getKeyframes = (structure) => {
|
|
|
10
10
|
return null;
|
|
11
11
|
};
|
|
12
12
|
exports.getKeyframes = getKeyframes;
|
|
13
|
-
const hasKeyframes = (
|
|
13
|
+
const hasKeyframes = (parserState) => {
|
|
14
|
+
const structure = parserState.structure.getStructure();
|
|
14
15
|
if (structure.type === 'iso-base-media') {
|
|
15
|
-
return (0, get_tracks_1.getHasTracks)(
|
|
16
|
+
return (0, get_tracks_1.getHasTracks)(parserState);
|
|
16
17
|
}
|
|
17
18
|
// Has, but will be null
|
|
18
19
|
return true;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasNumberOfAudioChannels = exports.getNumberOfAudioChannels = void 0;
|
|
4
|
+
const getNumberOfAudioChannels = (state) => {
|
|
5
|
+
var _a, _b;
|
|
6
|
+
return ((_b = (_a = state.callbacks.tracks.getTracks().find((track) => {
|
|
7
|
+
return track.type === 'audio';
|
|
8
|
+
})) === null || _a === void 0 ? void 0 : _a.numberOfChannels) !== null && _b !== void 0 ? _b : null);
|
|
9
|
+
};
|
|
10
|
+
exports.getNumberOfAudioChannels = getNumberOfAudioChannels;
|
|
11
|
+
const hasNumberOfAudioChannels = (state) => {
|
|
12
|
+
return state.callbacks.tracks.hasAllTracks();
|
|
13
|
+
};
|
|
14
|
+
exports.hasNumberOfAudioChannels = hasNumberOfAudioChannels;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { Av1CBox } from './
|
|
2
|
-
import type { AvccBox } from './
|
|
3
|
-
import type { ColorParameterBox } from './
|
|
4
|
-
import type { HvccBox } from './
|
|
5
|
-
import type { PaspBox } from './
|
|
6
|
-
import type { VideoSample } from './
|
|
7
|
-
import type { TkhdBox } from './
|
|
8
|
-
import type { TrakBox } from './
|
|
1
|
+
import type { Av1CBox } from './containers/iso-base-media/stsd/av1c';
|
|
2
|
+
import type { AvccBox } from './containers/iso-base-media/stsd/avcc';
|
|
3
|
+
import type { ColorParameterBox } from './containers/iso-base-media/stsd/colr';
|
|
4
|
+
import type { HvccBox } from './containers/iso-base-media/stsd/hvcc';
|
|
5
|
+
import type { PaspBox } from './containers/iso-base-media/stsd/pasp';
|
|
6
|
+
import type { VideoSample } from './containers/iso-base-media/stsd/samples';
|
|
7
|
+
import type { TkhdBox } from './containers/iso-base-media/tkhd';
|
|
8
|
+
import type { TrakBox } from './containers/iso-base-media/trak/trak';
|
|
9
9
|
import type { Dimensions } from './get-dimensions';
|
|
10
10
|
type AspectRatio = {
|
|
11
11
|
numerator: number;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getDisplayAspectRatio = exports.applyAspectRatios = exports.applyTkhdBox = exports.getColrBox = exports.getSampleAspectRatio = exports.getHvccBox = exports.getPaspBox = exports.getAv1CBox = exports.getAvccBox = exports.getStsdVideoConfig = void 0;
|
|
4
|
-
const traversal_1 = require("./
|
|
4
|
+
const traversal_1 = require("./containers/iso-base-media/traversal");
|
|
5
5
|
const getStsdVideoConfig = (trakBox) => {
|
|
6
6
|
const stsdBox = (0, traversal_1.getStsdBox)(trakBox);
|
|
7
7
|
if (!stsdBox) {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { TrakBox } from './
|
|
1
|
+
import type { TrakBox } from './containers/iso-base-media/trak/trak';
|
|
2
2
|
import type { SamplePosition } from './get-sample-positions';
|
|
3
3
|
export declare const getSamplePositionsFromLpcm: (trakBox: TrakBox) => SamplePosition[];
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// We need to handle this case differently and treat each chunk as a sample instead
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.getSamplePositionsFromLpcm = void 0;
|
|
6
|
-
const traversal_1 = require("./
|
|
6
|
+
const traversal_1 = require("./containers/iso-base-media/traversal");
|
|
7
7
|
// example video: mehmet.mov
|
|
8
8
|
const getSamplePositionsFromLpcm = (trakBox) => {
|
|
9
9
|
const stscBox = (0, traversal_1.getStscBox)(trakBox);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { CttsBox } from './
|
|
2
|
-
import type { StcoBox } from './
|
|
3
|
-
import type { StscBox } from './
|
|
4
|
-
import type { StssBox } from './
|
|
5
|
-
import type { StszBox } from './
|
|
6
|
-
import type { SttsBox } from './
|
|
1
|
+
import type { CttsBox } from './containers/iso-base-media/stsd/ctts';
|
|
2
|
+
import type { StcoBox } from './containers/iso-base-media/stsd/stco';
|
|
3
|
+
import type { StscBox } from './containers/iso-base-media/stsd/stsc';
|
|
4
|
+
import type { StssBox } from './containers/iso-base-media/stsd/stss';
|
|
5
|
+
import type { StszBox } from './containers/iso-base-media/stsd/stsz';
|
|
6
|
+
import type { SttsBox } from './containers/iso-base-media/stsd/stts';
|
|
7
7
|
export type SamplePosition = {
|
|
8
8
|
offset: number;
|
|
9
9
|
size: number;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasSampleRate = exports.getSampleRate = void 0;
|
|
4
|
+
const getSampleRate = (state) => {
|
|
5
|
+
var _a, _b;
|
|
6
|
+
return ((_b = (_a = state.callbacks.tracks.getTracks().find((track) => {
|
|
7
|
+
return track.type === 'audio';
|
|
8
|
+
})) === null || _a === void 0 ? void 0 : _a.sampleRate) !== null && _b !== void 0 ? _b : null);
|
|
9
|
+
};
|
|
10
|
+
exports.getSampleRate = getSampleRate;
|
|
11
|
+
const hasSampleRate = (state) => {
|
|
12
|
+
return state.callbacks.tracks.hasAllTracks();
|
|
13
|
+
};
|
|
14
|
+
exports.hasSampleRate = hasSampleRate;
|
package/dist/get-tracks.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { MatrixCoefficients, Primaries, TransferCharacteristics } from './
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
1
|
+
import type { MatrixCoefficients, Primaries, TransferCharacteristics } from './containers/avc/color';
|
|
2
|
+
import type { IsoBaseMediaBox } from './containers/iso-base-media/base-media-box';
|
|
3
|
+
import type { MoovBox } from './containers/iso-base-media/moov/moov';
|
|
4
|
+
import type { TrakBox } from './containers/iso-base-media/trak/trak';
|
|
5
|
+
import type { AllTracks } from './containers/riff/get-tracks-from-avi';
|
|
6
|
+
import type { IsoBaseMediaStructure } from './parse-result';
|
|
6
7
|
import type { ParserState } from './state/parser-state';
|
|
7
8
|
type SampleAspectRatio = {
|
|
8
9
|
numerator: number;
|
|
@@ -15,7 +16,7 @@ export type VideoTrackColorParams = {
|
|
|
15
16
|
fullRange: boolean | null;
|
|
16
17
|
};
|
|
17
18
|
export type MediaParserVideoCodec = 'vp8' | 'vp9' | 'h264' | 'av1' | 'h265' | 'prores';
|
|
18
|
-
export type MediaParserAudioCodec = 'opus' | 'aac' | 'mp3' | 'vorbis' | 'pcm-u8' | 'pcm-s16' | 'pcm-s24' | 'pcm-s32' | 'pcm-f32' | 'aiff';
|
|
19
|
+
export type MediaParserAudioCodec = 'opus' | 'aac' | 'mp3' | 'vorbis' | 'pcm-u8' | 'pcm-s16' | 'pcm-s24' | 'pcm-s32' | 'pcm-f32' | 'flac' | 'aiff';
|
|
19
20
|
export type VideoTrack = {
|
|
20
21
|
type: 'video';
|
|
21
22
|
trackId: number;
|
|
@@ -57,11 +58,11 @@ export type OtherTrack = {
|
|
|
57
58
|
export type Track = VideoTrack | AudioTrack | OtherTrack;
|
|
58
59
|
export declare const getNumberOfTracks: (moovBox: MoovBox) => number;
|
|
59
60
|
export declare const isoBaseMediaHasTracks: (structure: IsoBaseMediaStructure) => boolean;
|
|
60
|
-
export declare const getHasTracks: (
|
|
61
|
+
export declare const getHasTracks: (state: ParserState) => boolean;
|
|
61
62
|
export declare const getTracksFromIsoBaseMedia: (segments: IsoBaseMediaBox[]) => {
|
|
62
63
|
videoTracks: VideoTrack[];
|
|
63
64
|
audioTracks: AudioTrack[];
|
|
64
65
|
otherTracks: OtherTrack[];
|
|
65
66
|
};
|
|
66
|
-
export declare const getTracks: (
|
|
67
|
+
export declare const getTracks: (state: ParserState) => AllTracks;
|
|
67
68
|
export {};
|