@remotion/media-parser 4.0.270 → 4.0.271
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aac-codecprivate.js +6 -13
- package/dist/add-avc-profile-to-track.js +5 -9
- package/dist/buffer-iterator.js +8 -13
- package/dist/combine-uint8-arrays.js +1 -5
- package/dist/containers/aac/parse-aac.js +9 -13
- package/dist/containers/aac/types.js +1 -2
- package/dist/containers/avc/codec-string.js +1 -5
- package/dist/containers/avc/color.js +3 -9
- package/dist/containers/avc/create-sps-pps-data.js +5 -9
- package/dist/containers/avc/interpret-sps.js +7 -13
- package/dist/containers/avc/key.js +1 -5
- package/dist/containers/avc/parse-avc.js +3 -7
- package/dist/containers/avc/sps-and-pps.js +1 -5
- package/dist/containers/flac/get-block-size.js +1 -5
- package/dist/containers/flac/get-channel-count.js +1 -5
- package/dist/containers/flac/get-duration-from-flac.js +1 -5
- package/dist/containers/flac/get-metadata-from-flac.js +1 -5
- package/dist/containers/flac/get-sample-rate.js +1 -5
- package/dist/containers/flac/parse-flac-frame.js +14 -19
- package/dist/containers/flac/parse-flac.js +15 -19
- package/dist/containers/flac/parse-header.js +1 -5
- package/dist/containers/flac/parse-metadata.js +1 -5
- package/dist/containers/flac/parse-streaminfo.js +3 -7
- package/dist/containers/flac/parse-unknown-block.js +1 -5
- package/dist/containers/flac/types.d.ts +2 -2
- package/dist/containers/flac/types.js +1 -2
- package/dist/containers/iso-base-media/base-media-box.js +1 -2
- package/dist/containers/iso-base-media/base-type.js +1 -2
- package/dist/containers/iso-base-media/esds/decoder-specific-config.js +1 -5
- package/dist/containers/iso-base-media/esds/esds-descriptors.js +5 -10
- package/dist/containers/iso-base-media/esds/esds.js +3 -7
- package/dist/containers/iso-base-media/ftyp.js +1 -5
- package/dist/containers/iso-base-media/get-actual-number-of-channels.js +4 -8
- package/dist/containers/iso-base-media/get-children.js +3 -7
- package/dist/containers/iso-base-media/get-keyframes.js +7 -11
- package/dist/containers/iso-base-media/get-moov-atom.js +21 -15
- package/dist/containers/iso-base-media/get-sample-positions-from-track.js +20 -24
- package/dist/containers/iso-base-media/get-video-codec-from-iso-track.d.ts +1 -1
- package/dist/containers/iso-base-media/get-video-codec-from-iso-track.js +3 -7
- package/dist/containers/iso-base-media/make-track.js +30 -34
- package/dist/containers/iso-base-media/mdat/mdat.js +16 -20
- package/dist/containers/iso-base-media/mdhd.js +1 -5
- package/dist/containers/iso-base-media/meta/hdlr.js +1 -5
- package/dist/containers/iso-base-media/meta/ilst.js +1 -5
- package/dist/containers/iso-base-media/moov/moov.js +3 -7
- package/dist/containers/iso-base-media/mvhd.js +7 -11
- package/dist/containers/iso-base-media/parse-boxes.js +5 -9
- package/dist/containers/iso-base-media/parse-icc-profile.js +4 -8
- package/dist/containers/iso-base-media/process-box.js +63 -67
- package/dist/containers/iso-base-media/stsd/av1c.js +1 -5
- package/dist/containers/iso-base-media/stsd/avcc.js +1 -5
- package/dist/containers/iso-base-media/stsd/colr.js +3 -7
- package/dist/containers/iso-base-media/stsd/ctts.js +1 -5
- package/dist/containers/iso-base-media/stsd/hvcc.js +3 -7
- package/dist/containers/iso-base-media/stsd/keys.js +1 -5
- package/dist/containers/iso-base-media/stsd/mebx.js +3 -7
- package/dist/containers/iso-base-media/stsd/pasp.js +1 -5
- package/dist/containers/iso-base-media/stsd/samples.js +8 -13
- package/dist/containers/iso-base-media/stsd/stco.js +1 -5
- package/dist/containers/iso-base-media/stsd/stsc.js +1 -5
- package/dist/containers/iso-base-media/stsd/stsd.js +3 -7
- package/dist/containers/iso-base-media/stsd/stss.js +1 -5
- package/dist/containers/iso-base-media/stsd/stsz.js +1 -5
- package/dist/containers/iso-base-media/stsd/stts.js +1 -5
- package/dist/containers/iso-base-media/tfdt.js +1 -5
- package/dist/containers/iso-base-media/tfhd.js +1 -5
- package/dist/containers/iso-base-media/tkhd.js +4 -8
- package/dist/containers/iso-base-media/to-date.js +1 -5
- package/dist/containers/iso-base-media/trak/trak.js +3 -7
- package/dist/containers/iso-base-media/traversal.d.ts +3 -2
- package/dist/containers/iso-base-media/traversal.js +42 -57
- package/dist/containers/iso-base-media/trun.js +2 -6
- package/dist/containers/iso-base-media/void-box.js +1 -2
- package/dist/containers/m3u/after-manifest-fetch.d.ts +5 -3
- package/dist/containers/m3u/after-manifest-fetch.js +13 -17
- package/dist/containers/m3u/fetch-m3u8-stream.d.ts +5 -1
- package/dist/containers/m3u/fetch-m3u8-stream.js +4 -12
- package/dist/containers/m3u/get-chunks.d.ts +1 -0
- package/dist/containers/m3u/get-chunks.js +6 -6
- package/dist/containers/m3u/get-duration-from-m3u.js +4 -8
- package/dist/containers/m3u/get-playlist.js +6 -12
- package/dist/containers/m3u/get-streams.d.ts +11 -5
- package/dist/containers/m3u/get-streams.js +5 -15
- package/dist/containers/m3u/iterate-over-segment-files.d.ts +19 -0
- package/dist/containers/m3u/iterate-over-segment-files.js +106 -0
- package/dist/containers/m3u/parse-directive.js +10 -10
- package/dist/containers/m3u/parse-m3u-manifest.js +3 -7
- package/dist/containers/m3u/parse-m3u-media-directive.d.ts +1 -0
- package/dist/containers/m3u/parse-m3u-media-directive.js +7 -7
- package/dist/containers/m3u/parse-m3u.js +13 -13
- package/dist/containers/m3u/parse-m3u8-text.js +3 -7
- package/dist/containers/m3u/parse-stream-inf.js +2 -7
- package/dist/containers/m3u/return-packets.d.ts +1 -1
- package/dist/containers/m3u/return-packets.js +14 -5
- package/dist/containers/m3u/run-over-m3u.js +10 -13
- package/dist/containers/m3u/sample-sorter.js +4 -8
- package/dist/containers/m3u/select-stream.d.ts +3 -2
- package/dist/containers/m3u/select-stream.js +9 -13
- package/dist/containers/m3u/types.d.ts +1 -1
- package/dist/containers/m3u/types.js +1 -2
- package/dist/containers/mp3/get-duration.js +5 -9
- package/dist/containers/mp3/get-frame-length.js +2 -7
- package/dist/containers/mp3/get-metadata-from-mp3.d.ts +2 -2
- package/dist/containers/mp3/get-metadata-from-mp3.js +1 -5
- package/dist/containers/mp3/id3-v1.js +1 -5
- package/dist/containers/mp3/id3.js +1 -5
- package/dist/containers/mp3/parse-mp3.js +7 -11
- package/dist/containers/mp3/parse-mpeg-header.js +10 -14
- package/dist/containers/mp3/samples-per-mpeg-file.js +1 -5
- package/dist/containers/riff/expect-riff-box.js +11 -15
- package/dist/containers/riff/get-duration.js +7 -12
- package/dist/containers/riff/get-tracks-from-avi.js +20 -28
- package/dist/containers/riff/is-movi.js +1 -5
- package/dist/containers/riff/parse-avih.js +1 -5
- package/dist/containers/riff/parse-isft.js +1 -5
- package/dist/containers/riff/parse-list-box.js +3 -7
- package/dist/containers/riff/parse-movi.js +13 -18
- package/dist/containers/riff/parse-riff-body.js +9 -13
- package/dist/containers/riff/parse-riff-box.js +9 -13
- package/dist/containers/riff/parse-riff-header.js +1 -5
- package/dist/containers/riff/parse-riff.js +5 -9
- package/dist/containers/riff/parse-strf.js +1 -5
- package/dist/containers/riff/parse-strh.js +3 -7
- package/dist/containers/riff/parse-video-section.js +7 -11
- package/dist/containers/riff/riff-box.js +1 -2
- package/dist/containers/riff/timescale.js +1 -4
- package/dist/containers/riff/traversal.js +7 -15
- package/dist/containers/transport-stream/adts-header.js +6 -10
- package/dist/containers/transport-stream/boxes.js +1 -2
- package/dist/containers/transport-stream/discard-rest-of-packet.js +2 -7
- package/dist/containers/transport-stream/find-separator.js +1 -4
- package/dist/containers/transport-stream/get-tracks.js +7 -12
- package/dist/containers/transport-stream/handle-aac-packet.js +12 -16
- package/dist/containers/transport-stream/handle-avc-packet.js +22 -26
- package/dist/containers/transport-stream/next-pes-header-store.js +1 -5
- package/dist/containers/transport-stream/parse-packet.js +13 -17
- package/dist/containers/transport-stream/parse-pat.js +5 -10
- package/dist/containers/transport-stream/parse-pes.js +1 -5
- package/dist/containers/transport-stream/parse-pmt.js +3 -7
- package/dist/containers/transport-stream/parse-stream-packet.js +13 -17
- package/dist/containers/transport-stream/parse-transport-stream.js +5 -9
- package/dist/containers/transport-stream/process-stream-buffers.js +10 -15
- package/dist/containers/transport-stream/traversal.js +4 -10
- package/dist/containers/wav/get-duration-from-wav.js +3 -8
- package/dist/containers/wav/get-metadata-from-wav.d.ts +2 -2
- package/dist/containers/wav/get-metadata-from-wav.js +1 -5
- package/dist/containers/wav/parse-data.js +5 -9
- package/dist/containers/wav/parse-fmt.js +3 -7
- package/dist/containers/wav/parse-header.js +1 -5
- package/dist/containers/wav/parse-id3.js +1 -5
- package/dist/containers/wav/parse-list.js +1 -5
- package/dist/containers/wav/parse-video-section.js +3 -7
- package/dist/containers/wav/parse-wav.js +15 -19
- package/dist/containers/wav/types.d.ts +2 -2
- package/dist/containers/wav/types.js +1 -2
- package/dist/containers/webm/allowed-partial-segments.js +1 -4
- package/dist/containers/webm/av1-codec-private.js +3 -7
- package/dist/containers/webm/color.js +6 -10
- package/dist/containers/webm/description.js +6 -10
- package/dist/containers/webm/get-ready-tracks.js +13 -18
- package/dist/containers/webm/get-sample-from-block.js +12 -16
- package/dist/containers/webm/make-track.js +43 -48
- package/dist/containers/webm/parse-ebml.js +14 -19
- package/dist/containers/webm/parse-webm-header.js +3 -7
- package/dist/containers/webm/segments/all-segments.js +168 -173
- package/dist/containers/webm/segments/block-simple-block-flags.js +4 -8
- package/dist/containers/webm/segments/track-entry.js +1 -5
- package/dist/containers/webm/segments.js +9 -13
- package/dist/containers/webm/traversal.js +37 -67
- package/dist/convert-audio-or-video-sample.js +1 -5
- package/dist/download-and-parse-media.js +44 -47
- package/dist/emit-available-info.js +38 -38
- package/dist/emitter.js +1 -5
- package/dist/errors.d.ts +2 -17
- package/dist/errors.js +10 -30
- package/dist/esm/fetch.mjs +93 -67
- package/dist/esm/index.mjs +679 -175
- package/dist/esm/node.mjs +59 -36
- package/dist/esm/universal.mjs +323 -0
- package/dist/esm/web-file.mjs +55 -43
- package/dist/esm/web.mjs +257 -0
- package/dist/esm/worker-server-entry.mjs +13056 -0
- package/dist/esm/worker-server.mjs +12914 -0
- package/dist/esm/worker-web-entry.mjs +12969 -0
- package/dist/esm/worker.mjs +439 -0
- package/dist/fetch.js +1 -17
- package/dist/file-types/bmp.js +3 -7
- package/dist/file-types/detect-file-type.js +24 -38
- package/dist/file-types/index.js +22 -26
- package/dist/file-types/jpeg.js +4 -9
- package/dist/file-types/pdf.js +3 -7
- package/dist/file-types/png.js +4 -9
- package/dist/file-types/webp.js +3 -7
- package/dist/forward-controller.js +1 -5
- package/dist/get-audio-codec.js +25 -38
- package/dist/get-container.d.ts +3 -3
- package/dist/get-container.js +5 -10
- package/dist/get-dimensions.js +8 -13
- package/dist/get-duration.js +27 -34
- package/dist/get-fields-from-callbacks.js +1 -5
- package/dist/get-fps.js +24 -34
- package/dist/get-is-hdr.js +5 -10
- package/dist/get-keyframes.js +6 -11
- package/dist/get-location.js +4 -9
- package/dist/get-number-of-audio-channels.js +2 -7
- package/dist/get-sample-aspect-ratio.js +17 -30
- package/dist/get-sample-positions-from-lpcm.js +5 -9
- package/dist/get-sample-positions.js +1 -5
- package/dist/get-sample-rate.js +2 -7
- package/dist/get-tracks.d.ts +5 -0
- package/dist/get-tracks.js +37 -44
- package/dist/get-video-codec.js +26 -34
- package/dist/has-all-info.js +33 -38
- package/dist/index.d.ts +15 -11
- package/dist/index.js +34 -48
- package/dist/init-video.d.ts +1 -1
- package/dist/init-video.js +47 -20
- package/dist/internal-parse-media.js +36 -40
- package/dist/is-audio-structure.d.ts +2 -2
- package/dist/is-audio-structure.js +1 -5
- package/dist/log.js +8 -12
- package/dist/make-hvc1-codec-strings.js +1 -5
- package/dist/media-parser-controller.js +7 -11
- package/dist/metadata/get-metadata.d.ts +4 -4
- package/dist/metadata/get-metadata.js +17 -22
- package/dist/metadata/metadata-from-iso.d.ts +3 -3
- package/dist/metadata/metadata-from-iso.js +12 -17
- package/dist/metadata/metadata-from-matroska.d.ts +2 -2
- package/dist/metadata/metadata-from-matroska.js +3 -7
- package/dist/metadata/metadata-from-riff.d.ts +2 -2
- package/dist/metadata/metadata-from-riff.js +3 -7
- package/dist/node-writer.js +1 -17
- package/dist/node.js +1 -17
- package/dist/options.d.ts +30 -24
- package/dist/options.js +1 -2
- package/dist/parse-media-on-browser-worker.d.ts +2 -0
- package/dist/parse-media-on-browser-worker.js +4 -0
- package/dist/parse-media-on-server-worker.d.ts +2 -0
- package/dist/parse-media-on-server-worker.js +4 -0
- package/dist/parse-media-on-web-worker.d.ts +2 -0
- package/dist/parse-media-on-web-worker.js +4 -0
- package/dist/parse-media-on-worker-entry.d.ts +2 -0
- package/dist/parse-media-on-worker-entry.js +269 -0
- package/dist/parse-media-on-worker.d.ts +2 -0
- package/dist/parse-media-on-worker.js +4 -0
- package/dist/parse-media.js +10 -13
- package/dist/parse-result.d.ts +3 -3
- package/dist/parse-result.js +1 -2
- package/dist/pause-signal.js +1 -5
- package/dist/perform-seek.js +6 -10
- package/dist/readers/fetch/get-body-and-reader.js +1 -5
- package/dist/readers/fetch/resolve-url.d.ts +1 -1
- package/dist/readers/fetch/resolve-url.js +1 -5
- package/dist/readers/from-fetch.d.ts +4 -1
- package/dist/readers/from-fetch.js +109 -94
- package/dist/readers/from-node.d.ts +4 -1
- package/dist/readers/from-node.js +58 -41
- package/dist/readers/from-web-file.d.ts +4 -1
- package/dist/readers/from-web-file.js +55 -49
- package/dist/readers/reader.d.ts +5 -1
- package/dist/readers/reader.js +1 -2
- package/dist/readers/universal.d.ts +2 -0
- package/dist/readers/universal.js +35 -0
- package/dist/readers/web.d.ts +2 -0
- package/dist/readers/web.js +22 -0
- package/dist/register-track.js +9 -15
- package/dist/remotion-license-acknowledge.js +4 -8
- package/dist/run-parse-iteration.js +26 -25
- package/dist/samples-from-moof.js +8 -12
- package/dist/skip.js +1 -5
- package/dist/state/aac-state.js +1 -5
- package/dist/state/can-skip-tracks.d.ts +2 -2
- package/dist/state/can-skip-tracks.js +3 -8
- package/dist/state/emitted-fields.js +1 -5
- package/dist/state/flac-state.js +1 -5
- package/dist/state/has-tracks-section.js +3 -7
- package/dist/state/images.js +1 -5
- package/dist/state/iso-base-media/cached-sample-positions.js +8 -13
- package/dist/state/iso-base-media/iso-state.js +5 -9
- package/dist/state/iso-base-media/moov-box.js +1 -5
- package/dist/state/keyframes.js +1 -5
- package/dist/state/last-eventloop-break.js +3 -7
- package/dist/state/m3u-state.d.ts +3 -0
- package/dist/state/m3u-state.js +16 -11
- package/dist/state/may-skip-video-data.js +3 -7
- package/dist/state/mp3.js +1 -5
- package/dist/state/need-samples-for-fields.js +1 -5
- package/dist/state/parser-state.d.ts +12 -10
- package/dist/state/parser-state.js +36 -41
- package/dist/state/riff.js +1 -5
- package/dist/state/sample-callbacks.js +8 -12
- package/dist/state/slow-duration-fps.js +1 -5
- package/dist/state/structure.d.ts +4 -4
- package/dist/state/structure.js +1 -5
- package/dist/state/transport-stream.js +3 -7
- package/dist/state/video-section.js +1 -5
- package/dist/state/webm.js +5 -9
- package/dist/throttled-progress.js +1 -5
- package/dist/truthy.js +1 -4
- package/dist/universal.d.ts +1 -0
- package/dist/universal.js +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -4
- package/dist/web-file.js +1 -17
- package/dist/web.d.ts +1 -0
- package/dist/web.js +1 -0
- package/dist/webcodec-sample-types.d.ts +6 -4
- package/dist/webcodec-sample-types.js +1 -2
- package/dist/worker/forward-controller.d.ts +3 -0
- package/dist/worker/forward-controller.js +20 -0
- package/dist/worker/serialize-error.d.ts +4 -0
- package/dist/worker/serialize-error.js +95 -0
- package/dist/worker/worker-types.d.ts +243 -0
- package/dist/worker/worker-types.js +1 -0
- package/dist/worker-bun-entry.d.ts +1 -0
- package/dist/worker-bun-entry.js +5 -0
- package/dist/worker-entry.d.ts +1 -0
- package/dist/worker-entry.js +5 -0
- package/dist/worker-server-entry.d.ts +1 -0
- package/dist/worker-server-entry.js +5 -0
- package/dist/worker-server.d.ts +2 -0
- package/dist/worker-server.js +381 -0
- package/dist/worker-web-entry.d.ts +1 -0
- package/dist/worker-web-entry.js +5 -0
- package/dist/worker.d.ts +2 -0
- package/dist/worker.js +267 -0
- package/dist/writers/node.js +16 -23
- package/dist/writers/writer.js +1 -2
- package/package.json +40 -21
- package/fetch.js +0 -2
- package/test.json +0 -663
- package/web-file.js +0 -2
|
@@ -1,53 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const parse_webm_header_1 = require("./containers/webm/parse-webm-header");
|
|
13
|
-
const init_video_1 = require("./init-video");
|
|
14
|
-
const runParseIteration = async ({ state, mimeType, contentLength, name, }) => {
|
|
1
|
+
import { parseAac } from './containers/aac/parse-aac';
|
|
2
|
+
import { parseFlac } from './containers/flac/parse-flac';
|
|
3
|
+
import { parseIsoBaseMedia } from './containers/iso-base-media/parse-boxes';
|
|
4
|
+
import { parseM3u } from './containers/m3u/parse-m3u';
|
|
5
|
+
import { parseMp3 } from './containers/mp3/parse-mp3';
|
|
6
|
+
import { parseRiff } from './containers/riff/parse-riff';
|
|
7
|
+
import { parseTransportStream } from './containers/transport-stream/parse-transport-stream';
|
|
8
|
+
import { parseWav } from './containers/wav/parse-wav';
|
|
9
|
+
import { parseWebm } from './containers/webm/parse-webm-header';
|
|
10
|
+
import { initVideo } from './init-video';
|
|
11
|
+
export const runParseIteration = async ({ state, mimeType, contentLength, name, }) => {
|
|
15
12
|
const structure = state.getStructureOrNull();
|
|
16
13
|
// m3u8 is busy parsing the chunks once the manifest has been read
|
|
17
14
|
if (structure && structure.type === 'm3u') {
|
|
18
|
-
return
|
|
15
|
+
return parseM3u({ state });
|
|
19
16
|
}
|
|
20
17
|
if (state.iterator.bytesRemaining() === 0) {
|
|
21
18
|
return Promise.reject(new Error('no bytes'));
|
|
22
19
|
}
|
|
23
20
|
if (structure === null) {
|
|
24
|
-
await
|
|
21
|
+
await initVideo({
|
|
22
|
+
state,
|
|
23
|
+
mimeType,
|
|
24
|
+
name,
|
|
25
|
+
contentLength,
|
|
26
|
+
});
|
|
25
27
|
return null;
|
|
26
28
|
}
|
|
27
29
|
if (structure.type === 'riff') {
|
|
28
|
-
return
|
|
30
|
+
return parseRiff(state);
|
|
29
31
|
}
|
|
30
32
|
if (structure.type === 'mp3') {
|
|
31
|
-
return
|
|
33
|
+
return parseMp3(state);
|
|
32
34
|
}
|
|
33
35
|
if (structure.type === 'iso-base-media') {
|
|
34
|
-
return
|
|
36
|
+
return parseIsoBaseMedia(state);
|
|
35
37
|
}
|
|
36
38
|
if (structure.type === 'matroska') {
|
|
37
|
-
return
|
|
39
|
+
return parseWebm(state);
|
|
38
40
|
}
|
|
39
41
|
if (structure.type === 'transport-stream') {
|
|
40
|
-
return
|
|
42
|
+
return parseTransportStream(state);
|
|
41
43
|
}
|
|
42
44
|
if (structure.type === 'wav') {
|
|
43
|
-
return
|
|
45
|
+
return parseWav(state);
|
|
44
46
|
}
|
|
45
47
|
if (structure.type === 'aac') {
|
|
46
|
-
return
|
|
48
|
+
return parseAac(state);
|
|
47
49
|
}
|
|
48
50
|
if (structure.type === 'flac') {
|
|
49
|
-
return
|
|
51
|
+
return parseFlac({ state, iterator: state.iterator });
|
|
50
52
|
}
|
|
51
53
|
return Promise.reject(new Error('Unknown video format ' + structure));
|
|
52
54
|
};
|
|
53
|
-
exports.runParseIteration = runParseIteration;
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSamplesFromMoof = void 0;
|
|
4
|
-
const traversal_1 = require("./containers/iso-base-media/traversal");
|
|
1
|
+
import { getTfdtBox, getTfhdBox, getTrunBoxes, } from './containers/iso-base-media/traversal';
|
|
5
2
|
const getSamplesFromTraf = (trafSegment, moofOffset) => {
|
|
6
|
-
var _a, _b, _c, _d, _e, _f;
|
|
3
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
7
4
|
if (trafSegment.type !== 'regular-box' || trafSegment.boxType !== 'traf') {
|
|
8
5
|
throw new Error('Expected traf-box');
|
|
9
6
|
}
|
|
10
|
-
const tfhdBox =
|
|
7
|
+
const tfhdBox = getTfhdBox(trafSegment);
|
|
11
8
|
const defaultSampleDuration = (_a = tfhdBox === null || tfhdBox === void 0 ? void 0 : tfhdBox.defaultSampleDuration) !== null && _a !== void 0 ? _a : null;
|
|
12
9
|
const defaultSampleSize = (_b = tfhdBox === null || tfhdBox === void 0 ? void 0 : tfhdBox.defaultSampleSize) !== null && _b !== void 0 ? _b : null;
|
|
13
10
|
const defaultSampleFlags = (_c = tfhdBox === null || tfhdBox === void 0 ? void 0 : tfhdBox.defaultSampleFlags) !== null && _c !== void 0 ? _c : null;
|
|
14
|
-
const tfdtBox =
|
|
15
|
-
const trunBoxes =
|
|
11
|
+
const tfdtBox = getTfdtBox(trafSegment);
|
|
12
|
+
const trunBoxes = getTrunBoxes(trafSegment);
|
|
16
13
|
let time = 0;
|
|
17
14
|
let offset = 0;
|
|
18
15
|
let dataOffset = 0;
|
|
@@ -47,7 +44,7 @@ const getSamplesFromTraf = (trafSegment, moofOffset) => {
|
|
|
47
44
|
const samplePosition = {
|
|
48
45
|
offset: offset + (moofOffset !== null && moofOffset !== void 0 ? moofOffset : 0) + (dataOffset !== null && dataOffset !== void 0 ? dataOffset : 0),
|
|
49
46
|
dts,
|
|
50
|
-
cts: dts,
|
|
47
|
+
cts: dts + ((_g = sample.sampleCompositionTimeOffset) !== null && _g !== void 0 ? _g : 0),
|
|
51
48
|
duration,
|
|
52
49
|
isKeyframe: keyframe,
|
|
53
50
|
size,
|
|
@@ -60,17 +57,16 @@ const getSamplesFromTraf = (trafSegment, moofOffset) => {
|
|
|
60
57
|
}
|
|
61
58
|
return samples;
|
|
62
59
|
};
|
|
63
|
-
const getSamplesFromMoof = ({ moofBox, trackId, }) => {
|
|
60
|
+
export const getSamplesFromMoof = ({ moofBox, trackId, }) => {
|
|
64
61
|
if (moofBox.type !== 'regular-box') {
|
|
65
62
|
throw new Error('Expected moof-box');
|
|
66
63
|
}
|
|
67
64
|
const trafs = moofBox.children.filter((c) => c.type === 'regular-box' && c.boxType === 'traf');
|
|
68
65
|
const mapped = trafs.map((traf) => {
|
|
69
|
-
const tfhdBox =
|
|
66
|
+
const tfhdBox = getTfhdBox(traf);
|
|
70
67
|
return (tfhdBox === null || tfhdBox === void 0 ? void 0 : tfhdBox.trackId) === trackId
|
|
71
68
|
? getSamplesFromTraf(traf, moofBox.offset)
|
|
72
69
|
: [];
|
|
73
70
|
});
|
|
74
71
|
return mapped.flat(1);
|
|
75
72
|
};
|
|
76
|
-
exports.getSamplesFromMoof = getSamplesFromMoof;
|
package/dist/skip.js
CHANGED
package/dist/state/aac-state.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.aacState = void 0;
|
|
4
|
-
const aacState = () => {
|
|
1
|
+
export const aacState = () => {
|
|
5
2
|
const samples = [];
|
|
6
3
|
return {
|
|
7
4
|
addSample: ({ offset, size }) => {
|
|
@@ -14,4 +11,3 @@ const aacState = () => {
|
|
|
14
11
|
getSamples: () => samples,
|
|
15
12
|
};
|
|
16
13
|
};
|
|
17
|
-
exports.aacState = aacState;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Options, ParseMediaFields } from '../options';
|
|
2
|
-
import type {
|
|
2
|
+
import type { MediaParserStructureUnstable } from '../parse-result';
|
|
3
3
|
import type { StructureState } from './structure';
|
|
4
4
|
export declare const needsTracksForField: ({ field, structure, }: {
|
|
5
5
|
field: keyof Options<ParseMediaFields>;
|
|
6
|
-
structure:
|
|
6
|
+
structure: MediaParserStructureUnstable;
|
|
7
7
|
}) => boolean;
|
|
8
8
|
export declare const makeCanSkipTracksState: ({ hasAudioTrackHandlers, fields, hasVideoTrackHandlers, structure, }: {
|
|
9
9
|
hasAudioTrackHandlers: boolean;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeCanSkipTracksState = exports.needsTracksForField = void 0;
|
|
4
|
-
const needsTracksForField = ({ field, structure, }) => {
|
|
1
|
+
export const needsTracksForField = ({ field, structure, }) => {
|
|
5
2
|
if (field === 'dimensions') {
|
|
6
3
|
if (structure.type === 'riff') {
|
|
7
4
|
return false;
|
|
@@ -41,8 +38,7 @@ const needsTracksForField = ({ field, structure, }) => {
|
|
|
41
38
|
}
|
|
42
39
|
throw new Error(`field not implemeted ${field}`);
|
|
43
40
|
};
|
|
44
|
-
|
|
45
|
-
const makeCanSkipTracksState = ({ hasAudioTrackHandlers, fields, hasVideoTrackHandlers, structure, }) => {
|
|
41
|
+
export const makeCanSkipTracksState = ({ hasAudioTrackHandlers, fields, hasVideoTrackHandlers, structure, }) => {
|
|
46
42
|
return {
|
|
47
43
|
canSkipTracks: () => {
|
|
48
44
|
if (hasAudioTrackHandlers || hasVideoTrackHandlers) {
|
|
@@ -50,8 +46,7 @@ const makeCanSkipTracksState = ({ hasAudioTrackHandlers, fields, hasVideoTrackHa
|
|
|
50
46
|
}
|
|
51
47
|
const keys = Object.keys(fields !== null && fields !== void 0 ? fields : {});
|
|
52
48
|
const selectedKeys = keys.filter((k) => fields[k]);
|
|
53
|
-
return !selectedKeys.some((k) =>
|
|
49
|
+
return !selectedKeys.some((k) => needsTracksForField({ field: k, structure: structure.getStructure() }));
|
|
54
50
|
},
|
|
55
51
|
};
|
|
56
52
|
};
|
|
57
|
-
exports.makeCanSkipTracksState = makeCanSkipTracksState;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.emittedState = void 0;
|
|
4
|
-
const emittedState = () => {
|
|
1
|
+
export const emittedState = () => {
|
|
5
2
|
const emittedFields = {
|
|
6
3
|
audioCodec: false,
|
|
7
4
|
container: false,
|
|
@@ -34,4 +31,3 @@ const emittedState = () => {
|
|
|
34
31
|
};
|
|
35
32
|
return emittedFields;
|
|
36
33
|
};
|
|
37
|
-
exports.emittedState = emittedState;
|
package/dist/state/flac-state.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.flacState = void 0;
|
|
4
|
-
const flacState = () => {
|
|
1
|
+
export const flacState = () => {
|
|
5
2
|
let blockingBitStrategy;
|
|
6
3
|
return {
|
|
7
4
|
setBlockingBitStrategy: (strategy) => {
|
|
@@ -10,4 +7,3 @@ const flacState = () => {
|
|
|
10
7
|
getBlockingBitStrategy: () => blockingBitStrategy,
|
|
11
8
|
};
|
|
12
9
|
};
|
|
13
|
-
exports.flacState = flacState;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.makeTracksSectionState = void 0;
|
|
4
|
-
const log_1 = require("../log");
|
|
5
|
-
const makeTracksSectionState = (canSkipTracksState) => {
|
|
1
|
+
import { Log } from '../log';
|
|
2
|
+
export const makeTracksSectionState = (canSkipTracksState) => {
|
|
6
3
|
const tracks = [];
|
|
7
4
|
let doneWithTracks = false;
|
|
8
5
|
return {
|
|
@@ -12,7 +9,7 @@ const makeTracksSectionState = (canSkipTracksState) => {
|
|
|
12
9
|
if (doneWithTracks) {
|
|
13
10
|
throw new Error('Error in Media Parser: Tracks have already been parsed');
|
|
14
11
|
}
|
|
15
|
-
|
|
12
|
+
Log.verbose(logLevel, 'All tracks have been parsed');
|
|
16
13
|
doneWithTracks = true;
|
|
17
14
|
},
|
|
18
15
|
addTrack: (track) => {
|
|
@@ -32,4 +29,3 @@ const makeTracksSectionState = (canSkipTracksState) => {
|
|
|
32
29
|
},
|
|
33
30
|
};
|
|
34
31
|
};
|
|
35
|
-
exports.makeTracksSectionState = makeTracksSectionState;
|
package/dist/state/images.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.imagesState = void 0;
|
|
4
|
-
const imagesState = () => {
|
|
1
|
+
export const imagesState = () => {
|
|
5
2
|
const images = [];
|
|
6
3
|
const addImage = (image) => {
|
|
7
4
|
images.push(image);
|
|
@@ -11,4 +8,3 @@ const imagesState = () => {
|
|
|
11
8
|
addImage,
|
|
12
9
|
};
|
|
13
10
|
};
|
|
14
|
-
exports.imagesState = imagesState;
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const get_tracks_1 = require("../../get-tracks");
|
|
7
|
-
const calculateFlatSamples = (state) => {
|
|
8
|
-
const tracks = (0, get_tracks_1.getTracks)(state);
|
|
1
|
+
import { getSamplePositionsFromTrack } from '../../containers/iso-base-media/get-sample-positions-from-track';
|
|
2
|
+
import { getMoofBoxes } from '../../containers/iso-base-media/traversal';
|
|
3
|
+
import { getTracks } from '../../get-tracks';
|
|
4
|
+
export const calculateFlatSamples = (state) => {
|
|
5
|
+
const tracks = getTracks(state);
|
|
9
6
|
const allTracks = [
|
|
10
7
|
...tracks.videoTracks,
|
|
11
8
|
...tracks.audioTracks,
|
|
@@ -13,9 +10,9 @@ const calculateFlatSamples = (state) => {
|
|
|
13
10
|
];
|
|
14
11
|
const flatSamples = allTracks
|
|
15
12
|
.map((track) => {
|
|
16
|
-
const samplePositions =
|
|
13
|
+
const samplePositions = getSamplePositionsFromTrack({
|
|
17
14
|
trakBox: track.trakBox,
|
|
18
|
-
moofBoxes:
|
|
15
|
+
moofBoxes: getMoofBoxes(state.getIsoStructure().boxes),
|
|
19
16
|
});
|
|
20
17
|
if (!samplePositions) {
|
|
21
18
|
throw new Error('No sample positions');
|
|
@@ -30,8 +27,7 @@ const calculateFlatSamples = (state) => {
|
|
|
30
27
|
.flat(1);
|
|
31
28
|
return flatSamples;
|
|
32
29
|
};
|
|
33
|
-
|
|
34
|
-
const cachedSamplePositionsState = () => {
|
|
30
|
+
export const cachedSamplePositionsState = () => {
|
|
35
31
|
const cachedForMdatStar = {};
|
|
36
32
|
return {
|
|
37
33
|
getSamples: (mdatStart) => {
|
|
@@ -45,4 +41,3 @@ const cachedSamplePositionsState = () => {
|
|
|
45
41
|
},
|
|
46
42
|
};
|
|
47
43
|
};
|
|
48
|
-
exports.cachedSamplePositionsState = cachedSamplePositionsState;
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const cached_sample_positions_1 = require("./cached-sample-positions");
|
|
5
|
-
const moov_box_1 = require("./moov-box");
|
|
6
|
-
const isoBaseMediaState = () => {
|
|
1
|
+
import { cachedSamplePositionsState } from './cached-sample-positions';
|
|
2
|
+
import { moovState } from './moov-box';
|
|
3
|
+
export const isoBaseMediaState = () => {
|
|
7
4
|
return {
|
|
8
|
-
flatSamples:
|
|
9
|
-
moov:
|
|
5
|
+
flatSamples: cachedSamplePositionsState(),
|
|
6
|
+
moov: moovState(),
|
|
10
7
|
};
|
|
11
8
|
};
|
|
12
|
-
exports.isoBaseMediaState = isoBaseMediaState;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.moovState = void 0;
|
|
4
|
-
const moovState = () => {
|
|
1
|
+
export const moovState = () => {
|
|
5
2
|
let moovBox = null;
|
|
6
3
|
return {
|
|
7
4
|
setMoovBox: (moov) => {
|
|
@@ -10,4 +7,3 @@ const moovState = () => {
|
|
|
10
7
|
getMoovBox: () => moovBox,
|
|
11
8
|
};
|
|
12
9
|
};
|
|
13
|
-
exports.moovState = moovState;
|
package/dist/state/keyframes.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.keyframesState = void 0;
|
|
4
|
-
const keyframesState = () => {
|
|
1
|
+
export const keyframesState = () => {
|
|
5
2
|
const keyframes = [];
|
|
6
3
|
return {
|
|
7
4
|
addKeyframe: (keyframe) => {
|
|
@@ -12,4 +9,3 @@ const keyframesState = () => {
|
|
|
12
9
|
},
|
|
13
10
|
};
|
|
14
11
|
};
|
|
15
|
-
exports.keyframesState = keyframesState;
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.eventLoopState = void 0;
|
|
4
|
-
const log_1 = require("../log");
|
|
5
|
-
const eventLoopState = (logLevel) => {
|
|
1
|
+
import { Log } from '../log';
|
|
2
|
+
export const eventLoopState = (logLevel) => {
|
|
6
3
|
let lastEventLoopBreak = Date.now();
|
|
7
4
|
const eventLoopBreakIfNeeded = async () => {
|
|
8
5
|
if (Date.now() - lastEventLoopBreak > 2000) {
|
|
9
6
|
await new Promise((resolve) => {
|
|
10
7
|
setTimeout(() => resolve(), 50);
|
|
11
8
|
});
|
|
12
|
-
|
|
9
|
+
Log.verbose(logLevel, '10ms event loop break');
|
|
13
10
|
lastEventLoopBreak = Date.now();
|
|
14
11
|
}
|
|
15
12
|
};
|
|
16
13
|
return { eventLoopBreakIfNeeded };
|
|
17
14
|
};
|
|
18
|
-
exports.eventLoopState = eventLoopState;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { M3uAssociatedPlaylist, M3uStream } from '../containers/m3u/get-streams';
|
|
2
2
|
import type { LogLevel } from '../log';
|
|
3
|
+
import type { IsoBaseMediaStructure } from '../parse-result';
|
|
3
4
|
import type { OnAudioSample, OnVideoSample } from '../webcodec-sample-types';
|
|
4
5
|
export type M3uStreamOrInitialUrl = {
|
|
5
6
|
type: 'selected-stream';
|
|
@@ -43,5 +44,7 @@ export declare const m3uState: (logLevel: LogLevel) => {
|
|
|
43
44
|
addVideoSample: (src: string, sample: import("../webcodec-sample-types").AudioOrVideoSample) => Promise<void>;
|
|
44
45
|
getNextStreamToRun: (streams: string[]) => string;
|
|
45
46
|
};
|
|
47
|
+
setMp4HeaderSegment: (playlistUrl: string, structure: IsoBaseMediaStructure) => void;
|
|
48
|
+
getMp4HeaderSegment: (playlistUrl: string) => IsoBaseMediaStructure;
|
|
46
49
|
};
|
|
47
50
|
export type M3uState = ReturnType<typeof m3uState>;
|
package/dist/state/m3u-state.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const sample_sorter_1 = require("../containers/m3u/sample-sorter");
|
|
5
|
-
const log_1 = require("../log");
|
|
6
|
-
const m3uState = (logLevel) => {
|
|
1
|
+
import { sampleSorter } from '../containers/m3u/sample-sorter';
|
|
2
|
+
import { Log } from '../log';
|
|
3
|
+
export const m3uState = (logLevel) => {
|
|
7
4
|
let selectedMainPlaylist = null;
|
|
8
5
|
let associatedPlaylists = null;
|
|
9
6
|
const hasEmittedVideoTrack = {};
|
|
@@ -20,16 +17,23 @@ const m3uState = (logLevel) => {
|
|
|
20
17
|
}
|
|
21
18
|
const playlistUrl = selectedMainPlaylist.type === 'initial-url'
|
|
22
19
|
? selectedMainPlaylist.url
|
|
23
|
-
: selectedMainPlaylist.stream.
|
|
20
|
+
: selectedMainPlaylist.stream.src;
|
|
24
21
|
return playlistUrl;
|
|
25
22
|
};
|
|
26
23
|
const getSelectedPlaylists = () => {
|
|
27
24
|
return [
|
|
28
25
|
getMainPlaylistUrl(),
|
|
29
|
-
...(associatedPlaylists !== null && associatedPlaylists !== void 0 ? associatedPlaylists : []).map((p) => p.
|
|
26
|
+
...(associatedPlaylists !== null && associatedPlaylists !== void 0 ? associatedPlaylists : []).map((p) => p.src),
|
|
30
27
|
];
|
|
31
28
|
};
|
|
32
29
|
const getAllChunksProcessedForPlaylist = (src) => allChunksProcessed[src];
|
|
30
|
+
const mp4HeaderSegments = {};
|
|
31
|
+
const setMp4HeaderSegment = (playlistUrl, structure) => {
|
|
32
|
+
mp4HeaderSegments[playlistUrl] = structure;
|
|
33
|
+
};
|
|
34
|
+
const getMp4HeaderSegment = (playlistUrl) => {
|
|
35
|
+
return mp4HeaderSegments[playlistUrl];
|
|
36
|
+
};
|
|
33
37
|
return {
|
|
34
38
|
setSelectedMainPlaylist: (stream) => {
|
|
35
39
|
selectedMainPlaylist = stream;
|
|
@@ -96,7 +100,7 @@ const m3uState = (logLevel) => {
|
|
|
96
100
|
if (values.length === 0) {
|
|
97
101
|
return;
|
|
98
102
|
}
|
|
99
|
-
|
|
103
|
+
Log.trace(logLevel, `Aborting ${values.length} M3U stream runs`);
|
|
100
104
|
values.forEach((run) => {
|
|
101
105
|
run.abort();
|
|
102
106
|
});
|
|
@@ -106,7 +110,8 @@ const m3uState = (logLevel) => {
|
|
|
106
110
|
},
|
|
107
111
|
getAssociatedPlaylists: () => associatedPlaylists,
|
|
108
112
|
getSelectedPlaylists,
|
|
109
|
-
sampleSorter:
|
|
113
|
+
sampleSorter: sampleSorter({ logLevel, getAllChunksProcessedForPlaylist }),
|
|
114
|
+
setMp4HeaderSegment,
|
|
115
|
+
getMp4HeaderSegment,
|
|
110
116
|
};
|
|
111
117
|
};
|
|
112
|
-
exports.m3uState = m3uState;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.maySkipVideoData = void 0;
|
|
4
|
-
const need_samples_for_fields_1 = require("./need-samples-for-fields");
|
|
5
|
-
const maySkipVideoData = ({ state }) => {
|
|
1
|
+
import { needsToIterateOverSamples } from './need-samples-for-fields';
|
|
2
|
+
export const maySkipVideoData = ({ state }) => {
|
|
6
3
|
const hasAllTracksAndNoCallbacks = state.callbacks.tracks.hasAllTracks() &&
|
|
7
4
|
Object.values(state.callbacks.videoSampleCallbacks).length === 0 &&
|
|
8
5
|
Object.values(state.callbacks.audioSampleCallbacks).length === 0;
|
|
@@ -10,9 +7,8 @@ const maySkipVideoData = ({ state }) => {
|
|
|
10
7
|
!state.callbacks.hasVideoTrackHandlers;
|
|
11
8
|
const noCallbacksNeeded = hasNoTrackHandlers || hasAllTracksAndNoCallbacks;
|
|
12
9
|
return (noCallbacksNeeded &&
|
|
13
|
-
!
|
|
10
|
+
!needsToIterateOverSamples({
|
|
14
11
|
emittedFields: state.emittedFields,
|
|
15
12
|
fields: state.fields,
|
|
16
13
|
}));
|
|
17
14
|
};
|
|
18
|
-
exports.maySkipVideoData = maySkipVideoData;
|
package/dist/state/mp3.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeMp3State = void 0;
|
|
4
|
-
const makeMp3State = () => {
|
|
1
|
+
export const makeMp3State = () => {
|
|
5
2
|
let mp3Info = null;
|
|
6
3
|
// cbr = constant bit rate
|
|
7
4
|
let cbrMp3Info = null;
|
|
@@ -16,4 +13,3 @@ const makeMp3State = () => {
|
|
|
16
13
|
},
|
|
17
14
|
};
|
|
18
15
|
};
|
|
19
|
-
exports.makeMp3State = makeMp3State;
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.needsToIterateOverSamples = void 0;
|
|
4
1
|
const needsSamples = {
|
|
5
2
|
slowDurationInSeconds: true,
|
|
6
3
|
slowFps: true,
|
|
@@ -31,9 +28,8 @@ const needsSamples = {
|
|
|
31
28
|
slowVideoBitrate: true,
|
|
32
29
|
m3uStreams: false,
|
|
33
30
|
};
|
|
34
|
-
const needsToIterateOverSamples = ({ fields, emittedFields, }) => {
|
|
31
|
+
export const needsToIterateOverSamples = ({ fields, emittedFields, }) => {
|
|
35
32
|
const keys = Object.keys(fields !== null && fields !== void 0 ? fields : {});
|
|
36
33
|
const selectedKeys = keys.filter((k) => fields[k]);
|
|
37
34
|
return selectedKeys.some((k) => needsSamples[k] && !emittedFields[k]);
|
|
38
35
|
};
|
|
39
|
-
exports.needsToIterateOverSamples = needsToIterateOverSamples;
|
|
@@ -4,6 +4,7 @@ import type { SelectM3uAssociatedPlaylistsFn, SelectM3uStreamFn } from '../conta
|
|
|
4
4
|
import { type LogLevel } from '../log';
|
|
5
5
|
import type { MediaParserController } from '../media-parser-controller';
|
|
6
6
|
import type { OnDiscardedData, Options, ParseMediaFields, ParseMediaMode, ParseMediaSrc } from '../options';
|
|
7
|
+
import type { IsoBaseMediaStructure } from '../parse-result';
|
|
7
8
|
import type { ReaderInterface } from '../readers/reader';
|
|
8
9
|
import type { OnAudioTrack, OnVideoTrack } from '../webcodec-sample-types';
|
|
9
10
|
export type InternalStats = {
|
|
@@ -14,7 +15,7 @@ export type SpsAndPps = {
|
|
|
14
15
|
sps: AvcProfileInfo;
|
|
15
16
|
pps: AvcPPs;
|
|
16
17
|
};
|
|
17
|
-
export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHandlers, controller, fields, onAudioTrack, onVideoTrack, contentLength, logLevel, mode, src, readerInterface, onDiscardedData, selectM3uStreamFn, selectM3uAssociatedPlaylistsFn, }: {
|
|
18
|
+
export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHandlers, controller, fields, onAudioTrack, onVideoTrack, contentLength, logLevel, mode, src, readerInterface, onDiscardedData, selectM3uStreamFn, selectM3uAssociatedPlaylistsFn, mp4HeaderSegment, }: {
|
|
18
19
|
hasAudioTrackHandlers: boolean;
|
|
19
20
|
hasVideoTrackHandlers: boolean;
|
|
20
21
|
controller: MediaParserController;
|
|
@@ -29,6 +30,7 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
|
|
|
29
30
|
onDiscardedData: OnDiscardedData | null;
|
|
30
31
|
selectM3uStreamFn: SelectM3uStreamFn;
|
|
31
32
|
selectM3uAssociatedPlaylistsFn: SelectM3uAssociatedPlaylistsFn;
|
|
33
|
+
mp4HeaderSegment: IsoBaseMediaStructure | null;
|
|
32
34
|
}) => {
|
|
33
35
|
onAudioTrack: OnAudioTrack | null;
|
|
34
36
|
onVideoTrack: OnVideoTrack | null;
|
|
@@ -125,19 +127,17 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
|
|
|
125
127
|
};
|
|
126
128
|
controller: MediaParserController;
|
|
127
129
|
mode: ParseMediaMode;
|
|
128
|
-
eventLoop: {
|
|
129
|
-
eventLoopBreakIfNeeded: () => Promise<void>;
|
|
130
|
-
};
|
|
131
130
|
src: ParseMediaSrc;
|
|
132
131
|
readerInterface: ReaderInterface;
|
|
133
132
|
discardReadBytes: (force: boolean) => Promise<void>;
|
|
134
133
|
selectM3uStreamFn: SelectM3uStreamFn;
|
|
135
134
|
selectM3uAssociatedPlaylistsFn: SelectM3uAssociatedPlaylistsFn;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
135
|
+
mp4HeaderSegment: IsoBaseMediaStructure | null;
|
|
136
|
+
getStructureOrNull: () => import("../parse-result").MediaParserStructureUnstable | null;
|
|
137
|
+
getStructure: () => import("../parse-result").MediaParserStructureUnstable;
|
|
138
|
+
setStructure: (value: import("../parse-result").MediaParserStructureUnstable) => void;
|
|
139
139
|
getFlacStructure: () => import("../containers/flac/types").FlacStructure;
|
|
140
|
-
getIsoStructure: () =>
|
|
140
|
+
getIsoStructure: () => IsoBaseMediaStructure;
|
|
141
141
|
getMp3Structure: () => import("../parse-result").Mp3Structure;
|
|
142
142
|
getM3uStructure: () => import("../containers/m3u/types").M3uStructure;
|
|
143
143
|
getRiffStructure: () => import("../containers/riff/riff-box").RiffStructure;
|
|
@@ -228,8 +228,8 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
|
|
|
228
228
|
setTracksDone: (playlistUrl: string) => boolean;
|
|
229
229
|
getM3uStreamRun: (playlistUrl: string) => import("./m3u-state").ExistingM3uRun;
|
|
230
230
|
abortM3UStreamRuns: () => void;
|
|
231
|
-
setAssociatedPlaylists: (playlists: import("
|
|
232
|
-
getAssociatedPlaylists: () => import("
|
|
231
|
+
setAssociatedPlaylists: (playlists: import("..").M3uAssociatedPlaylist[]) => void;
|
|
232
|
+
getAssociatedPlaylists: () => import("..").M3uAssociatedPlaylist[] | null;
|
|
233
233
|
getSelectedPlaylists: () => string[];
|
|
234
234
|
sampleSorter: {
|
|
235
235
|
addToStreamWithTrack: (src: string) => void;
|
|
@@ -239,6 +239,8 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
|
|
|
239
239
|
addVideoSample: (src: string, sample: import("../webcodec-sample-types").AudioOrVideoSample) => Promise<void>;
|
|
240
240
|
getNextStreamToRun: (streams: string[]) => string;
|
|
241
241
|
};
|
|
242
|
+
setMp4HeaderSegment: (playlistUrl: string, structure: IsoBaseMediaStructure) => void;
|
|
243
|
+
getMp4HeaderSegment: (playlistUrl: string) => IsoBaseMediaStructure;
|
|
242
244
|
};
|
|
243
245
|
callbacks: {
|
|
244
246
|
registerVideoSampleCallback: (id: number, callback: import("../webcodec-sample-types").OnVideoSample | null) => Promise<void>;
|