@remotion/media-parser 4.0.286 → 4.0.288
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/containers/flac/get-channel-count.d.ts +1 -1
- package/dist/containers/flac/get-seeking-byte.d.ts +6 -0
- package/dist/containers/flac/get-seeking-byte.js +26 -0
- package/dist/containers/flac/parse-meta.d.ts +6 -0
- package/dist/containers/flac/parse-meta.js +31 -0
- package/dist/containers/flac/seeking-hints.d.ts +15 -0
- package/dist/containers/flac/seeking-hints.js +19 -0
- package/dist/containers/iso-base-media/collect-sample-positions-from-moof-boxes.d.ts +2 -2
- package/dist/containers/iso-base-media/collect-sample-positions-from-moof-boxes.js +6 -3
- package/dist/containers/iso-base-media/collect-sample-positions-from-trak.js +7 -5
- package/dist/containers/iso-base-media/get-keyframes.js +1 -1
- package/dist/containers/iso-base-media/get-sample-positions-from-track.d.ts +2 -2
- package/dist/containers/iso-base-media/get-seeking-byte.d.ts +15 -0
- package/dist/containers/iso-base-media/{get-seeking-from-mp4.js → get-seeking-byte.js} +16 -2
- package/dist/containers/iso-base-media/mdat/mdat.js +13 -5
- package/dist/containers/iso-base-media/mdat/postprocess-bytes.d.ts +5 -0
- package/dist/containers/iso-base-media/mdat/postprocess-bytes.js +25 -0
- package/dist/containers/iso-base-media/process-box.js +5 -3
- package/dist/containers/iso-base-media/{get-seeking-info-from-mp4.d.ts → seeking-hints.d.ts} +8 -3
- package/dist/containers/iso-base-media/seeking-hints.js +53 -0
- package/dist/containers/iso-base-media/should-group-audio-samples.d.ts +6 -0
- package/dist/containers/iso-base-media/should-group-audio-samples.js +16 -0
- package/dist/containers/iso-base-media/traversal.d.ts +4 -2
- package/dist/containers/iso-base-media/traversal.js +6 -5
- package/dist/containers/m3u/iterate-over-segment-files.js +23 -20
- package/dist/containers/riff/parse-video-section.js +1 -1
- package/dist/containers/transport-stream/handle-aac-packet.js +4 -1
- package/dist/containers/transport-stream/handle-avc-packet.js +4 -1
- package/dist/containers/transport-stream/seeking-hints.d.ts +9 -0
- package/dist/containers/transport-stream/seeking-hints.js +26 -0
- package/dist/containers/wav/get-seeking-byte.d.ts +2 -2
- package/dist/containers/wav/get-seeking-byte.js +2 -2
- package/dist/containers/wav/seeking-hints.d.ts +12 -0
- package/dist/containers/wav/seeking-hints.js +25 -0
- package/dist/containers/webm/seek/get-seeking-byte.d.ts +3 -5
- package/dist/containers/webm/seek/get-seeking-byte.js +5 -5
- package/dist/containers/webm/seek/seeking-hints.d.ts +10 -0
- package/dist/containers/webm/seek/seeking-hints.js +28 -0
- package/dist/controller/media-parser-controller.d.ts +3 -0
- package/dist/controller/media-parser-controller.js +15 -0
- package/dist/download-and-parse-media.js +2 -1
- package/dist/emit-available-info.js +1 -1
- package/dist/esm/index.mjs +491 -208
- package/dist/esm/node-writer.mjs +1 -2
- package/dist/esm/node.mjs +1 -2
- package/dist/esm/server-worker.mjs +46 -1
- package/dist/esm/universal.mjs +2 -4
- package/dist/esm/web.mjs +1 -2
- package/dist/esm/worker-server-entry.mjs +527 -215
- package/dist/esm/worker-web-entry.mjs +526 -213
- package/dist/esm/worker.mjs +46 -1
- package/dist/{forward-controller.d.ts → forward-controller-pause-resume-abort.d.ts} +1 -1
- package/dist/{forward-controller.js → forward-controller-pause-resume-abort.js} +3 -3
- package/dist/get-audio-codec.d.ts +1 -0
- package/dist/get-audio-codec.js +15 -4
- package/dist/get-dimensions.js +1 -1
- package/dist/get-duration.js +3 -2
- package/dist/get-fps.js +1 -0
- package/dist/get-is-hdr.js +2 -2
- package/dist/get-keyframes.js +1 -1
- package/dist/get-sample-positions-from-mp4.d.ts +4 -1
- package/dist/get-sample-positions-from-mp4.js +3 -1
- package/dist/get-sample-positions.d.ts +2 -0
- package/dist/get-sample-positions.js +2 -0
- package/dist/get-seeking-byte.d.ts +7 -5
- package/dist/get-seeking-byte.js +13 -12
- package/dist/{get-seeking-info.d.ts → get-seeking-hints.d.ts} +7 -3
- package/dist/get-seeking-hints.js +35 -0
- package/dist/get-tracks.d.ts +4 -4
- package/dist/get-tracks.js +8 -6
- package/dist/get-video-codec.js +2 -2
- package/dist/has-all-info.js +1 -1
- package/dist/index.d.ts +31 -3
- package/dist/internal-parse-media.js +16 -1
- package/dist/iterator/buffer-iterator.js +3 -4
- package/dist/metadata/metadata-from-iso.js +1 -0
- package/dist/options.d.ts +2 -0
- package/dist/parse-media-on-worker-entry.js +51 -1
- package/dist/parse-media.js +2 -1
- package/dist/samples-from-moof.d.ts +2 -2
- package/dist/samples-from-moof.js +7 -8
- package/dist/seeking-hints.d.ts +39 -0
- package/dist/set-seeking-hints.d.ts +6 -0
- package/dist/set-seeking-hints.js +27 -0
- package/dist/state/audio-sample-map.d.ts +11 -0
- package/dist/state/audio-sample-map.js +21 -0
- package/dist/state/has-tracks-section.js +3 -1
- package/dist/state/iso-base-media/cached-sample-positions.js +1 -1
- package/dist/state/iso-base-media/iso-state.d.ts +18 -2
- package/dist/state/iso-base-media/iso-state.js +4 -0
- package/dist/state/iso-base-media/lazy-mfra-load.d.ts +3 -0
- package/dist/state/iso-base-media/lazy-mfra-load.js +13 -0
- package/dist/state/iso-base-media/moov-box.d.ts +7 -2
- package/dist/state/iso-base-media/moov-box.js +1 -1
- package/dist/state/iso-base-media/precomputed-moof.d.ts +11 -0
- package/dist/state/iso-base-media/precomputed-moof.js +28 -0
- package/dist/state/iso-base-media/precomputed-tfra.d.ts +6 -0
- package/dist/state/iso-base-media/precomputed-tfra.js +17 -0
- package/dist/state/keyframes.d.ts +2 -0
- package/dist/state/keyframes.js +17 -9
- package/dist/state/matroska/lazy-cues-fetch.d.ts +7 -1
- package/dist/state/matroska/lazy-cues-fetch.js +21 -0
- package/dist/state/matroska/webm.d.ts +7 -0
- package/dist/state/matroska/webm.js +9 -1
- package/dist/state/parser-state.d.ts +31 -3
- package/dist/state/samples-observed/slow-duration-fps.js +0 -3
- package/dist/state/transport-stream/observed-pes-header.d.ts +2 -0
- package/dist/state/transport-stream/observed-pes-header.js +22 -12
- package/dist/state/transport-stream/pts-start-offset.d.ts +4 -1
- package/dist/state/transport-stream/pts-start-offset.js +1 -1
- package/dist/state/transport-stream/transport-stream.d.ts +5 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/with-resolvers.d.ts +5 -0
- package/dist/work-on-seek-request.js +8 -5
- package/dist/worker/{forward-controller.js → forward-controller-to-worker.js} +17 -0
- package/dist/worker/serialize-error.d.ts +6 -1
- package/dist/worker/serialize-error.js +2 -1
- package/dist/worker/worker-types.d.ts +12 -2
- package/dist/worker-server.js +16 -5
- package/package.json +3 -3
- package/dist/containers/iso-base-media/get-mfra-atom.d.ts +0 -9
- package/dist/containers/iso-base-media/get-mfra-atom.js +0 -12
- package/dist/containers/iso-base-media/get-seeking-from-mp4.d.ts +0 -11
- package/dist/containers/iso-base-media/get-seeking-info-from-mp4.js +0 -25
- package/dist/containers/iso-base-media/mfra/mfra.d.ts +0 -2
- package/dist/containers/iso-base-media/mfra/mfra.js +0 -11
- package/dist/containers/transport-stream/get-seeking-info.d.ts +0 -4
- package/dist/containers/transport-stream/get-seeking-info.js +0 -17
- package/dist/containers/transport-stream/next-pes-header-store.d.ts +0 -6
- package/dist/containers/transport-stream/next-pes-header-store.js +0 -18
- package/dist/containers/transport-stream/start-offset.d.ts +0 -4
- package/dist/containers/transport-stream/start-offset.js +0 -13
- package/dist/containers/wav/get-seeking-info.d.ts +0 -7
- package/dist/containers/wav/get-seeking-info.js +0 -20
- package/dist/containers/wav/parse-video-section.d.ts +0 -5
- package/dist/containers/wav/parse-video-section.js +0 -41
- package/dist/containers/webm/cues/fetch-web-cues.d.ts +0 -12
- package/dist/containers/webm/cues/fetch-web-cues.js +0 -32
- package/dist/containers/webm/cues/format-cues.d.ts +0 -8
- package/dist/containers/webm/cues/format-cues.js +0 -41
- package/dist/containers/webm/cues/get-seeking-byte.d.ts +0 -14
- package/dist/containers/webm/cues/get-seeking-byte.js +0 -91
- package/dist/containers/webm/fetch-web-cues.d.ts +0 -12
- package/dist/containers/webm/fetch-web-cues.js +0 -29
- package/dist/containers/webm/get-seeking-byte.d.ts +0 -14
- package/dist/containers/webm/get-seeking-byte.js +0 -91
- package/dist/containers/webm/get-seeking-info.d.ts +0 -3
- package/dist/containers/webm/get-seeking-info.js +0 -17
- package/dist/containers/webm/seek/get-seeking-info.d.ts +0 -3
- package/dist/containers/webm/seek/get-seeking-info.js +0 -17
- package/dist/emitter.d.ts +0 -33
- package/dist/emitter.js +0 -65
- package/dist/get-sample-positions-from-lpcm.d.ts +0 -3
- package/dist/get-sample-positions-from-lpcm.js +0 -46
- package/dist/get-seeking-info.js +0 -35
- package/dist/media-parser-controller.d.ts +0 -21
- package/dist/media-parser-controller.js +0 -38
- package/dist/pause-signal.d.ts +0 -11
- package/dist/pause-signal.js +0 -38
- package/dist/readers/state/aac-state.d.ts +0 -13
- package/dist/readers/state/aac-state.js +0 -17
- package/dist/readers/state/can-skip-tracks.d.ts +0 -16
- package/dist/readers/state/can-skip-tracks.js +0 -60
- package/dist/readers/state/current-reader.d.ts +0 -6
- package/dist/readers/state/current-reader.js +0 -13
- package/dist/readers/state/emitted-fields.d.ts +0 -1
- package/dist/readers/state/emitted-fields.js +0 -37
- package/dist/readers/state/flac-state.d.ts +0 -4
- package/dist/readers/state/flac-state.js +0 -13
- package/dist/readers/state/has-tracks-section.d.ts +0 -14
- package/dist/readers/state/has-tracks-section.js +0 -37
- package/dist/readers/state/images.d.ts +0 -9
- package/dist/readers/state/images.js +0 -14
- package/dist/readers/state/iso-base-media/cached-sample-positions.d.ts +0 -12
- package/dist/readers/state/iso-base-media/cached-sample-positions.js +0 -46
- package/dist/readers/state/iso-base-media/iso-state.d.ts +0 -24
- package/dist/readers/state/iso-base-media/iso-state.js +0 -20
- package/dist/readers/state/iso-base-media/lazy-mfra-load.d.ts +0 -13
- package/dist/readers/state/iso-base-media/lazy-mfra-load.js +0 -29
- package/dist/readers/state/iso-base-media/moov-box.d.ts +0 -5
- package/dist/readers/state/iso-base-media/moov-box.js +0 -13
- package/dist/readers/state/keyframes.d.ts +0 -6
- package/dist/readers/state/keyframes.js +0 -15
- package/dist/readers/state/m3u-state.d.ts +0 -44
- package/dist/readers/state/m3u-state.js +0 -124
- package/dist/readers/state/may-skip-video-data.d.ts +0 -4
- package/dist/readers/state/may-skip-video-data.js +0 -18
- package/dist/readers/state/mp3.d.ts +0 -15
- package/dist/readers/state/mp3.js +0 -19
- package/dist/readers/state/need-samples-for-fields.d.ts +0 -6
- package/dist/readers/state/need-samples-for-fields.js +0 -39
- package/dist/readers/state/parser-state.d.ts +0 -252
- package/dist/readers/state/parser-state.js +0 -124
- package/dist/readers/state/riff.d.ts +0 -10
- package/dist/readers/state/riff.js +0 -32
- package/dist/readers/state/sample-callbacks.d.ts +0 -44
- package/dist/readers/state/sample-callbacks.js +0 -118
- package/dist/readers/state/seek-infinite-loop.d.ts +0 -5
- package/dist/readers/state/seek-infinite-loop.js +0 -22
- package/dist/readers/state/slow-duration-fps.d.ts +0 -11
- package/dist/readers/state/slow-duration-fps.js +0 -86
- package/dist/readers/state/structure.d.ts +0 -15
- package/dist/readers/state/structure.js +0 -78
- package/dist/readers/state/timings.d.ts +0 -8
- package/dist/readers/state/timings.js +0 -13
- package/dist/readers/state/transport-stream/last-emitted-sample.d.ts +0 -6
- package/dist/readers/state/transport-stream/last-emitted-sample.js +0 -16
- package/dist/readers/state/transport-stream/next-pes-header-store.d.ts +0 -6
- package/dist/readers/state/transport-stream/next-pes-header-store.js +0 -18
- package/dist/readers/state/transport-stream/start-offset.d.ts +0 -4
- package/dist/readers/state/transport-stream/start-offset.js +0 -13
- package/dist/readers/state/transport-stream/transport-stream.d.ts +0 -19
- package/dist/readers/state/transport-stream/transport-stream.js +0 -25
- package/dist/readers/state/video-section.d.ts +0 -33
- package/dist/readers/state/video-section.js +0 -65
- package/dist/readers/state/webm.d.ts +0 -28
- package/dist/readers/state/webm.js +0 -109
- package/dist/seek-signal.d.ts +0 -19
- package/dist/seek-signal.js +0 -24
- package/dist/seeking-info.d.ts +0 -31
- package/dist/server-worker.module.d.ts +0 -2
- package/dist/server-worker.module.js +0 -12
- package/dist/state/matroska/lazy-seek-fetch.d.ts +0 -1
- package/dist/state/matroska/lazy-seek-fetch.js +0 -5
- package/dist/state/matroska.d.ts +0 -0
- package/dist/state/matroska.js +0 -1
- package/dist/state/slow-duration-fps.d.ts +0 -11
- package/dist/state/slow-duration-fps.js +0 -86
- package/dist/state/transport-stream/start-offset.d.ts +0 -5
- package/dist/state/transport-stream/start-offset.js +0 -13
- package/dist/state/transport-stream.d.ts +0 -8
- package/dist/state/transport-stream.js +0 -11
- package/dist/state/uml.d.ts +0 -32
- package/dist/state/uml.js +0 -52
- package/dist/state/webm.d.ts +0 -30
- package/dist/state/webm.js +0 -109
- package/dist/state/work-on-seek-request-options.d.ts +0 -3
- package/dist/state/work-on-seek-request-options.js +0 -26
- package/dist/worker.module.d.ts +0 -4
- package/dist/worker.module.js +0 -12
- /package/dist/{seeking-info.js → seeking-hints.js} +0 -0
- /package/dist/worker/{forward-controller.d.ts → forward-controller-to-worker.d.ts} +0 -0
package/dist/get-seeking-info.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSeekingInfo = void 0;
|
|
4
|
-
const get_seeking_info_from_mp4_1 = require("./containers/iso-base-media/get-seeking-info-from-mp4");
|
|
5
|
-
const get_seeking_info_1 = require("./containers/transport-stream/get-seeking-info");
|
|
6
|
-
const get_seeking_info_2 = require("./containers/wav/get-seeking-info");
|
|
7
|
-
const get_seeking_info_3 = require("./containers/webm/seek/get-seeking-info");
|
|
8
|
-
const getSeekingInfo = ({ structureState, mp4HeaderSegment, mediaSectionState, isoState, transportStream, tracksState, }) => {
|
|
9
|
-
const structure = structureState.getStructureOrNull();
|
|
10
|
-
if (!structure) {
|
|
11
|
-
return null;
|
|
12
|
-
}
|
|
13
|
-
if (structure.type === 'iso-base-media') {
|
|
14
|
-
return (0, get_seeking_info_from_mp4_1.getSeekingInfoFromMp4)({
|
|
15
|
-
structureState,
|
|
16
|
-
isoState,
|
|
17
|
-
mp4HeaderSegment,
|
|
18
|
-
mediaSectionState,
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
if (structure.type === 'wav') {
|
|
22
|
-
return (0, get_seeking_info_2.getSeekingInfoFromWav)({
|
|
23
|
-
structure,
|
|
24
|
-
mediaSectionState,
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
if (structure.type === 'matroska') {
|
|
28
|
-
return (0, get_seeking_info_3.getSeekingInfoFromMatroska)(tracksState);
|
|
29
|
-
}
|
|
30
|
-
if (structure.type === 'transport-stream') {
|
|
31
|
-
return (0, get_seeking_info_1.getSeekingInfoFromTransportStream)(transportStream, tracksState);
|
|
32
|
-
}
|
|
33
|
-
throw new Error(`Seeking is not supported for this format: ${structure.type}`);
|
|
34
|
-
};
|
|
35
|
-
exports.getSeekingInfo = getSeekingInfo;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { SeekSignal } from './controller/seek-signal';
|
|
2
|
-
import { MediaParserEmitter } from './emitter';
|
|
3
|
-
import type { PauseSignal } from './pause-signal';
|
|
4
|
-
export type MediaParserController = {
|
|
5
|
-
abort: (reason?: any) => void;
|
|
6
|
-
pause: PauseSignal['pause'];
|
|
7
|
-
resume: PauseSignal['resume'];
|
|
8
|
-
_experimentalSeek: SeekSignal['seek'];
|
|
9
|
-
addEventListener: MediaParserEmitter['addEventListener'];
|
|
10
|
-
removeEventListener: MediaParserEmitter['removeEventListener'];
|
|
11
|
-
/**
|
|
12
|
-
* @deprecated Not public API
|
|
13
|
-
*/
|
|
14
|
-
_internals: {
|
|
15
|
-
signal: AbortSignal;
|
|
16
|
-
checkForAbortAndPause: () => Promise<void>;
|
|
17
|
-
seekSignal: SeekSignal;
|
|
18
|
-
markAsReadyToEmitEvents: () => void;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
export declare const mediaParserController: () => MediaParserController;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mediaParserController = void 0;
|
|
4
|
-
const seek_signal_1 = require("./controller/seek-signal");
|
|
5
|
-
const emitter_1 = require("./emitter");
|
|
6
|
-
const errors_1 = require("./errors");
|
|
7
|
-
const pause_signal_1 = require("./pause-signal");
|
|
8
|
-
const mediaParserController = () => {
|
|
9
|
-
const abortController = new AbortController();
|
|
10
|
-
const emitter = new emitter_1.MediaParserEmitter();
|
|
11
|
-
const pauseSignal = (0, pause_signal_1.makePauseSignal)(emitter);
|
|
12
|
-
const seekSignal = (0, seek_signal_1.makeSeekSignal)(emitter);
|
|
13
|
-
const checkForAbortAndPause = async () => {
|
|
14
|
-
if (abortController.signal.aborted) {
|
|
15
|
-
throw new errors_1.MediaParserAbortError('Aborted');
|
|
16
|
-
}
|
|
17
|
-
await pauseSignal.waitUntilResume();
|
|
18
|
-
};
|
|
19
|
-
return {
|
|
20
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
-
abort: (reason) => {
|
|
22
|
-
abortController.abort(reason);
|
|
23
|
-
emitter.dispatchAbort(reason);
|
|
24
|
-
},
|
|
25
|
-
_experimentalSeek: seekSignal.seek,
|
|
26
|
-
pause: pauseSignal.pause,
|
|
27
|
-
resume: pauseSignal.resume,
|
|
28
|
-
addEventListener: emitter.addEventListener,
|
|
29
|
-
removeEventListener: emitter.removeEventListener,
|
|
30
|
-
_internals: {
|
|
31
|
-
signal: abortController.signal,
|
|
32
|
-
checkForAbortAndPause,
|
|
33
|
-
seekSignal,
|
|
34
|
-
markAsReadyToEmitEvents: emitter.markAsReady,
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
exports.mediaParserController = mediaParserController;
|
package/dist/pause-signal.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { MediaParserEmitter } from './emitter';
|
|
2
|
-
export type PauseSignal = {
|
|
3
|
-
pause: () => void;
|
|
4
|
-
resume: () => void;
|
|
5
|
-
waitUntilResume: () => Promise<void>;
|
|
6
|
-
};
|
|
7
|
-
export declare const makePauseSignal: (emitter: MediaParserEmitter) => {
|
|
8
|
-
pause: () => void;
|
|
9
|
-
resume: () => void;
|
|
10
|
-
waitUntilResume: () => Promise<void>;
|
|
11
|
-
};
|
package/dist/pause-signal.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makePauseSignal = void 0;
|
|
4
|
-
const makePauseSignal = (emitter) => {
|
|
5
|
-
const waiterFns = [];
|
|
6
|
-
let paused = false;
|
|
7
|
-
return {
|
|
8
|
-
pause: () => {
|
|
9
|
-
if (paused) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
emitter.dispatchPause();
|
|
13
|
-
paused = true;
|
|
14
|
-
},
|
|
15
|
-
resume: () => {
|
|
16
|
-
if (!paused) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
paused = false;
|
|
20
|
-
for (const waiterFn of waiterFns) {
|
|
21
|
-
waiterFn();
|
|
22
|
-
}
|
|
23
|
-
waiterFns.length = 0;
|
|
24
|
-
emitter.dispatchResume();
|
|
25
|
-
},
|
|
26
|
-
waitUntilResume: () => {
|
|
27
|
-
return new Promise((resolve) => {
|
|
28
|
-
if (!paused) {
|
|
29
|
-
resolve();
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
waiterFns.push(resolve);
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
exports.makePauseSignal = makePauseSignal;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
type AacSamplePosition = {
|
|
2
|
-
offset: number;
|
|
3
|
-
index: number;
|
|
4
|
-
size: number;
|
|
5
|
-
};
|
|
6
|
-
export declare const aacState: () => {
|
|
7
|
-
addSample: ({ offset, size }: {
|
|
8
|
-
offset: number;
|
|
9
|
-
size: number;
|
|
10
|
-
}) => AacSamplePosition;
|
|
11
|
-
getSamples: () => AacSamplePosition[];
|
|
12
|
-
};
|
|
13
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.aacState = void 0;
|
|
4
|
-
const aacState = () => {
|
|
5
|
-
const samples = [];
|
|
6
|
-
return {
|
|
7
|
-
addSample: ({ offset, size }) => {
|
|
8
|
-
if (samples.find((s) => s.offset === offset)) {
|
|
9
|
-
throw new Error('Duplicate sample');
|
|
10
|
-
}
|
|
11
|
-
samples.push({ offset, index: samples.length, size });
|
|
12
|
-
return samples[samples.length - 1];
|
|
13
|
-
},
|
|
14
|
-
getSamples: () => samples,
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
exports.aacState = aacState;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { Options, ParseMediaFields } from '../fields';
|
|
2
|
-
import type { MediaParserStructureUnstable } from '../parse-result';
|
|
3
|
-
import type { StructureState } from './structure';
|
|
4
|
-
export declare const needsTracksForField: ({ field, structure, }: {
|
|
5
|
-
field: keyof Options<ParseMediaFields>;
|
|
6
|
-
structure: MediaParserStructureUnstable | null;
|
|
7
|
-
}) => boolean;
|
|
8
|
-
export declare const makeCanSkipTracksState: ({ hasAudioTrackHandlers, fields, hasVideoTrackHandlers, structure, }: {
|
|
9
|
-
hasAudioTrackHandlers: boolean;
|
|
10
|
-
hasVideoTrackHandlers: boolean;
|
|
11
|
-
fields: Options<ParseMediaFields>;
|
|
12
|
-
structure: StructureState;
|
|
13
|
-
}) => {
|
|
14
|
-
canSkipTracks: () => boolean;
|
|
15
|
-
};
|
|
16
|
-
export type CanSkipTracksState = ReturnType<typeof makeCanSkipTracksState>;
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeCanSkipTracksState = exports.needsTracksForField = void 0;
|
|
4
|
-
const needsTracksForField = ({ field, structure, }) => {
|
|
5
|
-
if (field === 'dimensions') {
|
|
6
|
-
if ((structure === null || structure === void 0 ? void 0 : structure.type) === 'riff') {
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
|
-
return true;
|
|
10
|
-
}
|
|
11
|
-
if (field === 'audioCodec' ||
|
|
12
|
-
field === 'durationInSeconds' ||
|
|
13
|
-
field === 'slowDurationInSeconds' ||
|
|
14
|
-
field === 'slowFps' ||
|
|
15
|
-
field === 'fps' ||
|
|
16
|
-
field === 'isHdr' ||
|
|
17
|
-
field === 'rotation' ||
|
|
18
|
-
field === 'structure' ||
|
|
19
|
-
field === 'tracks' ||
|
|
20
|
-
field === 'unrotatedDimensions' ||
|
|
21
|
-
field === 'videoCodec' ||
|
|
22
|
-
field === 'metadata' ||
|
|
23
|
-
field === 'location' ||
|
|
24
|
-
field === 'slowKeyframes' ||
|
|
25
|
-
field === 'slowNumberOfFrames' ||
|
|
26
|
-
field === 'keyframes' ||
|
|
27
|
-
field === 'images' ||
|
|
28
|
-
field === 'sampleRate' ||
|
|
29
|
-
field === 'numberOfAudioChannels' ||
|
|
30
|
-
field === 'slowAudioBitrate' ||
|
|
31
|
-
field === 'slowVideoBitrate' ||
|
|
32
|
-
field === 'm3uStreams') {
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
if (field === 'container' ||
|
|
36
|
-
field === 'internalStats' ||
|
|
37
|
-
field === 'mimeType' ||
|
|
38
|
-
field === 'name' ||
|
|
39
|
-
field === 'size') {
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
throw new Error(`field not implemeted ${field}`);
|
|
43
|
-
};
|
|
44
|
-
exports.needsTracksForField = needsTracksForField;
|
|
45
|
-
const makeCanSkipTracksState = ({ hasAudioTrackHandlers, fields, hasVideoTrackHandlers, structure, }) => {
|
|
46
|
-
return {
|
|
47
|
-
canSkipTracks: () => {
|
|
48
|
-
if (hasAudioTrackHandlers || hasVideoTrackHandlers) {
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
const keys = Object.keys(fields !== null && fields !== void 0 ? fields : {});
|
|
52
|
-
const selectedKeys = keys.filter((k) => fields[k]);
|
|
53
|
-
return !selectedKeys.some((k) => (0, exports.needsTracksForField)({
|
|
54
|
-
field: k,
|
|
55
|
-
structure: structure.getStructureOrNull(),
|
|
56
|
-
}));
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
|
-
exports.makeCanSkipTracksState = makeCanSkipTracksState;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.currentReader = void 0;
|
|
4
|
-
const currentReader = (initialReader) => {
|
|
5
|
-
let current = initialReader;
|
|
6
|
-
return {
|
|
7
|
-
getCurrent: () => current,
|
|
8
|
-
setCurrent: (newReader) => {
|
|
9
|
-
current = newReader;
|
|
10
|
-
},
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
exports.currentReader = currentReader;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const emittedState: () => AllOptions<ParseMediaFields>;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.emittedState = void 0;
|
|
4
|
-
const emittedState = () => {
|
|
5
|
-
const emittedFields = {
|
|
6
|
-
audioCodec: false,
|
|
7
|
-
container: false,
|
|
8
|
-
dimensions: false,
|
|
9
|
-
durationInSeconds: false,
|
|
10
|
-
fps: false,
|
|
11
|
-
internalStats: false,
|
|
12
|
-
isHdr: false,
|
|
13
|
-
location: false,
|
|
14
|
-
metadata: false,
|
|
15
|
-
mimeType: false,
|
|
16
|
-
name: false,
|
|
17
|
-
rotation: false,
|
|
18
|
-
size: false,
|
|
19
|
-
structure: false,
|
|
20
|
-
tracks: false,
|
|
21
|
-
videoCodec: false,
|
|
22
|
-
unrotatedDimensions: false,
|
|
23
|
-
slowDurationInSeconds: false,
|
|
24
|
-
slowFps: false,
|
|
25
|
-
slowKeyframes: false,
|
|
26
|
-
slowNumberOfFrames: false,
|
|
27
|
-
keyframes: false,
|
|
28
|
-
images: false,
|
|
29
|
-
numberOfAudioChannels: false,
|
|
30
|
-
sampleRate: false,
|
|
31
|
-
slowAudioBitrate: false,
|
|
32
|
-
slowVideoBitrate: false,
|
|
33
|
-
m3uStreams: false,
|
|
34
|
-
};
|
|
35
|
-
return emittedFields;
|
|
36
|
-
};
|
|
37
|
-
exports.emittedState = emittedState;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.flacState = void 0;
|
|
4
|
-
const flacState = () => {
|
|
5
|
-
let blockingBitStrategy;
|
|
6
|
-
return {
|
|
7
|
-
setBlockingBitStrategy: (strategy) => {
|
|
8
|
-
blockingBitStrategy = strategy;
|
|
9
|
-
},
|
|
10
|
-
getBlockingBitStrategy: () => blockingBitStrategy,
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
exports.flacState = flacState;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { Options, ParseMediaFields } from '../fields';
|
|
2
|
-
import type { Track } from '../get-tracks';
|
|
3
|
-
import type { LogLevel } from '../log';
|
|
4
|
-
import type { ParseMediaSrc } from '../options';
|
|
5
|
-
import type { CanSkipTracksState } from './can-skip-tracks';
|
|
6
|
-
export declare const makeTracksSectionState: (canSkipTracksState: CanSkipTracksState, src: ParseMediaSrc) => {
|
|
7
|
-
hasAllTracks: () => boolean;
|
|
8
|
-
getIsDone: () => boolean;
|
|
9
|
-
setIsDone: (logLevel: LogLevel) => void;
|
|
10
|
-
addTrack: (track: Track) => void;
|
|
11
|
-
getTracks: () => Track[];
|
|
12
|
-
ensureHasTracksAtEnd: (fields: Options<ParseMediaFields>) => void;
|
|
13
|
-
};
|
|
14
|
-
export type TracksState = ReturnType<typeof makeTracksSectionState>;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeTracksSectionState = void 0;
|
|
4
|
-
const log_1 = require("../log");
|
|
5
|
-
const makeTracksSectionState = (canSkipTracksState, src) => {
|
|
6
|
-
const tracks = [];
|
|
7
|
-
let doneWithTracks = false;
|
|
8
|
-
return {
|
|
9
|
-
hasAllTracks: () => doneWithTracks,
|
|
10
|
-
getIsDone: () => doneWithTracks,
|
|
11
|
-
setIsDone: (logLevel) => {
|
|
12
|
-
if (doneWithTracks) {
|
|
13
|
-
throw new Error('Error in Media Parser: Tracks have already been parsed');
|
|
14
|
-
}
|
|
15
|
-
log_1.Log.verbose(logLevel, 'All tracks have been parsed');
|
|
16
|
-
doneWithTracks = true;
|
|
17
|
-
},
|
|
18
|
-
addTrack: (track) => {
|
|
19
|
-
tracks.push(track);
|
|
20
|
-
},
|
|
21
|
-
getTracks: () => tracks,
|
|
22
|
-
ensureHasTracksAtEnd: (fields) => {
|
|
23
|
-
if (canSkipTracksState.canSkipTracks()) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
if (!fields.tracks) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if (!doneWithTracks) {
|
|
30
|
-
throw new Error('Error in Media Parser: End of parsing of ' +
|
|
31
|
-
src +
|
|
32
|
-
' has been reached, but no tracks have been found ');
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
exports.makeTracksSectionState = makeTracksSectionState;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export type MediaParserEmbeddedImage = {
|
|
2
|
-
description: string | null;
|
|
3
|
-
mimeType: string | null;
|
|
4
|
-
data: Uint8Array;
|
|
5
|
-
};
|
|
6
|
-
export declare const imagesState: () => {
|
|
7
|
-
images: MediaParserEmbeddedImage[];
|
|
8
|
-
addImage: (image: MediaParserEmbeddedImage) => void;
|
|
9
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.imagesState = void 0;
|
|
4
|
-
const imagesState = () => {
|
|
5
|
-
const images = [];
|
|
6
|
-
const addImage = (image) => {
|
|
7
|
-
images.push(image);
|
|
8
|
-
};
|
|
9
|
-
return {
|
|
10
|
-
images,
|
|
11
|
-
addImage,
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
exports.imagesState = imagesState;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { SamplePosition } from '../../get-sample-positions';
|
|
2
|
-
import type { AudioTrack, OtherTrack, VideoTrack } from '../../get-tracks';
|
|
3
|
-
import type { ParserState } from '../parser-state';
|
|
4
|
-
export type FlatSample = {
|
|
5
|
-
track: VideoTrack | AudioTrack | OtherTrack;
|
|
6
|
-
samplePosition: SamplePosition;
|
|
7
|
-
};
|
|
8
|
-
export declare const calculateFlatSamples: (state: ParserState) => any[];
|
|
9
|
-
export declare const cachedSamplePositionsState: () => {
|
|
10
|
-
getSamples: (mdatStart: number) => FlatSample[] | null;
|
|
11
|
-
setSamples: (mdatStart: number, samples: FlatSample[]) => void;
|
|
12
|
-
};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.cachedSamplePositionsState = exports.calculateFlatSamples = void 0;
|
|
4
|
-
const get_sample_positions_from_track_1 = require("../../containers/iso-base-media/get-sample-positions-from-track");
|
|
5
|
-
const traversal_1 = require("../../containers/iso-base-media/traversal");
|
|
6
|
-
const get_tracks_1 = require("../../get-tracks");
|
|
7
|
-
const calculateFlatSamples = (state) => {
|
|
8
|
-
const tracks = (0, get_tracks_1.getTracks)(state);
|
|
9
|
-
const allTracks = [
|
|
10
|
-
...tracks.videoTracks,
|
|
11
|
-
...tracks.audioTracks,
|
|
12
|
-
...tracks.otherTracks,
|
|
13
|
-
];
|
|
14
|
-
const flatSamples = allTracks
|
|
15
|
-
.map((track) => {
|
|
16
|
-
const { samplePositions } = (0, get_sample_positions_from_track_1.getSamplePositionsFromTrack)({
|
|
17
|
-
trakBox: track.trakBox,
|
|
18
|
-
moofBoxes: (0, traversal_1.getMoofBoxes)(state.structure.getIsoStructure().boxes),
|
|
19
|
-
tfraBoxes: (0, traversal_1.getTfraBoxes)(state.structure.getIsoStructure()),
|
|
20
|
-
});
|
|
21
|
-
return samplePositions.map((samplePosition) => {
|
|
22
|
-
return {
|
|
23
|
-
track,
|
|
24
|
-
samplePosition,
|
|
25
|
-
};
|
|
26
|
-
});
|
|
27
|
-
})
|
|
28
|
-
.flat(1);
|
|
29
|
-
return flatSamples;
|
|
30
|
-
};
|
|
31
|
-
exports.calculateFlatSamples = calculateFlatSamples;
|
|
32
|
-
const cachedSamplePositionsState = () => {
|
|
33
|
-
const cachedForMdatStart = {};
|
|
34
|
-
return {
|
|
35
|
-
getSamples: (mdatStart) => {
|
|
36
|
-
if (cachedForMdatStart[mdatStart]) {
|
|
37
|
-
return cachedForMdatStart[mdatStart];
|
|
38
|
-
}
|
|
39
|
-
return null;
|
|
40
|
-
},
|
|
41
|
-
setSamples: (mdatStart, samples) => {
|
|
42
|
-
cachedForMdatStart[mdatStart] = samples;
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
exports.cachedSamplePositionsState = cachedSamplePositionsState;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { MediaParserController } from '../../controller/media-parser-controller';
|
|
2
|
-
import type { LogLevel } from '../../log';
|
|
3
|
-
import type { ParseMediaSrc } from '../../options';
|
|
4
|
-
import type { ReaderInterface } from '../../readers/reader';
|
|
5
|
-
export declare const isoBaseMediaState: ({ contentLength, controller, readerInterface, src, logLevel, }: {
|
|
6
|
-
contentLength: number;
|
|
7
|
-
controller: MediaParserController;
|
|
8
|
-
readerInterface: ReaderInterface;
|
|
9
|
-
src: ParseMediaSrc;
|
|
10
|
-
logLevel: LogLevel;
|
|
11
|
-
}) => {
|
|
12
|
-
flatSamples: {
|
|
13
|
-
getSamples: (mdatStart: number) => import("./cached-sample-positions").FlatSample[] | null;
|
|
14
|
-
setSamples: (mdatStart: number, samples: import("./cached-sample-positions").FlatSample[]) => void;
|
|
15
|
-
};
|
|
16
|
-
moov: {
|
|
17
|
-
setMoovBox: (moov: MediaParserController) => void;
|
|
18
|
-
getMoovBox: () => any;
|
|
19
|
-
};
|
|
20
|
-
mfra: {
|
|
21
|
-
triggerLoad: () => Promise<IsoBaseMediaBox[] | null> | null;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
export type IsoBaseMediaState = ReturnType<typeof isoBaseMediaState>;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isoBaseMediaState = void 0;
|
|
4
|
-
const cached_sample_positions_1 = require("./cached-sample-positions");
|
|
5
|
-
const lazy_mfra_load_1 = require("./lazy-mfra-load");
|
|
6
|
-
const moov_box_1 = require("./moov-box");
|
|
7
|
-
const isoBaseMediaState = ({ contentLength, controller, readerInterface, src, logLevel, }) => {
|
|
8
|
-
return {
|
|
9
|
-
flatSamples: (0, cached_sample_positions_1.cachedSamplePositionsState)(),
|
|
10
|
-
moov: (0, moov_box_1.moovState)(),
|
|
11
|
-
mfra: (0, lazy_mfra_load_1.lazyMfraLoad)({
|
|
12
|
-
contentLength,
|
|
13
|
-
controller,
|
|
14
|
-
readerInterface,
|
|
15
|
-
src,
|
|
16
|
-
logLevel,
|
|
17
|
-
}),
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
exports.isoBaseMediaState = isoBaseMediaState;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { MediaParserController } from '../../controller/media-parser-controller';
|
|
2
|
-
import { type LogLevel } from '../../log';
|
|
3
|
-
import type { ParseMediaSrc } from '../../options';
|
|
4
|
-
import type { ReaderInterface } from '../../readers/reader';
|
|
5
|
-
export declare const lazyMfraLoad: ({ contentLength, controller, readerInterface, src, logLevel, }: {
|
|
6
|
-
contentLength: number;
|
|
7
|
-
controller: MediaParserController;
|
|
8
|
-
readerInterface: ReaderInterface;
|
|
9
|
-
src: ParseMediaSrc;
|
|
10
|
-
logLevel: LogLevel;
|
|
11
|
-
}) => {
|
|
12
|
-
triggerLoad: () => Promise<IsoBaseMediaBox[] | null> | null;
|
|
13
|
-
};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.lazyMfraLoad = void 0;
|
|
4
|
-
const get_mfra_seeking_box_1 = require("../../containers/iso-base-media/get-mfra-seeking-box");
|
|
5
|
-
const log_1 = require("../../log");
|
|
6
|
-
const lazyMfraLoad = ({ contentLength, controller, readerInterface, src, logLevel, }) => {
|
|
7
|
-
let prom = null;
|
|
8
|
-
const triggerLoad = () => {
|
|
9
|
-
if (prom) {
|
|
10
|
-
return prom;
|
|
11
|
-
}
|
|
12
|
-
log_1.Log.verbose(logLevel, 'Moof box found, trying to lazy load mfra');
|
|
13
|
-
prom = (0, get_mfra_seeking_box_1.getMfraSeekingBox)({
|
|
14
|
-
contentLength,
|
|
15
|
-
controller,
|
|
16
|
-
readerInterface,
|
|
17
|
-
src,
|
|
18
|
-
logLevel,
|
|
19
|
-
}).then((boxes) => {
|
|
20
|
-
log_1.Log.verbose(logLevel, 'Lazily found mfra atom.');
|
|
21
|
-
return boxes;
|
|
22
|
-
});
|
|
23
|
-
return prom;
|
|
24
|
-
};
|
|
25
|
-
return {
|
|
26
|
-
triggerLoad,
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
exports.lazyMfraLoad = lazyMfraLoad;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.moovState = void 0;
|
|
4
|
-
const moovState = () => {
|
|
5
|
-
let moovBox = null;
|
|
6
|
-
return {
|
|
7
|
-
setMoovBox: (moov) => {
|
|
8
|
-
moovBox = moov;
|
|
9
|
-
},
|
|
10
|
-
getMoovBox: () => moovBox,
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
exports.moovState = moovState;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { MediaParserKeyframe } from '../options';
|
|
2
|
-
export declare const keyframesState: () => {
|
|
3
|
-
addKeyframe: (keyframe: MediaParserKeyframe) => void;
|
|
4
|
-
getKeyframes: () => MediaParserKeyframe[];
|
|
5
|
-
};
|
|
6
|
-
export type KeyframesState = ReturnType<typeof keyframesState>;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.keyframesState = void 0;
|
|
4
|
-
const keyframesState = () => {
|
|
5
|
-
const keyframes = [];
|
|
6
|
-
return {
|
|
7
|
-
addKeyframe: (keyframe) => {
|
|
8
|
-
keyframes.push(keyframe);
|
|
9
|
-
},
|
|
10
|
-
getKeyframes: () => {
|
|
11
|
-
return keyframes;
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
exports.keyframesState = keyframesState;
|