@remotion/media-parser 4.0.250 → 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 -2
- package/dist/buffer-iterator.js +60 -34
- 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-riff.d.ts → containers/flac/parse-flac.d.ts} +1 -1
- package/dist/containers/flac/parse-flac.js +54 -0
- package/dist/{boxes/mp3/parse-mp3.d.ts → containers/flac/parse-header.d.ts} +2 -2
- package/dist/containers/flac/parse-header.js +10 -0
- package/dist/{boxes/iso-base-media/parse-boxes.d.ts → containers/flac/parse-metadata.d.ts} +3 -2
- package/dist/containers/flac/parse-metadata.js +24 -0
- package/dist/{boxes/webm/parse-webm-header.d.ts → containers/flac/parse-streaminfo.d.ts} +1 -1
- package/dist/containers/flac/parse-streaminfo.js +53 -0
- package/dist/{boxes/riff/parse-riff-body.d.ts → containers/flac/parse-unknown-block.d.ts} +2 -1
- 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/{boxes → containers}/iso-base-media/get-children.js +3 -5
- 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/{boxes → containers}/iso-base-media/mdat/mdat.js +4 -4
- package/dist/{boxes → containers}/iso-base-media/moov/moov.d.ts +1 -3
- package/dist/{boxes → containers}/iso-base-media/moov/moov.js +1 -2
- package/dist/containers/iso-base-media/parse-boxes.d.ts +3 -0
- package/dist/{boxes → containers}/iso-base-media/parse-boxes.js +5 -11
- package/dist/containers/iso-base-media/process-box.d.ts +3 -0
- package/dist/{boxes → containers}/iso-base-media/process-box.js +2 -6
- package/dist/{boxes → containers}/iso-base-media/stsd/mebx.d.ts +1 -3
- package/dist/{boxes → containers}/iso-base-media/stsd/mebx.js +3 -4
- package/dist/{boxes → containers}/iso-base-media/stsd/samples.d.ts +4 -6
- package/dist/{boxes → containers}/iso-base-media/stsd/samples.js +4 -7
- package/dist/{boxes → containers}/iso-base-media/stsd/stsd.d.ts +1 -3
- package/dist/{boxes → containers}/iso-base-media/stsd/stsd.js +2 -2
- package/dist/{boxes → containers}/iso-base-media/trak/trak.d.ts +1 -3
- package/dist/{boxes → containers}/iso-base-media/trak/trak.js +1 -2
- package/dist/{boxes → containers}/iso-base-media/traversal.d.ts +2 -1
- 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 +2 -1
- package/dist/containers/mp3/parse-mp3.d.ts +3 -0
- package/dist/{boxes → containers}/mp3/parse-mp3.js +3 -3
- 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/{boxes → containers}/riff/expect-riff-box.js +4 -4
- 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 +1 -2
- package/dist/{boxes → containers}/riff/parse-list-box.d.ts +1 -3
- package/dist/{boxes → containers}/riff/parse-list-box.js +3 -5
- package/dist/{boxes → containers}/riff/parse-movi.d.ts +2 -5
- package/dist/{boxes → containers}/riff/parse-movi.js +6 -4
- package/dist/containers/riff/parse-riff-body.d.ts +3 -0
- package/dist/{boxes → containers}/riff/parse-riff-body.js +4 -7
- package/dist/{boxes → containers}/riff/parse-riff-box.d.ts +1 -3
- package/dist/{boxes → containers}/riff/parse-riff-box.js +3 -6
- package/dist/containers/riff/parse-riff-header.d.ts +3 -0
- package/dist/{boxes → containers}/riff/parse-riff-header.js +4 -4
- package/dist/containers/riff/parse-riff.d.ts +3 -0
- package/dist/{boxes → containers}/riff/parse-riff.js +4 -7
- package/dist/containers/riff/parse-video-section.d.ts +2 -0
- package/dist/{boxes → containers}/riff/parse-video-section.js +1 -2
- package/dist/{boxes → containers}/riff/riff-box.d.ts +5 -10
- package/dist/containers/riff/riff-box.js +2 -0
- package/dist/{boxes → containers}/riff/traversal.d.ts +1 -2
- package/dist/containers/transport-stream/boxes.js +2 -0
- package/dist/{boxes → containers}/transport-stream/parse-packet.d.ts +1 -3
- package/dist/{boxes → containers}/transport-stream/parse-packet.js +2 -2
- package/dist/{boxes → containers}/transport-stream/parse-stream-packet.d.ts +1 -3
- package/dist/{boxes → containers}/transport-stream/parse-stream-packet.js +2 -1
- package/dist/containers/transport-stream/parse-transport-stream.d.ts +3 -0
- package/dist/{boxes → containers}/transport-stream/parse-transport-stream.js +2 -12
- 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 +3 -2
- package/dist/containers/webm/parse-webm-header.d.ts +3 -0
- package/dist/{boxes → containers}/webm/parse-webm-header.js +2 -2
- package/dist/{boxes → containers}/webm/segments.d.ts +1 -3
- package/dist/{boxes → containers}/webm/segments.js +7 -6
- package/dist/emit-available-info.d.ts +1 -3
- package/dist/emit-available-info.js +82 -72
- package/dist/errors.d.ts +1 -1
- package/dist/esm/index.mjs +1539 -555
- package/dist/file-types/detect-file-type.d.ts +5 -1
- package/dist/file-types/detect-file-type.js +6 -1
- package/dist/file-types/index.js +3 -0
- package/dist/get-audio-codec.d.ts +3 -4
- package/dist/get-audio-codec.js +3 -3
- 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 +13 -9
- package/dist/get-duration.d.ts +5 -5
- package/dist/get-duration.js +28 -26
- 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 +1 -2
- package/dist/get-is-hdr.js +2 -2
- 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 +8 -7
- package/dist/get-tracks.js +23 -10
- package/dist/get-video-codec.d.ts +2 -3
- package/dist/get-video-codec.js +4 -4
- package/dist/has-all-info.js +26 -15
- package/dist/index.d.ts +103 -25
- package/dist/index.js +7 -7
- package/dist/init-video.d.ts +7 -0
- package/dist/{parse-video.js → init-video.js} +26 -55
- 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 +101 -34
- package/dist/parse-result.d.ts +8 -44
- package/dist/perform-seek.d.ts +13 -0
- package/dist/perform-seek.js +29 -0
- 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.js +5 -1
- 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.js +2 -2
- package/dist/{may-skip-video-data → state}/may-skip-video-data.d.ts +1 -1
- package/dist/{may-skip-video-data → state}/need-samples-for-fields.js +4 -0
- package/dist/state/parser-state.d.ts +88 -9
- package/dist/state/parser-state.js +8 -3
- package/dist/state/sample-callbacks.d.ts +1 -1
- package/dist/state/sample-callbacks.js +1 -1
- 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 +3 -3
- package/dist/state/transport-stream.js +1 -1
- package/dist/state/webm.d.ts +2 -2
- package/dist/state/webm.js +1 -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/dist/boxes/iso-base-media/continue-mdat-routine.d.ts +0 -14
- package/dist/boxes/iso-base-media/continue-mdat-routine.js +0 -74
- package/dist/boxes/iso-base-media/get-children.d.ts +0 -8
- package/dist/boxes/iso-base-media/mdat/mdat.d.ts +0 -6
- package/dist/boxes/iso-base-media/parse-all-children.d.ts +0 -8
- package/dist/boxes/iso-base-media/parse-all-children.js +0 -20
- package/dist/boxes/iso-base-media/parse-mdat-partially.d.ts +0 -9
- package/dist/boxes/iso-base-media/parse-mdat-partially.js +0 -24
- package/dist/boxes/iso-base-media/process-box.d.ts +0 -7
- 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 -6
- package/dist/boxes/mp3/parse-mpeg-header.d.ts +0 -6
- 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 -11
- package/dist/boxes/riff/parse-box.d.ts +0 -9
- package/dist/boxes/riff/parse-box.js +0 -35
- package/dist/boxes/riff/parse-fmt-box.d.ts +0 -8
- package/dist/boxes/riff/parse-fmt-box.js +0 -35
- package/dist/boxes/riff/parse-riff-header.d.ts +0 -7
- package/dist/boxes/riff/parse-video-section.d.ts +0 -6
- package/dist/boxes/transport-stream/parse-transport-stream.d.ts +0 -7
- package/dist/boxes/webm/segments/parse-children.d.ts +0 -9
- package/dist/boxes/webm/segments/parse-children.js +0 -21
- package/dist/bun-reader.d.ts +0 -1
- package/dist/bun-reader.js +0 -17
- package/dist/continue-mdat-routine.d.ts +0 -17
- package/dist/continue-mdat-routine.js +0 -92
- package/dist/parse-video.d.ts +0 -14
- package/dist/state/iso-state.d.ts +0 -4
- package/dist/state/iso-state.js +0 -13
- /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/traversal.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/get-tracks-from-avi.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-strf.d.ts +0 -0
- /package/dist/{boxes → containers}/riff/parse-strf.js +0 -0
- /package/dist/{boxes → containers}/riff/parse-strh.d.ts +0 -0
- /package/dist/{boxes → containers}/riff/parse-strh.js +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}/riff/traversal.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/get-tracks.d.ts +0 -0
- /package/dist/{boxes → containers}/transport-stream/get-tracks.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/process-stream-buffers.d.ts +0 -0
- /package/dist/{boxes → containers}/transport-stream/process-stream-buffers.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}/may-skip-video-data.js +0 -0
- /package/dist/{may-skip-video-data → state}/need-samples-for-fields.d.ts +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { AnySegment
|
|
1
|
+
import type { AnySegment } from '../../parse-result';
|
|
2
|
+
import type { IsoBaseMediaBox, RegularBox } from './base-media-box';
|
|
2
3
|
import type { FtypBox } from './ftyp';
|
|
3
4
|
import type { MdhdBox } from './mdhd';
|
|
4
5
|
import type { MoovBox } from './moov/moov';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ParserState } from '../../state/parser-state';
|
|
2
|
+
import type { AllTracks } from '../riff/get-tracks-from-avi';
|
|
3
|
+
export declare const getTracksFromMp3OrWavOrAac: (parserState: ParserState) => AllTracks;
|
|
4
|
+
export declare const hasAllTracksFromMp3OrWavOrAac: (parserState: ParserState) => boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
3
|
+
exports.hasAllTracksFromMp3OrWavOrAac = exports.getTracksFromMp3OrWavOrAac = void 0;
|
|
4
|
+
const getTracksFromMp3OrWavOrAac = (parserState) => {
|
|
5
5
|
const tracks = parserState.callbacks.tracks.getTracks();
|
|
6
6
|
if (tracks.length === 0) {
|
|
7
7
|
throw new Error('No tracks found');
|
|
@@ -12,14 +12,14 @@ const getTracksFromMp3 = (parserState) => {
|
|
|
12
12
|
videoTracks: [],
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
|
-
exports.
|
|
16
|
-
const
|
|
15
|
+
exports.getTracksFromMp3OrWavOrAac = getTracksFromMp3OrWavOrAac;
|
|
16
|
+
const hasAllTracksFromMp3OrWavOrAac = (parserState) => {
|
|
17
17
|
try {
|
|
18
|
-
(0, exports.
|
|
18
|
+
(0, exports.getTracksFromMp3OrWavOrAac)(parserState);
|
|
19
19
|
return true;
|
|
20
20
|
}
|
|
21
21
|
catch (_a) {
|
|
22
22
|
return false;
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
|
-
exports.
|
|
25
|
+
exports.hasAllTracksFromMp3OrWavOrAac = hasAllTracksFromMp3OrWavOrAac;
|
|
@@ -10,7 +10,8 @@ function combine28Bits(a, b, c, d) {
|
|
|
10
10
|
// Combine all values using bitwise operations
|
|
11
11
|
return (val1 << 21) | (val2 << 14) | (val3 << 7) | val4;
|
|
12
12
|
}
|
|
13
|
-
const parseId3 = ({
|
|
13
|
+
const parseId3 = ({ state }) => {
|
|
14
|
+
const { iterator } = state;
|
|
14
15
|
if (iterator.bytesRemaining() < 9) {
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
@@ -4,7 +4,8 @@ exports.parseMp3 = void 0;
|
|
|
4
4
|
const id3_1 = require("./id3");
|
|
5
5
|
const id3_v1_1 = require("./id3-v1");
|
|
6
6
|
const parse_mpeg_header_1 = require("./parse-mpeg-header");
|
|
7
|
-
const parseMp3 = async (
|
|
7
|
+
const parseMp3 = async (state) => {
|
|
8
|
+
const { iterator } = state;
|
|
8
9
|
if (iterator.bytesRemaining() < 3) {
|
|
9
10
|
return {
|
|
10
11
|
skipTo: null,
|
|
@@ -22,14 +23,13 @@ const parseMp3 = async ({ iterator, state, }) => {
|
|
|
22
23
|
}
|
|
23
24
|
// ID3 v2 or v3
|
|
24
25
|
if (bytes[0] === 0x49 && bytes[1] === 0x44 && bytes[2] === 0x33) {
|
|
25
|
-
(0, id3_1.parseId3)({
|
|
26
|
+
(0, id3_1.parseId3)({ state });
|
|
26
27
|
return {
|
|
27
28
|
skipTo: null,
|
|
28
29
|
};
|
|
29
30
|
}
|
|
30
31
|
if (bytes[0] === 0xff) {
|
|
31
32
|
await (0, parse_mpeg_header_1.parseMpegHeader)({
|
|
32
|
-
iterator,
|
|
33
33
|
state,
|
|
34
34
|
});
|
|
35
35
|
return {
|
|
@@ -143,7 +143,8 @@ function getBitrateKB({ bits, mpegVersion, level, }) {
|
|
|
143
143
|
// Return the corresponding bitrate
|
|
144
144
|
return bitrateTable[bits][key];
|
|
145
145
|
}
|
|
146
|
-
const parseMpegHeader = async ({
|
|
146
|
+
const parseMpegHeader = async ({ state, }) => {
|
|
147
|
+
const { iterator } = state;
|
|
147
148
|
const initialOffset = iterator.counter.getOffset();
|
|
148
149
|
if (iterator.bytesRemaining() < 32) {
|
|
149
150
|
return;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ParserState } from '../../state/parser-state';
|
|
2
|
+
import type { RiffBox } from './riff-box';
|
|
3
|
+
export type RiffResult = {
|
|
4
|
+
box: RiffBox | null;
|
|
5
|
+
skipTo: number | null;
|
|
6
|
+
};
|
|
7
|
+
export declare const expectRiffBox: (state: ParserState) => Promise<RiffResult>;
|
|
@@ -6,9 +6,10 @@ const get_tracks_from_avi_1 = require("./get-tracks-from-avi");
|
|
|
6
6
|
const is_movi_1 = require("./is-movi");
|
|
7
7
|
const parse_riff_box_1 = require("./parse-riff-box");
|
|
8
8
|
const parse_video_section_1 = require("./parse-video-section");
|
|
9
|
-
const expectRiffBox = async (
|
|
9
|
+
const expectRiffBox = async (state) => {
|
|
10
|
+
const { iterator } = state;
|
|
10
11
|
// Need at least 16 bytes to read LIST,size,movi,size
|
|
11
|
-
if (iterator.bytesRemaining() < 16) {
|
|
12
|
+
if (state.iterator.bytesRemaining() < 16) {
|
|
12
13
|
return {
|
|
13
14
|
box: null,
|
|
14
15
|
skipTo: null,
|
|
@@ -23,7 +24,7 @@ const expectRiffBox = async ({ iterator, state, }) => {
|
|
|
23
24
|
start: iterator.counter.getOffset(),
|
|
24
25
|
size: ckSize - 4,
|
|
25
26
|
});
|
|
26
|
-
return (0, parse_video_section_1.parseVideoSection)(
|
|
27
|
+
return (0, parse_video_section_1.parseVideoSection)(state);
|
|
27
28
|
}
|
|
28
29
|
if (iterator.bytesRemaining() < ckSize) {
|
|
29
30
|
checkpoint.returnToCheckpoint();
|
|
@@ -34,7 +35,6 @@ const expectRiffBox = async ({ iterator, state, }) => {
|
|
|
34
35
|
}
|
|
35
36
|
const box = await (0, parse_riff_box_1.parseRiffBox)({
|
|
36
37
|
id: ckId,
|
|
37
|
-
iterator,
|
|
38
38
|
size: ckSize,
|
|
39
39
|
state,
|
|
40
40
|
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSampleRateFromAvi = exports.getDurationFromAvi = void 0;
|
|
4
|
+
const traversal_1 = require("./traversal");
|
|
5
|
+
const getDurationFromAvi = (structure) => {
|
|
6
|
+
const strl = (0, traversal_1.getStrlBoxes)(structure);
|
|
7
|
+
const lengths = [];
|
|
8
|
+
for (const s of strl) {
|
|
9
|
+
const strh = (0, traversal_1.getStrhBox)(s.children);
|
|
10
|
+
if (!strh) {
|
|
11
|
+
throw new Error('No strh box');
|
|
12
|
+
}
|
|
13
|
+
const samplesPerSecond = strh.rate / strh.scale;
|
|
14
|
+
const streamLength = strh.length / samplesPerSecond;
|
|
15
|
+
lengths.push(streamLength);
|
|
16
|
+
}
|
|
17
|
+
return Math.max(...lengths);
|
|
18
|
+
};
|
|
19
|
+
exports.getDurationFromAvi = getDurationFromAvi;
|
|
20
|
+
const getSampleRateFromAvi = (structure) => {
|
|
21
|
+
const strl = (0, traversal_1.getStrlBoxes)(structure);
|
|
22
|
+
for (const s of strl) {
|
|
23
|
+
const strh = (0, traversal_1.getStrhBox)(s.children);
|
|
24
|
+
if (!strh) {
|
|
25
|
+
throw new Error('No strh box');
|
|
26
|
+
}
|
|
27
|
+
if (strh.strf.type === 'strf-box-audio') {
|
|
28
|
+
return strh.strf.sampleRate;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
};
|
|
33
|
+
exports.getSampleRateFromAvi = getSampleRateFromAvi;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { AudioTrack, OtherTrack, VideoTrack } from '../../get-tracks';
|
|
2
|
-
import type { RiffStructure } from '../../parse-result';
|
|
3
2
|
import type { ParserState } from '../../state/parser-state';
|
|
4
|
-
import type { StrfBoxAudio, StrfBoxVideo, StrhBox } from './riff-box';
|
|
3
|
+
import type { RiffStructure, StrfBoxAudio, StrfBoxVideo, StrhBox } from './riff-box';
|
|
5
4
|
export type AllTracks = {
|
|
6
5
|
videoTracks: VideoTrack[];
|
|
7
6
|
audioTracks: AudioTrack[];
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../buffer-iterator';
|
|
2
1
|
import type { ParserState } from '../../state/parser-state';
|
|
3
2
|
import type { RiffBox } from './riff-box';
|
|
4
|
-
export declare const parseListBox: ({
|
|
5
|
-
iterator: BufferIterator;
|
|
3
|
+
export declare const parseListBox: ({ size, state, }: {
|
|
6
4
|
size: number;
|
|
7
5
|
state: ParserState;
|
|
8
6
|
}) => Promise<RiffBox>;
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseListBox = void 0;
|
|
4
4
|
const expect_riff_box_1 = require("./expect-riff-box");
|
|
5
|
-
const parseListBox = async ({
|
|
5
|
+
const parseListBox = async ({ size, state, }) => {
|
|
6
|
+
const { iterator } = state;
|
|
6
7
|
const counter = iterator.counter.getOffset();
|
|
7
8
|
const listType = iterator.getByteString(4, false);
|
|
8
9
|
if (listType === 'movi') {
|
|
@@ -11,10 +12,7 @@ const parseListBox = async ({ iterator, size, state, }) => {
|
|
|
11
12
|
const boxes = [];
|
|
12
13
|
const maxOffset = counter + size;
|
|
13
14
|
while (iterator.counter.getOffset() < maxOffset) {
|
|
14
|
-
const result = await (0, expect_riff_box_1.expectRiffBox)(
|
|
15
|
-
iterator,
|
|
16
|
-
state,
|
|
17
|
-
});
|
|
15
|
+
const result = await (0, expect_riff_box_1.expectRiffBox)(state);
|
|
18
16
|
if (result.box !== null) {
|
|
19
17
|
boxes.push(result.box);
|
|
20
18
|
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../buffer-iterator';
|
|
2
1
|
import type { ParserState } from '../../state/parser-state';
|
|
3
2
|
import type { RiffResult } from './expect-riff-box';
|
|
4
|
-
export declare const handleChunk: ({
|
|
5
|
-
iterator: BufferIterator;
|
|
3
|
+
export declare const handleChunk: ({ state, ckId, ckSize, }: {
|
|
6
4
|
state: ParserState;
|
|
7
5
|
ckId: string;
|
|
8
6
|
ckSize: number;
|
|
9
7
|
}) => Promise<void>;
|
|
10
|
-
export declare const parseMovi: ({
|
|
11
|
-
iterator: BufferIterator;
|
|
8
|
+
export declare const parseMovi: ({ maxOffset, state, }: {
|
|
12
9
|
maxOffset: number;
|
|
13
10
|
state: ParserState;
|
|
14
11
|
}) => Promise<RiffResult>;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseMovi = exports.handleChunk = void 0;
|
|
4
4
|
const convert_audio_or_video_sample_1 = require("../../convert-audio-or-video-sample");
|
|
5
|
-
const may_skip_video_data_1 = require("../../
|
|
5
|
+
const may_skip_video_data_1 = require("../../state/may-skip-video-data");
|
|
6
6
|
const key_1 = require("../avc/key");
|
|
7
7
|
const parse_avc_1 = require("../avc/parse-avc");
|
|
8
8
|
const traversal_1 = require("./traversal");
|
|
@@ -18,7 +18,8 @@ const getStrhForIndex = (structure, trackId) => {
|
|
|
18
18
|
}
|
|
19
19
|
return strh;
|
|
20
20
|
};
|
|
21
|
-
const handleChunk = async ({
|
|
21
|
+
const handleChunk = async ({ state, ckId, ckSize, }) => {
|
|
22
|
+
const { iterator } = state;
|
|
22
23
|
const offset = iterator.counter.getOffset();
|
|
23
24
|
const videoChunk = ckId.match(/^([0-9]{2})dc$/);
|
|
24
25
|
if (videoChunk) {
|
|
@@ -81,7 +82,7 @@ const handleChunk = async ({ iterator, state, ckId, ckSize, }) => {
|
|
|
81
82
|
}
|
|
82
83
|
};
|
|
83
84
|
exports.handleChunk = handleChunk;
|
|
84
|
-
const parseMovi = async ({
|
|
85
|
+
const parseMovi = async ({ maxOffset, state, }) => {
|
|
85
86
|
if ((0, may_skip_video_data_1.maySkipVideoData)({
|
|
86
87
|
state,
|
|
87
88
|
}) &&
|
|
@@ -91,6 +92,7 @@ const parseMovi = async ({ iterator, maxOffset, state, }) => {
|
|
|
91
92
|
skipTo: maxOffset,
|
|
92
93
|
};
|
|
93
94
|
}
|
|
95
|
+
const { iterator } = state;
|
|
94
96
|
if (iterator.bytesRemaining() < 8) {
|
|
95
97
|
return {
|
|
96
98
|
box: null,
|
|
@@ -107,7 +109,7 @@ const parseMovi = async ({ iterator, maxOffset, state, }) => {
|
|
|
107
109
|
skipTo: null,
|
|
108
110
|
};
|
|
109
111
|
}
|
|
110
|
-
await (0, exports.handleChunk)({
|
|
112
|
+
await (0, exports.handleChunk)({ state, ckId, ckSize });
|
|
111
113
|
// Discard added zeroes
|
|
112
114
|
while (iterator.counter.getOffset() < maxOffset &&
|
|
113
115
|
iterator.bytesRemaining() > 0) {
|
|
@@ -3,17 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.parseRiffBody = void 0;
|
|
4
4
|
const expect_riff_box_1 = require("./expect-riff-box");
|
|
5
5
|
const parse_video_section_1 = require("./parse-video-section");
|
|
6
|
-
const parseRiffBody = async (
|
|
7
|
-
if (state.videoSection.isInVideoSectionState(iterator) === 'in-section') {
|
|
8
|
-
const videoSec = await (0, parse_video_section_1.parseVideoSection)(
|
|
6
|
+
const parseRiffBody = async (state) => {
|
|
7
|
+
if (state.videoSection.isInVideoSectionState(state.iterator) === 'in-section') {
|
|
8
|
+
const videoSec = await (0, parse_video_section_1.parseVideoSection)(state);
|
|
9
9
|
return {
|
|
10
10
|
skipTo: videoSec.skipTo,
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
-
const result = await (0, expect_riff_box_1.expectRiffBox)(
|
|
14
|
-
iterator,
|
|
15
|
-
state,
|
|
16
|
-
});
|
|
13
|
+
const result = await (0, expect_riff_box_1.expectRiffBox)(state);
|
|
17
14
|
if (result.box !== null) {
|
|
18
15
|
const structure = state.structure.getStructure();
|
|
19
16
|
structure.boxes.push(result.box);
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../buffer-iterator';
|
|
2
1
|
import type { ParserState } from '../../state/parser-state';
|
|
3
2
|
import type { RiffBox } from './riff-box';
|
|
4
|
-
export declare const parseRiffBox: ({
|
|
5
|
-
iterator: BufferIterator;
|
|
3
|
+
export declare const parseRiffBox: ({ size, id, state, }: {
|
|
6
4
|
size: number;
|
|
7
5
|
id: string;
|
|
8
6
|
state: ParserState;
|
|
@@ -2,16 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseRiffBox = void 0;
|
|
4
4
|
const parse_avih_1 = require("./parse-avih");
|
|
5
|
-
const parse_fmt_box_1 = require("./parse-fmt-box");
|
|
6
5
|
const parse_isft_1 = require("./parse-isft");
|
|
7
6
|
const parse_list_box_1 = require("./parse-list-box");
|
|
8
7
|
const parse_strh_1 = require("./parse-strh");
|
|
9
|
-
const parseRiffBox = ({
|
|
10
|
-
|
|
11
|
-
return Promise.resolve((0, parse_fmt_box_1.parseFmtBox)({ iterator, size, state }));
|
|
12
|
-
}
|
|
8
|
+
const parseRiffBox = ({ size, id, state, }) => {
|
|
9
|
+
const { iterator } = state;
|
|
13
10
|
if (id === 'LIST') {
|
|
14
|
-
return (0, parse_list_box_1.parseListBox)({
|
|
11
|
+
return (0, parse_list_box_1.parseListBox)({ size, state });
|
|
15
12
|
}
|
|
16
13
|
if (id === 'ISFT') {
|
|
17
14
|
return Promise.resolve((0, parse_isft_1.parseIsft)({ iterator, size }));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseRiffHeader = void 0;
|
|
4
|
-
const parseRiffHeader = (
|
|
5
|
-
const riff = iterator.getByteString(4, false);
|
|
4
|
+
const parseRiffHeader = (state) => {
|
|
5
|
+
const riff = state.iterator.getByteString(4, false);
|
|
6
6
|
if (riff !== 'RIFF') {
|
|
7
7
|
throw new Error('Not a RIFF file');
|
|
8
8
|
}
|
|
@@ -10,8 +10,8 @@ const parseRiffHeader = ({ iterator, state, }) => {
|
|
|
10
10
|
if (structure.type !== 'riff') {
|
|
11
11
|
throw new Error('Structure is not a RIFF structure');
|
|
12
12
|
}
|
|
13
|
-
const size = iterator.getUint32Le();
|
|
14
|
-
const fileType = iterator.getByteString(4, false);
|
|
13
|
+
const size = state.iterator.getUint32Le();
|
|
14
|
+
const fileType = state.iterator.getByteString(4, false);
|
|
15
15
|
if (fileType !== 'WAVE' && fileType !== 'AVI') {
|
|
16
16
|
throw new Error(`File type ${fileType} not supported`);
|
|
17
17
|
}
|
|
@@ -3,13 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.parseRiff = void 0;
|
|
4
4
|
const parse_riff_body_1 = require("./parse-riff-body");
|
|
5
5
|
const parse_riff_header_1 = require("./parse-riff-header");
|
|
6
|
-
const parseRiff = (
|
|
7
|
-
if (iterator.counter.getOffset() === 0) {
|
|
8
|
-
return Promise.resolve((0, parse_riff_header_1.parseRiffHeader)(
|
|
6
|
+
const parseRiff = (state) => {
|
|
7
|
+
if (state.iterator.counter.getOffset() === 0) {
|
|
8
|
+
return Promise.resolve((0, parse_riff_header_1.parseRiffHeader)(state));
|
|
9
9
|
}
|
|
10
|
-
return (0, parse_riff_body_1.parseRiffBody)(
|
|
11
|
-
iterator,
|
|
12
|
-
state,
|
|
13
|
-
});
|
|
10
|
+
return (0, parse_riff_body_1.parseRiffBody)(state);
|
|
14
11
|
};
|
|
15
12
|
exports.parseRiff = parseRiff;
|
|
@@ -4,10 +4,9 @@ exports.parseVideoSection = void 0;
|
|
|
4
4
|
const get_tracks_1 = require("../../get-tracks");
|
|
5
5
|
const get_tracks_from_avi_1 = require("./get-tracks-from-avi");
|
|
6
6
|
const parse_movi_1 = require("./parse-movi");
|
|
7
|
-
const parseVideoSection = (
|
|
7
|
+
const parseVideoSection = (state) => {
|
|
8
8
|
const videoSection = state.videoSection.getVideoSection();
|
|
9
9
|
const movi = (0, parse_movi_1.parseMovi)({
|
|
10
|
-
iterator,
|
|
11
10
|
maxOffset: videoSection.start + videoSection.size,
|
|
12
11
|
state,
|
|
13
12
|
});
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
export type WaveFormatBox = {
|
|
2
|
-
type: 'wave-format-box';
|
|
3
|
-
formatTag: 1;
|
|
4
|
-
numberOfChannels: number;
|
|
5
|
-
sampleRate: number;
|
|
6
|
-
blockAlign: number;
|
|
7
|
-
byteRate: number;
|
|
8
|
-
bitsPerSample: number;
|
|
9
|
-
};
|
|
10
1
|
export type ListBox = {
|
|
11
2
|
type: 'list-box';
|
|
12
3
|
listType: string;
|
|
@@ -81,4 +72,8 @@ export type IsftBox = {
|
|
|
81
72
|
type: 'isft-box';
|
|
82
73
|
software: string;
|
|
83
74
|
};
|
|
84
|
-
export type RiffBox = RiffRegularBox |
|
|
75
|
+
export type RiffBox = RiffRegularBox | RiffHeader | ListBox | AvihBox | StrhBox | StrfBoxVideo | StrfBoxAudio | IsftBox;
|
|
76
|
+
export type RiffStructure = {
|
|
77
|
+
type: 'riff';
|
|
78
|
+
boxes: RiffBox[];
|
|
79
|
+
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { RiffStructure } from '
|
|
2
|
-
import type { AvihBox, ListBox, RiffBox, StrhBox } from './riff-box';
|
|
1
|
+
import type { AvihBox, ListBox, RiffBox, RiffStructure, StrhBox } from './riff-box';
|
|
3
2
|
export declare const isRiffAvi: (structure: RiffStructure) => boolean;
|
|
4
3
|
export declare const getHdlrBox: (structure: RiffStructure) => ListBox | null;
|
|
5
4
|
export declare const getAvihBox: (structure: RiffStructure) => AvihBox | null;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../buffer-iterator';
|
|
2
1
|
import type { ParserState } from '../../state/parser-state';
|
|
3
2
|
import type { TransportStreamBox } from './boxes';
|
|
4
|
-
export declare const parsePacket: ({
|
|
5
|
-
iterator: BufferIterator;
|
|
3
|
+
export declare const parsePacket: ({ parserState, }: {
|
|
6
4
|
parserState: ParserState;
|
|
7
5
|
}) => Promise<TransportStreamBox | null>;
|
|
@@ -6,7 +6,8 @@ const parse_pes_1 = require("./parse-pes");
|
|
|
6
6
|
const parse_pmt_1 = require("./parse-pmt");
|
|
7
7
|
const parse_stream_packet_1 = require("./parse-stream-packet");
|
|
8
8
|
const traversal_1 = require("./traversal");
|
|
9
|
-
const parsePacket = async ({
|
|
9
|
+
const parsePacket = async ({ parserState, }) => {
|
|
10
|
+
const { iterator } = parserState;
|
|
10
11
|
const offset = iterator.counter.getOffset();
|
|
11
12
|
const syncByte = iterator.getUint8();
|
|
12
13
|
if (syncByte !== 0x47) {
|
|
@@ -66,7 +67,6 @@ const parsePacket = async ({ iterator, parserState, }) => {
|
|
|
66
67
|
const stream = (0, traversal_1.getStreamForId)(structure, programId);
|
|
67
68
|
if (stream) {
|
|
68
69
|
await (0, parse_stream_packet_1.parseStream)({
|
|
69
|
-
iterator,
|
|
70
70
|
transportStreamEntry: stream,
|
|
71
71
|
state: parserState,
|
|
72
72
|
programId,
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../buffer-iterator';
|
|
2
1
|
import type { TransportStreamStructure } from '../../parse-result';
|
|
3
2
|
import type { ParserState } from '../../state/parser-state';
|
|
4
3
|
import type { TransportStreamEntry } from './parse-pmt';
|
|
5
|
-
export declare const parseStream: ({
|
|
6
|
-
iterator: BufferIterator;
|
|
4
|
+
export declare const parseStream: ({ transportStreamEntry, state, programId, structure, }: {
|
|
7
5
|
transportStreamEntry: TransportStreamEntry;
|
|
8
6
|
state: ParserState;
|
|
9
7
|
programId: number;
|
|
@@ -86,7 +86,8 @@ const parseAvcStream = async ({ restOfPacket, transportStreamEntry, programId, s
|
|
|
86
86
|
offset,
|
|
87
87
|
});
|
|
88
88
|
};
|
|
89
|
-
const parseStream = ({
|
|
89
|
+
const parseStream = ({ transportStreamEntry, state, programId, structure, }) => {
|
|
90
|
+
const { iterator } = state;
|
|
90
91
|
const restOfPacket = (0, discard_rest_of_packet_1.getRestOfPacket)(iterator);
|
|
91
92
|
if (transportStreamEntry.streamType === 27) {
|
|
92
93
|
return parseAvcStream({
|
|
@@ -3,26 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.parseTransportStream = void 0;
|
|
4
4
|
const parse_packet_1 = require("./parse-packet");
|
|
5
5
|
const process_stream_buffers_1 = require("./process-stream-buffers");
|
|
6
|
-
const parseTransportStream = async (
|
|
6
|
+
const parseTransportStream = async (state) => {
|
|
7
7
|
const structure = state.structure.getStructure();
|
|
8
8
|
if (structure.type !== 'transport-stream') {
|
|
9
9
|
throw new Error('Invalid structure type');
|
|
10
10
|
}
|
|
11
|
-
const
|
|
12
|
-
return (0, exports.parseTransportStream)({
|
|
13
|
-
iterator,
|
|
14
|
-
state,
|
|
15
|
-
});
|
|
16
|
-
};
|
|
11
|
+
const { iterator } = state;
|
|
17
12
|
if (iterator.bytesRemaining() < 188) {
|
|
18
13
|
return Promise.resolve({
|
|
19
|
-
status: 'incomplete',
|
|
20
|
-
continueParsing,
|
|
21
14
|
skipTo: null,
|
|
22
15
|
});
|
|
23
16
|
}
|
|
24
17
|
const packet = await (0, parse_packet_1.parsePacket)({
|
|
25
|
-
iterator,
|
|
26
18
|
parserState: state,
|
|
27
19
|
});
|
|
28
20
|
if (packet) {
|
|
@@ -35,8 +27,6 @@ const parseTransportStream = async ({ iterator, state, }) => {
|
|
|
35
27
|
});
|
|
36
28
|
}
|
|
37
29
|
return Promise.resolve({
|
|
38
|
-
status: 'incomplete',
|
|
39
|
-
continueParsing,
|
|
40
30
|
skipTo: null,
|
|
41
31
|
});
|
|
42
32
|
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasDurationFromWav = exports.getDurationFromWav = void 0;
|
|
4
|
+
const getDurationFromWav = (state) => {
|
|
5
|
+
const structure = state.structure.getStructure();
|
|
6
|
+
if (structure.type !== 'wav') {
|
|
7
|
+
throw new Error('Expected wav structure');
|
|
8
|
+
}
|
|
9
|
+
const fmt = structure.boxes.find((b) => b.type === 'wav-fmt');
|
|
10
|
+
if (!fmt) {
|
|
11
|
+
throw new Error('Expected fmt box');
|
|
12
|
+
}
|
|
13
|
+
const dataBox = structure.boxes.find((b) => b.type === 'wav-data');
|
|
14
|
+
if (!dataBox) {
|
|
15
|
+
throw new Error('Expected data box');
|
|
16
|
+
}
|
|
17
|
+
const durationInSeconds = dataBox.dataSize / (fmt.sampleRate * fmt.blockAlign);
|
|
18
|
+
return durationInSeconds;
|
|
19
|
+
};
|
|
20
|
+
exports.getDurationFromWav = getDurationFromWav;
|
|
21
|
+
const hasDurationFromWav = (state) => {
|
|
22
|
+
try {
|
|
23
|
+
return (0, exports.getDurationFromWav)(state);
|
|
24
|
+
}
|
|
25
|
+
catch (_a) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
exports.hasDurationFromWav = hasDurationFromWav;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMetadataFromWav = void 0;
|
|
4
|
+
const getMetadataFromWav = (structure) => {
|
|
5
|
+
const list = structure.boxes.find((b) => b.type === 'wav-list');
|
|
6
|
+
if (!list) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
return list.metadata;
|
|
10
|
+
};
|
|
11
|
+
exports.getMetadataFromWav = getMetadataFromWav;
|