@remotion/media-parser 4.0.298 → 4.0.300
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/create-avc-decoder-configuration-record.d.ts +2 -0
- package/dist/containers/avc/create-avc-decoder-configuration-record.js +35 -0
- 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/server-worker.module.d.ts +2 -0
- package/dist/server-worker.module.js +12 -0
- 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/get-tracks.js
CHANGED
|
@@ -60,55 +60,23 @@ const getHasTracks = (state, mayUsePrecomputed) => {
|
|
|
60
60
|
};
|
|
61
61
|
exports.getHasTracks = getHasTracks;
|
|
62
62
|
const getCategorizedTracksFromMatroska = (state) => {
|
|
63
|
-
const videoTracks = [];
|
|
64
|
-
const audioTracks = [];
|
|
65
|
-
const otherTracks = [];
|
|
66
63
|
const { resolved } = (0, get_ready_tracks_1.getTracksFromMatroska)({
|
|
67
64
|
structureState: state.structure,
|
|
68
65
|
webmState: state.webm,
|
|
69
66
|
});
|
|
70
|
-
|
|
71
|
-
if (track.type === 'video') {
|
|
72
|
-
videoTracks.push(track);
|
|
73
|
-
}
|
|
74
|
-
else if (track.type === 'audio') {
|
|
75
|
-
audioTracks.push(track);
|
|
76
|
-
}
|
|
77
|
-
else if (track.type === 'other') {
|
|
78
|
-
otherTracks.push(track);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return {
|
|
82
|
-
videoTracks,
|
|
83
|
-
audioTracks,
|
|
84
|
-
otherTracks,
|
|
85
|
-
};
|
|
67
|
+
return resolved;
|
|
86
68
|
};
|
|
87
69
|
const getTracksFromMoovBox = (moovBox) => {
|
|
88
|
-
const
|
|
89
|
-
const audioTracks = [];
|
|
90
|
-
const otherTracks = [];
|
|
70
|
+
const mediaParserTracks = [];
|
|
91
71
|
const tracks = (0, traversal_1.getTraks)(moovBox);
|
|
92
72
|
for (const trakBox of tracks) {
|
|
93
73
|
const track = (0, make_track_1.makeBaseMediaTrack)(trakBox);
|
|
94
74
|
if (!track) {
|
|
95
75
|
continue;
|
|
96
76
|
}
|
|
97
|
-
|
|
98
|
-
videoTracks.push(track);
|
|
99
|
-
}
|
|
100
|
-
else if (track.type === 'audio') {
|
|
101
|
-
audioTracks.push(track);
|
|
102
|
-
}
|
|
103
|
-
else if (track.type === 'other') {
|
|
104
|
-
otherTracks.push(track);
|
|
105
|
-
}
|
|
77
|
+
mediaParserTracks.push(track);
|
|
106
78
|
}
|
|
107
|
-
return
|
|
108
|
-
videoTracks,
|
|
109
|
-
audioTracks,
|
|
110
|
-
otherTracks,
|
|
111
|
-
};
|
|
79
|
+
return mediaParserTracks;
|
|
112
80
|
};
|
|
113
81
|
exports.getTracksFromMoovBox = getTracksFromMoovBox;
|
|
114
82
|
const getTracksFromIsoBaseMedia = ({ mayUsePrecomputed, structure, isoState, m3uPlaylistContext, }) => {
|
|
@@ -120,11 +88,7 @@ const getTracksFromIsoBaseMedia = ({ mayUsePrecomputed, structure, isoState, m3u
|
|
|
120
88
|
mayUsePrecomputed,
|
|
121
89
|
});
|
|
122
90
|
if (!moovBox) {
|
|
123
|
-
return
|
|
124
|
-
videoTracks: [],
|
|
125
|
-
audioTracks: [],
|
|
126
|
-
otherTracks: [],
|
|
127
|
-
};
|
|
91
|
+
return [];
|
|
128
92
|
}
|
|
129
93
|
return (0, exports.getTracksFromMoovBox)(moovBox);
|
|
130
94
|
};
|
|
@@ -134,11 +98,7 @@ const defaultGetTracks = (parserState) => {
|
|
|
134
98
|
if (tracks.length === 0) {
|
|
135
99
|
throw new Error('No tracks found');
|
|
136
100
|
}
|
|
137
|
-
return
|
|
138
|
-
audioTracks: tracks.filter((t) => t.type === 'audio'),
|
|
139
|
-
otherTracks: [],
|
|
140
|
-
videoTracks: tracks.filter((t) => t.type === 'video'),
|
|
141
|
-
};
|
|
101
|
+
return tracks;
|
|
142
102
|
};
|
|
143
103
|
exports.defaultGetTracks = defaultGetTracks;
|
|
144
104
|
const defaultHasallTracks = (parserState) => {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import type { MediaParserCodecData } from './codec-data';
|
|
1
2
|
import type { TrakBox } from './containers/iso-base-media/trak/trak';
|
|
2
|
-
import { type
|
|
3
|
+
import { type MediaParserAdvancedColor, type MediaParserVideoCodec } from './get-tracks';
|
|
3
4
|
import type { ParserState } from './state/parser-state';
|
|
4
5
|
export declare const getVideoCodec: (state: ParserState) => MediaParserVideoCodec | null;
|
|
5
6
|
export declare const hasVideoCodec: (state: ParserState) => boolean;
|
|
6
|
-
export declare const getVideoPrivateData: (trakBox: TrakBox) =>
|
|
7
|
-
export declare const getIsoBmColrConfig: (trakBox: TrakBox) =>
|
|
7
|
+
export declare const getVideoPrivateData: (trakBox: TrakBox) => MediaParserCodecData | null;
|
|
8
|
+
export declare const getIsoBmColrConfig: (trakBox: TrakBox) => MediaParserAdvancedColor | null;
|
|
8
9
|
export declare const getVideoCodecString: (trakBox: TrakBox) => string | null;
|
package/dist/get-video-codec.js
CHANGED
|
@@ -8,7 +8,7 @@ const get_tracks_1 = require("./get-tracks");
|
|
|
8
8
|
const getVideoCodec = (state) => {
|
|
9
9
|
var _a, _b;
|
|
10
10
|
const track = (0, get_tracks_1.getTracks)(state, true);
|
|
11
|
-
return (_b = (_a = track.
|
|
11
|
+
return (_b = (_a = track.find((t) => t.type === 'video')) === null || _a === void 0 ? void 0 : _a.codecEnum) !== null && _b !== void 0 ? _b : null;
|
|
12
12
|
};
|
|
13
13
|
exports.getVideoCodec = getVideoCodec;
|
|
14
14
|
const hasVideoCodec = (state) => {
|
|
@@ -24,13 +24,13 @@ const getVideoPrivateData = (trakBox) => {
|
|
|
24
24
|
return null;
|
|
25
25
|
}
|
|
26
26
|
if (avccBox) {
|
|
27
|
-
return avccBox.privateData;
|
|
27
|
+
return { type: 'avc-sps-pps', data: avccBox.privateData };
|
|
28
28
|
}
|
|
29
29
|
if (hvccBox) {
|
|
30
|
-
return hvccBox.privateData;
|
|
30
|
+
return { type: 'hvcc-data', data: hvccBox.privateData };
|
|
31
31
|
}
|
|
32
32
|
if (av1cBox) {
|
|
33
|
-
return av1cBox.privateData;
|
|
33
|
+
return { type: 'av1c-data', data: av1cBox.privateData };
|
|
34
34
|
}
|
|
35
35
|
return null;
|
|
36
36
|
};
|
|
@@ -51,9 +51,9 @@ const getIsoBmColrConfig = (trakBox) => {
|
|
|
51
51
|
// https://github.com/bbc/qtff-parameter-editor
|
|
52
52
|
return {
|
|
53
53
|
fullRange: colrAtom.fullRangeFlag,
|
|
54
|
-
|
|
54
|
+
matrix: (0, color_1.getMatrixCoefficientsFromIndex)(colrAtom.matrixIndex),
|
|
55
55
|
primaries: (0, color_1.getPrimariesFromIndex)(colrAtom.primaries),
|
|
56
|
-
|
|
56
|
+
transfer: (0, color_1.getTransferCharacteristicsFromIndex)(colrAtom.transfer),
|
|
57
57
|
};
|
|
58
58
|
};
|
|
59
59
|
exports.getIsoBmColrConfig = getIsoBmColrConfig;
|
package/dist/has-all-info.js
CHANGED
|
@@ -20,7 +20,7 @@ const getAvailableInfo = ({ state, }) => {
|
|
|
20
20
|
const structure = state.structure.getStructureOrNull();
|
|
21
21
|
const infos = keys.map(([_key]) => {
|
|
22
22
|
const key = _key;
|
|
23
|
-
if (key === '
|
|
23
|
+
if (key === 'slowStructure') {
|
|
24
24
|
return false;
|
|
25
25
|
}
|
|
26
26
|
if (key === 'durationInSeconds') {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,27 +1,36 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export
|
|
1
|
+
import type { MatroskaSegment } from './containers/webm/segments';
|
|
2
|
+
import type { Ebml, EbmlValue, FloatWithSize, MainSegment, MatroskaElement, PossibleEbml, TrackEntry, UintWithSize } from './containers/webm/segments/all-segments';
|
|
3
|
+
import type { SamplePosition } from './get-sample-positions';
|
|
4
|
+
import type { MediaParserLogLevel } from './log';
|
|
5
|
+
import type { ParseMediaCallbacks } from './options';
|
|
6
|
+
export { parseMedia } from './parse-media';
|
|
7
|
+
export { hasBeenAborted, IsAnImageError, IsAnUnsupportedFileTypeError, IsAPdfError, MediaParserAbortError, } from './errors';
|
|
8
|
+
export type { MediaParserAdvancedColor, MediaParserAudioCodec, MediaParserAudioTrack, MediaParserOtherTrack, MediaParserTrack, MediaParserVideoCodec, MediaParserVideoTrack, } from './get-tracks';
|
|
9
|
+
export type { MediaParserMatrixCoefficients, MediaParserPrimaries, MediaParserTransferCharacteristics, } from './containers/avc/color';
|
|
7
10
|
export type { MediaParserMetadataEntry } from './metadata/get-metadata';
|
|
8
11
|
export type { MediaParserKeyframe, ParseMediaSrc } from './options';
|
|
9
12
|
export type { MediaParserEmbeddedImage } from './state/images';
|
|
10
13
|
export { downloadAndParseMedia } from './download-and-parse-media';
|
|
11
14
|
export type { Options, ParseMediaFields } from './fields';
|
|
12
|
-
export type { MediaParserContainer,
|
|
13
|
-
export {
|
|
14
|
-
export type {
|
|
15
|
-
export type {
|
|
15
|
+
export type { MediaParserContainer, ParseMediaOnProgress, ParseMediaOptions, ParseMediaProgress, ParseMediaResult, } from './options';
|
|
16
|
+
export type { MediaParserAudioSample, MediaParserOnAudioSample, MediaParserOnAudioTrack, MediaParserOnAudioTrackParams, MediaParserOnVideoSample, MediaParserOnVideoTrack, MediaParserOnVideoTrackParams, MediaParserVideoSample, } from './webcodec-sample-types';
|
|
17
|
+
export type { MediaParserCodecData } from './codec-data';
|
|
18
|
+
export type { MediaParserDimensions } from './get-dimensions';
|
|
16
19
|
export type { MediaParserLocation } from './get-location';
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated This type is not stable.
|
|
22
|
+
*/
|
|
23
|
+
export type { MediaParserReaderInterface } from './readers/reader';
|
|
24
|
+
import type { CreateContent, Writer, WriterInterface } from './writers/writer';
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated Dont use these yet.
|
|
27
|
+
*/
|
|
19
28
|
export declare const MediaParserInternals: {
|
|
20
29
|
Log: {
|
|
21
|
-
trace: (logLevel:
|
|
22
|
-
verbose: (logLevel:
|
|
23
|
-
info: (logLevel:
|
|
24
|
-
warn: (logLevel:
|
|
30
|
+
trace: (logLevel: MediaParserLogLevel, message?: any, ...optionalParams: any[]) => void;
|
|
31
|
+
verbose: (logLevel: MediaParserLogLevel, message?: any, ...optionalParams: any[]) => void;
|
|
32
|
+
info: (logLevel: MediaParserLogLevel, message?: any, ...optionalParams: any[]) => void;
|
|
33
|
+
warn: (logLevel: MediaParserLogLevel, message?: any, ...optionalParams: any[]) => void;
|
|
25
34
|
error: (message?: any, ...optionalParams: any[]) => void;
|
|
26
35
|
};
|
|
27
36
|
createAacCodecPrivate: ({ audioObjectType, sampleRate, channelConfiguration, codecPrivate, }: {
|
|
@@ -736,27 +745,27 @@ export declare const MediaParserInternals: {
|
|
|
736
745
|
offset: number;
|
|
737
746
|
size: number;
|
|
738
747
|
iterator: import("./iterator/buffer-iterator").BufferIterator;
|
|
739
|
-
logLevel:
|
|
748
|
+
logLevel: MediaParserLogLevel;
|
|
740
749
|
contentLength: number;
|
|
741
750
|
}) => Promise<import("./containers/iso-base-media/stsd/stsd").StsdBox>;
|
|
742
751
|
makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHandlers, controller, onAudioTrack, onVideoTrack, contentLength, logLevel, mode, src, readerInterface, onDiscardedData, selectM3uStreamFn, selectM3uAssociatedPlaylistsFn, m3uPlaylistContext, contentType, name, callbacks, fieldsInReturnValue, mimeType, initialReaderInstance, makeSamplesStartAtZero, prefetchCache, }: {
|
|
743
752
|
hasAudioTrackHandlers: boolean;
|
|
744
753
|
hasVideoTrackHandlers: boolean;
|
|
745
754
|
controller: import("./controller/media-parser-controller").MediaParserController;
|
|
746
|
-
onAudioTrack: import("./webcodec-sample-types").
|
|
747
|
-
onVideoTrack: import("./webcodec-sample-types").
|
|
755
|
+
onAudioTrack: import("./webcodec-sample-types").MediaParserOnAudioTrack | null;
|
|
756
|
+
onVideoTrack: import("./webcodec-sample-types").MediaParserOnVideoTrack | null;
|
|
748
757
|
contentLength: number;
|
|
749
|
-
logLevel:
|
|
758
|
+
logLevel: MediaParserLogLevel;
|
|
750
759
|
mode: import("./options").ParseMediaMode;
|
|
751
760
|
src: import("./options").ParseMediaSrc;
|
|
752
|
-
readerInterface: import("./readers/reader").
|
|
761
|
+
readerInterface: import("./readers/reader").MediaParserReaderInterface;
|
|
753
762
|
onDiscardedData: import("./options").OnDiscardedData | null;
|
|
754
763
|
selectM3uStreamFn: import("./containers/m3u/select-stream").SelectM3uStreamFn;
|
|
755
764
|
selectM3uAssociatedPlaylistsFn: import("./containers/m3u/select-stream").SelectM3uAssociatedPlaylistsFn;
|
|
756
765
|
m3uPlaylistContext: import("./options").M3uPlaylistContext | null;
|
|
757
766
|
contentType: string | null;
|
|
758
767
|
name: string;
|
|
759
|
-
callbacks:
|
|
768
|
+
callbacks: ParseMediaCallbacks;
|
|
760
769
|
fieldsInReturnValue: import("./fields").Options<import("./fields").ParseMediaFields>;
|
|
761
770
|
mimeType: string | null;
|
|
762
771
|
initialReaderInstance: import("./readers/reader").Reader;
|
|
@@ -789,8 +798,8 @@ export declare const MediaParserInternals: {
|
|
|
789
798
|
}> | Promise<null>;
|
|
790
799
|
};
|
|
791
800
|
sampleCounter: {
|
|
792
|
-
onAudioSample: (trackId: number, audioSample: import("./webcodec-sample-types").
|
|
793
|
-
onVideoSample: (trackId: number, videoSample: import("./webcodec-sample-types").
|
|
801
|
+
onAudioSample: (trackId: number, audioSample: import("./webcodec-sample-types").MediaParserAudioSample) => void;
|
|
802
|
+
onVideoSample: (trackId: number, videoSample: import("./webcodec-sample-types").MediaParserVideoSample) => void;
|
|
794
803
|
getSamplesForTrack: (trackId: number) => number;
|
|
795
804
|
setSamplesFromSeek: (samples: Record<number, number>) => void;
|
|
796
805
|
riffKeys: {
|
|
@@ -822,8 +831,8 @@ export declare const MediaParserInternals: {
|
|
|
822
831
|
};
|
|
823
832
|
resetBeforeSeek: () => void;
|
|
824
833
|
lastEmittedSample: {
|
|
825
|
-
setLastEmittedSample: (sample: import("./webcodec-sample-types").
|
|
826
|
-
getLastEmittedSample: () => import("./webcodec-sample-types").
|
|
834
|
+
setLastEmittedSample: (sample: import("./webcodec-sample-types").MediaParserAudioSample | import("./webcodec-sample-types").MediaParserVideoSample) => void;
|
|
835
|
+
getLastEmittedSample: () => import("./webcodec-sample-types").MediaParserAudioSample | import("./webcodec-sample-types").MediaParserVideoSample | null;
|
|
827
836
|
resetLastEmittedSample: () => void;
|
|
828
837
|
};
|
|
829
838
|
};
|
|
@@ -930,10 +939,10 @@ export declare const MediaParserInternals: {
|
|
|
930
939
|
m3u: {
|
|
931
940
|
setSelectedMainPlaylist: (stream: import("./state/m3u-state").M3uStreamOrInitialUrl) => void;
|
|
932
941
|
getSelectedMainPlaylist: () => import("./state/m3u-state").M3uStreamOrInitialUrl | null;
|
|
933
|
-
setHasEmittedVideoTrack: (src: string, callback: import("./webcodec-sample-types").
|
|
934
|
-
hasEmittedVideoTrack: (src: string) => false | import("./webcodec-sample-types").
|
|
935
|
-
setHasEmittedAudioTrack: (src: string, callback: import("./webcodec-sample-types").
|
|
936
|
-
hasEmittedAudioTrack: (src: string) => false | import("./webcodec-sample-types").
|
|
942
|
+
setHasEmittedVideoTrack: (src: string, callback: import("./webcodec-sample-types").MediaParserOnVideoSample | null) => void;
|
|
943
|
+
hasEmittedVideoTrack: (src: string) => false | import("./webcodec-sample-types").MediaParserOnVideoSample | null;
|
|
944
|
+
setHasEmittedAudioTrack: (src: string, callback: import("./webcodec-sample-types").MediaParserOnAudioSample | null) => void;
|
|
945
|
+
hasEmittedAudioTrack: (src: string) => false | import("./webcodec-sample-types").MediaParserOnAudioSample | null;
|
|
937
946
|
setHasEmittedDoneWithTracks: (src: string) => void;
|
|
938
947
|
hasEmittedDoneWithTracks: (src: string) => boolean;
|
|
939
948
|
setReadyToIterateOverM3u: () => void;
|
|
@@ -956,12 +965,12 @@ export declare const MediaParserInternals: {
|
|
|
956
965
|
sampleSorter: {
|
|
957
966
|
clearSamples: () => void;
|
|
958
967
|
addToStreamWithTrack: (src: string) => void;
|
|
959
|
-
addVideoStreamToConsider: (src: string, callback: import("./webcodec-sample-types").
|
|
960
|
-
addAudioStreamToConsider: (src: string, callback: import("./webcodec-sample-types").
|
|
968
|
+
addVideoStreamToConsider: (src: string, callback: import("./webcodec-sample-types").MediaParserOnVideoSample) => void;
|
|
969
|
+
addAudioStreamToConsider: (src: string, callback: import("./webcodec-sample-types").MediaParserOnAudioSample) => void;
|
|
961
970
|
hasAudioStreamToConsider: (src: string) => boolean;
|
|
962
971
|
hasVideoStreamToConsider: (src: string) => boolean;
|
|
963
|
-
addAudioSample: (src: string, sample: import("./webcodec-sample-types").
|
|
964
|
-
addVideoSample: (src: string, sample: import("./webcodec-sample-types").
|
|
972
|
+
addAudioSample: (src: string, sample: import("./webcodec-sample-types").MediaParserAudioSample) => Promise<void>;
|
|
973
|
+
addVideoSample: (src: string, sample: import("./webcodec-sample-types").MediaParserVideoSample) => Promise<void>;
|
|
965
974
|
getNextStreamToRun: (streams: string[]) => string;
|
|
966
975
|
};
|
|
967
976
|
setMp4HeaderSegment: (playlistUrl: string, structure: import("./parse-result").IsoBaseMediaStructure) => void;
|
|
@@ -983,24 +992,24 @@ export declare const MediaParserInternals: {
|
|
|
983
992
|
timeFreeingData: number;
|
|
984
993
|
};
|
|
985
994
|
callbacks: {
|
|
986
|
-
registerVideoSampleCallback: (id: number, callback: import("./webcodec-sample-types").
|
|
987
|
-
onAudioSample: (trackId: number, audioSample: import("./webcodec-sample-types").
|
|
988
|
-
onVideoSample: (trackId: number, videoSample: import("./webcodec-sample-types").
|
|
995
|
+
registerVideoSampleCallback: (id: number, callback: import("./webcodec-sample-types").MediaParserOnVideoSample | null) => Promise<void>;
|
|
996
|
+
onAudioSample: (trackId: number, audioSample: import("./webcodec-sample-types").MediaParserAudioSample) => Promise<void>;
|
|
997
|
+
onVideoSample: (trackId: number, videoSample: import("./webcodec-sample-types").MediaParserVideoSample) => Promise<void>;
|
|
989
998
|
canSkipTracksState: {
|
|
990
999
|
doFieldsNeedTracks: () => boolean;
|
|
991
1000
|
canSkipTracks: () => boolean;
|
|
992
1001
|
};
|
|
993
|
-
registerAudioSampleCallback: (id: number, callback: import("./webcodec-sample-types").
|
|
1002
|
+
registerAudioSampleCallback: (id: number, callback: import("./webcodec-sample-types").MediaParserOnAudioSample | null) => Promise<void>;
|
|
994
1003
|
tracks: {
|
|
995
1004
|
hasAllTracks: () => boolean;
|
|
996
1005
|
getIsDone: () => boolean;
|
|
997
|
-
setIsDone: (logLevel:
|
|
998
|
-
addTrack: (track: import("./get-tracks").
|
|
999
|
-
getTracks: () => import("./get-tracks").
|
|
1006
|
+
setIsDone: (logLevel: MediaParserLogLevel) => void;
|
|
1007
|
+
addTrack: (track: import("./get-tracks").MediaParserTrack) => void;
|
|
1008
|
+
getTracks: () => import("./get-tracks").MediaParserTrack[];
|
|
1000
1009
|
ensureHasTracksAtEnd: (fields: import("./fields").Options<import("./fields").ParseMediaFields>) => void;
|
|
1001
1010
|
};
|
|
1002
|
-
audioSampleCallbacks: Record<number, import("./webcodec-sample-types").
|
|
1003
|
-
videoSampleCallbacks: Record<number, import("./webcodec-sample-types").
|
|
1011
|
+
audioSampleCallbacks: Record<number, import("./webcodec-sample-types").MediaParserOnAudioSample>;
|
|
1012
|
+
videoSampleCallbacks: Record<number, import("./webcodec-sample-types").MediaParserOnVideoSample>;
|
|
1004
1013
|
hasAudioTrackHandlers: boolean;
|
|
1005
1014
|
hasVideoTrackHandlers: boolean;
|
|
1006
1015
|
};
|
|
@@ -1025,13 +1034,13 @@ export declare const MediaParserInternals: {
|
|
|
1025
1034
|
getWavStructure: () => import("./containers/wav/types").WavStructure;
|
|
1026
1035
|
getMatroskaStructure: () => import("./parse-result").MatroskaStructure;
|
|
1027
1036
|
};
|
|
1028
|
-
onAudioTrack: import("./webcodec-sample-types").
|
|
1029
|
-
onVideoTrack: import("./webcodec-sample-types").
|
|
1037
|
+
onAudioTrack: import("./webcodec-sample-types").MediaParserOnAudioTrack | null;
|
|
1038
|
+
onVideoTrack: import("./webcodec-sample-types").MediaParserOnVideoTrack | null;
|
|
1030
1039
|
emittedFields: import("./fields").AllOptions<import("./fields").ParseMediaFields>;
|
|
1031
1040
|
fields: Partial<import("./fields").AllOptions<import("./fields").ParseMediaFields>>;
|
|
1032
1041
|
samplesObserved: {
|
|
1033
|
-
addVideoSample: (videoSample: import("./webcodec-sample-types").
|
|
1034
|
-
addAudioSample: (audioSample: import("./webcodec-sample-types").
|
|
1042
|
+
addVideoSample: (videoSample: import("./webcodec-sample-types").MediaParserVideoSample) => void;
|
|
1043
|
+
addAudioSample: (audioSample: import("./webcodec-sample-types").MediaParserAudioSample) => void;
|
|
1035
1044
|
getSlowDurationInSeconds: () => number;
|
|
1036
1045
|
getFps: () => number;
|
|
1037
1046
|
getSlowNumberOfFrames: () => number;
|
|
@@ -1137,14 +1146,43 @@ export declare const MediaParserInternals: {
|
|
|
1137
1146
|
controller: import("./controller/media-parser-controller").MediaParserController;
|
|
1138
1147
|
mode: import("./options").ParseMediaMode;
|
|
1139
1148
|
src: import("./options").ParseMediaSrc;
|
|
1140
|
-
readerInterface: import("./readers/reader").
|
|
1149
|
+
readerInterface: import("./readers/reader").MediaParserReaderInterface;
|
|
1141
1150
|
discardReadBytes: (force: boolean) => Promise<void>;
|
|
1142
1151
|
selectM3uStreamFn: import("./containers/m3u/select-stream").SelectM3uStreamFn;
|
|
1143
1152
|
selectM3uAssociatedPlaylistsFn: import("./containers/m3u/select-stream").SelectM3uAssociatedPlaylistsFn;
|
|
1144
1153
|
m3uPlaylistContext: import("./options").M3uPlaylistContext | null;
|
|
1145
1154
|
contentType: string | null;
|
|
1146
1155
|
name: string;
|
|
1147
|
-
returnValue:
|
|
1156
|
+
returnValue: {
|
|
1157
|
+
dimensions: import("./get-dimensions").MediaParserDimensions | null;
|
|
1158
|
+
durationInSeconds: number | null;
|
|
1159
|
+
slowDurationInSeconds: number;
|
|
1160
|
+
slowNumberOfFrames: number;
|
|
1161
|
+
slowFps: number;
|
|
1162
|
+
slowStructure: import("./parse-result").MediaParserStructureUnstable;
|
|
1163
|
+
fps: number | null;
|
|
1164
|
+
videoCodec: import("./get-tracks").MediaParserVideoCodec | null;
|
|
1165
|
+
audioCodec: import("./get-tracks").MediaParserAudioCodec | null;
|
|
1166
|
+
tracks: import("./get-tracks").MediaParserTrack[];
|
|
1167
|
+
rotation: number | null;
|
|
1168
|
+
unrotatedDimensions: import("./get-dimensions").MediaParserDimensions | null;
|
|
1169
|
+
internalStats: import("./state/parser-state").InternalStats;
|
|
1170
|
+
size: number | null;
|
|
1171
|
+
name: string;
|
|
1172
|
+
container: import("./options").MediaParserContainer;
|
|
1173
|
+
isHdr: boolean;
|
|
1174
|
+
metadata: import("./metadata/get-metadata").MediaParserMetadataEntry[];
|
|
1175
|
+
location: import("./get-location").MediaParserLocation | null;
|
|
1176
|
+
mimeType: string | null;
|
|
1177
|
+
keyframes: import("./options").MediaParserKeyframe[] | null;
|
|
1178
|
+
slowKeyframes: import("./options").MediaParserKeyframe[];
|
|
1179
|
+
images: import("./state/images").MediaParserEmbeddedImage[];
|
|
1180
|
+
sampleRate: number | null;
|
|
1181
|
+
numberOfAudioChannels: number | null;
|
|
1182
|
+
slowVideoBitrate: number | null;
|
|
1183
|
+
slowAudioBitrate: number | null;
|
|
1184
|
+
m3uStreams: import("./containers/m3u/get-streams").M3uStream[] | null;
|
|
1185
|
+
};
|
|
1148
1186
|
callbackFunctions: Partial<import("./options").ParseMediaCallbacksMandatory>;
|
|
1149
1187
|
fieldsInReturnValue: Partial<import("./fields").AllOptions<import("./fields").ParseMediaFields>>;
|
|
1150
1188
|
mimeType: string | null;
|
|
@@ -1162,7 +1200,7 @@ export declare const MediaParserInternals: {
|
|
|
1162
1200
|
};
|
|
1163
1201
|
processSample: ({ iterator, logLevel, contentLength, }: {
|
|
1164
1202
|
iterator: import("./iterator/buffer-iterator").BufferIterator;
|
|
1165
|
-
logLevel:
|
|
1203
|
+
logLevel: MediaParserLogLevel;
|
|
1166
1204
|
contentLength: number;
|
|
1167
1205
|
}) => Promise<{
|
|
1168
1206
|
sample: import("./containers/iso-base-media/stsd/samples").Sample | null;
|
|
@@ -1172,7 +1210,7 @@ export declare const MediaParserInternals: {
|
|
|
1172
1210
|
size: number;
|
|
1173
1211
|
offset: number;
|
|
1174
1212
|
}) => import("./containers/iso-base-media/ftyp").FtypBox;
|
|
1175
|
-
parseEbml: (iterator: import("./iterator/buffer-iterator").BufferIterator, statesForProcessing: import("./containers/webm/state-for-processing").WebmRequiredStatesForProcessing | null) => Promise<import("./containers/webm/parse-ebml").Prettify<
|
|
1213
|
+
parseEbml: (iterator: import("./iterator/buffer-iterator").BufferIterator, statesForProcessing: import("./containers/webm/state-for-processing").WebmRequiredStatesForProcessing | null) => Promise<import("./containers/webm/parse-ebml").Prettify<PossibleEbml>>;
|
|
1176
1214
|
parseMvhd: ({ iterator, offset, size, }: {
|
|
1177
1215
|
iterator: import("./iterator/buffer-iterator").BufferIterator;
|
|
1178
1216
|
offset: number;
|
|
@@ -1181,11 +1219,32 @@ export declare const MediaParserInternals: {
|
|
|
1181
1219
|
internalParseMedia: import("./options").InternalParseMedia;
|
|
1182
1220
|
fieldsNeedSamplesMap: Record<keyof import("./fields").AllOptions<import("./fields").ParseMediaFields>, boolean>;
|
|
1183
1221
|
};
|
|
1184
|
-
export type {
|
|
1185
|
-
export type { Ebml, EbmlValue, FloatWithSize, MainSegment, PossibleEbml, TrackEntry, UintWithSize, } from './containers/webm/segments/all-segments';
|
|
1186
|
-
export { MediaParserStructureUnstable } from './parse-result';
|
|
1187
|
-
export type { LogLevel };
|
|
1222
|
+
export type { MediaParserLogLevel };
|
|
1188
1223
|
export { M3uAssociatedPlaylist, M3uStream } from './containers/m3u/get-streams';
|
|
1189
1224
|
export { defaultSelectM3uAssociatedPlaylists, defaultSelectM3uStreamFn, SelectM3uAssociatedPlaylistsFn, SelectM3uStreamFn, SelectM3uStreamFnOptions, } from './containers/m3u/select-stream';
|
|
1190
1225
|
export { mediaParserController, MediaParserController, } from './controller/media-parser-controller';
|
|
1191
1226
|
export { VERSION } from './version';
|
|
1227
|
+
export type { MediaParserSampleAspectRatio } from './get-tracks';
|
|
1228
|
+
/**
|
|
1229
|
+
* @deprecated Dont use these yet.
|
|
1230
|
+
*/
|
|
1231
|
+
export type MediaParserInternalTypes = {
|
|
1232
|
+
SamplePosition: SamplePosition;
|
|
1233
|
+
MatroskaSegment: MatroskaSegment;
|
|
1234
|
+
MatroskaElement: MatroskaElement;
|
|
1235
|
+
WriterInterface: WriterInterface;
|
|
1236
|
+
CreateContent: CreateContent;
|
|
1237
|
+
Writer: Writer;
|
|
1238
|
+
Ebml: Ebml;
|
|
1239
|
+
FloatWithSize: FloatWithSize;
|
|
1240
|
+
MainSegment: MainSegment;
|
|
1241
|
+
PossibleEbml: PossibleEbml;
|
|
1242
|
+
TrackEntry: TrackEntry;
|
|
1243
|
+
UintWithSize: UintWithSize;
|
|
1244
|
+
ParseMediaCallbacks: ParseMediaCallbacks;
|
|
1245
|
+
};
|
|
1246
|
+
/**
|
|
1247
|
+
* @deprecated Dont use this yet.
|
|
1248
|
+
*/
|
|
1249
|
+
type _InternalEbmlValue<T extends Ebml, Child = PossibleEbml> = EbmlValue<T, Child>;
|
|
1250
|
+
export { _InternalEbmlValue };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VERSION = exports.mediaParserController = exports.defaultSelectM3uStreamFn = exports.defaultSelectM3uAssociatedPlaylists = exports.MediaParserInternals = exports.
|
|
3
|
+
exports.VERSION = exports.mediaParserController = exports.defaultSelectM3uStreamFn = exports.defaultSelectM3uAssociatedPlaylists = exports.MediaParserInternals = exports.downloadAndParseMedia = exports.MediaParserAbortError = exports.IsAPdfError = exports.IsAnUnsupportedFileTypeError = exports.IsAnImageError = exports.hasBeenAborted = exports.parseMedia = void 0;
|
|
4
4
|
const aac_codecprivate_1 = require("./aac-codecprivate");
|
|
5
5
|
const ftyp_1 = require("./containers/iso-base-media/ftyp");
|
|
6
6
|
const mvhd_1 = require("./containers/iso-base-media/mvhd");
|
|
@@ -14,17 +14,19 @@ const buffer_iterator_1 = require("./iterator/buffer-iterator");
|
|
|
14
14
|
const log_1 = require("./log");
|
|
15
15
|
const need_samples_for_fields_1 = require("./state/need-samples-for-fields");
|
|
16
16
|
const parser_state_1 = require("./state/parser-state");
|
|
17
|
+
var parse_media_1 = require("./parse-media");
|
|
18
|
+
Object.defineProperty(exports, "parseMedia", { enumerable: true, get: function () { return parse_media_1.parseMedia; } });
|
|
17
19
|
var errors_1 = require("./errors");
|
|
18
20
|
Object.defineProperty(exports, "hasBeenAborted", { enumerable: true, get: function () { return errors_1.hasBeenAborted; } });
|
|
19
|
-
Object.defineProperty(exports, "IsAGifError", { enumerable: true, get: function () { return errors_1.IsAGifError; } });
|
|
20
21
|
Object.defineProperty(exports, "IsAnImageError", { enumerable: true, get: function () { return errors_1.IsAnImageError; } });
|
|
21
22
|
Object.defineProperty(exports, "IsAnUnsupportedFileTypeError", { enumerable: true, get: function () { return errors_1.IsAnUnsupportedFileTypeError; } });
|
|
22
23
|
Object.defineProperty(exports, "IsAPdfError", { enumerable: true, get: function () { return errors_1.IsAPdfError; } });
|
|
23
24
|
Object.defineProperty(exports, "MediaParserAbortError", { enumerable: true, get: function () { return errors_1.MediaParserAbortError; } });
|
|
24
25
|
var download_and_parse_media_1 = require("./download-and-parse-media");
|
|
25
26
|
Object.defineProperty(exports, "downloadAndParseMedia", { enumerable: true, get: function () { return download_and_parse_media_1.downloadAndParseMedia; } });
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated Dont use these yet.
|
|
29
|
+
*/
|
|
28
30
|
exports.MediaParserInternals = {
|
|
29
31
|
Log: log_1.Log,
|
|
30
32
|
createAacCodecPrivate: aac_codecprivate_1.createAacCodecPrivate,
|
package/dist/init-video.js
CHANGED
|
@@ -25,7 +25,7 @@ const initVideo = async ({ state }) => {
|
|
|
25
25
|
throw new Error('No moov box found');
|
|
26
26
|
}
|
|
27
27
|
const tracks = (0, get_tracks_1.getTracksFromMoovBox)(moovAtom);
|
|
28
|
-
for (const track of tracks.
|
|
28
|
+
for (const track of tracks.filter((t) => t.type === 'video')) {
|
|
29
29
|
await (0, register_track_1.registerVideoTrack)({
|
|
30
30
|
track,
|
|
31
31
|
container: 'mp4',
|
|
@@ -35,7 +35,7 @@ const initVideo = async ({ state }) => {
|
|
|
35
35
|
tracks: state.callbacks.tracks,
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
|
-
for (const track of tracks.
|
|
38
|
+
for (const track of tracks.filter((t) => t.type === 'audio')) {
|
|
39
39
|
await (0, register_track_1.registerAudioTrack)({
|
|
40
40
|
track,
|
|
41
41
|
container: 'mp4',
|
|
@@ -123,14 +123,6 @@ const initVideo = async ({ state }) => {
|
|
|
123
123
|
});
|
|
124
124
|
return;
|
|
125
125
|
}
|
|
126
|
-
if (fileType.type === 'gif') {
|
|
127
|
-
return Promise.reject(new errors_1.IsAGifError({
|
|
128
|
-
message: 'GIF files are not yet supported',
|
|
129
|
-
mimeType,
|
|
130
|
-
sizeInBytes: contentLength,
|
|
131
|
-
fileName: name,
|
|
132
|
-
}));
|
|
133
|
-
}
|
|
134
126
|
if (fileType.type === 'pdf') {
|
|
135
127
|
return Promise.reject(new errors_1.IsAPdfError({
|
|
136
128
|
message: 'GIF files are not supported',
|
|
@@ -142,7 +134,8 @@ const initVideo = async ({ state }) => {
|
|
|
142
134
|
if (fileType.type === 'bmp' ||
|
|
143
135
|
fileType.type === 'jpeg' ||
|
|
144
136
|
fileType.type === 'png' ||
|
|
145
|
-
fileType.type === 'webp'
|
|
137
|
+
fileType.type === 'webp' ||
|
|
138
|
+
fileType.type === 'gif') {
|
|
146
139
|
return Promise.reject(new errors_1.IsAnImageError({
|
|
147
140
|
message: 'Image files are not supported',
|
|
148
141
|
imageType: fileType.type,
|
|
@@ -104,7 +104,7 @@ const internalParseMedia = async function ({ src, fields: _fieldsInReturnValue,
|
|
|
104
104
|
if (state.errored) {
|
|
105
105
|
throw state.errored;
|
|
106
106
|
}
|
|
107
|
-
if (state.controller._internals.seekSignal.getSeek()) {
|
|
107
|
+
if (state.controller._internals.seekSignal.getSeek() !== null) {
|
|
108
108
|
throw new Error('Should not finish while a seek is pending');
|
|
109
109
|
}
|
|
110
110
|
return state.returnValue;
|
package/dist/log.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export declare const logLevels: readonly ["trace", "verbose", "info", "warn", "error"];
|
|
2
|
-
export type
|
|
3
|
-
export declare const isEqualOrBelowLogLevel: (currentLevel:
|
|
2
|
+
export type MediaParserLogLevel = (typeof logLevels)[number];
|
|
3
|
+
export declare const isEqualOrBelowLogLevel: (currentLevel: MediaParserLogLevel, level: MediaParserLogLevel) => boolean;
|
|
4
4
|
export declare const Log: {
|
|
5
|
-
trace: (logLevel:
|
|
6
|
-
verbose: (logLevel:
|
|
7
|
-
info: (logLevel:
|
|
8
|
-
warn: (logLevel:
|
|
5
|
+
trace: (logLevel: MediaParserLogLevel, message?: any, ...optionalParams: any[]) => void;
|
|
6
|
+
verbose: (logLevel: MediaParserLogLevel, message?: any, ...optionalParams: any[]) => void;
|
|
7
|
+
info: (logLevel: MediaParserLogLevel, message?: any, ...optionalParams: any[]) => void;
|
|
8
|
+
warn: (logLevel: MediaParserLogLevel, message?: any, ...optionalParams: any[]) => void;
|
|
9
9
|
error: (message?: any, ...optionalParams: any[]) => void;
|
|
10
10
|
};
|
|
@@ -50,12 +50,17 @@ const hasMetadata = (structure) => {
|
|
|
50
50
|
if (structure.type === 'wav') {
|
|
51
51
|
return (0, get_metadata_from_wav_1.getMetadataFromWav)(structure) !== null;
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
// M3U, Transport Stream, AAC cannot store any metadata
|
|
54
|
+
if (structure.type === 'm3u' ||
|
|
55
|
+
structure.type === 'transport-stream' ||
|
|
56
|
+
structure.type === 'aac') {
|
|
54
57
|
return true;
|
|
55
58
|
}
|
|
56
59
|
if (structure.type === 'flac') {
|
|
57
60
|
return (0, get_metadata_from_flac_1.getMetadataFromFlac)(structure) !== null;
|
|
58
61
|
}
|
|
62
|
+
// The following containers (MP4, Matroska, AVI) all have mechanisms
|
|
63
|
+
// to skip over video sections, and tests for it in read-metadata.test.ts
|
|
59
64
|
if (structure.type === 'iso-base-media') {
|
|
60
65
|
return false;
|
|
61
66
|
}
|
|
@@ -65,9 +70,6 @@ const hasMetadata = (structure) => {
|
|
|
65
70
|
if (structure.type === 'riff') {
|
|
66
71
|
return false;
|
|
67
72
|
}
|
|
68
|
-
if (structure.type === 'aac') {
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
73
|
throw new Error('Unknown container ' + structure);
|
|
72
74
|
};
|
|
73
75
|
exports.hasMetadata = hasMetadata;
|