@remotion/media-parser 4.0.277 → 4.0.278
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 +13 -6
- package/dist/add-avc-profile-to-track.js +9 -5
- package/dist/buffer-iterator.js +13 -8
- package/dist/combine-uint8-arrays.js +5 -1
- package/dist/containers/aac/parse-aac.js +13 -9
- package/dist/containers/aac/types.js +2 -1
- package/dist/containers/avc/codec-string.js +5 -1
- package/dist/containers/avc/color.js +9 -3
- package/dist/containers/avc/create-sps-pps-data.js +9 -5
- package/dist/containers/avc/interpret-sps.js +13 -7
- package/dist/containers/avc/key.js +5 -1
- package/dist/containers/avc/parse-avc.js +7 -3
- package/dist/containers/avc/sps-and-pps.js +5 -1
- package/dist/containers/flac/get-block-size.js +5 -1
- package/dist/containers/flac/get-channel-count.js +5 -1
- package/dist/containers/flac/get-duration-from-flac.js +5 -1
- package/dist/containers/flac/get-metadata-from-flac.js +5 -1
- package/dist/containers/flac/get-sample-rate.js +5 -1
- package/dist/containers/flac/parse-flac-frame.js +19 -14
- package/dist/containers/flac/parse-flac.js +19 -15
- package/dist/containers/flac/parse-header.js +5 -1
- package/dist/containers/flac/parse-metadata.js +5 -1
- package/dist/containers/flac/parse-streaminfo.js +7 -3
- package/dist/containers/flac/parse-unknown-block.js +5 -1
- package/dist/containers/flac/types.js +2 -1
- package/dist/containers/iso-base-media/base-media-box.js +2 -1
- package/dist/containers/iso-base-media/base-type.js +2 -1
- package/dist/containers/iso-base-media/esds/decoder-specific-config.js +5 -1
- package/dist/containers/iso-base-media/esds/esds-descriptors.js +10 -5
- package/dist/containers/iso-base-media/esds/esds.js +7 -3
- package/dist/containers/iso-base-media/ftyp.js +5 -1
- package/dist/containers/iso-base-media/get-actual-number-of-channels.js +8 -4
- package/dist/containers/iso-base-media/get-children.js +7 -3
- package/dist/containers/iso-base-media/get-keyframes.js +11 -7
- package/dist/containers/iso-base-media/get-moov-atom.js +17 -13
- package/dist/containers/iso-base-media/get-sample-positions-from-track.js +24 -20
- package/dist/containers/iso-base-media/get-video-codec-from-iso-track.js +7 -3
- package/dist/containers/iso-base-media/make-track.js +34 -30
- package/dist/containers/iso-base-media/mdat/mdat.js +20 -16
- package/dist/containers/iso-base-media/mdhd.js +5 -1
- package/dist/containers/iso-base-media/meta/hdlr.js +5 -1
- package/dist/containers/iso-base-media/meta/ilst.js +5 -1
- package/dist/containers/iso-base-media/moov/moov.js +7 -3
- package/dist/containers/iso-base-media/mvhd.js +11 -7
- package/dist/containers/iso-base-media/parse-boxes.js +9 -5
- package/dist/containers/iso-base-media/parse-icc-profile.js +8 -4
- package/dist/containers/iso-base-media/process-box.js +67 -63
- package/dist/containers/iso-base-media/stsd/av1c.js +5 -1
- package/dist/containers/iso-base-media/stsd/avcc.js +5 -1
- package/dist/containers/iso-base-media/stsd/colr.js +7 -3
- package/dist/containers/iso-base-media/stsd/ctts.js +5 -1
- package/dist/containers/iso-base-media/stsd/hvcc.js +7 -3
- package/dist/containers/iso-base-media/stsd/keys.js +5 -1
- package/dist/containers/iso-base-media/stsd/mebx.js +7 -3
- package/dist/containers/iso-base-media/stsd/pasp.js +5 -1
- package/dist/containers/iso-base-media/stsd/samples.js +13 -8
- package/dist/containers/iso-base-media/stsd/stco.js +5 -1
- package/dist/containers/iso-base-media/stsd/stsc.js +5 -1
- package/dist/containers/iso-base-media/stsd/stsd.js +7 -3
- package/dist/containers/iso-base-media/stsd/stss.js +5 -1
- package/dist/containers/iso-base-media/stsd/stsz.js +5 -1
- package/dist/containers/iso-base-media/stsd/stts.js +5 -1
- package/dist/containers/iso-base-media/tfdt.js +5 -1
- package/dist/containers/iso-base-media/tfhd.js +5 -1
- package/dist/containers/iso-base-media/tkhd.js +8 -4
- package/dist/containers/iso-base-media/to-date.js +5 -1
- package/dist/containers/iso-base-media/trak/trak.js +7 -3
- package/dist/containers/iso-base-media/traversal.js +57 -33
- package/dist/containers/iso-base-media/trun.js +5 -1
- package/dist/containers/iso-base-media/void-box.js +2 -1
- package/dist/containers/m3u/after-manifest-fetch.js +15 -11
- package/dist/containers/m3u/fetch-m3u8-stream.js +7 -3
- package/dist/containers/m3u/get-chunks.js +5 -1
- package/dist/containers/m3u/get-duration-from-m3u.js +8 -4
- package/dist/containers/m3u/get-playlist.js +12 -6
- package/dist/containers/m3u/get-streams.js +9 -3
- package/dist/containers/m3u/iterate-over-segment-files.js +15 -11
- package/dist/containers/m3u/parse-directive.js +10 -6
- package/dist/containers/m3u/parse-m3u-manifest.js +7 -3
- package/dist/containers/m3u/parse-m3u-media-directive.js +10 -5
- package/dist/containers/m3u/parse-m3u.js +11 -7
- package/dist/containers/m3u/parse-m3u8-text.js +7 -3
- package/dist/containers/m3u/parse-stream-inf.js +7 -2
- package/dist/containers/m3u/run-over-m3u.js +13 -9
- package/dist/containers/m3u/sample-sorter.js +8 -4
- package/dist/containers/m3u/select-stream.js +11 -4
- package/dist/containers/m3u/types.js +2 -1
- package/dist/containers/mp3/get-duration.js +9 -5
- package/dist/containers/mp3/get-frame-length.js +7 -2
- package/dist/containers/mp3/get-metadata-from-mp3.js +5 -1
- package/dist/containers/mp3/id3-v1.js +5 -1
- package/dist/containers/mp3/id3.js +5 -1
- package/dist/containers/mp3/parse-mp3.js +11 -7
- package/dist/containers/mp3/parse-mpeg-header.js +14 -10
- package/dist/containers/mp3/samples-per-mpeg-file.js +5 -1
- package/dist/containers/riff/expect-riff-box.js +15 -11
- package/dist/containers/riff/get-duration.js +12 -7
- package/dist/containers/riff/get-tracks-from-avi.js +28 -20
- package/dist/containers/riff/is-movi.js +5 -1
- package/dist/containers/riff/parse-avih.js +5 -1
- package/dist/containers/riff/parse-isft.js +5 -1
- package/dist/containers/riff/parse-list-box.js +7 -3
- package/dist/containers/riff/parse-movi.js +18 -13
- package/dist/containers/riff/parse-riff-body.js +13 -9
- package/dist/containers/riff/parse-riff-box.js +13 -9
- package/dist/containers/riff/parse-riff-header.js +5 -1
- package/dist/containers/riff/parse-riff.js +9 -5
- package/dist/containers/riff/parse-strf.js +5 -1
- package/dist/containers/riff/parse-strh.js +7 -3
- package/dist/containers/riff/parse-video-section.js +11 -7
- package/dist/containers/riff/riff-box.js +2 -1
- package/dist/containers/riff/timescale.js +4 -1
- package/dist/containers/riff/traversal.js +15 -7
- package/dist/containers/transport-stream/adts-header.js +10 -6
- package/dist/containers/transport-stream/boxes.js +2 -1
- package/dist/containers/transport-stream/discard-rest-of-packet.js +7 -2
- package/dist/containers/transport-stream/find-separator.js +4 -1
- package/dist/containers/transport-stream/get-tracks.js +16 -10
- package/dist/containers/transport-stream/handle-aac-packet.js +16 -12
- package/dist/containers/transport-stream/handle-avc-packet.js +26 -22
- package/dist/containers/transport-stream/next-pes-header-store.js +5 -1
- package/dist/containers/transport-stream/parse-packet.js +17 -13
- package/dist/containers/transport-stream/parse-pat.js +10 -5
- package/dist/containers/transport-stream/parse-pes.js +5 -1
- package/dist/containers/transport-stream/parse-pmt.js +7 -3
- package/dist/containers/transport-stream/parse-stream-packet.js +17 -13
- package/dist/containers/transport-stream/parse-transport-stream.js +9 -5
- package/dist/containers/transport-stream/process-stream-buffers.js +17 -12
- package/dist/containers/transport-stream/traversal.js +10 -4
- package/dist/containers/wav/get-duration-from-wav.js +8 -3
- package/dist/containers/wav/get-metadata-from-wav.js +5 -1
- package/dist/containers/wav/parse-data.js +9 -5
- package/dist/containers/wav/parse-fmt.js +7 -3
- package/dist/containers/wav/parse-header.js +5 -1
- package/dist/containers/wav/parse-id3.js +5 -1
- package/dist/containers/wav/parse-list.js +5 -1
- package/dist/containers/wav/parse-video-section.js +7 -3
- package/dist/containers/wav/parse-wav.js +19 -15
- package/dist/containers/wav/types.js +2 -1
- package/dist/containers/webm/allowed-partial-segments.js +4 -1
- package/dist/containers/webm/av1-codec-private.js +7 -3
- package/dist/containers/webm/color.js +10 -6
- package/dist/containers/webm/description.js +10 -6
- package/dist/containers/webm/get-ready-tracks.js +18 -13
- package/dist/containers/webm/get-sample-from-block.js +16 -12
- package/dist/containers/webm/make-track.js +48 -43
- package/dist/containers/webm/parse-ebml.js +19 -14
- package/dist/containers/webm/parse-webm-header.js +7 -3
- package/dist/containers/webm/segments/all-segments.js +173 -168
- package/dist/containers/webm/segments/block-simple-block-flags.js +8 -4
- package/dist/containers/webm/segments/track-entry.js +5 -1
- package/dist/containers/webm/segments.js +13 -9
- package/dist/containers/webm/traversal.js +67 -37
- package/dist/convert-audio-or-video-sample.js +5 -1
- package/dist/download-and-parse-media.js +14 -10
- package/dist/emit-available-info.js +38 -34
- package/dist/emitter.js +5 -1
- package/dist/errors.js +15 -6
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/worker.mjs +4 -5
- package/dist/fetch.js +17 -1
- package/dist/file-types/bmp.js +7 -3
- package/dist/file-types/detect-file-type.js +38 -24
- package/dist/file-types/index.js +26 -22
- package/dist/file-types/jpeg.js +9 -4
- package/dist/file-types/pdf.js +7 -3
- package/dist/file-types/png.js +9 -4
- package/dist/file-types/webp.js +7 -3
- package/dist/forward-controller.js +5 -1
- package/dist/get-audio-codec.js +38 -25
- package/dist/get-container.js +10 -5
- package/dist/get-dimensions.js +13 -8
- package/dist/get-duration.js +34 -27
- package/dist/get-fields-from-callbacks.js +5 -1
- package/dist/get-fps.js +34 -24
- package/dist/get-is-hdr.js +10 -5
- package/dist/get-keyframes.js +11 -6
- package/dist/get-location.js +9 -4
- package/dist/get-number-of-audio-channels.js +7 -2
- package/dist/get-sample-aspect-ratio.js +30 -17
- package/dist/get-sample-positions-from-lpcm.js +9 -5
- package/dist/get-sample-positions.js +5 -1
- package/dist/get-sample-rate.js +7 -2
- package/dist/get-tracks.js +40 -29
- package/dist/get-video-codec.js +34 -26
- package/dist/has-all-info.js +38 -33
- package/dist/index.js +47 -32
- package/dist/init-video.js +28 -24
- package/dist/internal-parse-media.js +39 -35
- package/dist/is-audio-structure.js +5 -1
- package/dist/log.js +12 -8
- package/dist/make-hvc1-codec-strings.js +5 -1
- package/dist/media-parser-controller.js +11 -7
- package/dist/metadata/get-metadata.js +22 -17
- package/dist/metadata/metadata-from-iso.js +17 -12
- package/dist/metadata/metadata-from-matroska.js +7 -3
- package/dist/metadata/metadata-from-riff.js +7 -3
- package/dist/node-writer.js +17 -1
- package/dist/node.js +17 -1
- package/dist/options.js +2 -1
- package/dist/parse-media-on-worker-entry.js +7 -3
- package/dist/parse-media.js +12 -8
- package/dist/parse-result.js +2 -1
- package/dist/pause-signal.js +5 -1
- package/dist/perform-seek.js +10 -6
- package/dist/readers/fetch/get-body-and-reader.js +5 -1
- package/dist/readers/fetch/resolve-url.js +5 -1
- package/dist/readers/from-fetch.js +21 -14
- package/dist/readers/from-node.js +23 -17
- package/dist/readers/from-web-file.js +13 -7
- package/dist/readers/reader.js +2 -1
- package/dist/readers/universal.js +16 -13
- package/dist/readers/web.js +12 -9
- package/dist/register-track.js +15 -9
- package/dist/remotion-license-acknowledge.js +8 -4
- package/dist/run-parse-iteration.js +25 -21
- package/dist/samples-from-moof.js +10 -6
- package/dist/skip.js +5 -1
- package/dist/state/aac-state.js +5 -1
- package/dist/state/can-skip-tracks.js +8 -3
- package/dist/state/emitted-fields.js +5 -1
- package/dist/state/flac-state.js +5 -1
- package/dist/state/has-tracks-section.js +7 -3
- package/dist/state/images.js +5 -1
- package/dist/state/iso-base-media/cached-sample-positions.js +13 -8
- package/dist/state/iso-base-media/iso-state.js +9 -5
- package/dist/state/iso-base-media/moov-box.js +5 -1
- package/dist/state/keyframes.js +5 -1
- package/dist/state/m3u-state.js +9 -5
- package/dist/state/may-skip-video-data.js +7 -3
- package/dist/state/mp3.js +5 -1
- package/dist/state/need-samples-for-fields.js +5 -1
- package/dist/state/parser-state.js +39 -35
- package/dist/state/riff.js +5 -1
- package/dist/state/sample-callbacks.js +12 -8
- package/dist/state/slow-duration-fps.js +5 -1
- package/dist/state/structure.js +5 -1
- package/dist/state/transport-stream.js +7 -3
- package/dist/state/video-section.js +5 -1
- package/dist/state/webm.js +9 -5
- package/dist/throttled-progress.js +5 -1
- package/dist/truthy.js +4 -1
- package/dist/universal.js +5 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +4 -1
- package/dist/web.js +5 -1
- package/dist/webcodec-sample-types.js +2 -1
- package/dist/worker/forward-controller.js +7 -3
- package/dist/worker/serialize-error.js +19 -14
- package/dist/worker/worker-types.js +2 -1
- package/dist/worker-server-entry.js +5 -3
- package/dist/worker-server.js +16 -12
- package/dist/worker-web-entry.js +5 -3
- package/dist/worker.d.ts +3 -2
- package/dist/worker.js +11 -2
- package/dist/worker.module.d.ts +4 -0
- package/dist/worker.module.js +16 -0
- package/dist/writers/node.js +23 -16
- package/dist/writers/writer.js +2 -1
- package/package.json +3 -3
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseStsc = void 0;
|
|
4
|
+
const parseStsc = ({ iterator, offset, size, }) => {
|
|
2
5
|
const version = iterator.getUint8();
|
|
3
6
|
if (version !== 0) {
|
|
4
7
|
throw new Error(`Unsupported STSD version ${version}`);
|
|
@@ -28,3 +31,4 @@ export const parseStsc = ({ iterator, offset, size, }) => {
|
|
|
28
31
|
entries,
|
|
29
32
|
};
|
|
30
33
|
};
|
|
34
|
+
exports.parseStsc = parseStsc;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseStsd = void 0;
|
|
4
|
+
const samples_1 = require("./samples");
|
|
5
|
+
const parseStsd = async ({ offset, size, state, }) => {
|
|
3
6
|
const { iterator } = state;
|
|
4
7
|
const version = iterator.getUint8();
|
|
5
8
|
if (version !== 0) {
|
|
@@ -9,7 +12,7 @@ export const parseStsd = async ({ offset, size, state, }) => {
|
|
|
9
12
|
iterator.discard(3);
|
|
10
13
|
const numberOfEntries = iterator.getUint32();
|
|
11
14
|
const bytesRemainingInBox = size - (iterator.counter.getOffset() - offset);
|
|
12
|
-
const boxes = await parseIsoFormatBoxes({
|
|
15
|
+
const boxes = await (0, samples_1.parseIsoFormatBoxes)({
|
|
13
16
|
maxBytes: bytesRemainingInBox,
|
|
14
17
|
state,
|
|
15
18
|
});
|
|
@@ -24,3 +27,4 @@ export const parseStsd = async ({ offset, size, state, }) => {
|
|
|
24
27
|
samples: boxes,
|
|
25
28
|
};
|
|
26
29
|
};
|
|
30
|
+
exports.parseStsd = parseStsd;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseStss = void 0;
|
|
4
|
+
const parseStss = ({ iterator, offset, boxSize, }) => {
|
|
2
5
|
const version = iterator.getUint8();
|
|
3
6
|
if (version !== 0) {
|
|
4
7
|
throw new Error(`Unsupported STSS version ${version}`);
|
|
@@ -22,3 +25,4 @@ export const parseStss = ({ iterator, offset, boxSize, }) => {
|
|
|
22
25
|
offset,
|
|
23
26
|
};
|
|
24
27
|
};
|
|
28
|
+
exports.parseStss = parseStss;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseStsz = void 0;
|
|
4
|
+
const parseStsz = ({ iterator, offset, size, }) => {
|
|
2
5
|
const version = iterator.getUint8();
|
|
3
6
|
if (version !== 0) {
|
|
4
7
|
throw new Error(`Unsupported STSD version ${version}`);
|
|
@@ -38,3 +41,4 @@ export const parseStsz = ({ iterator, offset, size, }) => {
|
|
|
38
41
|
entries: samples,
|
|
39
42
|
};
|
|
40
43
|
};
|
|
44
|
+
exports.parseStsz = parseStsz;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseStts = void 0;
|
|
4
|
+
const parseStts = ({ data, size, fileOffset, }) => {
|
|
2
5
|
const initialOffset = data.counter.getOffset();
|
|
3
6
|
const initialCounter = initialOffset - fileOffset;
|
|
4
7
|
const version = data.getUint8();
|
|
@@ -29,3 +32,4 @@ export const parseStts = ({ data, size, fileOffset, }) => {
|
|
|
29
32
|
sampleDistribution: sampleDistributions,
|
|
30
33
|
};
|
|
31
34
|
};
|
|
35
|
+
exports.parseStts = parseStts;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseTfdt = void 0;
|
|
4
|
+
const parseTfdt = ({ iterator, size, offset, }) => {
|
|
2
5
|
const version = iterator.getUint8();
|
|
3
6
|
iterator.discard(3);
|
|
4
7
|
// Flags, discard them
|
|
@@ -14,3 +17,4 @@ export const parseTfdt = ({ iterator, size, offset, }) => {
|
|
|
14
17
|
offset,
|
|
15
18
|
};
|
|
16
19
|
};
|
|
20
|
+
exports.parseTfdt = parseTfdt;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTfhd = void 0;
|
|
4
|
+
const getTfhd = ({ iterator, offset, size, }) => {
|
|
2
5
|
const version = iterator.getUint8();
|
|
3
6
|
const flags = iterator.getUint24();
|
|
4
7
|
const trackId = iterator.getUint32();
|
|
@@ -35,3 +38,4 @@ export const getTfhd = ({ iterator, offset, size, }) => {
|
|
|
35
38
|
defaultSampleFlags,
|
|
36
39
|
};
|
|
37
40
|
};
|
|
41
|
+
exports.getTfhd = getTfhd;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseTkhd = void 0;
|
|
4
|
+
const to_date_1 = require("./to-date");
|
|
2
5
|
function getRotationAngleFromMatrix(matrix) {
|
|
3
6
|
// Extract elements from the matrix
|
|
4
7
|
const [a, b, c, d] = matrix;
|
|
@@ -22,7 +25,7 @@ const applyRotation = ({ matrix, width, height, }) => {
|
|
|
22
25
|
height: Math.abs(newHeight),
|
|
23
26
|
};
|
|
24
27
|
};
|
|
25
|
-
|
|
28
|
+
const parseTkhd = ({ iterator, offset, size, }) => {
|
|
26
29
|
const version = iterator.getUint8();
|
|
27
30
|
// Flags, we discard them
|
|
28
31
|
iterator.discard(3);
|
|
@@ -65,8 +68,8 @@ export const parseTkhd = ({ iterator, offset, size, }) => {
|
|
|
65
68
|
offset,
|
|
66
69
|
boxSize: size,
|
|
67
70
|
type: 'tkhd-box',
|
|
68
|
-
creationTime: toUnixTimestamp(Number(creationTime)),
|
|
69
|
-
modificationTime: toUnixTimestamp(Number(modificationTime)),
|
|
71
|
+
creationTime: (0, to_date_1.toUnixTimestamp)(Number(creationTime)),
|
|
72
|
+
modificationTime: (0, to_date_1.toUnixTimestamp)(Number(modificationTime)),
|
|
70
73
|
trackId,
|
|
71
74
|
duration: Number(duration),
|
|
72
75
|
layer,
|
|
@@ -81,3 +84,4 @@ export const parseTkhd = ({ iterator, offset, size, }) => {
|
|
|
81
84
|
unrotatedHeight: heightWithoutRotationApplied,
|
|
82
85
|
};
|
|
83
86
|
};
|
|
87
|
+
exports.parseTkhd = parseTkhd;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toUnixTimestamp = void 0;
|
|
4
|
+
const toUnixTimestamp = (value) => {
|
|
2
5
|
if (value === 0) {
|
|
3
6
|
return null;
|
|
4
7
|
}
|
|
5
8
|
const baseDate = new Date('1904-01-01T00:00:00Z');
|
|
6
9
|
return Math.floor(value + baseDate.getTime() / 1000) * 1000;
|
|
7
10
|
};
|
|
11
|
+
exports.toUnixTimestamp = toUnixTimestamp;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseTrak = void 0;
|
|
4
|
+
const get_children_1 = require("../get-children");
|
|
5
|
+
const parseTrak = async ({ size, offsetAtStart, state: options, }) => {
|
|
6
|
+
const children = await (0, get_children_1.getIsoBaseMediaChildren)({
|
|
4
7
|
state: options,
|
|
5
8
|
size: size - 8,
|
|
6
9
|
});
|
|
@@ -11,3 +14,4 @@ export const parseTrak = async ({ size, offsetAtStart, state: options, }) => {
|
|
|
11
14
|
children,
|
|
12
15
|
};
|
|
13
16
|
};
|
|
17
|
+
exports.parseTrak = parseTrak;
|
|
@@ -1,64 +1,76 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTrunBoxes = exports.getTfhdBox = exports.getTfdtBox = exports.getStssBox = exports.getStscBox = exports.getStszBox = exports.getCttsBox = exports.getSttsBox = exports.getStcoBox = exports.getVideoDescriptors = exports.getStsdBox = exports.getStblBox = exports.getMdhdBox = exports.getMdiaBox = exports.getTkhdBox = exports.getTraks = exports.getMvhdBox = exports.getMoofBoxes = exports.getMoovBoxFromState = exports.getMoovFromFromIsoStructure = exports.getFtypBox = void 0;
|
|
4
|
+
const getFtypBox = (segments) => {
|
|
2
5
|
const ftypBox = segments.find((s) => s.type === 'ftyp-box');
|
|
3
6
|
if (!ftypBox || ftypBox.type !== 'ftyp-box') {
|
|
4
7
|
return null;
|
|
5
8
|
}
|
|
6
9
|
return ftypBox;
|
|
7
10
|
};
|
|
8
|
-
|
|
11
|
+
exports.getFtypBox = getFtypBox;
|
|
12
|
+
const getMoovFromFromIsoStructure = (structure) => {
|
|
9
13
|
const moovBox = structure.boxes.find((s) => s.type === 'moov-box');
|
|
10
14
|
if (!moovBox || moovBox.type !== 'moov-box') {
|
|
11
15
|
return null;
|
|
12
16
|
}
|
|
13
17
|
return moovBox;
|
|
14
18
|
};
|
|
15
|
-
|
|
19
|
+
exports.getMoovFromFromIsoStructure = getMoovFromFromIsoStructure;
|
|
20
|
+
const getMoovBoxFromState = (state) => {
|
|
16
21
|
const got = state.iso.moov.getMoovBox();
|
|
17
22
|
if (got) {
|
|
18
23
|
return got;
|
|
19
24
|
}
|
|
20
25
|
const a = state.mp4HeaderSegment;
|
|
21
26
|
if (a) {
|
|
22
|
-
return getMoovFromFromIsoStructure(a);
|
|
27
|
+
return (0, exports.getMoovFromFromIsoStructure)(a);
|
|
23
28
|
}
|
|
24
29
|
const structure = state.getIsoStructure();
|
|
25
|
-
return getMoovFromFromIsoStructure(structure);
|
|
30
|
+
return (0, exports.getMoovFromFromIsoStructure)(structure);
|
|
26
31
|
};
|
|
27
|
-
|
|
32
|
+
exports.getMoovBoxFromState = getMoovBoxFromState;
|
|
33
|
+
const getMoofBoxes = (main) => {
|
|
28
34
|
const moofBoxes = main.filter((s) => s.type === 'regular-box' && s.boxType === 'moof');
|
|
29
35
|
return moofBoxes;
|
|
30
36
|
};
|
|
31
|
-
|
|
37
|
+
exports.getMoofBoxes = getMoofBoxes;
|
|
38
|
+
const getMvhdBox = (moovBox) => {
|
|
32
39
|
const mvHdBox = moovBox.children.find((s) => s.type === 'mvhd-box');
|
|
33
40
|
if (!mvHdBox || mvHdBox.type !== 'mvhd-box') {
|
|
34
41
|
return null;
|
|
35
42
|
}
|
|
36
43
|
return mvHdBox;
|
|
37
44
|
};
|
|
38
|
-
|
|
45
|
+
exports.getMvhdBox = getMvhdBox;
|
|
46
|
+
const getTraks = (moovBox) => {
|
|
39
47
|
return moovBox.children.filter((s) => s.type === 'trak-box');
|
|
40
48
|
};
|
|
41
|
-
|
|
49
|
+
exports.getTraks = getTraks;
|
|
50
|
+
const getTkhdBox = (trakBox) => {
|
|
42
51
|
const tkhdBox = trakBox.children.find((s) => s.type === 'tkhd-box');
|
|
43
52
|
return tkhdBox;
|
|
44
53
|
};
|
|
45
|
-
|
|
54
|
+
exports.getTkhdBox = getTkhdBox;
|
|
55
|
+
const getMdiaBox = (trakBox) => {
|
|
46
56
|
const mdiaBox = trakBox.children.find((s) => s.type === 'regular-box' && s.boxType === 'mdia');
|
|
47
57
|
if (!mdiaBox || mdiaBox.type !== 'regular-box') {
|
|
48
58
|
return null;
|
|
49
59
|
}
|
|
50
60
|
return mdiaBox;
|
|
51
61
|
};
|
|
52
|
-
|
|
53
|
-
|
|
62
|
+
exports.getMdiaBox = getMdiaBox;
|
|
63
|
+
const getMdhdBox = (trakBox) => {
|
|
64
|
+
const mdiaBox = (0, exports.getMdiaBox)(trakBox);
|
|
54
65
|
if (!mdiaBox) {
|
|
55
66
|
return null;
|
|
56
67
|
}
|
|
57
68
|
const mdhdBox = mdiaBox.children.find((c) => c.type === 'mdhd-box');
|
|
58
69
|
return mdhdBox;
|
|
59
70
|
};
|
|
60
|
-
|
|
61
|
-
|
|
71
|
+
exports.getMdhdBox = getMdhdBox;
|
|
72
|
+
const getStblBox = (trakBox) => {
|
|
73
|
+
const mdiaBox = (0, exports.getMdiaBox)(trakBox);
|
|
62
74
|
if (!mdiaBox) {
|
|
63
75
|
return null;
|
|
64
76
|
}
|
|
@@ -72,17 +84,19 @@ export const getStblBox = (trakBox) => {
|
|
|
72
84
|
}
|
|
73
85
|
return stblBox;
|
|
74
86
|
};
|
|
75
|
-
|
|
76
|
-
|
|
87
|
+
exports.getStblBox = getStblBox;
|
|
88
|
+
const getStsdBox = (trakBox) => {
|
|
89
|
+
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
77
90
|
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
78
91
|
return null;
|
|
79
92
|
}
|
|
80
93
|
const stsdBox = stblBox.children.find((s) => s.type === 'stsd-box');
|
|
81
94
|
return stsdBox;
|
|
82
95
|
};
|
|
83
|
-
|
|
96
|
+
exports.getStsdBox = getStsdBox;
|
|
97
|
+
const getVideoDescriptors = (trakBox) => {
|
|
84
98
|
var _a;
|
|
85
|
-
const stsdBox = getStsdBox(trakBox);
|
|
99
|
+
const stsdBox = (0, exports.getStsdBox)(trakBox);
|
|
86
100
|
if (!stsdBox) {
|
|
87
101
|
return null;
|
|
88
102
|
}
|
|
@@ -99,55 +113,62 @@ export const getVideoDescriptors = (trakBox) => {
|
|
|
99
113
|
});
|
|
100
114
|
return (_a = descriptors.flat(1).filter(Boolean)[0]) !== null && _a !== void 0 ? _a : null;
|
|
101
115
|
};
|
|
102
|
-
|
|
103
|
-
|
|
116
|
+
exports.getVideoDescriptors = getVideoDescriptors;
|
|
117
|
+
const getStcoBox = (trakBox) => {
|
|
118
|
+
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
104
119
|
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
105
120
|
return null;
|
|
106
121
|
}
|
|
107
122
|
const stcoBox = stblBox.children.find((s) => s.type === 'stco-box');
|
|
108
123
|
return stcoBox;
|
|
109
124
|
};
|
|
110
|
-
|
|
111
|
-
|
|
125
|
+
exports.getStcoBox = getStcoBox;
|
|
126
|
+
const getSttsBox = (trakBox) => {
|
|
127
|
+
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
112
128
|
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
113
129
|
return null;
|
|
114
130
|
}
|
|
115
131
|
const sttsBox = stblBox.children.find((s) => s.type === 'stts-box');
|
|
116
132
|
return sttsBox;
|
|
117
133
|
};
|
|
118
|
-
|
|
119
|
-
|
|
134
|
+
exports.getSttsBox = getSttsBox;
|
|
135
|
+
const getCttsBox = (trakBox) => {
|
|
136
|
+
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
120
137
|
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
121
138
|
return null;
|
|
122
139
|
}
|
|
123
140
|
const cttsBox = stblBox.children.find((s) => s.type === 'ctts-box');
|
|
124
141
|
return cttsBox;
|
|
125
142
|
};
|
|
126
|
-
|
|
127
|
-
|
|
143
|
+
exports.getCttsBox = getCttsBox;
|
|
144
|
+
const getStszBox = (trakBox) => {
|
|
145
|
+
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
128
146
|
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
129
147
|
return null;
|
|
130
148
|
}
|
|
131
149
|
const stszBox = stblBox.children.find((s) => s.type === 'stsz-box');
|
|
132
150
|
return stszBox;
|
|
133
151
|
};
|
|
134
|
-
|
|
135
|
-
|
|
152
|
+
exports.getStszBox = getStszBox;
|
|
153
|
+
const getStscBox = (trakBox) => {
|
|
154
|
+
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
136
155
|
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
137
156
|
return null;
|
|
138
157
|
}
|
|
139
158
|
const stcoBox = stblBox.children.find((b) => b.type === 'stsc-box');
|
|
140
159
|
return stcoBox;
|
|
141
160
|
};
|
|
142
|
-
|
|
143
|
-
|
|
161
|
+
exports.getStscBox = getStscBox;
|
|
162
|
+
const getStssBox = (trakBox) => {
|
|
163
|
+
const stblBox = (0, exports.getStblBox)(trakBox);
|
|
144
164
|
if (!stblBox || stblBox.type !== 'regular-box') {
|
|
145
165
|
return null;
|
|
146
166
|
}
|
|
147
167
|
const stssBox = stblBox.children.find((b) => b.type === 'stss-box');
|
|
148
168
|
return stssBox;
|
|
149
169
|
};
|
|
150
|
-
|
|
170
|
+
exports.getStssBox = getStssBox;
|
|
171
|
+
const getTfdtBox = (segment) => {
|
|
151
172
|
if (segment.type !== 'regular-box' || segment.boxType !== 'traf') {
|
|
152
173
|
throw new Error('Expected traf-box');
|
|
153
174
|
}
|
|
@@ -157,7 +178,8 @@ export const getTfdtBox = (segment) => {
|
|
|
157
178
|
}
|
|
158
179
|
return tfhdBox;
|
|
159
180
|
};
|
|
160
|
-
|
|
181
|
+
exports.getTfdtBox = getTfdtBox;
|
|
182
|
+
const getTfhdBox = (segment) => {
|
|
161
183
|
if (segment.type !== 'regular-box' || segment.boxType !== 'traf') {
|
|
162
184
|
throw new Error('Expected traf-box');
|
|
163
185
|
}
|
|
@@ -167,10 +189,12 @@ export const getTfhdBox = (segment) => {
|
|
|
167
189
|
}
|
|
168
190
|
return tfhdBox;
|
|
169
191
|
};
|
|
170
|
-
|
|
192
|
+
exports.getTfhdBox = getTfhdBox;
|
|
193
|
+
const getTrunBoxes = (segment) => {
|
|
171
194
|
if (segment.type !== 'regular-box' || segment.boxType !== 'traf') {
|
|
172
195
|
throw new Error('Expected traf-box');
|
|
173
196
|
}
|
|
174
197
|
const trunBoxes = segment.children.filter((c) => c.type === 'trun-box');
|
|
175
198
|
return trunBoxes;
|
|
176
199
|
};
|
|
200
|
+
exports.getTrunBoxes = getTrunBoxes;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseTrun = void 0;
|
|
4
|
+
const parseTrun = ({ iterator, offset, size, }) => {
|
|
2
5
|
const version = iterator.getUint8();
|
|
3
6
|
if (version !== 0 && version !== 1) {
|
|
4
7
|
throw new Error(`Unsupported TRUN version ${version}`);
|
|
@@ -38,3 +41,4 @@ export const parseTrun = ({ iterator, offset, size, }) => {
|
|
|
38
41
|
samples,
|
|
39
42
|
};
|
|
40
43
|
};
|
|
44
|
+
exports.parseTrun = parseTrun;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.afterManifestFetch = void 0;
|
|
4
|
+
const log_1 = require("../../log");
|
|
5
|
+
const fetch_m3u8_stream_1 = require("./fetch-m3u8-stream");
|
|
6
|
+
const get_streams_1 = require("./get-streams");
|
|
7
|
+
const select_stream_1 = require("./select-stream");
|
|
8
|
+
const afterManifestFetch = async ({ structure, m3uState, src, selectM3uStreamFn, logLevel, selectAssociatedPlaylistsFn, readerInterface, }) => {
|
|
9
|
+
const independentSegments = (0, get_streams_1.isIndependentSegments)(structure);
|
|
7
10
|
if (!independentSegments) {
|
|
8
11
|
if (!src) {
|
|
9
12
|
throw new Error('No src');
|
|
@@ -14,11 +17,11 @@ export const afterManifestFetch = async ({ structure, m3uState, src, selectM3uSt
|
|
|
14
17
|
});
|
|
15
18
|
return m3uState.setReadyToIterateOverM3u();
|
|
16
19
|
}
|
|
17
|
-
const streams = getM3uStreams({ structure, originalSrc: src, readerInterface });
|
|
20
|
+
const streams = (0, get_streams_1.getM3uStreams)({ structure, originalSrc: src, readerInterface });
|
|
18
21
|
if (streams === null) {
|
|
19
22
|
throw new Error('No streams found');
|
|
20
23
|
}
|
|
21
|
-
const selectedPlaylist = await selectStream({ streams, fn: selectM3uStreamFn });
|
|
24
|
+
const selectedPlaylist = await (0, select_stream_1.selectStream)({ streams, fn: selectM3uStreamFn });
|
|
22
25
|
if (!selectedPlaylist.resolution) {
|
|
23
26
|
throw new Error('Stream does not have a resolution');
|
|
24
27
|
}
|
|
@@ -26,7 +29,7 @@ export const afterManifestFetch = async ({ structure, m3uState, src, selectM3uSt
|
|
|
26
29
|
type: 'selected-stream',
|
|
27
30
|
stream: selectedPlaylist,
|
|
28
31
|
});
|
|
29
|
-
const associatedPlaylists = await selectAssociatedPlaylists({
|
|
32
|
+
const associatedPlaylists = await (0, select_stream_1.selectAssociatedPlaylists)({
|
|
30
33
|
playlists: selectedPlaylist.associatedPlaylists,
|
|
31
34
|
fn: selectAssociatedPlaylistsFn,
|
|
32
35
|
});
|
|
@@ -36,8 +39,8 @@ export const afterManifestFetch = async ({ structure, m3uState, src, selectM3uSt
|
|
|
36
39
|
...associatedPlaylists.map((p) => p.src),
|
|
37
40
|
];
|
|
38
41
|
const struc = await Promise.all(playlistUrls.map(async (url) => {
|
|
39
|
-
Log.verbose(logLevel, `Fetching playlist ${url}`);
|
|
40
|
-
const boxes = await fetchM3u8Stream({ url, readerInterface });
|
|
42
|
+
log_1.Log.verbose(logLevel, `Fetching playlist ${url}`);
|
|
43
|
+
const boxes = await (0, fetch_m3u8_stream_1.fetchM3u8Stream)({ url, readerInterface });
|
|
41
44
|
return {
|
|
42
45
|
type: 'm3u-playlist',
|
|
43
46
|
boxes,
|
|
@@ -47,3 +50,4 @@ export const afterManifestFetch = async ({ structure, m3uState, src, selectM3uSt
|
|
|
47
50
|
structure.boxes.push(...struc);
|
|
48
51
|
m3uState.setReadyToIterateOverM3u();
|
|
49
52
|
};
|
|
53
|
+
exports.afterManifestFetch = afterManifestFetch;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchM3u8Stream = void 0;
|
|
4
|
+
const parse_m3u8_text_1 = require("./parse-m3u8-text");
|
|
5
|
+
const fetchM3u8Stream = async ({ url, readerInterface, }) => {
|
|
3
6
|
const text = await readerInterface.readWholeAsText(url);
|
|
4
7
|
const lines = text.split('\n');
|
|
5
8
|
const boxes = [];
|
|
6
9
|
for (const line of lines) {
|
|
7
|
-
parseM3u8Text(line.trim(), boxes);
|
|
10
|
+
(0, parse_m3u8_text_1.parseM3u8Text)(line.trim(), boxes);
|
|
8
11
|
}
|
|
9
12
|
return boxes;
|
|
10
13
|
};
|
|
14
|
+
exports.fetchM3u8Stream = fetchM3u8Stream;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getChunks = void 0;
|
|
4
|
+
const getChunks = (playlist) => {
|
|
2
5
|
const chunks = [];
|
|
3
6
|
for (let i = 0; i < playlist.boxes.length; i++) {
|
|
4
7
|
const box = playlist.boxes[i];
|
|
@@ -18,3 +21,4 @@ export const getChunks = (playlist) => {
|
|
|
18
21
|
}
|
|
19
22
|
return chunks;
|
|
20
23
|
};
|
|
24
|
+
exports.getChunks = getChunks;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDurationFromM3u = void 0;
|
|
4
|
+
const get_playlist_1 = require("./get-playlist");
|
|
5
|
+
const getDurationFromM3u = (state) => {
|
|
6
|
+
const playlists = (0, get_playlist_1.getAllPlaylists)({
|
|
4
7
|
structure: state.getM3uStructure(),
|
|
5
8
|
src: state.src,
|
|
6
9
|
});
|
|
7
10
|
return Math.max(...playlists.map((p) => {
|
|
8
|
-
return getDurationFromPlaylist(p);
|
|
11
|
+
return (0, get_playlist_1.getDurationFromPlaylist)(p);
|
|
9
12
|
}));
|
|
10
13
|
};
|
|
14
|
+
exports.getDurationFromM3u = getDurationFromM3u;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDurationFromPlaylist = exports.getPlaylist = exports.getAllPlaylists = void 0;
|
|
4
|
+
const get_streams_1 = require("./get-streams");
|
|
5
|
+
const getAllPlaylists = ({ structure, src, }) => {
|
|
6
|
+
const isIndependent = (0, get_streams_1.isIndependentSegments)(structure);
|
|
4
7
|
if (!isIndependent) {
|
|
5
8
|
return [
|
|
6
9
|
{
|
|
@@ -13,18 +16,21 @@ export const getAllPlaylists = ({ structure, src, }) => {
|
|
|
13
16
|
const playlists = structure.boxes.filter((box) => box.type === 'm3u-playlist');
|
|
14
17
|
return playlists;
|
|
15
18
|
};
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
exports.getAllPlaylists = getAllPlaylists;
|
|
20
|
+
const getPlaylist = (structure, src) => {
|
|
21
|
+
const allPlaylists = (0, exports.getAllPlaylists)({ structure, src });
|
|
18
22
|
const playlists = allPlaylists.find((box) => box.src === src);
|
|
19
23
|
if (!playlists) {
|
|
20
24
|
throw new Error(`Expected m3u-playlist with src ${src}`);
|
|
21
25
|
}
|
|
22
26
|
return playlists;
|
|
23
27
|
};
|
|
24
|
-
|
|
28
|
+
exports.getPlaylist = getPlaylist;
|
|
29
|
+
const getDurationFromPlaylist = (playlist) => {
|
|
25
30
|
const duration = playlist.boxes.filter((box) => box.type === 'm3u-extinf');
|
|
26
31
|
if (duration.length === 0) {
|
|
27
32
|
throw new Error('Expected duration in m3u playlist');
|
|
28
33
|
}
|
|
29
34
|
return duration.reduce((acc, d) => acc + d.value, 0);
|
|
30
35
|
};
|
|
36
|
+
exports.getDurationFromPlaylist = getDurationFromPlaylist;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.m3uHasStreams = exports.getM3uStreams = exports.isIndependentSegments = void 0;
|
|
4
|
+
const isIndependentSegments = (structure) => {
|
|
2
5
|
if (structure === null || structure.type !== 'm3u') {
|
|
3
6
|
return false;
|
|
4
7
|
}
|
|
5
8
|
return structure.boxes.some((box) => box.type === 'm3u-independent-segments' || box.type === 'm3u-stream-info');
|
|
6
9
|
};
|
|
7
|
-
|
|
10
|
+
exports.isIndependentSegments = isIndependentSegments;
|
|
11
|
+
const getM3uStreams = ({ structure, originalSrc, readerInterface, }) => {
|
|
8
12
|
if (structure === null || structure.type !== 'm3u') {
|
|
9
13
|
return null;
|
|
10
14
|
}
|
|
@@ -65,7 +69,8 @@ export const getM3uStreams = ({ structure, originalSrc, readerInterface, }) => {
|
|
|
65
69
|
});
|
|
66
70
|
return sorted.map((box, index) => ({ ...box, id: index }));
|
|
67
71
|
};
|
|
68
|
-
|
|
72
|
+
exports.getM3uStreams = getM3uStreams;
|
|
73
|
+
const m3uHasStreams = (state) => {
|
|
69
74
|
const structure = state.getStructureOrNull();
|
|
70
75
|
if (!structure) {
|
|
71
76
|
return false;
|
|
@@ -75,3 +80,4 @@ export const m3uHasStreams = (state) => {
|
|
|
75
80
|
}
|
|
76
81
|
return state.m3u.hasFinishedManifest();
|
|
77
82
|
};
|
|
83
|
+
exports.m3uHasStreams = m3uHasStreams;
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.iteratorOverSegmentFiles = void 0;
|
|
4
|
+
const forward_controller_1 = require("../../forward-controller");
|
|
5
|
+
const media_parser_controller_1 = require("../../media-parser-controller");
|
|
6
|
+
const parse_media_1 = require("../../parse-media");
|
|
7
|
+
const get_chunks_1 = require("./get-chunks");
|
|
8
|
+
const get_playlist_1 = require("./get-playlist");
|
|
9
|
+
const iteratorOverSegmentFiles = async ({ structure, onVideoTrack, m3uState, onAudioTrack, onDoneWithTracks, playlistUrl, logLevel, parentController, onInitialProgress, readerInterface, }) => {
|
|
10
|
+
const playlist = (0, get_playlist_1.getPlaylist)(structure, playlistUrl);
|
|
11
|
+
const chunks = (0, get_chunks_1.getChunks)(playlist);
|
|
9
12
|
let resolver = onInitialProgress;
|
|
10
13
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
11
14
|
let rejector = (_e) => { };
|
|
12
|
-
const childController = mediaParserController();
|
|
13
|
-
const forwarded = forwardMediaParserController({
|
|
15
|
+
const childController = (0, media_parser_controller_1.mediaParserController)();
|
|
16
|
+
const forwarded = (0, forward_controller_1.forwardMediaParserController)({
|
|
14
17
|
childController,
|
|
15
18
|
parentController,
|
|
16
19
|
});
|
|
@@ -34,7 +37,7 @@ export const iteratorOverSegmentFiles = async ({ structure, onVideoTrack, m3uSta
|
|
|
34
37
|
const src = readerInterface.createAdjacentFileSource(chunk.url, playlistUrl);
|
|
35
38
|
try {
|
|
36
39
|
const mp4HeaderSegment = m3uState.getMp4HeaderSegment(playlistUrl);
|
|
37
|
-
const data = await parseMedia({
|
|
40
|
+
const data = await (0, parse_media_1.parseMedia)({
|
|
38
41
|
src,
|
|
39
42
|
acknowledgeRemotionLicense: true,
|
|
40
43
|
logLevel,
|
|
@@ -111,3 +114,4 @@ export const iteratorOverSegmentFiles = async ({ structure, onVideoTrack, m3uSta
|
|
|
111
114
|
}
|
|
112
115
|
resolver(null);
|
|
113
116
|
};
|
|
117
|
+
exports.iteratorOverSegmentFiles = iteratorOverSegmentFiles;
|