@remotion/media-parser 4.0.298 → 4.0.301
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/add-avc-profile-to-track.d.ts +2 -2
- package/dist/add-avc-profile-to-track.js +7 -1
- package/dist/codec-data.d.ts +29 -0
- package/dist/codec-data.js +2 -0
- package/dist/containers/aac/parse-aac.js +2 -3
- package/dist/containers/avc/color.d.ts +6 -6
- package/dist/containers/avc/color.js +53 -27
- package/dist/containers/avc/interpret-sps.d.ts +2 -2
- package/dist/containers/avc/interpret-sps.js +2 -2
- package/dist/containers/flac/parse-streaminfo.js +2 -3
- package/dist/containers/iso-base-media/collect-sample-positions-from-moof-boxes.d.ts +1 -1
- package/dist/containers/iso-base-media/color-to-webcodecs-colors.d.ts +2 -0
- package/dist/containers/iso-base-media/color-to-webcodecs-colors.js +12 -0
- package/dist/containers/iso-base-media/find-keyframe-before-time.d.ts +2 -2
- package/dist/containers/iso-base-media/find-track-to-seek.d.ts +5 -5
- package/dist/containers/iso-base-media/find-track-to-seek.js +18 -2
- package/dist/containers/iso-base-media/get-actual-number-of-channels.d.ts +3 -2
- package/dist/containers/iso-base-media/get-actual-number-of-channels.js +14 -3
- package/dist/containers/iso-base-media/get-children.d.ts +2 -2
- package/dist/containers/iso-base-media/get-keyframes.js +11 -2
- package/dist/containers/iso-base-media/get-mfra-seeking-box.d.ts +4 -4
- package/dist/containers/iso-base-media/get-moov-atom.js +1 -1
- package/dist/containers/iso-base-media/get-seeking-byte-from-fragmented-mp4.d.ts +9 -5
- package/dist/containers/iso-base-media/get-seeking-byte-from-fragmented-mp4.js +17 -4
- package/dist/containers/iso-base-media/get-seeking-byte.d.ts +2 -2
- package/dist/containers/iso-base-media/get-seeking-byte.js +5 -8
- package/dist/containers/iso-base-media/make-track.d.ts +2 -2
- package/dist/containers/iso-base-media/make-track.js +18 -17
- package/dist/containers/iso-base-media/mfra/find-best-segment-from-tfra.d.ts +2 -2
- package/dist/containers/iso-base-media/mfra/get-mfra-atom.d.ts +4 -4
- package/dist/containers/iso-base-media/mfra/get-mfro-atom.d.ts +4 -4
- package/dist/containers/iso-base-media/moov/moov.d.ts +2 -2
- package/dist/containers/iso-base-media/process-box.d.ts +5 -5
- package/dist/containers/iso-base-media/stsd/mebx.d.ts +2 -2
- package/dist/containers/iso-base-media/stsd/samples.d.ts +3 -3
- package/dist/containers/iso-base-media/stsd/stsd.d.ts +2 -2
- package/dist/containers/iso-base-media/trak/trak.d.ts +2 -2
- package/dist/containers/iso-base-media/traversal.d.ts +1 -0
- package/dist/containers/iso-base-media/traversal.js +13 -1
- package/dist/containers/m3u/after-manifest-fetch.d.ts +6 -6
- package/dist/containers/m3u/after-manifest-fetch.js +1 -1
- package/dist/containers/m3u/fetch-m3u8-stream.d.ts +2 -2
- package/dist/containers/m3u/first-sample-in-m3u-chunk.d.ts +3 -3
- package/dist/containers/m3u/first-sample-in-m3u-chunk.js +2 -8
- package/dist/containers/m3u/get-seeking-byte.d.ts +3 -3
- package/dist/containers/m3u/get-streams.d.ts +6 -6
- package/dist/containers/m3u/get-streams.js +9 -9
- package/dist/containers/m3u/parse-stream-inf.js +3 -3
- package/dist/containers/m3u/process-m3u-chunk.js +3 -3
- package/dist/containers/m3u/run-over-m3u.d.ts +2 -2
- package/dist/containers/m3u/sample-sorter.d.ts +7 -7
- package/dist/containers/m3u/types.d.ts +3 -3
- package/dist/containers/mp3/parse-mpeg-header.js +2 -3
- package/dist/containers/mp3/seek/audio-sample-from-cbr.d.ts +2 -2
- package/dist/containers/riff/get-tracks-from-avi.d.ts +4 -9
- package/dist/containers/riff/get-tracks-from-avi.js +19 -20
- package/dist/containers/riff/parse-video-section.js +1 -1
- package/dist/containers/riff/seek/fetch-idx1.d.ts +4 -4
- package/dist/containers/transport-stream/get-tracks.d.ts +2 -2
- package/dist/containers/transport-stream/get-tracks.js +1 -5
- package/dist/containers/transport-stream/handle-aac-packet.d.ts +4 -4
- package/dist/containers/transport-stream/handle-aac-packet.js +5 -4
- package/dist/containers/transport-stream/handle-avc-packet.d.ts +4 -4
- package/dist/containers/transport-stream/handle-avc-packet.js +10 -4
- package/dist/containers/transport-stream/process-audio.d.ts +5 -5
- package/dist/containers/transport-stream/process-stream-buffers.d.ts +8 -8
- package/dist/containers/transport-stream/process-video.d.ts +5 -5
- package/dist/containers/wav/parse-fmt.js +2 -3
- package/dist/containers/webm/color.d.ts +2 -2
- package/dist/containers/webm/color.js +6 -25
- package/dist/containers/webm/get-ready-tracks.d.ts +3 -3
- package/dist/containers/webm/get-sample-from-block.d.ts +7 -7
- package/dist/containers/webm/make-track.d.ts +3 -3
- package/dist/containers/webm/make-track.js +53 -21
- package/dist/containers/webm/parse-webm-header.js +5 -0
- package/dist/containers/webm/seek/fetch-web-cues.d.ts +4 -4
- package/dist/containers/webm/seek/get-seeking-byte.d.ts +2 -2
- package/dist/containers/webm/segments.d.ts +2 -2
- package/dist/containers/webm/segments.js +1 -1
- package/dist/containers/webm/state-for-processing.d.ts +5 -5
- package/dist/containers/webm/traversal.js +2 -1
- package/dist/controller/emitter.d.ts +2 -3
- package/dist/controller/seek-signal.d.ts +3 -9
- package/dist/controller/seek-signal.js +2 -2
- package/dist/convert-audio-or-video-sample.d.ts +4 -4
- package/dist/download-and-parse-media.js +1 -1
- package/dist/emit-available-info.js +9 -9
- package/dist/errors.d.ts +4 -18
- package/dist/errors.js +1 -15
- package/dist/esm/index.mjs +654 -544
- package/dist/esm/node.mjs +63 -51
- package/dist/esm/server-worker.mjs +13 -34
- package/dist/esm/universal.mjs +63 -51
- package/dist/esm/worker-server-entry.mjs +500 -388
- package/dist/esm/worker-web-entry.mjs +437 -337
- package/dist/esm/worker.mjs +14 -35
- package/dist/fields.d.ts +2 -2
- package/dist/file-types/bmp.d.ts +2 -2
- package/dist/file-types/detect-file-type.d.ts +2 -1
- package/dist/file-types/detect-file-type.js +1 -6
- package/dist/file-types/gif.d.ts +2 -0
- package/dist/file-types/gif.js +18 -0
- package/dist/file-types/index.js +4 -2
- package/dist/file-types/png.d.ts +2 -2
- package/dist/file-types/webp.d.ts +2 -2
- package/dist/get-audio-codec.d.ts +3 -4
- package/dist/get-audio-codec.js +44 -23
- package/dist/get-dimensions.d.ts +2 -2
- package/dist/get-dimensions.js +6 -3
- package/dist/get-duration.js +6 -7
- package/dist/get-fields-from-callbacks.js +1 -1
- package/dist/get-is-hdr.js +6 -5
- package/dist/get-sample-aspect-ratio.d.ts +5 -5
- package/dist/get-seeking-byte.d.ts +2 -2
- package/dist/get-tracks.d.ts +34 -44
- package/dist/get-tracks.js +6 -46
- package/dist/get-video-codec.d.ts +4 -3
- package/dist/get-video-codec.js +6 -6
- package/dist/has-all-info.js +1 -1
- package/dist/index.d.ts +114 -55
- package/dist/index.js +6 -4
- package/dist/init-video.js +4 -11
- package/dist/internal-parse-media.js +1 -1
- package/dist/log.d.ts +6 -6
- package/dist/metadata/get-metadata.js +6 -4
- package/dist/options.d.ts +19 -23
- package/dist/parse-loop.js +2 -2
- package/dist/parse-media-on-worker-entry.js +13 -5
- package/dist/parse-media.js +1 -1
- package/dist/perform-seek.d.ts +4 -4
- package/dist/readers/from-fetch.d.ts +2 -2
- package/dist/readers/from-node.d.ts +2 -2
- package/dist/readers/from-node.js +64 -55
- package/dist/readers/from-web-file.d.ts +2 -2
- package/dist/readers/reader.d.ts +5 -5
- package/dist/readers/universal.d.ts +2 -2
- package/dist/readers/web.d.ts +2 -2
- package/dist/register-track.d.ts +12 -12
- package/dist/remotion-license-acknowledge.d.ts +2 -2
- package/dist/seek-backwards.d.ts +4 -4
- package/dist/seek-forwards.d.ts +4 -4
- package/dist/state/can-skip-tracks.js +1 -1
- package/dist/state/emitted-fields.js +1 -1
- package/dist/state/has-tracks-section.d.ts +5 -5
- package/dist/state/iso-base-media/cached-sample-positions.d.ts +3 -3
- package/dist/state/iso-base-media/cached-sample-positions.js +16 -7
- package/dist/state/iso-base-media/iso-state.d.ts +4 -4
- package/dist/state/iso-base-media/lazy-mfra-load.d.ts +4 -4
- package/dist/state/m3u-state.d.ts +11 -11
- package/dist/state/matroska/lazy-cues-fetch.d.ts +4 -4
- package/dist/state/matroska/webm.d.ts +4 -4
- package/dist/state/matroska/webm.js +1 -1
- package/dist/state/may-skip-video-data.d.ts +1 -0
- package/dist/state/may-skip-video-data.js +23 -2
- package/dist/state/need-samples-for-fields.js +1 -1
- package/dist/state/parser-state.d.ts +67 -38
- package/dist/state/riff/lazy-idx1-fetch.d.ts +4 -4
- package/dist/state/riff/sample-counter.d.ts +3 -3
- package/dist/state/riff.d.ts +6 -6
- package/dist/state/sample-callbacks.d.ts +12 -12
- package/dist/state/sample-callbacks.js +2 -2
- package/dist/state/samples-observed/slow-duration-fps.d.ts +3 -3
- package/dist/state/transport-stream/last-emitted-sample.d.ts +3 -3
- package/dist/state/transport-stream/transport-stream.d.ts +2 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webcodec-sample-types.d.ts +21 -10
- package/dist/work-on-seek-request.d.ts +4 -4
- package/dist/work-on-seek-request.js +40 -43
- package/dist/worker/serialize-error.d.ts +2 -2
- package/dist/worker/serialize-error.js +7 -25
- package/dist/worker/worker-types.d.ts +22 -24
- package/dist/worker-server.d.ts +2 -2
- package/dist/worker-server.js +5 -5
- package/dist/writers/writer.d.ts +2 -2
- package/package.json +3 -3
- package/dist/containers/iso-base-media/sample-positions.d.ts +0 -25
- package/dist/containers/iso-base-media/sample-positions.js +0 -37
- package/dist/containers/iso-base-media/turn-sample-positions-into-array.d.ts +0 -19
- package/dist/containers/iso-base-media/turn-sample-positions-into-array.js +0 -73
- package/dist/containers/m3u/iterate-over-segment-files.d.ts +0 -21
- package/dist/containers/m3u/iterate-over-segment-files.js +0 -132
- package/dist/containers/mp3/audio-sample-from-cbr.d.ts +0 -11
- package/dist/containers/mp3/audio-sample-from-cbr.js +0 -35
- package/dist/emit-audio-sample.d.ts +0 -12
- package/dist/emit-audio-sample.js +0 -11
package/dist/esm/worker.mjs
CHANGED
|
@@ -10,28 +10,6 @@ var withResolvers = function() {
|
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
// src/errors.ts
|
|
13
|
-
class IsAGifError extends Error {
|
|
14
|
-
mimeType;
|
|
15
|
-
sizeInBytes;
|
|
16
|
-
fileName;
|
|
17
|
-
constructor({
|
|
18
|
-
message,
|
|
19
|
-
mimeType,
|
|
20
|
-
sizeInBytes,
|
|
21
|
-
fileName
|
|
22
|
-
}) {
|
|
23
|
-
super(message);
|
|
24
|
-
this.name = "IsAGifError";
|
|
25
|
-
this.fileName = "IsAGifError";
|
|
26
|
-
this.mimeType = mimeType;
|
|
27
|
-
this.sizeInBytes = sizeInBytes;
|
|
28
|
-
this.fileName = fileName;
|
|
29
|
-
if (Error.captureStackTrace) {
|
|
30
|
-
Error.captureStackTrace(this, IsAGifError);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
13
|
class IsAnImageError extends Error {
|
|
36
14
|
imageType;
|
|
37
15
|
dimensions;
|
|
@@ -112,13 +90,6 @@ class MediaParserAbortError extends Error {
|
|
|
112
90
|
// src/worker/serialize-error.ts
|
|
113
91
|
var deserializeError = (error) => {
|
|
114
92
|
switch (error.errorName) {
|
|
115
|
-
case "IsAGifError":
|
|
116
|
-
return new IsAGifError({
|
|
117
|
-
fileName: error.fileName,
|
|
118
|
-
mimeType: error.mimeType,
|
|
119
|
-
sizeInBytes: error.sizeInBytes,
|
|
120
|
-
message: error.errorMessage
|
|
121
|
-
});
|
|
122
93
|
case "IsAnImageError":
|
|
123
94
|
return new IsAnImageError({
|
|
124
95
|
dimensions: error.dimensions,
|
|
@@ -186,7 +157,7 @@ var convertToWorkerPayload = (payload) => {
|
|
|
186
157
|
onSlowKeyframes,
|
|
187
158
|
onSlowNumberOfFrames,
|
|
188
159
|
onSlowVideoBitrate,
|
|
189
|
-
|
|
160
|
+
onSlowStructure,
|
|
190
161
|
onTracks,
|
|
191
162
|
onVideoTrack,
|
|
192
163
|
selectM3uStream,
|
|
@@ -220,7 +191,7 @@ var convertToWorkerPayload = (payload) => {
|
|
|
220
191
|
postSlowKeyframes: Boolean(onSlowKeyframes),
|
|
221
192
|
postSlowNumberOfFrames: Boolean(onSlowNumberOfFrames),
|
|
222
193
|
postSlowVideoBitrate: Boolean(onSlowVideoBitrate),
|
|
223
|
-
|
|
194
|
+
postSlowStructure: Boolean(onSlowStructure),
|
|
224
195
|
postTracks: Boolean(onTracks),
|
|
225
196
|
postUnrotatedDimensions: Boolean(onUnrotatedDimensions),
|
|
226
197
|
postVideoCodec: Boolean(onVideoCodec),
|
|
@@ -358,8 +329,8 @@ var parseMediaOnWorkerImplementation = async ({ controller, reader, ...params },
|
|
|
358
329
|
await params.onSlowVideoBitrate?.(data.payload.value);
|
|
359
330
|
return { payloadType: "void" };
|
|
360
331
|
}
|
|
361
|
-
if (data.payload.callbackType === "structure") {
|
|
362
|
-
await params.
|
|
332
|
+
if (data.payload.callbackType === "slow-structure") {
|
|
333
|
+
await params.onSlowStructure?.(data.payload.value);
|
|
363
334
|
return { payloadType: "void" };
|
|
364
335
|
}
|
|
365
336
|
if (data.payload.callbackType === "fps") {
|
|
@@ -449,7 +420,15 @@ var parseMediaOnWorkerImplementation = async ({ controller, reader, ...params },
|
|
|
449
420
|
registeredCallback: Boolean(possibleCallback)
|
|
450
421
|
};
|
|
451
422
|
}
|
|
452
|
-
if (data.payload.callbackType === "on-audio-
|
|
423
|
+
if (data.payload.callbackType === "on-audio-sample") {
|
|
424
|
+
const callback = callbacks[data.payload.trackId];
|
|
425
|
+
if (!callback) {
|
|
426
|
+
throw new Error(`No callback registered for track ${data.payload.trackId}`);
|
|
427
|
+
}
|
|
428
|
+
await callback(data.payload.value);
|
|
429
|
+
return { payloadType: "void" };
|
|
430
|
+
}
|
|
431
|
+
if (data.payload.callbackType === "on-video-sample") {
|
|
453
432
|
const callback = callbacks[data.payload.trackId];
|
|
454
433
|
if (!callback) {
|
|
455
434
|
throw new Error(`No callback registered for track ${data.payload.trackId}`);
|
|
@@ -508,7 +487,7 @@ var parseMediaOnWebWorker = (params) => {
|
|
|
508
487
|
if (typeof Worker === "undefined") {
|
|
509
488
|
throw new Error('"Worker" is not available. Cannot call parseMediaOnWebWorker()');
|
|
510
489
|
}
|
|
511
|
-
const worker = new Worker(new URL("./worker-web-entry", import.meta.url));
|
|
490
|
+
const worker = new Worker(new URL("./worker-web-entry.mjs", import.meta.url));
|
|
512
491
|
return parseMediaOnWorkerImplementation(params, worker, "parseMediaOnWebWorker");
|
|
513
492
|
};
|
|
514
493
|
export {
|
package/dist/fields.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export type ParseMediaFields = {
|
|
|
2
2
|
dimensions: boolean;
|
|
3
3
|
durationInSeconds: boolean;
|
|
4
4
|
slowDurationInSeconds: boolean;
|
|
5
|
-
|
|
5
|
+
slowStructure: boolean;
|
|
6
6
|
fps: boolean;
|
|
7
7
|
slowFps: boolean;
|
|
8
8
|
videoCodec: boolean;
|
|
@@ -33,7 +33,7 @@ export type AllOptions<Fields extends ParseMediaFields> = {
|
|
|
33
33
|
durationInSeconds: Fields['durationInSeconds'];
|
|
34
34
|
slowDurationInSeconds: Fields['slowDurationInSeconds'];
|
|
35
35
|
slowFps: Fields['slowFps'];
|
|
36
|
-
|
|
36
|
+
slowStructure: Fields['slowStructure'];
|
|
37
37
|
fps: Fields['fps'];
|
|
38
38
|
videoCodec: Fields['videoCodec'];
|
|
39
39
|
audioCodec: Fields['audioCodec'];
|
package/dist/file-types/bmp.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MediaParserDimensions } from '../get-dimensions';
|
|
2
2
|
export declare const isBmp: (data: Uint8Array) => BmpType | null;
|
|
3
3
|
export type BmpType = {
|
|
4
4
|
type: 'bmp';
|
|
5
|
-
dimensions:
|
|
5
|
+
dimensions: MediaParserDimensions | null;
|
|
6
6
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MediaParserDimensions } from '../get-dimensions';
|
|
1
2
|
import type { BmpType } from './bmp';
|
|
2
3
|
import type { JpegType } from './jpeg';
|
|
3
4
|
import type { PdfType } from './pdf';
|
|
@@ -10,7 +11,6 @@ export declare const isWebm: (data: Uint8Array) => boolean;
|
|
|
10
11
|
export declare const isIsoBaseMedia: (data: Uint8Array) => boolean;
|
|
11
12
|
export declare const isTransportStream: (data: Uint8Array) => boolean;
|
|
12
13
|
export declare const isMp3: (data: Uint8Array) => boolean;
|
|
13
|
-
export declare const isGif: (data: Uint8Array) => boolean;
|
|
14
14
|
export declare const isAac: (data: Uint8Array) => boolean;
|
|
15
15
|
export declare const isFlac: (data: Uint8Array) => boolean;
|
|
16
16
|
export declare const isM3u: (data: Uint8Array) => boolean;
|
|
@@ -37,6 +37,7 @@ export type WavType = {
|
|
|
37
37
|
};
|
|
38
38
|
export type GifType = {
|
|
39
39
|
type: 'gif';
|
|
40
|
+
dimensions: MediaParserDimensions;
|
|
40
41
|
};
|
|
41
42
|
export type FlacType = {
|
|
42
43
|
type: 'flac';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isM3u = exports.isFlac = exports.isAac = exports.
|
|
3
|
+
exports.isM3u = exports.isFlac = exports.isAac = exports.isMp3 = exports.isTransportStream = exports.isIsoBaseMedia = exports.isWebm = exports.isRiffWave = exports.isRiffAvi = exports.matchesPattern = void 0;
|
|
4
4
|
const webmPattern = new Uint8Array([0x1a, 0x45, 0xdf, 0xa3]);
|
|
5
5
|
const matchesPattern = (pattern) => {
|
|
6
6
|
return (data) => {
|
|
@@ -55,11 +55,6 @@ const isMp3 = (data) => {
|
|
|
55
55
|
(0, exports.matchesPattern)(id3v2Pattern)(subarray));
|
|
56
56
|
};
|
|
57
57
|
exports.isMp3 = isMp3;
|
|
58
|
-
const isGif = (data) => {
|
|
59
|
-
const gifPattern = new Uint8Array([0x47, 0x49, 0x46, 0x38]);
|
|
60
|
-
return (0, exports.matchesPattern)(gifPattern)(data.subarray(0, 4));
|
|
61
|
-
};
|
|
62
|
-
exports.isGif = isGif;
|
|
63
58
|
const isAac = (data) => {
|
|
64
59
|
const aacPattern = new Uint8Array([0xff, 0xf1]);
|
|
65
60
|
return (0, exports.matchesPattern)(aacPattern)(data.subarray(0, 2));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isGif = void 0;
|
|
4
|
+
const detect_file_type_1 = require("./detect-file-type");
|
|
5
|
+
const getGifDimensions = (data) => {
|
|
6
|
+
const view = new DataView(data.buffer, data.byteOffset);
|
|
7
|
+
const width = view.getUint16(6, true);
|
|
8
|
+
const height = view.getUint16(8, true);
|
|
9
|
+
return { width, height };
|
|
10
|
+
};
|
|
11
|
+
const isGif = (data) => {
|
|
12
|
+
const gifPattern = new Uint8Array([0x47, 0x49, 0x46, 0x38]);
|
|
13
|
+
if ((0, detect_file_type_1.matchesPattern)(gifPattern)(data.subarray(0, 4))) {
|
|
14
|
+
return { type: 'gif', dimensions: getGifDimensions(data) };
|
|
15
|
+
}
|
|
16
|
+
return null;
|
|
17
|
+
};
|
|
18
|
+
exports.isGif = isGif;
|
package/dist/file-types/index.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.detectFileType = void 0;
|
|
4
4
|
const bmp_1 = require("./bmp");
|
|
5
5
|
const detect_file_type_1 = require("./detect-file-type");
|
|
6
|
+
const gif_1 = require("./gif");
|
|
6
7
|
const jpeg_1 = require("./jpeg");
|
|
7
8
|
const pdf_1 = require("./pdf");
|
|
8
9
|
const png_1 = require("./png");
|
|
@@ -39,8 +40,9 @@ const detectFileType = (data) => {
|
|
|
39
40
|
if ((0, detect_file_type_1.isMp3)(data)) {
|
|
40
41
|
return { type: 'mp3' };
|
|
41
42
|
}
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
const gif = (0, gif_1.isGif)(data);
|
|
44
|
+
if (gif) {
|
|
45
|
+
return gif;
|
|
44
46
|
}
|
|
45
47
|
const png = (0, png_1.isPng)(data);
|
|
46
48
|
if (png) {
|
package/dist/file-types/png.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MediaParserDimensions } from '../get-dimensions';
|
|
2
2
|
export declare function getPngDimensions(pngData: Uint8Array): {
|
|
3
3
|
width: number;
|
|
4
4
|
height: number;
|
|
@@ -6,5 +6,5 @@ export declare function getPngDimensions(pngData: Uint8Array): {
|
|
|
6
6
|
export declare const isPng: (data: Uint8Array) => PngType | null;
|
|
7
7
|
export type PngType = {
|
|
8
8
|
type: 'png';
|
|
9
|
-
dimensions:
|
|
9
|
+
dimensions: MediaParserDimensions | null;
|
|
10
10
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MediaParserDimensions } from '../get-dimensions';
|
|
2
2
|
export declare const isWebp: (data: Uint8Array) => WebpType | null;
|
|
3
3
|
export type WebpType = {
|
|
4
4
|
type: 'webp';
|
|
5
|
-
dimensions:
|
|
5
|
+
dimensions: MediaParserDimensions | null;
|
|
6
6
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MediaParserCodecData } from './codec-data';
|
|
2
2
|
import type { TrakBox } from './containers/iso-base-media/trak/trak';
|
|
3
3
|
import { type MediaParserAudioCodec } from './get-tracks';
|
|
4
4
|
import type { ParserState } from './state/parser-state';
|
|
@@ -10,17 +10,16 @@ type AudioCodecInfo = {
|
|
|
10
10
|
secondarySpecificator: number | null;
|
|
11
11
|
description: Uint8Array | undefined;
|
|
12
12
|
};
|
|
13
|
-
export declare const getCodecPrivateFromTrak: (trakBox: TrakBox) =>
|
|
13
|
+
export declare const getCodecPrivateFromTrak: (trakBox: TrakBox) => MediaParserCodecData | null;
|
|
14
14
|
export declare const getNumberOfChannelsFromTrak: (trak: TrakBox) => number | null;
|
|
15
15
|
export declare const getSampleRate: (trak: TrakBox) => number | null;
|
|
16
16
|
export declare const getAudioCodecFromTrak: (trak: TrakBox) => AudioCodecInfo | null;
|
|
17
17
|
export declare const isLpcmAudioCodec: (trak: TrakBox) => boolean;
|
|
18
18
|
export declare const isIn24AudioCodec: (trak: TrakBox) => boolean;
|
|
19
19
|
export declare const isTwosAudioCodec: (trak: TrakBox) => boolean;
|
|
20
|
-
export declare const getAudioCodecFromIso: (moov: MoovBox) => AudioCodecInfo | null;
|
|
21
20
|
export declare const getAudioCodecStringFromTrak: (trak: TrakBox) => {
|
|
22
21
|
codecString: string;
|
|
23
|
-
description:
|
|
22
|
+
description: MediaParserCodecData | undefined;
|
|
24
23
|
};
|
|
25
24
|
export declare const getAudioCodecFromTrack: (track: TrakBox) => MediaParserAudioCodec;
|
|
26
25
|
export {};
|
package/dist/get-audio-codec.js
CHANGED
|
@@ -1,23 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAudioCodecFromTrack = exports.getAudioCodecStringFromTrak = exports.
|
|
3
|
+
exports.getAudioCodecFromTrack = exports.getAudioCodecStringFromTrak = exports.isTwosAudioCodec = exports.isIn24AudioCodec = exports.isLpcmAudioCodec = exports.getAudioCodecFromTrak = exports.getSampleRate = exports.getNumberOfChannelsFromTrak = exports.getCodecPrivateFromTrak = exports.hasAudioCodec = exports.getAudioCodec = void 0;
|
|
4
4
|
const traversal_1 = require("./containers/iso-base-media/traversal");
|
|
5
|
-
const get_fps_1 = require("./get-fps");
|
|
6
5
|
const get_tracks_1 = require("./get-tracks");
|
|
7
6
|
const getAudioCodec = (parserState) => {
|
|
8
7
|
const tracks = (0, get_tracks_1.getTracks)(parserState, true);
|
|
9
|
-
|
|
10
|
-
tracks.otherTracks.length +
|
|
11
|
-
tracks.videoTracks.length;
|
|
12
|
-
if (allTracks === 0) {
|
|
8
|
+
if (tracks.length === 0) {
|
|
13
9
|
throw new Error('No tracks yet');
|
|
14
10
|
}
|
|
15
|
-
const audioTrack = tracks.
|
|
11
|
+
const audioTrack = tracks.find((t) => t.type === 'audio');
|
|
16
12
|
if (!audioTrack) {
|
|
17
13
|
return null;
|
|
18
14
|
}
|
|
19
15
|
if (audioTrack.type === 'audio') {
|
|
20
|
-
return audioTrack.
|
|
16
|
+
return audioTrack.codecEnum;
|
|
21
17
|
}
|
|
22
18
|
return null;
|
|
23
19
|
};
|
|
@@ -75,7 +71,7 @@ const getCodecPrivateFromTrak = (trakBox) => {
|
|
|
75
71
|
if (!mp4a) {
|
|
76
72
|
return null;
|
|
77
73
|
}
|
|
78
|
-
return mp4a.asBytes;
|
|
74
|
+
return { type: 'aac-config', data: mp4a.asBytes };
|
|
79
75
|
};
|
|
80
76
|
exports.getCodecPrivateFromTrak = getCodecPrivateFromTrak;
|
|
81
77
|
const onSample = (sample, children) => {
|
|
@@ -158,15 +154,6 @@ const isTwosAudioCodec = (trak) => {
|
|
|
158
154
|
return ((_a = (0, exports.getAudioCodecFromTrak)(trak)) === null || _a === void 0 ? void 0 : _a.format) === 'twos';
|
|
159
155
|
};
|
|
160
156
|
exports.isTwosAudioCodec = isTwosAudioCodec;
|
|
161
|
-
const getAudioCodecFromIso = (moov) => {
|
|
162
|
-
const traks = (0, traversal_1.getTraks)(moov);
|
|
163
|
-
const trakBox = traks.find((b) => b.type === 'trak-box' && (0, get_fps_1.trakBoxContainsAudio)(b));
|
|
164
|
-
if (!trakBox) {
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
|
-
return (0, exports.getAudioCodecFromTrak)(trakBox);
|
|
168
|
-
};
|
|
169
|
-
exports.getAudioCodecFromIso = getAudioCodecFromIso;
|
|
170
157
|
const getAudioCodecStringFromTrak = (trak) => {
|
|
171
158
|
const codec = (0, exports.getAudioCodecFromTrak)(trak);
|
|
172
159
|
if (!codec) {
|
|
@@ -175,19 +162,25 @@ const getAudioCodecStringFromTrak = (trak) => {
|
|
|
175
162
|
if (codec.format === 'lpcm') {
|
|
176
163
|
return {
|
|
177
164
|
codecString: 'pcm-s16',
|
|
178
|
-
description: codec.description
|
|
165
|
+
description: codec.description
|
|
166
|
+
? { type: 'unknown-data', data: codec.description }
|
|
167
|
+
: undefined,
|
|
179
168
|
};
|
|
180
169
|
}
|
|
181
170
|
if (codec.format === 'twos') {
|
|
182
171
|
return {
|
|
183
172
|
codecString: 'pcm-s16',
|
|
184
|
-
description: codec.description
|
|
173
|
+
description: codec.description
|
|
174
|
+
? { type: 'unknown-data', data: codec.description }
|
|
175
|
+
: undefined,
|
|
185
176
|
};
|
|
186
177
|
}
|
|
187
178
|
if (codec.format === 'in24') {
|
|
188
179
|
return {
|
|
189
180
|
codecString: 'pcm-s24',
|
|
190
|
-
description: codec.description
|
|
181
|
+
description: codec.description
|
|
182
|
+
? { type: 'unknown-data', data: codec.description }
|
|
183
|
+
: undefined,
|
|
191
184
|
};
|
|
192
185
|
}
|
|
193
186
|
const codecStringWithoutMp3Exception = [
|
|
@@ -198,12 +191,40 @@ const getAudioCodecStringFromTrak = (trak) => {
|
|
|
198
191
|
: null,
|
|
199
192
|
].filter(Boolean).join('.');
|
|
200
193
|
// Really, MP3? 😔
|
|
201
|
-
const codecString = codecStringWithoutMp3Exception === 'mp4a.6b'
|
|
194
|
+
const codecString = codecStringWithoutMp3Exception.toLowerCase() === 'mp4a.6b' ||
|
|
195
|
+
codecStringWithoutMp3Exception.toLowerCase() === 'mp4a.69'
|
|
202
196
|
? 'mp3' // or "mp4a.6B" would also work, with the uppercasing, but mp3 is probably more obvious
|
|
203
197
|
: codecStringWithoutMp3Exception;
|
|
198
|
+
if (codecString === 'mp3') {
|
|
199
|
+
return {
|
|
200
|
+
codecString,
|
|
201
|
+
description: codec.description
|
|
202
|
+
? {
|
|
203
|
+
type: 'unknown-data',
|
|
204
|
+
data: codec.description,
|
|
205
|
+
}
|
|
206
|
+
: undefined,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
if (codecString.startsWith('mp4a.')) {
|
|
210
|
+
return {
|
|
211
|
+
codecString,
|
|
212
|
+
description: codec.description
|
|
213
|
+
? {
|
|
214
|
+
type: 'aac-config',
|
|
215
|
+
data: codec.description,
|
|
216
|
+
}
|
|
217
|
+
: undefined,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
204
220
|
return {
|
|
205
221
|
codecString,
|
|
206
|
-
description: codec.description
|
|
222
|
+
description: codec.description
|
|
223
|
+
? {
|
|
224
|
+
type: 'unknown-data',
|
|
225
|
+
data: codec.description,
|
|
226
|
+
}
|
|
227
|
+
: undefined,
|
|
207
228
|
};
|
|
208
229
|
};
|
|
209
230
|
exports.getAudioCodecStringFromTrak = getAudioCodecStringFromTrak;
|
package/dist/get-dimensions.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { ParserState } from './state/parser-state';
|
|
2
|
-
export type
|
|
2
|
+
export type MediaParserDimensions = {
|
|
3
3
|
width: number;
|
|
4
4
|
height: number;
|
|
5
5
|
};
|
|
6
|
-
export type ExpandedDimensions =
|
|
6
|
+
export type ExpandedDimensions = MediaParserDimensions & {
|
|
7
7
|
rotation: number;
|
|
8
8
|
unrotatedWidth: number;
|
|
9
9
|
unrotatedHeight: number;
|
package/dist/get-dimensions.js
CHANGED
|
@@ -8,11 +8,14 @@ const getDimensions = (state) => {
|
|
|
8
8
|
if (structure && (0, is_audio_structure_1.isAudioStructure)(structure)) {
|
|
9
9
|
return null;
|
|
10
10
|
}
|
|
11
|
-
const
|
|
12
|
-
if (!
|
|
11
|
+
const tracks = (0, get_tracks_1.getTracks)(state, true);
|
|
12
|
+
if (!tracks.length) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
const firstVideoTrack = tracks.find((t) => t.type === 'video');
|
|
16
|
+
if (!firstVideoTrack) {
|
|
13
17
|
return null;
|
|
14
18
|
}
|
|
15
|
-
const firstVideoTrack = videoTracks[0];
|
|
16
19
|
return {
|
|
17
20
|
width: firstVideoTrack.width,
|
|
18
21
|
height: firstVideoTrack.height,
|
package/dist/get-duration.js
CHANGED
|
@@ -72,15 +72,14 @@ const getDurationFromIsoBaseMedia = (parserState) => {
|
|
|
72
72
|
return mvhdBox.durationInSeconds;
|
|
73
73
|
}
|
|
74
74
|
const tracks = (0, get_tracks_1.getTracks)(parserState, true);
|
|
75
|
-
const
|
|
76
|
-
...tracks.videoTracks,
|
|
77
|
-
...tracks.audioTracks,
|
|
78
|
-
...tracks.otherTracks,
|
|
79
|
-
];
|
|
80
|
-
const allSamples = allTracks.map((t) => {
|
|
75
|
+
const allSamples = tracks.map((t) => {
|
|
81
76
|
const { timescale: ts } = t;
|
|
77
|
+
const trakBox = (0, traversal_1.getTrakBoxByTrackId)(moovBox, t.trackId);
|
|
78
|
+
if (!trakBox) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
82
81
|
const { samplePositions, isComplete } = (0, get_sample_positions_from_track_1.getSamplePositionsFromTrack)({
|
|
83
|
-
trakBox
|
|
82
|
+
trakBox,
|
|
84
83
|
moofBoxes,
|
|
85
84
|
moofComplete: (0, are_samples_complete_1.areSamplesComplete)({ moofBoxes, tfraBoxes }),
|
|
86
85
|
});
|
|
@@ -16,7 +16,7 @@ const getFieldsFromCallback = ({ fields, callbacks, }) => {
|
|
|
16
16
|
name: Boolean(callbacks.onName),
|
|
17
17
|
rotation: Boolean(callbacks.onRotation),
|
|
18
18
|
size: Boolean(callbacks.onSize),
|
|
19
|
-
|
|
19
|
+
slowStructure: Boolean(callbacks.onSlowStructure),
|
|
20
20
|
tracks: Boolean(callbacks.onTracks),
|
|
21
21
|
unrotatedDimensions: Boolean(callbacks.onUnrotatedDimensions),
|
|
22
22
|
videoCodec: Boolean(callbacks.onVideoCodec),
|
package/dist/get-is-hdr.js
CHANGED
|
@@ -3,13 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.hasHdr = exports.getIsHdr = void 0;
|
|
4
4
|
const get_tracks_1 = require("./get-tracks");
|
|
5
5
|
const isVideoTrackHdr = (track) => {
|
|
6
|
-
return (track.
|
|
7
|
-
track.
|
|
8
|
-
|
|
6
|
+
return (track.advancedColor.matrix === 'bt2020-ncl' &&
|
|
7
|
+
(track.advancedColor.transfer === 'hlg' ||
|
|
8
|
+
track.advancedColor.transfer === 'pq') &&
|
|
9
|
+
track.advancedColor.primaries === 'bt2020');
|
|
9
10
|
};
|
|
10
11
|
const getIsHdr = (state) => {
|
|
11
|
-
const
|
|
12
|
-
return
|
|
12
|
+
const tracks = (0, get_tracks_1.getTracks)(state, true);
|
|
13
|
+
return tracks.some((track) => track.type === 'video' && isVideoTrackHdr(track));
|
|
13
14
|
};
|
|
14
15
|
exports.getIsHdr = getIsHdr;
|
|
15
16
|
const hasHdr = (state) => {
|
|
@@ -6,7 +6,7 @@ import type { PaspBox } from './containers/iso-base-media/stsd/pasp';
|
|
|
6
6
|
import type { VideoSample } from './containers/iso-base-media/stsd/samples';
|
|
7
7
|
import type { TkhdBox } from './containers/iso-base-media/tkhd';
|
|
8
8
|
import type { TrakBox } from './containers/iso-base-media/trak/trak';
|
|
9
|
-
import type {
|
|
9
|
+
import type { MediaParserDimensions } from './get-dimensions';
|
|
10
10
|
type AspectRatio = {
|
|
11
11
|
numerator: number;
|
|
12
12
|
denominator: number;
|
|
@@ -18,7 +18,7 @@ export declare const getPaspBox: (trakBox: TrakBox) => PaspBox | null;
|
|
|
18
18
|
export declare const getHvccBox: (trakBox: TrakBox) => HvccBox | null;
|
|
19
19
|
export declare const getSampleAspectRatio: (trakBox: TrakBox) => AspectRatio;
|
|
20
20
|
export declare const getColrBox: (videoSample: VideoSample) => ColorParameterBox | null;
|
|
21
|
-
export declare const applyTkhdBox: (aspectRatioApplied:
|
|
21
|
+
export declare const applyTkhdBox: (aspectRatioApplied: MediaParserDimensions, tkhdBox: TkhdBox) => {
|
|
22
22
|
displayAspectWidth: number;
|
|
23
23
|
displayAspectHeight: number;
|
|
24
24
|
width: number;
|
|
@@ -26,12 +26,12 @@ export declare const applyTkhdBox: (aspectRatioApplied: Dimensions, tkhdBox: Tkh
|
|
|
26
26
|
rotation: number;
|
|
27
27
|
};
|
|
28
28
|
export declare const applyAspectRatios: ({ dimensions, sampleAspectRatio, displayAspectRatio, }: {
|
|
29
|
-
dimensions:
|
|
29
|
+
dimensions: MediaParserDimensions;
|
|
30
30
|
sampleAspectRatio: AspectRatio;
|
|
31
31
|
displayAspectRatio: AspectRatio;
|
|
32
|
-
}) =>
|
|
32
|
+
}) => MediaParserDimensions;
|
|
33
33
|
export declare const getDisplayAspectRatio: ({ sampleAspectRatio, nativeDimensions, }: {
|
|
34
34
|
sampleAspectRatio: AspectRatio;
|
|
35
|
-
nativeDimensions:
|
|
35
|
+
nativeDimensions: MediaParserDimensions;
|
|
36
36
|
}) => AspectRatio;
|
|
37
37
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MediaParserLogLevel } from './log';
|
|
2
2
|
import type { M3uPlaylistContext } from './options';
|
|
3
3
|
import type { SeekingHints } from './seeking-hints';
|
|
4
4
|
import type { IsoBaseMediaState } from './state/iso-base-media/iso-state';
|
|
@@ -12,7 +12,7 @@ import type { SeekResolution } from './work-on-seek-request';
|
|
|
12
12
|
export declare const getSeekingByte: ({ info, time, logLevel, currentPosition, isoState, transportStream, webmState, mediaSection, m3uPlaylistContext, structure, riffState, m3uState, }: {
|
|
13
13
|
info: SeekingHints;
|
|
14
14
|
time: number;
|
|
15
|
-
logLevel:
|
|
15
|
+
logLevel: MediaParserLogLevel;
|
|
16
16
|
currentPosition: number;
|
|
17
17
|
isoState: IsoBaseMediaState;
|
|
18
18
|
transportStream: TransportStreamState;
|
package/dist/get-tracks.d.ts
CHANGED
|
@@ -1,82 +1,72 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MediaParserCodecData } from './codec-data';
|
|
2
|
+
import type { MediaParserMatrixCoefficients, MediaParserPrimaries, MediaParserTransferCharacteristics } from './containers/avc/color';
|
|
2
3
|
import type { MoovBox } from './containers/iso-base-media/moov/moov';
|
|
3
4
|
import type { TrakBox } from './containers/iso-base-media/trak/trak';
|
|
4
|
-
import type { AllTracks } from './containers/riff/get-tracks-from-avi';
|
|
5
5
|
import type { M3uPlaylistContext } from './options';
|
|
6
6
|
import type { IsoBaseMediaState } from './state/iso-base-media/iso-state';
|
|
7
7
|
import type { ParserState } from './state/parser-state';
|
|
8
8
|
import type { StructureState } from './state/structure';
|
|
9
|
-
type
|
|
9
|
+
export type MediaParserSampleAspectRatio = {
|
|
10
10
|
numerator: number;
|
|
11
11
|
denominator: number;
|
|
12
12
|
};
|
|
13
|
-
export type
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
primaries:
|
|
13
|
+
export type MediaParserAdvancedColor = {
|
|
14
|
+
transfer: MediaParserTransferCharacteristics | null;
|
|
15
|
+
matrix: MediaParserMatrixCoefficients | null;
|
|
16
|
+
primaries: MediaParserPrimaries | null;
|
|
17
17
|
fullRange: boolean | null;
|
|
18
18
|
};
|
|
19
19
|
export type MediaParserVideoCodec = 'vp8' | 'vp9' | 'h264' | 'av1' | 'h265' | 'prores';
|
|
20
20
|
export type MediaParserAudioCodec = 'opus' | 'aac' | 'mp3' | 'ac3' | 'vorbis' | 'pcm-u8' | 'pcm-s16' | 'pcm-s24' | 'pcm-s32' | 'pcm-f32' | 'flac' | 'aiff';
|
|
21
|
-
export type
|
|
21
|
+
export type MediaParserVideoTrack = {
|
|
22
|
+
codec: string;
|
|
23
|
+
description: Uint8Array | undefined;
|
|
24
|
+
colorSpace: VideoColorSpaceInit;
|
|
25
|
+
codedWidth: number;
|
|
26
|
+
codedHeight: number;
|
|
27
|
+
displayAspectWidth: number;
|
|
28
|
+
displayAspectHeight: number;
|
|
22
29
|
type: 'video';
|
|
23
30
|
trackId: number;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
codecWithoutConfig: MediaParserVideoCodec;
|
|
28
|
-
m3uStreamFormat: 'ts' | 'mp4' | null;
|
|
29
|
-
sampleAspectRatio: SampleAspectRatio;
|
|
31
|
+
codecEnum: MediaParserVideoCodec;
|
|
32
|
+
codecData: MediaParserCodecData | null;
|
|
33
|
+
sampleAspectRatio: MediaParserSampleAspectRatio;
|
|
30
34
|
width: number;
|
|
31
35
|
height: number;
|
|
32
|
-
displayAspectWidth: number;
|
|
33
|
-
displayAspectHeight: number;
|
|
34
|
-
codedWidth: number;
|
|
35
|
-
codedHeight: number;
|
|
36
36
|
rotation: number;
|
|
37
|
-
trakBox: TrakBox | null;
|
|
38
|
-
codecPrivate: Uint8Array | null;
|
|
39
|
-
color: VideoTrackColorParams;
|
|
40
37
|
fps: number | null;
|
|
41
|
-
};
|
|
42
|
-
export type AudioTrack = {
|
|
43
|
-
type: 'audio';
|
|
44
|
-
trackId: number;
|
|
45
38
|
timescale: number;
|
|
39
|
+
advancedColor: MediaParserAdvancedColor;
|
|
40
|
+
m3uStreamFormat: 'ts' | 'mp4' | null;
|
|
41
|
+
};
|
|
42
|
+
export type MediaParserAudioTrack = {
|
|
46
43
|
codec: string;
|
|
47
|
-
codecWithoutConfig: MediaParserAudioCodec;
|
|
48
|
-
numberOfChannels: number;
|
|
49
44
|
sampleRate: number;
|
|
50
45
|
description: Uint8Array | undefined;
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
numberOfChannels: number;
|
|
47
|
+
type: 'audio';
|
|
48
|
+
trackId: number;
|
|
49
|
+
codecEnum: MediaParserAudioCodec;
|
|
50
|
+
timescale: number;
|
|
51
|
+
codecData: MediaParserCodecData | null;
|
|
53
52
|
};
|
|
54
|
-
export type
|
|
53
|
+
export type MediaParserOtherTrack = {
|
|
55
54
|
type: 'other';
|
|
56
55
|
trackId: number;
|
|
57
56
|
timescale: number;
|
|
58
57
|
trakBox: TrakBox | null;
|
|
59
58
|
};
|
|
60
|
-
export type
|
|
59
|
+
export type MediaParserTrack = MediaParserVideoTrack | MediaParserAudioTrack | MediaParserOtherTrack;
|
|
61
60
|
export declare const getNumberOfTracks: (moovBox: MoovBox) => number;
|
|
62
61
|
export declare const isoBaseMediaHasTracks: (state: ParserState, mayUsePrecomputed: boolean) => boolean;
|
|
63
62
|
export declare const getHasTracks: (state: ParserState, mayUsePrecomputed: boolean) => boolean;
|
|
64
|
-
export declare const getTracksFromMoovBox: (moovBox: MoovBox) =>
|
|
65
|
-
videoTracks: VideoTrack[];
|
|
66
|
-
audioTracks: AudioTrack[];
|
|
67
|
-
otherTracks: OtherTrack[];
|
|
68
|
-
};
|
|
63
|
+
export declare const getTracksFromMoovBox: (moovBox: MoovBox) => MediaParserTrack[];
|
|
69
64
|
export declare const getTracksFromIsoBaseMedia: ({ mayUsePrecomputed, structure, isoState, m3uPlaylistContext, }: {
|
|
70
65
|
structure: StructureState;
|
|
71
66
|
isoState: IsoBaseMediaState;
|
|
72
67
|
m3uPlaylistContext: M3uPlaylistContext | null;
|
|
73
68
|
mayUsePrecomputed: boolean;
|
|
74
|
-
}) =>
|
|
75
|
-
|
|
76
|
-
audioTracks: AudioTrack[];
|
|
77
|
-
otherTracks: OtherTrack[];
|
|
78
|
-
};
|
|
79
|
-
export declare const defaultGetTracks: (parserState: ParserState) => AllTracks;
|
|
69
|
+
}) => MediaParserTrack[];
|
|
70
|
+
export declare const defaultGetTracks: (parserState: ParserState) => MediaParserTrack[];
|
|
80
71
|
export declare const defaultHasallTracks: (parserState: ParserState) => boolean;
|
|
81
|
-
export declare const getTracks: (state: ParserState, mayUsePrecomputed: boolean) =>
|
|
82
|
-
export {};
|
|
72
|
+
export declare const getTracks: (state: ParserState, mayUsePrecomputed: boolean) => MediaParserTrack[];
|