@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
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseIsoBaseMedia = void 0;
|
|
4
|
+
const mdat_1 = require("./mdat/mdat");
|
|
5
|
+
const process_box_1 = require("./process-box");
|
|
6
|
+
const parseIsoBaseMedia = async (state) => {
|
|
7
|
+
const videoSectionState = state.videoSection.isInVideoSectionState(state.iterator);
|
|
8
|
+
if (videoSectionState === 'in-section') {
|
|
9
|
+
const skipTo = await (0, mdat_1.parseMdatSection)(state);
|
|
10
|
+
return {
|
|
11
|
+
skipTo,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
const result = await (0, process_box_1.processBox)(state);
|
|
15
|
+
if (result.box) {
|
|
16
|
+
state.structure.getStructure().boxes.push(result.box);
|
|
17
|
+
}
|
|
18
|
+
const { iterator } = state;
|
|
19
|
+
if (iterator.counter.getOffset() === state.contentLength &&
|
|
20
|
+
state.iso.getShouldReturnToVideoSectionAfterEnd()) {
|
|
21
|
+
state.iso.setShouldReturnToVideoSectionAfterEnd(false);
|
|
22
|
+
return {
|
|
23
|
+
skipTo: state.videoSection.getVideoSection().start,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
if (result.skipTo !== null) {
|
|
27
|
+
return {
|
|
28
|
+
skipTo: result.skipTo,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
if (iterator.bytesRemaining() < 0) {
|
|
32
|
+
return {
|
|
33
|
+
skipTo: null,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
skipTo: null,
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
exports.parseIsoBaseMedia = parseIsoBaseMedia;
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.processBox = void 0;
|
|
4
|
-
const
|
|
5
|
-
const may_skip_video_data_1 = require("../../may-skip-video-data/may-skip-video-data");
|
|
4
|
+
const log_1 = require("../../log");
|
|
6
5
|
const register_track_1 = require("../../register-track");
|
|
7
6
|
const esds_1 = require("./esds/esds");
|
|
8
7
|
const ftyp_1 = require("./ftyp");
|
|
9
8
|
const get_children_1 = require("./get-children");
|
|
10
9
|
const make_track_1 = require("./make-track");
|
|
11
|
-
const mdat_1 = require("./mdat/mdat");
|
|
12
10
|
const mdhd_1 = require("./mdhd");
|
|
13
11
|
const hdlr_1 = require("./meta/hdlr");
|
|
14
12
|
const ilst_1 = require("./meta/ilst");
|
|
15
13
|
const moov_1 = require("./moov/moov");
|
|
16
14
|
const mvhd_1 = require("./mvhd");
|
|
17
|
-
const parse_mdat_partially_1 = require("./parse-mdat-partially");
|
|
18
15
|
const av1c_1 = require("./stsd/av1c");
|
|
19
16
|
const avcc_1 = require("./stsd/avcc");
|
|
20
17
|
const colr_1 = require("./stsd/colr");
|
|
@@ -34,18 +31,18 @@ const tfhd_1 = require("./tfhd");
|
|
|
34
31
|
const tkhd_1 = require("./tkhd");
|
|
35
32
|
const trak_1 = require("./trak/trak");
|
|
36
33
|
const trun_1 = require("./trun");
|
|
37
|
-
const processBox = async (
|
|
34
|
+
const processBox = async (state) => {
|
|
35
|
+
const { iterator } = state;
|
|
38
36
|
const fileOffset = iterator.counter.getOffset();
|
|
37
|
+
const { returnToCheckpoint } = iterator.startCheckpoint();
|
|
39
38
|
const bytesRemaining = iterator.bytesRemaining();
|
|
40
39
|
const boxSizeRaw = iterator.getFourByteNumber();
|
|
41
40
|
if (boxSizeRaw === 0) {
|
|
42
41
|
return {
|
|
43
|
-
type: 'complete',
|
|
44
42
|
box: {
|
|
45
43
|
type: 'void-box',
|
|
46
44
|
boxSize: 0,
|
|
47
45
|
},
|
|
48
|
-
size: 4,
|
|
49
46
|
skipTo: null,
|
|
50
47
|
};
|
|
51
48
|
}
|
|
@@ -53,64 +50,32 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
53
50
|
if ((boxSizeRaw === 1 && iterator.bytesRemaining() < 12) ||
|
|
54
51
|
iterator.bytesRemaining() < 4) {
|
|
55
52
|
iterator.counter.decrement(iterator.counter.getOffset() - fileOffset);
|
|
56
|
-
|
|
57
|
-
throw new Error(`Expected box size of ${bytesRemaining}, got ${boxSizeRaw}. Incomplete boxes are not allowed.`);
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
type: 'incomplete',
|
|
61
|
-
};
|
|
53
|
+
throw new Error(`Expected box size of ${bytesRemaining}, got ${boxSizeRaw}. Incomplete boxes are not allowed.`);
|
|
62
54
|
}
|
|
63
55
|
const boxType = iterator.getByteString(4, false);
|
|
64
56
|
const boxSize = boxSizeRaw === 1 ? iterator.getEightByteNumber() : boxSizeRaw;
|
|
57
|
+
log_1.Log.trace(state.logLevel, 'Found box', boxType, boxSize);
|
|
58
|
+
if (boxType === 'mdat') {
|
|
59
|
+
state.videoSection.setVideoSection({
|
|
60
|
+
size: boxSize - 8,
|
|
61
|
+
start: iterator.counter.getOffset(),
|
|
62
|
+
});
|
|
63
|
+
return {
|
|
64
|
+
box: null,
|
|
65
|
+
skipTo: null,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
65
68
|
if (bytesRemaining < boxSize) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return {
|
|
72
|
-
type: 'incomplete',
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
// Check if the moov atom is at the end
|
|
76
|
-
const shouldSkip = (0, may_skip_video_data_1.maySkipVideoData)({ state }) ||
|
|
77
|
-
(!(0, get_tracks_1.getHasTracks)({ type: 'iso-base-media', boxes: parsedBoxes }, state) &&
|
|
78
|
-
state.supportsContentRange);
|
|
79
|
-
if (shouldSkip) {
|
|
80
|
-
const skipTo = fileOffset + boxSize;
|
|
81
|
-
const bytesToSkip = skipTo - iterator.counter.getOffset();
|
|
82
|
-
// If there is a huge mdat chunk, we can skip it because we don't need it for the metadata
|
|
83
|
-
if (bytesToSkip > 1000000) {
|
|
84
|
-
return {
|
|
85
|
-
type: 'complete',
|
|
86
|
-
box: {
|
|
87
|
-
type: 'mdat-box',
|
|
88
|
-
boxSize,
|
|
89
|
-
fileOffset,
|
|
90
|
-
status: 'samples-skipped',
|
|
91
|
-
},
|
|
92
|
-
size: boxSize,
|
|
93
|
-
skipTo: fileOffset + boxSize,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
return (0, parse_mdat_partially_1.parseMdatPartially)({
|
|
99
|
-
iterator,
|
|
100
|
-
boxSize,
|
|
101
|
-
fileOffset,
|
|
102
|
-
parsedBoxes,
|
|
103
|
-
state,
|
|
104
|
-
signal,
|
|
105
|
-
});
|
|
106
|
-
}
|
|
69
|
+
returnToCheckpoint();
|
|
70
|
+
return {
|
|
71
|
+
box: null,
|
|
72
|
+
skipTo: null,
|
|
73
|
+
};
|
|
107
74
|
}
|
|
108
75
|
if (boxType === 'ftyp') {
|
|
109
76
|
const box = (0, ftyp_1.parseFtyp)({ iterator, size: boxSize, offset: fileOffset });
|
|
110
77
|
return {
|
|
111
|
-
type: 'complete',
|
|
112
78
|
box,
|
|
113
|
-
size: boxSize,
|
|
114
79
|
skipTo: null,
|
|
115
80
|
};
|
|
116
81
|
}
|
|
@@ -120,61 +85,46 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
120
85
|
size: boxSize,
|
|
121
86
|
});
|
|
122
87
|
return {
|
|
123
|
-
type: 'complete',
|
|
124
88
|
box,
|
|
125
|
-
size: boxSize,
|
|
126
89
|
skipTo: null,
|
|
127
90
|
};
|
|
128
91
|
}
|
|
129
92
|
if (boxType === 'mvhd') {
|
|
130
93
|
const box = (0, mvhd_1.parseMvhd)({ iterator, offset: fileOffset, size: boxSize });
|
|
131
94
|
return {
|
|
132
|
-
type: 'complete',
|
|
133
95
|
box,
|
|
134
|
-
size: boxSize,
|
|
135
96
|
skipTo: null,
|
|
136
97
|
};
|
|
137
98
|
}
|
|
138
99
|
if (boxType === 'tkhd') {
|
|
139
100
|
const box = (0, tkhd_1.parseTkhd)({ iterator, offset: fileOffset, size: boxSize });
|
|
140
101
|
return {
|
|
141
|
-
type: 'complete',
|
|
142
102
|
box,
|
|
143
|
-
size: boxSize,
|
|
144
103
|
skipTo: null,
|
|
145
104
|
};
|
|
146
105
|
}
|
|
147
106
|
if (boxType === 'trun') {
|
|
148
107
|
const box = (0, trun_1.parseTrun)({ iterator, offset: fileOffset, size: boxSize });
|
|
149
108
|
return {
|
|
150
|
-
type: 'complete',
|
|
151
109
|
box,
|
|
152
|
-
size: boxSize,
|
|
153
110
|
skipTo: null,
|
|
154
111
|
};
|
|
155
112
|
}
|
|
156
113
|
if (boxType === 'tfdt') {
|
|
157
114
|
const box = (0, tfdt_1.parseTfdt)({ iterator, size: boxSize, offset: fileOffset });
|
|
158
115
|
return {
|
|
159
|
-
type: 'complete',
|
|
160
116
|
box,
|
|
161
|
-
size: boxSize,
|
|
162
117
|
skipTo: null,
|
|
163
118
|
};
|
|
164
119
|
}
|
|
165
120
|
if (boxType === 'stsd') {
|
|
166
121
|
const box = await (0, stsd_1.parseStsd)({
|
|
167
|
-
iterator,
|
|
168
122
|
offset: fileOffset,
|
|
169
123
|
size: boxSize,
|
|
170
124
|
state,
|
|
171
|
-
signal,
|
|
172
|
-
fields,
|
|
173
125
|
});
|
|
174
126
|
return {
|
|
175
|
-
type: 'complete',
|
|
176
127
|
box,
|
|
177
|
-
size: boxSize,
|
|
178
128
|
skipTo: null,
|
|
179
129
|
};
|
|
180
130
|
}
|
|
@@ -185,9 +135,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
185
135
|
size: boxSize,
|
|
186
136
|
});
|
|
187
137
|
return {
|
|
188
|
-
type: 'complete',
|
|
189
138
|
box,
|
|
190
|
-
size: boxSize,
|
|
191
139
|
skipTo: null,
|
|
192
140
|
};
|
|
193
141
|
}
|
|
@@ -199,9 +147,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
199
147
|
mode64Bit: boxType === 'co64',
|
|
200
148
|
});
|
|
201
149
|
return {
|
|
202
|
-
type: 'complete',
|
|
203
150
|
box,
|
|
204
|
-
size: boxSize,
|
|
205
151
|
skipTo: null,
|
|
206
152
|
};
|
|
207
153
|
}
|
|
@@ -212,9 +158,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
212
158
|
size: boxSize,
|
|
213
159
|
});
|
|
214
160
|
return {
|
|
215
|
-
type: 'complete',
|
|
216
161
|
box,
|
|
217
|
-
size: boxSize,
|
|
218
162
|
skipTo: null,
|
|
219
163
|
};
|
|
220
164
|
}
|
|
@@ -225,9 +169,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
225
169
|
boxSize,
|
|
226
170
|
});
|
|
227
171
|
return {
|
|
228
|
-
type: 'complete',
|
|
229
172
|
box,
|
|
230
|
-
size: boxSize,
|
|
231
173
|
skipTo: null,
|
|
232
174
|
};
|
|
233
175
|
}
|
|
@@ -238,9 +180,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
238
180
|
size: boxSize,
|
|
239
181
|
});
|
|
240
182
|
return {
|
|
241
|
-
type: 'complete',
|
|
242
183
|
box,
|
|
243
|
-
size: boxSize,
|
|
244
184
|
skipTo: null,
|
|
245
185
|
};
|
|
246
186
|
}
|
|
@@ -251,43 +191,32 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
251
191
|
size: boxSize,
|
|
252
192
|
});
|
|
253
193
|
return {
|
|
254
|
-
type: 'complete',
|
|
255
194
|
box,
|
|
256
|
-
size: boxSize,
|
|
257
195
|
skipTo: null,
|
|
258
196
|
};
|
|
259
197
|
}
|
|
260
198
|
if (boxType === 'mebx') {
|
|
261
199
|
const box = await (0, mebx_1.parseMebx)({
|
|
262
|
-
iterator,
|
|
263
200
|
offset: fileOffset,
|
|
264
201
|
size: boxSize,
|
|
265
202
|
state,
|
|
266
|
-
signal,
|
|
267
|
-
fields,
|
|
268
203
|
});
|
|
269
204
|
return {
|
|
270
|
-
type: 'complete',
|
|
271
205
|
box,
|
|
272
|
-
size: boxSize,
|
|
273
206
|
skipTo: null,
|
|
274
207
|
};
|
|
275
208
|
}
|
|
276
209
|
if (boxType === 'hdlr') {
|
|
277
210
|
const box = await (0, hdlr_1.parseHdlr)({ iterator, size: boxSize, offset: fileOffset });
|
|
278
211
|
return {
|
|
279
|
-
type: 'complete',
|
|
280
212
|
box,
|
|
281
|
-
size: boxSize,
|
|
282
213
|
skipTo: null,
|
|
283
214
|
};
|
|
284
215
|
}
|
|
285
216
|
if (boxType === 'keys') {
|
|
286
217
|
const box = (0, keys_1.parseKeys)({ iterator, size: boxSize, offset: fileOffset });
|
|
287
218
|
return {
|
|
288
|
-
type: 'complete',
|
|
289
219
|
box,
|
|
290
|
-
size: boxSize,
|
|
291
220
|
skipTo: null,
|
|
292
221
|
};
|
|
293
222
|
}
|
|
@@ -298,39 +227,34 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
298
227
|
size: boxSize,
|
|
299
228
|
});
|
|
300
229
|
return {
|
|
301
|
-
type: 'complete',
|
|
302
230
|
box,
|
|
303
|
-
size: boxSize,
|
|
304
231
|
skipTo: null,
|
|
305
232
|
};
|
|
306
233
|
}
|
|
307
234
|
if (boxType === 'moov') {
|
|
235
|
+
if (state.callbacks.tracks.hasAllTracks()) {
|
|
236
|
+
iterator.discard(boxSize - 8);
|
|
237
|
+
return {
|
|
238
|
+
box: null,
|
|
239
|
+
skipTo: null,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
308
242
|
const box = await (0, moov_1.parseMoov)({
|
|
309
|
-
iterator,
|
|
310
243
|
offset: fileOffset,
|
|
311
244
|
size: boxSize,
|
|
312
245
|
state,
|
|
313
|
-
signal,
|
|
314
|
-
logLevel,
|
|
315
|
-
fields,
|
|
316
246
|
});
|
|
317
247
|
state.callbacks.tracks.setIsDone();
|
|
318
248
|
return {
|
|
319
|
-
type: 'complete',
|
|
320
249
|
box,
|
|
321
|
-
size: boxSize,
|
|
322
250
|
skipTo: null,
|
|
323
251
|
};
|
|
324
252
|
}
|
|
325
253
|
if (boxType === 'trak') {
|
|
326
254
|
const box = await (0, trak_1.parseTrak)({
|
|
327
|
-
data: iterator,
|
|
328
255
|
size: boxSize,
|
|
329
256
|
offsetAtStart: fileOffset,
|
|
330
257
|
state,
|
|
331
|
-
signal,
|
|
332
|
-
logLevel,
|
|
333
|
-
fields,
|
|
334
258
|
});
|
|
335
259
|
const transformedTrack = (0, make_track_1.makeBaseMediaTrack)(box);
|
|
336
260
|
if (transformedTrack) {
|
|
@@ -341,9 +265,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
341
265
|
});
|
|
342
266
|
}
|
|
343
267
|
return {
|
|
344
|
-
type: 'complete',
|
|
345
268
|
box,
|
|
346
|
-
size: boxSize,
|
|
347
269
|
skipTo: null,
|
|
348
270
|
};
|
|
349
271
|
}
|
|
@@ -354,9 +276,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
354
276
|
fileOffset,
|
|
355
277
|
});
|
|
356
278
|
return {
|
|
357
|
-
type: 'complete',
|
|
358
279
|
box,
|
|
359
|
-
size: boxSize,
|
|
360
280
|
skipTo: null,
|
|
361
281
|
};
|
|
362
282
|
}
|
|
@@ -366,9 +286,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
366
286
|
size: boxSize,
|
|
367
287
|
});
|
|
368
288
|
return {
|
|
369
|
-
type: 'complete',
|
|
370
289
|
box,
|
|
371
|
-
size: boxSize,
|
|
372
290
|
skipTo: null,
|
|
373
291
|
};
|
|
374
292
|
}
|
|
@@ -378,9 +296,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
378
296
|
size: boxSize,
|
|
379
297
|
});
|
|
380
298
|
return {
|
|
381
|
-
type: 'complete',
|
|
382
299
|
box,
|
|
383
|
-
size: boxSize,
|
|
384
300
|
skipTo: null,
|
|
385
301
|
};
|
|
386
302
|
}
|
|
@@ -391,9 +307,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
391
307
|
offset: fileOffset,
|
|
392
308
|
});
|
|
393
309
|
return {
|
|
394
|
-
type: 'complete',
|
|
395
310
|
box,
|
|
396
|
-
size: boxSize,
|
|
397
311
|
skipTo: null,
|
|
398
312
|
};
|
|
399
313
|
}
|
|
@@ -404,9 +318,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
404
318
|
size: boxSize,
|
|
405
319
|
});
|
|
406
320
|
return {
|
|
407
|
-
type: 'complete',
|
|
408
321
|
box,
|
|
409
|
-
size: boxSize,
|
|
410
322
|
skipTo: null,
|
|
411
323
|
};
|
|
412
324
|
}
|
|
@@ -417,9 +329,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
417
329
|
fileOffset,
|
|
418
330
|
});
|
|
419
331
|
return {
|
|
420
|
-
type: 'complete',
|
|
421
332
|
box,
|
|
422
|
-
size: boxSize,
|
|
423
333
|
skipTo: null,
|
|
424
334
|
};
|
|
425
335
|
}
|
|
@@ -430,52 +340,44 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
|
|
|
430
340
|
fileOffset,
|
|
431
341
|
});
|
|
432
342
|
return {
|
|
433
|
-
type: 'complete',
|
|
434
343
|
box,
|
|
435
|
-
size: boxSize,
|
|
436
344
|
skipTo: null,
|
|
437
345
|
};
|
|
438
346
|
}
|
|
439
|
-
if (boxType === '
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
347
|
+
if (boxType === 'mdia' ||
|
|
348
|
+
boxType === 'minf' ||
|
|
349
|
+
boxType === 'stbl' ||
|
|
350
|
+
boxType === 'udta' ||
|
|
351
|
+
boxType === 'moof' ||
|
|
352
|
+
boxType === 'dims' ||
|
|
353
|
+
boxType === 'meta' ||
|
|
354
|
+
boxType === 'wave' ||
|
|
355
|
+
boxType === 'traf' ||
|
|
356
|
+
boxType === 'stsb') {
|
|
357
|
+
const children = await (0, get_children_1.getIsoBaseMediaChildren)({
|
|
445
358
|
state,
|
|
446
|
-
|
|
447
|
-
maySkipSampleProcessing: state.supportsContentRange,
|
|
359
|
+
size: boxSize - 8,
|
|
448
360
|
});
|
|
449
|
-
if (box.type === 'partial-mdat-box') {
|
|
450
|
-
return box;
|
|
451
|
-
}
|
|
452
361
|
return {
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
362
|
+
box: {
|
|
363
|
+
type: 'regular-box',
|
|
364
|
+
boxType,
|
|
365
|
+
boxSize,
|
|
366
|
+
children,
|
|
367
|
+
offset: fileOffset,
|
|
368
|
+
},
|
|
456
369
|
skipTo: null,
|
|
457
370
|
};
|
|
458
371
|
}
|
|
459
|
-
|
|
460
|
-
const children = await (0, get_children_1.getChildren)({
|
|
461
|
-
boxType,
|
|
462
|
-
iterator,
|
|
463
|
-
bytesRemainingInBox,
|
|
464
|
-
state,
|
|
465
|
-
signal,
|
|
466
|
-
logLevel,
|
|
467
|
-
fields,
|
|
468
|
-
});
|
|
372
|
+
iterator.discard(boxSize - 8);
|
|
469
373
|
return {
|
|
470
|
-
type: 'complete',
|
|
471
374
|
box: {
|
|
472
375
|
type: 'regular-box',
|
|
473
376
|
boxType,
|
|
474
377
|
boxSize,
|
|
475
|
-
children,
|
|
378
|
+
children: [],
|
|
476
379
|
offset: fileOffset,
|
|
477
380
|
},
|
|
478
|
-
size: boxSize,
|
|
479
381
|
skipTo: null,
|
|
480
382
|
};
|
|
481
383
|
};
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../../buffer-iterator';
|
|
2
|
-
import type { Options, ParseMediaFields } from '../../../options';
|
|
3
1
|
import type { AnySegment } from '../../../parse-result';
|
|
4
2
|
import type { ParserState } from '../../../state/parser-state';
|
|
5
3
|
import type { BaseBox } from '../base-type';
|
|
@@ -9,11 +7,8 @@ export interface MebxBox extends BaseBox {
|
|
|
9
7
|
format: string;
|
|
10
8
|
children: AnySegment[];
|
|
11
9
|
}
|
|
12
|
-
export declare const parseMebx: ({
|
|
13
|
-
iterator: BufferIterator;
|
|
10
|
+
export declare const parseMebx: ({ offset, size, state, }: {
|
|
14
11
|
offset: number;
|
|
15
12
|
size: number;
|
|
16
13
|
state: ParserState;
|
|
17
|
-
signal: AbortSignal | null;
|
|
18
|
-
fields: Options<ParseMediaFields>;
|
|
19
14
|
}) => Promise<MebxBox>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseMebx = void 0;
|
|
4
|
+
const get_children_1 = require("../get-children");
|
|
5
|
+
const parseMebx = async ({ offset, size, state, }) => {
|
|
6
|
+
// reserved, 6 bit
|
|
7
|
+
state.iterator.discard(6);
|
|
8
|
+
const dataReferenceIndex = state.iterator.getUint16();
|
|
9
|
+
const children = await (0, get_children_1.getIsoBaseMediaChildren)({
|
|
10
|
+
state,
|
|
11
|
+
size: size - 8,
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
type: 'mebx-box',
|
|
15
|
+
boxSize: size,
|
|
16
|
+
offset,
|
|
17
|
+
dataReferenceIndex,
|
|
18
|
+
format: 'mebx',
|
|
19
|
+
children,
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
exports.parseMebx = parseMebx;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { LogLevel } from '../../../log';
|
|
3
|
-
import type { Options, ParseMediaFields } from '../../../options';
|
|
4
|
-
import type { AnySegment, IsoBaseMediaBox } from '../../../parse-result';
|
|
1
|
+
import type { AnySegment } from '../../../parse-result';
|
|
5
2
|
import type { ParserState } from '../../../state/parser-state';
|
|
3
|
+
import type { IsoBaseMediaBox } from '../base-media-box';
|
|
6
4
|
type SampleBase = {
|
|
7
5
|
format: string;
|
|
8
6
|
offset: number;
|
|
@@ -47,22 +45,14 @@ type UnknownSample = SampleBase & {
|
|
|
47
45
|
type: 'unknown';
|
|
48
46
|
};
|
|
49
47
|
export type Sample = AudioSample | VideoSample | UnknownSample;
|
|
50
|
-
type
|
|
48
|
+
type FormatBoxAndNext = {
|
|
51
49
|
sample: Sample | null;
|
|
52
50
|
};
|
|
53
|
-
export declare const
|
|
54
|
-
iterator: BufferIterator;
|
|
51
|
+
export declare const processIsoFormatBox: ({ state, }: {
|
|
55
52
|
state: ParserState;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
fields: Options<ParseMediaFields>;
|
|
59
|
-
}) => Promise<SampleAndNext>;
|
|
60
|
-
export declare const parseSamples: ({ iterator, maxBytes, state, signal, logLevel, fields, }: {
|
|
61
|
-
iterator: BufferIterator;
|
|
53
|
+
}) => Promise<FormatBoxAndNext>;
|
|
54
|
+
export declare const parseIsoFormatBoxes: ({ maxBytes, state, }: {
|
|
62
55
|
maxBytes: number;
|
|
63
56
|
state: ParserState;
|
|
64
|
-
signal: AbortSignal | null;
|
|
65
|
-
logLevel: LogLevel;
|
|
66
|
-
fields: Options<ParseMediaFields>;
|
|
67
57
|
}) => Promise<Sample[]>;
|
|
68
58
|
export {};
|