@remotion/media-parser 4.0.276 → 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
package/dist/errors.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasBeenAborted = exports.MediaParserAbortError = exports.IsAnUnsupportedFileTypeError = exports.IsAPdfError = exports.IsAnImageError = exports.IsAGifError = void 0;
|
|
4
|
+
class IsAGifError extends Error {
|
|
2
5
|
constructor({ message, mimeType, sizeInBytes, fileName, }) {
|
|
3
6
|
super(message);
|
|
4
7
|
this.name = 'IsAGifError';
|
|
@@ -11,7 +14,8 @@ export class IsAGifError extends Error {
|
|
|
11
14
|
}
|
|
12
15
|
}
|
|
13
16
|
}
|
|
14
|
-
|
|
17
|
+
exports.IsAGifError = IsAGifError;
|
|
18
|
+
class IsAnImageError extends Error {
|
|
15
19
|
constructor({ dimensions, imageType, message, mimeType, sizeInBytes, fileName, }) {
|
|
16
20
|
super(message);
|
|
17
21
|
this.name = 'IsAnImageError';
|
|
@@ -25,7 +29,8 @@ export class IsAnImageError extends Error {
|
|
|
25
29
|
}
|
|
26
30
|
}
|
|
27
31
|
}
|
|
28
|
-
|
|
32
|
+
exports.IsAnImageError = IsAnImageError;
|
|
33
|
+
class IsAPdfError extends Error {
|
|
29
34
|
constructor({ message, mimeType, sizeInBytes, fileName, }) {
|
|
30
35
|
super(message);
|
|
31
36
|
this.name = 'IsAPdfError';
|
|
@@ -37,7 +42,8 @@ export class IsAPdfError extends Error {
|
|
|
37
42
|
}
|
|
38
43
|
}
|
|
39
44
|
}
|
|
40
|
-
|
|
45
|
+
exports.IsAPdfError = IsAPdfError;
|
|
46
|
+
class IsAnUnsupportedFileTypeError extends Error {
|
|
41
47
|
constructor({ message, mimeType, sizeInBytes, fileName, }) {
|
|
42
48
|
super(message);
|
|
43
49
|
this.name = 'IsAnUnsupportedFileTypeError';
|
|
@@ -49,15 +55,18 @@ export class IsAnUnsupportedFileTypeError extends Error {
|
|
|
49
55
|
}
|
|
50
56
|
}
|
|
51
57
|
}
|
|
52
|
-
|
|
58
|
+
exports.IsAnUnsupportedFileTypeError = IsAnUnsupportedFileTypeError;
|
|
59
|
+
class MediaParserAbortError extends Error {
|
|
53
60
|
constructor(message) {
|
|
54
61
|
super(message);
|
|
55
62
|
this.name = 'MediaParserAbortError';
|
|
56
63
|
this.cause = undefined;
|
|
57
64
|
}
|
|
58
65
|
}
|
|
59
|
-
|
|
66
|
+
exports.MediaParserAbortError = MediaParserAbortError;
|
|
67
|
+
const hasBeenAborted = (error) => {
|
|
60
68
|
return (error instanceof MediaParserAbortError ||
|
|
61
69
|
// On worker it is not the same instance, but same name
|
|
62
70
|
error.name === 'MediaParserAbortError');
|
|
63
71
|
};
|
|
72
|
+
exports.hasBeenAborted = hasBeenAborted;
|
package/dist/esm/index.mjs
CHANGED
|
@@ -12661,7 +12661,7 @@ var downloadAndParseMedia = async (options) => {
|
|
|
12661
12661
|
return returnValue;
|
|
12662
12662
|
};
|
|
12663
12663
|
// src/version.ts
|
|
12664
|
-
var VERSION = "4.0.
|
|
12664
|
+
var VERSION = "4.0.278";
|
|
12665
12665
|
|
|
12666
12666
|
// src/index.ts
|
|
12667
12667
|
var MediaParserInternals = {
|
package/dist/esm/worker.mjs
CHANGED
|
@@ -437,14 +437,13 @@ var parseMediaOnWorkerImplementation = async ({ controller, reader, ...params },
|
|
|
437
437
|
return val;
|
|
438
438
|
};
|
|
439
439
|
|
|
440
|
-
// src/
|
|
441
|
-
var parseMediaOnServerWorker = (params) => {
|
|
442
|
-
return parseMediaOnWorkerImplementation(params, new URL("./worker-server-entry", import.meta.url), "parseMediaOnServerWorker");
|
|
443
|
-
};
|
|
444
|
-
// src/parse-media-on-web-worker.ts
|
|
440
|
+
// src/worker.module.ts
|
|
445
441
|
var parseMediaOnWebWorker = (params) => {
|
|
446
442
|
return parseMediaOnWorkerImplementation(params, new URL("./worker-web-entry", import.meta.url), "parseMediaOnWebWorker");
|
|
447
443
|
};
|
|
444
|
+
var parseMediaOnServerWorker = (params) => {
|
|
445
|
+
return parseMediaOnWorkerImplementation(params, new URL("./worker-server-entry", import.meta.url), "parseMediaOnServerWorker");
|
|
446
|
+
};
|
|
448
447
|
export {
|
|
449
448
|
parseMediaOnWebWorker,
|
|
450
449
|
parseMediaOnServerWorker
|
package/dist/fetch.js
CHANGED
|
@@ -1 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./readers/from-fetch"), exports);
|
package/dist/file-types/bmp.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isBmp = void 0;
|
|
4
|
+
const detect_file_type_1 = require("./detect-file-type");
|
|
2
5
|
function getBmpDimensions(bmpData) {
|
|
3
6
|
if (bmpData.length < 26) {
|
|
4
7
|
return null;
|
|
@@ -9,11 +12,12 @@ function getBmpDimensions(bmpData) {
|
|
|
9
12
|
height: Math.abs(view.getInt32(22, true)),
|
|
10
13
|
};
|
|
11
14
|
}
|
|
12
|
-
|
|
15
|
+
const isBmp = (data) => {
|
|
13
16
|
const bmpPattern = new Uint8Array([0x42, 0x4d]);
|
|
14
|
-
if (matchesPattern(bmpPattern)(data.subarray(0, 2))) {
|
|
17
|
+
if ((0, detect_file_type_1.matchesPattern)(bmpPattern)(data.subarray(0, 2))) {
|
|
15
18
|
const bmp = getBmpDimensions(data);
|
|
16
19
|
return { dimensions: bmp, type: 'bmp' };
|
|
17
20
|
}
|
|
18
21
|
return null;
|
|
19
22
|
};
|
|
23
|
+
exports.isBmp = isBmp;
|
|
@@ -1,60 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isM3u = exports.isFlac = exports.isAac = exports.isGif = exports.isMp3 = exports.isTransportStream = exports.isIsoBaseMedia = exports.isWebm = exports.isRiffWave = exports.isRiffAvi = exports.matchesPattern = void 0;
|
|
1
4
|
const webmPattern = new Uint8Array([0x1a, 0x45, 0xdf, 0xa3]);
|
|
2
|
-
|
|
5
|
+
const matchesPattern = (pattern) => {
|
|
3
6
|
return (data) => {
|
|
4
7
|
return pattern.every((value, index) => data[index] === value);
|
|
5
8
|
};
|
|
6
9
|
};
|
|
7
|
-
|
|
10
|
+
exports.matchesPattern = matchesPattern;
|
|
11
|
+
const isRiffAvi = (data) => {
|
|
8
12
|
const riffPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
|
|
9
|
-
if (!matchesPattern(riffPattern)(data.subarray(0, 4))) {
|
|
13
|
+
if (!(0, exports.matchesPattern)(riffPattern)(data.subarray(0, 4))) {
|
|
10
14
|
return false;
|
|
11
15
|
}
|
|
12
16
|
const fileType = data.subarray(8, 12);
|
|
13
17
|
const aviPattern = new Uint8Array([0x41, 0x56, 0x49, 0x20]);
|
|
14
|
-
return matchesPattern(aviPattern)(fileType);
|
|
18
|
+
return (0, exports.matchesPattern)(aviPattern)(fileType);
|
|
15
19
|
};
|
|
16
|
-
|
|
20
|
+
exports.isRiffAvi = isRiffAvi;
|
|
21
|
+
const isRiffWave = (data) => {
|
|
17
22
|
const riffPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
|
|
18
|
-
if (!matchesPattern(riffPattern)(data.subarray(0, 4))) {
|
|
23
|
+
if (!(0, exports.matchesPattern)(riffPattern)(data.subarray(0, 4))) {
|
|
19
24
|
return false;
|
|
20
25
|
}
|
|
21
26
|
const fileType = data.subarray(8, 12);
|
|
22
27
|
const wavePattern = new Uint8Array([0x57, 0x41, 0x56, 0x45]);
|
|
23
|
-
return matchesPattern(wavePattern)(fileType);
|
|
28
|
+
return (0, exports.matchesPattern)(wavePattern)(fileType);
|
|
24
29
|
};
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
exports.isRiffWave = isRiffWave;
|
|
31
|
+
const isWebm = (data) => {
|
|
32
|
+
return (0, exports.matchesPattern)(webmPattern)(data.subarray(0, 4));
|
|
27
33
|
};
|
|
28
|
-
|
|
34
|
+
exports.isWebm = isWebm;
|
|
35
|
+
const isIsoBaseMedia = (data) => {
|
|
29
36
|
const isoBaseMediaMp4Pattern = new TextEncoder().encode('ftyp');
|
|
30
|
-
return matchesPattern(isoBaseMediaMp4Pattern)(data.subarray(4, 8));
|
|
37
|
+
return (0, exports.matchesPattern)(isoBaseMediaMp4Pattern)(data.subarray(4, 8));
|
|
31
38
|
};
|
|
32
|
-
|
|
39
|
+
exports.isIsoBaseMedia = isIsoBaseMedia;
|
|
40
|
+
const isTransportStream = (data) => {
|
|
33
41
|
return data[0] === 0x47 && data[188] === 0x47;
|
|
34
42
|
};
|
|
35
|
-
|
|
43
|
+
exports.isTransportStream = isTransportStream;
|
|
44
|
+
const isMp3 = (data) => {
|
|
36
45
|
const mpegPattern = new Uint8Array([0xff, 0xf3, 0xe4, 0x64]);
|
|
37
46
|
const id3v4Pattern = new Uint8Array([0x49, 0x44, 0x33, 4]);
|
|
38
47
|
const id3v3Pattern = new Uint8Array([0x49, 0x44, 0x33, 3]);
|
|
39
48
|
const id3v2Pattern = new Uint8Array([0x49, 0x44, 0x33, 2]);
|
|
40
49
|
const subarray = data.subarray(0, 4);
|
|
41
|
-
return (matchesPattern(mpegPattern)(subarray) ||
|
|
42
|
-
matchesPattern(id3v4Pattern)(subarray) ||
|
|
43
|
-
matchesPattern(id3v3Pattern)(subarray) ||
|
|
44
|
-
matchesPattern(id3v2Pattern)(subarray));
|
|
50
|
+
return ((0, exports.matchesPattern)(mpegPattern)(subarray) ||
|
|
51
|
+
(0, exports.matchesPattern)(id3v4Pattern)(subarray) ||
|
|
52
|
+
(0, exports.matchesPattern)(id3v3Pattern)(subarray) ||
|
|
53
|
+
(0, exports.matchesPattern)(id3v2Pattern)(subarray));
|
|
45
54
|
};
|
|
46
|
-
|
|
55
|
+
exports.isMp3 = isMp3;
|
|
56
|
+
const isGif = (data) => {
|
|
47
57
|
const gifPattern = new Uint8Array([0x47, 0x49, 0x46, 0x38]);
|
|
48
|
-
return matchesPattern(gifPattern)(data.subarray(0, 4));
|
|
58
|
+
return (0, exports.matchesPattern)(gifPattern)(data.subarray(0, 4));
|
|
49
59
|
};
|
|
50
|
-
|
|
60
|
+
exports.isGif = isGif;
|
|
61
|
+
const isAac = (data) => {
|
|
51
62
|
const aacPattern = new Uint8Array([0xff, 0xf1]);
|
|
52
|
-
return matchesPattern(aacPattern)(data.subarray(0, 2));
|
|
63
|
+
return (0, exports.matchesPattern)(aacPattern)(data.subarray(0, 2));
|
|
53
64
|
};
|
|
54
|
-
|
|
65
|
+
exports.isAac = isAac;
|
|
66
|
+
const isFlac = (data) => {
|
|
55
67
|
const flacPattern = new Uint8Array([0x66, 0x4c, 0x61, 0x43]);
|
|
56
|
-
return matchesPattern(flacPattern)(data.subarray(0, 4));
|
|
68
|
+
return (0, exports.matchesPattern)(flacPattern)(data.subarray(0, 4));
|
|
57
69
|
};
|
|
58
|
-
|
|
70
|
+
exports.isFlac = isFlac;
|
|
71
|
+
const isM3u = (data) => {
|
|
59
72
|
return new TextDecoder('utf-8').decode(data.slice(0, 7)) === '#EXTM3U';
|
|
60
73
|
};
|
|
74
|
+
exports.isM3u = isM3u;
|
package/dist/file-types/index.js
CHANGED
|
@@ -1,59 +1,63 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.detectFileType = void 0;
|
|
4
|
+
const bmp_1 = require("./bmp");
|
|
5
|
+
const detect_file_type_1 = require("./detect-file-type");
|
|
6
|
+
const jpeg_1 = require("./jpeg");
|
|
7
|
+
const pdf_1 = require("./pdf");
|
|
8
|
+
const png_1 = require("./png");
|
|
9
|
+
const webp_1 = require("./webp");
|
|
10
|
+
const detectFileType = (data) => {
|
|
11
|
+
if ((0, detect_file_type_1.isRiffWave)(data)) {
|
|
9
12
|
return { type: 'wav' };
|
|
10
13
|
}
|
|
11
|
-
if (isRiffAvi(data)) {
|
|
14
|
+
if ((0, detect_file_type_1.isRiffAvi)(data)) {
|
|
12
15
|
return { type: 'riff' };
|
|
13
16
|
}
|
|
14
|
-
if (isAac(data)) {
|
|
17
|
+
if ((0, detect_file_type_1.isAac)(data)) {
|
|
15
18
|
return { type: 'aac' };
|
|
16
19
|
}
|
|
17
|
-
if (isFlac(data)) {
|
|
20
|
+
if ((0, detect_file_type_1.isFlac)(data)) {
|
|
18
21
|
return { type: 'flac' };
|
|
19
22
|
}
|
|
20
|
-
if (isM3u(data)) {
|
|
23
|
+
if ((0, detect_file_type_1.isM3u)(data)) {
|
|
21
24
|
return { type: 'm3u' };
|
|
22
25
|
}
|
|
23
|
-
const webp = isWebp(data);
|
|
26
|
+
const webp = (0, webp_1.isWebp)(data);
|
|
24
27
|
if (webp) {
|
|
25
28
|
return webp;
|
|
26
29
|
}
|
|
27
|
-
if (isWebm(data)) {
|
|
30
|
+
if ((0, detect_file_type_1.isWebm)(data)) {
|
|
28
31
|
return { type: 'webm' };
|
|
29
32
|
}
|
|
30
|
-
if (isIsoBaseMedia(data)) {
|
|
33
|
+
if ((0, detect_file_type_1.isIsoBaseMedia)(data)) {
|
|
31
34
|
return { type: 'iso-base-media' };
|
|
32
35
|
}
|
|
33
|
-
if (isTransportStream(data)) {
|
|
36
|
+
if ((0, detect_file_type_1.isTransportStream)(data)) {
|
|
34
37
|
return { type: 'transport-stream' };
|
|
35
38
|
}
|
|
36
|
-
if (isMp3(data)) {
|
|
39
|
+
if ((0, detect_file_type_1.isMp3)(data)) {
|
|
37
40
|
return { type: 'mp3' };
|
|
38
41
|
}
|
|
39
|
-
if (isGif(data)) {
|
|
42
|
+
if ((0, detect_file_type_1.isGif)(data)) {
|
|
40
43
|
return { type: 'gif' };
|
|
41
44
|
}
|
|
42
|
-
const png = isPng(data);
|
|
45
|
+
const png = (0, png_1.isPng)(data);
|
|
43
46
|
if (png) {
|
|
44
47
|
return png;
|
|
45
48
|
}
|
|
46
|
-
const pdf = isPdf(data);
|
|
49
|
+
const pdf = (0, pdf_1.isPdf)(data);
|
|
47
50
|
if (pdf) {
|
|
48
51
|
return pdf;
|
|
49
52
|
}
|
|
50
|
-
const bmp = isBmp(data);
|
|
53
|
+
const bmp = (0, bmp_1.isBmp)(data);
|
|
51
54
|
if (bmp) {
|
|
52
55
|
return bmp;
|
|
53
56
|
}
|
|
54
|
-
const jpeg = isJpeg(data);
|
|
57
|
+
const jpeg = (0, jpeg_1.isJpeg)(data);
|
|
55
58
|
if (jpeg) {
|
|
56
59
|
return jpeg;
|
|
57
60
|
}
|
|
58
61
|
return { type: 'unknown' };
|
|
59
62
|
};
|
|
63
|
+
exports.detectFileType = detectFileType;
|
package/dist/file-types/jpeg.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isJpeg = void 0;
|
|
4
|
+
exports.getJpegDimensions = getJpegDimensions;
|
|
5
|
+
const detect_file_type_1 = require("./detect-file-type");
|
|
6
|
+
function getJpegDimensions(data) {
|
|
3
7
|
let offset = 0;
|
|
4
8
|
// Helper function to read a 16-bit big-endian integer
|
|
5
9
|
function readUint16BE(o) {
|
|
@@ -28,12 +32,13 @@ export function getJpegDimensions(data) {
|
|
|
28
32
|
}
|
|
29
33
|
return null; // Return null if dimensions are not found
|
|
30
34
|
}
|
|
31
|
-
|
|
35
|
+
const isJpeg = (data) => {
|
|
32
36
|
const jpegPattern = new Uint8Array([0xff, 0xd8]);
|
|
33
|
-
const jpeg = matchesPattern(jpegPattern)(data.subarray(0, 2));
|
|
37
|
+
const jpeg = (0, detect_file_type_1.matchesPattern)(jpegPattern)(data.subarray(0, 2));
|
|
34
38
|
if (!jpeg) {
|
|
35
39
|
return null;
|
|
36
40
|
}
|
|
37
41
|
const dim = getJpegDimensions(data);
|
|
38
42
|
return { dimensions: dim, type: 'jpeg' };
|
|
39
43
|
};
|
|
44
|
+
exports.isJpeg = isJpeg;
|
package/dist/file-types/pdf.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isPdf = void 0;
|
|
4
|
+
const detect_file_type_1 = require("./detect-file-type");
|
|
5
|
+
const isPdf = (data) => {
|
|
3
6
|
if (data.length < 4) {
|
|
4
7
|
return null;
|
|
5
8
|
}
|
|
6
9
|
const pdfPattern = new Uint8Array([0x25, 0x50, 0x44, 0x46]);
|
|
7
|
-
return matchesPattern(pdfPattern)(data.subarray(0, 4)) ? { type: 'pdf' } : null;
|
|
10
|
+
return (0, detect_file_type_1.matchesPattern)(pdfPattern)(data.subarray(0, 4)) ? { type: 'pdf' } : null;
|
|
8
11
|
};
|
|
12
|
+
exports.isPdf = isPdf;
|
package/dist/file-types/png.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isPng = void 0;
|
|
4
|
+
exports.getPngDimensions = getPngDimensions;
|
|
5
|
+
const detect_file_type_1 = require("./detect-file-type");
|
|
6
|
+
function getPngDimensions(pngData) {
|
|
3
7
|
if (pngData.length < 24) {
|
|
4
8
|
// PNG header (8) + IHDR chunk (16) minimum
|
|
5
9
|
return null;
|
|
@@ -17,11 +21,12 @@ export function getPngDimensions(pngData) {
|
|
|
17
21
|
height: view.getUint32(20, false), // false = big-endian
|
|
18
22
|
};
|
|
19
23
|
}
|
|
20
|
-
|
|
24
|
+
const isPng = (data) => {
|
|
21
25
|
const pngPattern = new Uint8Array([0x89, 0x50, 0x4e, 0x47]);
|
|
22
|
-
if (matchesPattern(pngPattern)(data.subarray(0, 4))) {
|
|
26
|
+
if ((0, detect_file_type_1.matchesPattern)(pngPattern)(data.subarray(0, 4))) {
|
|
23
27
|
const png = getPngDimensions(data);
|
|
24
28
|
return { dimensions: png, type: 'png' };
|
|
25
29
|
}
|
|
26
30
|
return null;
|
|
27
31
|
};
|
|
32
|
+
exports.isPng = isPng;
|
package/dist/file-types/webp.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isWebp = void 0;
|
|
4
|
+
const detect_file_type_1 = require("./detect-file-type");
|
|
2
5
|
function getWebPDimensions(bytes) {
|
|
3
6
|
// Check if we have enough bytes for a basic WebP header
|
|
4
7
|
if (bytes.length < 30) {
|
|
@@ -53,9 +56,9 @@ function getWebPDimensions(bytes) {
|
|
|
53
56
|
}
|
|
54
57
|
return null;
|
|
55
58
|
}
|
|
56
|
-
|
|
59
|
+
const isWebp = (data) => {
|
|
57
60
|
const webpPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
|
|
58
|
-
if (matchesPattern(webpPattern)(data.subarray(0, 4))) {
|
|
61
|
+
if ((0, detect_file_type_1.matchesPattern)(webpPattern)(data.subarray(0, 4))) {
|
|
59
62
|
return {
|
|
60
63
|
type: 'webp',
|
|
61
64
|
dimensions: getWebPDimensions(data),
|
|
@@ -63,3 +66,4 @@ export const isWebp = (data) => {
|
|
|
63
66
|
}
|
|
64
67
|
return null;
|
|
65
68
|
};
|
|
69
|
+
exports.isWebp = isWebp;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.forwardMediaParserController = void 0;
|
|
4
|
+
const forwardMediaParserController = ({ parentController, childController, }) => {
|
|
2
5
|
const onAbort = ({ detail }) => {
|
|
3
6
|
childController.abort(detail.reason);
|
|
4
7
|
};
|
|
@@ -19,3 +22,4 @@ export const forwardMediaParserController = ({ parentController, childController
|
|
|
19
22
|
},
|
|
20
23
|
};
|
|
21
24
|
};
|
|
25
|
+
exports.forwardMediaParserController = forwardMediaParserController;
|
package/dist/get-audio-codec.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAudioCodecFromTrack = exports.getAudioCodecStringFromTrak = exports.getAudioCodecFromIso = exports.isLpcmAudioCodec = exports.getAudioCodecFromTrak = exports.getSampleRate = exports.getNumberOfChannelsFromTrak = exports.getCodecPrivateFromTrak = exports.hasAudioCodec = exports.getAudioCodec = void 0;
|
|
4
|
+
const traversal_1 = require("./containers/iso-base-media/traversal");
|
|
5
|
+
const get_fps_1 = require("./get-fps");
|
|
6
|
+
const get_tracks_1 = require("./get-tracks");
|
|
7
|
+
const getAudioCodec = (parserState) => {
|
|
8
|
+
const tracks = (0, get_tracks_1.getTracks)(parserState);
|
|
6
9
|
const allTracks = tracks.audioTracks.length +
|
|
7
10
|
tracks.otherTracks.length +
|
|
8
11
|
tracks.videoTracks.length;
|
|
@@ -18,9 +21,11 @@ export const getAudioCodec = (parserState) => {
|
|
|
18
21
|
}
|
|
19
22
|
return null;
|
|
20
23
|
};
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
exports.getAudioCodec = getAudioCodec;
|
|
25
|
+
const hasAudioCodec = (state) => {
|
|
26
|
+
return (0, get_tracks_1.getHasTracks)(state);
|
|
23
27
|
};
|
|
28
|
+
exports.hasAudioCodec = hasAudioCodec;
|
|
24
29
|
const getCodecSpecificatorFromEsdsBox = ({ child, }) => {
|
|
25
30
|
const descriptor = child.descriptors.find((d) => d.type === 'decoder-config-descriptor');
|
|
26
31
|
if (!descriptor) {
|
|
@@ -49,8 +54,8 @@ const getCodecSpecificatorFromEsdsBox = ({ child, }) => {
|
|
|
49
54
|
description: audioSpecificConfig.asBytes,
|
|
50
55
|
};
|
|
51
56
|
};
|
|
52
|
-
|
|
53
|
-
const stsdBox = getStsdBox(trakBox);
|
|
57
|
+
const getCodecPrivateFromTrak = (trakBox) => {
|
|
58
|
+
const stsdBox = (0, traversal_1.getStsdBox)(trakBox);
|
|
54
59
|
if (!stsdBox) {
|
|
55
60
|
return null;
|
|
56
61
|
}
|
|
@@ -72,6 +77,7 @@ export const getCodecPrivateFromTrak = (trakBox) => {
|
|
|
72
77
|
}
|
|
73
78
|
return mp4a.asBytes;
|
|
74
79
|
};
|
|
80
|
+
exports.getCodecPrivateFromTrak = getCodecPrivateFromTrak;
|
|
75
81
|
const onSample = (sample, children) => {
|
|
76
82
|
const child = children.find((c) => c.type === 'esds-box');
|
|
77
83
|
if (child && child.type === 'esds-box') {
|
|
@@ -90,8 +96,8 @@ const onSample = (sample, children) => {
|
|
|
90
96
|
description: undefined,
|
|
91
97
|
};
|
|
92
98
|
};
|
|
93
|
-
|
|
94
|
-
const stsdBox = getStsdBox(trak);
|
|
99
|
+
const getNumberOfChannelsFromTrak = (trak) => {
|
|
100
|
+
const stsdBox = (0, traversal_1.getStsdBox)(trak);
|
|
95
101
|
if (!stsdBox) {
|
|
96
102
|
return null;
|
|
97
103
|
}
|
|
@@ -101,8 +107,9 @@ export const getNumberOfChannelsFromTrak = (trak) => {
|
|
|
101
107
|
}
|
|
102
108
|
return sample.numberOfChannels;
|
|
103
109
|
};
|
|
104
|
-
|
|
105
|
-
|
|
110
|
+
exports.getNumberOfChannelsFromTrak = getNumberOfChannelsFromTrak;
|
|
111
|
+
const getSampleRate = (trak) => {
|
|
112
|
+
const stsdBox = (0, traversal_1.getStsdBox)(trak);
|
|
106
113
|
if (!stsdBox) {
|
|
107
114
|
return null;
|
|
108
115
|
}
|
|
@@ -112,8 +119,9 @@ export const getSampleRate = (trak) => {
|
|
|
112
119
|
}
|
|
113
120
|
return sample.sampleRate;
|
|
114
121
|
};
|
|
115
|
-
|
|
116
|
-
|
|
122
|
+
exports.getSampleRate = getSampleRate;
|
|
123
|
+
const getAudioCodecFromTrak = (trak) => {
|
|
124
|
+
const stsdBox = (0, traversal_1.getStsdBox)(trak);
|
|
117
125
|
if (!stsdBox) {
|
|
118
126
|
return null;
|
|
119
127
|
}
|
|
@@ -134,20 +142,23 @@ export const getAudioCodecFromTrak = (trak) => {
|
|
|
134
142
|
}
|
|
135
143
|
return null;
|
|
136
144
|
};
|
|
137
|
-
|
|
145
|
+
exports.getAudioCodecFromTrak = getAudioCodecFromTrak;
|
|
146
|
+
const isLpcmAudioCodec = (trak) => {
|
|
138
147
|
var _a;
|
|
139
|
-
return ((_a = getAudioCodecFromTrak(trak)) === null || _a === void 0 ? void 0 : _a.format) === 'lpcm';
|
|
148
|
+
return ((_a = (0, exports.getAudioCodecFromTrak)(trak)) === null || _a === void 0 ? void 0 : _a.format) === 'lpcm';
|
|
140
149
|
};
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
const
|
|
150
|
+
exports.isLpcmAudioCodec = isLpcmAudioCodec;
|
|
151
|
+
const getAudioCodecFromIso = (moov) => {
|
|
152
|
+
const traks = (0, traversal_1.getTraks)(moov);
|
|
153
|
+
const trakBox = traks.find((b) => b.type === 'trak-box' && (0, get_fps_1.trakBoxContainsAudio)(b));
|
|
144
154
|
if (!trakBox) {
|
|
145
155
|
return null;
|
|
146
156
|
}
|
|
147
|
-
return getAudioCodecFromTrak(trakBox);
|
|
157
|
+
return (0, exports.getAudioCodecFromTrak)(trakBox);
|
|
148
158
|
};
|
|
149
|
-
|
|
150
|
-
|
|
159
|
+
exports.getAudioCodecFromIso = getAudioCodecFromIso;
|
|
160
|
+
const getAudioCodecStringFromTrak = (trak) => {
|
|
161
|
+
const codec = (0, exports.getAudioCodecFromTrak)(trak);
|
|
151
162
|
if (!codec) {
|
|
152
163
|
throw new Error('Expected codec');
|
|
153
164
|
}
|
|
@@ -173,6 +184,7 @@ export const getAudioCodecStringFromTrak = (trak) => {
|
|
|
173
184
|
description: codec.description,
|
|
174
185
|
};
|
|
175
186
|
};
|
|
187
|
+
exports.getAudioCodecStringFromTrak = getAudioCodecStringFromTrak;
|
|
176
188
|
const getAudioCodecFromAudioCodecInfo = (codec) => {
|
|
177
189
|
if (codec.format === 'twos') {
|
|
178
190
|
return 'pcm-s16';
|
|
@@ -200,10 +212,11 @@ const getAudioCodecFromAudioCodecInfo = (codec) => {
|
|
|
200
212
|
}
|
|
201
213
|
throw new Error(`Unknown audio format: ${codec.format}`);
|
|
202
214
|
};
|
|
203
|
-
|
|
204
|
-
const audioSample = getAudioCodecFromTrak(track);
|
|
215
|
+
const getAudioCodecFromTrack = (track) => {
|
|
216
|
+
const audioSample = (0, exports.getAudioCodecFromTrak)(track);
|
|
205
217
|
if (!audioSample) {
|
|
206
218
|
throw new Error('Could not find audio sample');
|
|
207
219
|
}
|
|
208
220
|
return getAudioCodecFromAudioCodecInfo(audioSample);
|
|
209
221
|
};
|
|
222
|
+
exports.getAudioCodecFromTrack = getAudioCodecFromTrack;
|
package/dist/get-container.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasContainer = exports.getContainer = void 0;
|
|
4
|
+
const traversal_1 = require("./containers/riff/traversal");
|
|
5
|
+
const getContainer = (segments) => {
|
|
3
6
|
if (segments.type === 'iso-base-media') {
|
|
4
7
|
return 'mp4';
|
|
5
8
|
}
|
|
@@ -19,7 +22,7 @@ export const getContainer = (segments) => {
|
|
|
19
22
|
return 'flac';
|
|
20
23
|
}
|
|
21
24
|
if (segments.type === 'riff') {
|
|
22
|
-
if (isRiffAvi(segments)) {
|
|
25
|
+
if ((0, traversal_1.isRiffAvi)(segments)) {
|
|
23
26
|
return 'avi';
|
|
24
27
|
}
|
|
25
28
|
throw new Error('Unknown RIFF container ' + segments.type);
|
|
@@ -32,11 +35,13 @@ export const getContainer = (segments) => {
|
|
|
32
35
|
}
|
|
33
36
|
throw new Error('Unknown container ' + segments);
|
|
34
37
|
};
|
|
35
|
-
|
|
38
|
+
exports.getContainer = getContainer;
|
|
39
|
+
const hasContainer = (boxes) => {
|
|
36
40
|
try {
|
|
37
|
-
return getContainer(boxes) !== null;
|
|
41
|
+
return (0, exports.getContainer)(boxes) !== null;
|
|
38
42
|
}
|
|
39
43
|
catch (_a) {
|
|
40
44
|
return false;
|
|
41
45
|
}
|
|
42
46
|
};
|
|
47
|
+
exports.hasContainer = hasContainer;
|
package/dist/get-dimensions.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasDimensions = exports.getDimensions = void 0;
|
|
4
|
+
const get_tracks_1 = require("./get-tracks");
|
|
5
|
+
const is_audio_structure_1 = require("./is-audio-structure");
|
|
6
|
+
const getDimensions = (state) => {
|
|
4
7
|
const structure = state.getStructureOrNull();
|
|
5
|
-
if (structure && isAudioStructure(structure)) {
|
|
8
|
+
if (structure && (0, is_audio_structure_1.isAudioStructure)(structure)) {
|
|
6
9
|
return null;
|
|
7
10
|
}
|
|
8
|
-
const { videoTracks } = getTracks(state);
|
|
11
|
+
const { videoTracks } = (0, get_tracks_1.getTracks)(state);
|
|
9
12
|
if (!videoTracks.length) {
|
|
10
13
|
return null;
|
|
11
14
|
}
|
|
@@ -18,15 +21,17 @@ export const getDimensions = (state) => {
|
|
|
18
21
|
unrotatedWidth: firstVideoTrack.displayAspectWidth,
|
|
19
22
|
};
|
|
20
23
|
};
|
|
21
|
-
|
|
24
|
+
exports.getDimensions = getDimensions;
|
|
25
|
+
const hasDimensions = (state) => {
|
|
22
26
|
const structure = state.getStructureOrNull();
|
|
23
|
-
if (structure && isAudioStructure(structure)) {
|
|
27
|
+
if (structure && (0, is_audio_structure_1.isAudioStructure)(structure)) {
|
|
24
28
|
return true;
|
|
25
29
|
}
|
|
26
30
|
try {
|
|
27
|
-
return getDimensions(state) !== null;
|
|
31
|
+
return (0, exports.getDimensions)(state) !== null;
|
|
28
32
|
}
|
|
29
33
|
catch (_a) {
|
|
30
34
|
return false;
|
|
31
35
|
}
|
|
32
36
|
};
|
|
37
|
+
exports.hasDimensions = hasDimensions;
|