@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/options.d.ts
CHANGED
|
@@ -2,17 +2,17 @@ import type { M3uStream } from './containers/m3u/get-streams';
|
|
|
2
2
|
import type { SelectM3uAssociatedPlaylistsFn, SelectM3uStreamFn } from './containers/m3u/select-stream';
|
|
3
3
|
import type { MediaParserController } from './controller/media-parser-controller';
|
|
4
4
|
import type { Options, ParseMediaFields } from './fields';
|
|
5
|
-
import type {
|
|
5
|
+
import type { MediaParserDimensions } from './get-dimensions';
|
|
6
6
|
import type { MediaParserLocation } from './get-location';
|
|
7
|
-
import type {
|
|
8
|
-
import type {
|
|
7
|
+
import type { MediaParserAudioCodec, MediaParserTrack, MediaParserVideoCodec } from './get-tracks';
|
|
8
|
+
import type { MediaParserLogLevel } from './log';
|
|
9
9
|
import type { MediaParserMetadataEntry } from './metadata/get-metadata';
|
|
10
10
|
import type { IsoBaseMediaStructure, MediaParserStructureUnstable } from './parse-result';
|
|
11
|
-
import type {
|
|
11
|
+
import type { MediaParserReaderInterface } from './readers/reader';
|
|
12
12
|
import type { SeekingHints } from './seeking-hints';
|
|
13
13
|
import type { MediaParserEmbeddedImage } from './state/images';
|
|
14
14
|
import type { InternalStats } from './state/parser-state';
|
|
15
|
-
import type {
|
|
15
|
+
import type { MediaParserOnAudioTrack, MediaParserOnVideoTrack } from './webcodec-sample-types';
|
|
16
16
|
import type { WriterInterface } from './writers/writer';
|
|
17
17
|
export type KnownAudioCodecs = 'aac' | 'mp3' | 'aiff' | 'opus' | 'pcm' | 'vorbis' | 'unknown';
|
|
18
18
|
export type AllParseMediaFields = {
|
|
@@ -21,7 +21,7 @@ export type AllParseMediaFields = {
|
|
|
21
21
|
slowDurationInSeconds: true;
|
|
22
22
|
slowNumberOfFrames: true;
|
|
23
23
|
slowFps: true;
|
|
24
|
-
|
|
24
|
+
slowStructure: true;
|
|
25
25
|
fps: true;
|
|
26
26
|
videoCodec: true;
|
|
27
27
|
audioCodec: true;
|
|
@@ -45,10 +45,6 @@ export type AllParseMediaFields = {
|
|
|
45
45
|
slowAudioBitrate: true;
|
|
46
46
|
m3uStreams: true;
|
|
47
47
|
};
|
|
48
|
-
export type MediaParserTracks = {
|
|
49
|
-
videoTracks: VideoTrack[];
|
|
50
|
-
audioTracks: AudioTrack[];
|
|
51
|
-
};
|
|
52
48
|
export type MediaParserContainer = 'mp4' | 'webm' | 'avi' | 'transport-stream' | 'mp3' | 'aac' | 'flac' | 'm3u8' | 'wav';
|
|
53
49
|
export type MediaParserKeyframe = {
|
|
54
50
|
positionInBytes: number;
|
|
@@ -58,17 +54,17 @@ export type MediaParserKeyframe = {
|
|
|
58
54
|
trackId: number;
|
|
59
55
|
};
|
|
60
56
|
export type ParseMediaCallbacksMandatory = {
|
|
61
|
-
onDimensions: null | ((dimensions:
|
|
57
|
+
onDimensions: null | ((dimensions: MediaParserDimensions | null) => unknown | Promise<unknown>);
|
|
62
58
|
onDurationInSeconds: null | ((durationInSeconds: number | null) => unknown | Promise<unknown>);
|
|
63
59
|
onSlowDurationInSeconds: null | ((durationInSeconds: number) => unknown | Promise<unknown>);
|
|
64
60
|
onSlowFps: null | ((fps: number) => unknown | Promise<unknown>);
|
|
65
|
-
|
|
61
|
+
onSlowStructure: null | ((structure: MediaParserStructureUnstable) => unknown | Promise<unknown>);
|
|
66
62
|
onFps: null | ((fps: number | null) => unknown | Promise<unknown>);
|
|
67
63
|
onVideoCodec: null | ((codec: MediaParserVideoCodec | null) => unknown | Promise<unknown>);
|
|
68
64
|
onAudioCodec: null | ((codec: MediaParserAudioCodec | null) => unknown | Promise<unknown>);
|
|
69
|
-
onTracks: null | ((tracks:
|
|
65
|
+
onTracks: null | ((tracks: MediaParserTrack[]) => unknown | Promise<unknown>);
|
|
70
66
|
onRotation: null | ((rotation: number | null) => unknown | Promise<unknown>);
|
|
71
|
-
onUnrotatedDimensions: null | ((dimensions:
|
|
67
|
+
onUnrotatedDimensions: null | ((dimensions: MediaParserDimensions | null) => unknown | Promise<unknown>);
|
|
72
68
|
onInternalStats: null | ((internalStats: InternalStats) => unknown | Promise<unknown>);
|
|
73
69
|
onSize: null | ((size: number | null) => unknown | Promise<unknown>);
|
|
74
70
|
onName: null | ((name: string) => unknown | Promise<unknown>);
|
|
@@ -89,17 +85,17 @@ export type ParseMediaCallbacksMandatory = {
|
|
|
89
85
|
};
|
|
90
86
|
export type ParseMediaCallbacks = Partial<ParseMediaCallbacksMandatory>;
|
|
91
87
|
export interface ParseMediaData {
|
|
92
|
-
dimensions:
|
|
88
|
+
dimensions: MediaParserDimensions | null;
|
|
93
89
|
durationInSeconds: number | null;
|
|
94
90
|
slowDurationInSeconds: number;
|
|
95
91
|
slowFps: number;
|
|
96
|
-
|
|
92
|
+
slowStructure: MediaParserStructureUnstable;
|
|
97
93
|
fps: number | null;
|
|
98
94
|
videoCodec: MediaParserVideoCodec | null;
|
|
99
95
|
audioCodec: MediaParserAudioCodec | null;
|
|
100
|
-
tracks:
|
|
96
|
+
tracks: MediaParserTrack[];
|
|
101
97
|
rotation: number | null;
|
|
102
|
-
unrotatedDimensions:
|
|
98
|
+
unrotatedDimensions: MediaParserDimensions | null;
|
|
103
99
|
isHdr: boolean;
|
|
104
100
|
internalStats: InternalStats;
|
|
105
101
|
size: number | null;
|
|
@@ -118,7 +114,7 @@ export interface ParseMediaData {
|
|
|
118
114
|
slowAudioBitrate: number | null;
|
|
119
115
|
m3uStreams: M3uStream[] | null;
|
|
120
116
|
}
|
|
121
|
-
export type ParseMediaResult<T extends Partial<ParseMediaFields>> = {
|
|
117
|
+
export type ParseMediaResult<T extends Partial<ParseMediaFields>> = {} extends T ? Record<never, never> : {
|
|
122
118
|
[K in keyof T]: T[K] extends true ? K extends keyof ParseMediaData ? ParseMediaData[K] : never : never;
|
|
123
119
|
};
|
|
124
120
|
export type ParseMediaProgress = {
|
|
@@ -128,14 +124,14 @@ export type ParseMediaProgress = {
|
|
|
128
124
|
};
|
|
129
125
|
export type ParseMediaOnProgress = (progress: ParseMediaProgress) => void | Promise<void>;
|
|
130
126
|
type ReaderParams = {
|
|
131
|
-
reader:
|
|
127
|
+
reader: MediaParserReaderInterface;
|
|
132
128
|
};
|
|
133
129
|
export type M3uPlaylistContext = {
|
|
134
130
|
mp4HeaderSegment: IsoBaseMediaStructure | null;
|
|
135
131
|
isLastChunkInPlaylist: boolean;
|
|
136
132
|
};
|
|
137
133
|
export type SerializeableOptionalParseMediaParams<F extends Options<ParseMediaFields>> = {
|
|
138
|
-
logLevel:
|
|
134
|
+
logLevel: MediaParserLogLevel;
|
|
139
135
|
progressIntervalInMs: number | null;
|
|
140
136
|
fields: F | null;
|
|
141
137
|
acknowledgeRemotionLicense: boolean;
|
|
@@ -150,8 +146,8 @@ type OptionalParseMediaParams<F extends Options<ParseMediaFields>> = Serializeab
|
|
|
150
146
|
selectM3uAssociatedPlaylists: SelectM3uAssociatedPlaylistsFn;
|
|
151
147
|
};
|
|
152
148
|
type ParseMediaSampleCallbacks = {
|
|
153
|
-
onAudioTrack:
|
|
154
|
-
onVideoTrack:
|
|
149
|
+
onAudioTrack: MediaParserOnAudioTrack | null;
|
|
150
|
+
onVideoTrack: MediaParserOnVideoTrack | null;
|
|
155
151
|
};
|
|
156
152
|
export type ParseMediaMode = 'query' | 'download';
|
|
157
153
|
export type ParseMediaSrc = string | Blob | URL;
|
package/dist/parse-loop.js
CHANGED
|
@@ -118,10 +118,10 @@ const parseLoop = async ({ state, throttledState, onError, }) => {
|
|
|
118
118
|
}
|
|
119
119
|
state.samplesObserved.setLastSampleObserved();
|
|
120
120
|
// After the last sample, you might queue a last seek again.
|
|
121
|
-
if (state.controller._internals.seekSignal.getSeek()) {
|
|
121
|
+
if (state.controller._internals.seekSignal.getSeek() !== null) {
|
|
122
122
|
log_1.Log.verbose(state.logLevel, 'Reached end of samples, but there is a pending seek. Trying to seek...');
|
|
123
123
|
await (0, work_on_seek_request_1.workOnSeekRequest)((0, work_on_seek_request_1.getWorkOnSeekRequestOptions)(state));
|
|
124
|
-
if (state.controller._internals.seekSignal.getSeek()) {
|
|
124
|
+
if (state.controller._internals.seekSignal.getSeek() !== null) {
|
|
125
125
|
throw new Error('Reached the end of the file even though a seek was requested. This is likely a bug in the parser. You can report this at https://remotion.dev/report and we will fix it as soon as possible.');
|
|
126
126
|
}
|
|
127
127
|
await (0, exports.parseLoop)({
|
|
@@ -6,7 +6,7 @@ const serialize_error_1 = require("./worker/serialize-error");
|
|
|
6
6
|
const convertToWorkerPayload = (
|
|
7
7
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
8
|
payload) => {
|
|
9
|
-
const { onAudioCodec, onContainer, onDimensions, onUnrotatedDimensions, onVideoCodec, onFps, onAudioTrack, onDurationInSeconds, onImages, onInternalStats, onIsHdr, onKeyframes, onLocation, onM3uStreams, onMetadata, onMimeType, onName, onNumberOfAudioChannels, onParseProgress, onRotation, onSampleRate, onSlowAudioBitrate, onSize, onSlowDurationInSeconds, onSlowFps, onSlowKeyframes, onSlowNumberOfFrames, onSlowVideoBitrate,
|
|
9
|
+
const { onAudioCodec, onContainer, onDimensions, onUnrotatedDimensions, onVideoCodec, onFps, onAudioTrack, onDurationInSeconds, onImages, onInternalStats, onIsHdr, onKeyframes, onLocation, onM3uStreams, onMetadata, onMimeType, onName, onNumberOfAudioChannels, onParseProgress, onRotation, onSampleRate, onSlowAudioBitrate, onSize, onSlowDurationInSeconds, onSlowFps, onSlowKeyframes, onSlowNumberOfFrames, onSlowVideoBitrate, onSlowStructure, onTracks, onVideoTrack, selectM3uStream, selectM3uAssociatedPlaylists, src, ...others } = payload;
|
|
10
10
|
return {
|
|
11
11
|
type: 'request-worker',
|
|
12
12
|
payload: others,
|
|
@@ -33,7 +33,7 @@ payload) => {
|
|
|
33
33
|
postSlowKeyframes: Boolean(onSlowKeyframes),
|
|
34
34
|
postSlowNumberOfFrames: Boolean(onSlowNumberOfFrames),
|
|
35
35
|
postSlowVideoBitrate: Boolean(onSlowVideoBitrate),
|
|
36
|
-
|
|
36
|
+
postSlowStructure: Boolean(onSlowStructure),
|
|
37
37
|
postTracks: Boolean(onTracks),
|
|
38
38
|
postUnrotatedDimensions: Boolean(onUnrotatedDimensions),
|
|
39
39
|
postVideoCodec: Boolean(onVideoCodec),
|
|
@@ -179,8 +179,8 @@ const parseMediaOnWorkerImplementation = async ({ controller, reader, ...params
|
|
|
179
179
|
await ((_p = params.onSlowVideoBitrate) === null || _p === void 0 ? void 0 : _p.call(params, data.payload.value));
|
|
180
180
|
return { payloadType: 'void' };
|
|
181
181
|
}
|
|
182
|
-
if (data.payload.callbackType === 'structure') {
|
|
183
|
-
await ((_q = params.
|
|
182
|
+
if (data.payload.callbackType === 'slow-structure') {
|
|
183
|
+
await ((_q = params.onSlowStructure) === null || _q === void 0 ? void 0 : _q.call(params, data.payload.value));
|
|
184
184
|
return { payloadType: 'void' };
|
|
185
185
|
}
|
|
186
186
|
if (data.payload.callbackType === 'fps') {
|
|
@@ -270,7 +270,15 @@ const parseMediaOnWorkerImplementation = async ({ controller, reader, ...params
|
|
|
270
270
|
registeredCallback: Boolean(possibleCallback),
|
|
271
271
|
};
|
|
272
272
|
}
|
|
273
|
-
if (data.payload.callbackType === 'on-audio-
|
|
273
|
+
if (data.payload.callbackType === 'on-audio-sample') {
|
|
274
|
+
const callback = callbacks[data.payload.trackId];
|
|
275
|
+
if (!callback) {
|
|
276
|
+
throw new Error(`No callback registered for track ${data.payload.trackId}`);
|
|
277
|
+
}
|
|
278
|
+
await callback(data.payload.value);
|
|
279
|
+
return { payloadType: 'void' };
|
|
280
|
+
}
|
|
281
|
+
if (data.payload.callbackType === 'on-video-sample') {
|
|
274
282
|
const callback = callbacks[data.payload.trackId];
|
|
275
283
|
if (!callback) {
|
|
276
284
|
throw new Error(`No callback registered for track ${data.payload.trackId}`);
|
package/dist/parse-media.js
CHANGED
|
@@ -34,7 +34,7 @@ const parseMedia = (options) => {
|
|
|
34
34
|
onSlowKeyframes: (_0 = options.onSlowKeyframes) !== null && _0 !== void 0 ? _0 : null,
|
|
35
35
|
onSlowNumberOfFrames: (_1 = options.onSlowNumberOfFrames) !== null && _1 !== void 0 ? _1 : null,
|
|
36
36
|
onSlowVideoBitrate: (_2 = options.onSlowVideoBitrate) !== null && _2 !== void 0 ? _2 : null,
|
|
37
|
-
|
|
37
|
+
onSlowStructure: (_3 = options.onSlowStructure) !== null && _3 !== void 0 ? _3 : null,
|
|
38
38
|
onM3uStreams: (_4 = options.onM3uStreams) !== null && _4 !== void 0 ? _4 : null,
|
|
39
39
|
onTracks: (_5 = options.onTracks) !== null && _5 !== void 0 ? _5 : null,
|
|
40
40
|
onUnrotatedDimensions: (_6 = options.onUnrotatedDimensions) !== null && _6 !== void 0 ? _6 : null,
|
package/dist/perform-seek.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ import type { MediaParserController } from './controller/media-parser-controller
|
|
|
2
2
|
import type { PrefetchCache } from './fetch';
|
|
3
3
|
import type { AllOptions, ParseMediaFields } from './fields';
|
|
4
4
|
import type { BufferIterator } from './iterator/buffer-iterator';
|
|
5
|
-
import type {
|
|
5
|
+
import type { MediaParserLogLevel } from './log';
|
|
6
6
|
import type { ParseMediaMode, ParseMediaSrc } from './options';
|
|
7
|
-
import type {
|
|
7
|
+
import type { MediaParserReaderInterface } from './readers/reader';
|
|
8
8
|
import type { CurrentReader } from './state/current-reader';
|
|
9
9
|
import type { SeekInfiniteLoop } from './state/seek-infinite-loop';
|
|
10
10
|
import type { MediaSectionState } from './state/video-section';
|
|
@@ -14,12 +14,12 @@ export declare const performSeek: ({ seekTo, userInitiated, controller, mediaSec
|
|
|
14
14
|
controller: MediaParserController;
|
|
15
15
|
mediaSection: MediaSectionState;
|
|
16
16
|
iterator: BufferIterator;
|
|
17
|
-
logLevel:
|
|
17
|
+
logLevel: MediaParserLogLevel;
|
|
18
18
|
mode: ParseMediaMode;
|
|
19
19
|
contentLength: number;
|
|
20
20
|
seekInfiniteLoop: SeekInfiniteLoop;
|
|
21
21
|
currentReader: CurrentReader;
|
|
22
|
-
readerInterface:
|
|
22
|
+
readerInterface: MediaParserReaderInterface;
|
|
23
23
|
fields: Partial<AllOptions<ParseMediaFields>>;
|
|
24
24
|
src: ParseMediaSrc;
|
|
25
25
|
discardReadBytes: (force: boolean) => Promise<void>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { MediaParserController } from '../controller/media-parser-controller';
|
|
2
2
|
import type { ParseMediaRange } from '../options';
|
|
3
|
-
import type { CreateAdjacentFileSource, PreloadContent, ReadContent,
|
|
3
|
+
import type { CreateAdjacentFileSource, MediaParserReaderInterface, PreloadContent, ReadContent, ReadWholeAsText } from './reader';
|
|
4
4
|
interface ParsedContentRange {
|
|
5
5
|
unit: string;
|
|
6
6
|
start?: number | null;
|
|
@@ -29,5 +29,5 @@ export declare const fetchReadContent: ReadContent;
|
|
|
29
29
|
export declare const fetchPreload: PreloadContent;
|
|
30
30
|
export declare const fetchReadWholeAsText: ReadWholeAsText;
|
|
31
31
|
export declare const fetchCreateAdjacentFileSource: CreateAdjacentFileSource;
|
|
32
|
-
export declare const fetchReader:
|
|
32
|
+
export declare const fetchReader: MediaParserReaderInterface;
|
|
33
33
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CreateAdjacentFileSource, ReadContent, ReadWholeAsText
|
|
1
|
+
import type { CreateAdjacentFileSource, MediaParserReaderInterface, ReadContent, ReadWholeAsText } from './reader';
|
|
2
2
|
export declare const nodeReadContent: ReadContent;
|
|
3
3
|
export declare const nodeReadWholeAsText: ReadWholeAsText;
|
|
4
4
|
export declare const nodeCreateAdjacentFileSource: CreateAdjacentFileSource;
|
|
5
|
-
export declare const nodeReader:
|
|
5
|
+
export declare const nodeReader: MediaParserReaderInterface;
|
|
@@ -3,70 +3,79 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.nodeReader = exports.nodeCreateAdjacentFileSource = exports.nodeReadWholeAsText = exports.nodeReadContent = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const path_1 = require("path");
|
|
6
|
-
const nodeReadContent = ({ src, range, controller }) => {
|
|
6
|
+
const nodeReadContent = async ({ src, range, controller, }) => {
|
|
7
7
|
if (typeof src !== 'string') {
|
|
8
8
|
throw new Error('src must be a string when using `nodeReader`');
|
|
9
9
|
}
|
|
10
|
+
await Promise.resolve();
|
|
10
11
|
const ownController = new AbortController();
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
try {
|
|
13
|
+
if (!(0, fs_1.existsSync)(src)) {
|
|
14
|
+
throw new Error(`File does not exist: ${src}`);
|
|
15
|
+
}
|
|
16
|
+
const stream = (0, fs_1.createReadStream)(src, {
|
|
17
|
+
start: range === null ? 0 : typeof range === 'number' ? range : range[0],
|
|
18
|
+
end: range === null
|
|
16
19
|
? Infinity
|
|
17
|
-
: range
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}, { once: true });
|
|
22
|
-
const stats = (0, fs_1.statSync)(src);
|
|
23
|
-
let readerCancelled = false;
|
|
24
|
-
const reader = new ReadableStream({
|
|
25
|
-
start(c) {
|
|
26
|
-
if (readerCancelled) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
stream.on('data', (chunk) => {
|
|
30
|
-
c.enqueue(chunk);
|
|
31
|
-
});
|
|
32
|
-
stream.on('end', () => {
|
|
33
|
-
if (readerCancelled) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
c.close();
|
|
37
|
-
});
|
|
38
|
-
stream.on('error', (err) => {
|
|
39
|
-
c.error(err);
|
|
40
|
-
});
|
|
41
|
-
},
|
|
42
|
-
cancel() {
|
|
43
|
-
readerCancelled = true;
|
|
44
|
-
stream.destroy();
|
|
45
|
-
},
|
|
46
|
-
}).getReader();
|
|
47
|
-
if (controller) {
|
|
20
|
+
: typeof range === 'number'
|
|
21
|
+
? Infinity
|
|
22
|
+
: range[1],
|
|
23
|
+
});
|
|
48
24
|
controller._internals.signal.addEventListener('abort', () => {
|
|
49
|
-
|
|
25
|
+
ownController.abort();
|
|
50
26
|
}, { once: true });
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
reader
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
stream.destroy();
|
|
58
|
-
ownController.abort();
|
|
59
|
-
await reader.cancel();
|
|
27
|
+
const stats = (0, fs_1.statSync)(src);
|
|
28
|
+
let readerCancelled = false;
|
|
29
|
+
const reader = new ReadableStream({
|
|
30
|
+
start(c) {
|
|
31
|
+
if (readerCancelled) {
|
|
32
|
+
return;
|
|
60
33
|
}
|
|
61
|
-
|
|
34
|
+
stream.on('data', (chunk) => {
|
|
35
|
+
c.enqueue(chunk);
|
|
36
|
+
});
|
|
37
|
+
stream.on('end', () => {
|
|
38
|
+
if (readerCancelled) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
c.close();
|
|
42
|
+
});
|
|
43
|
+
stream.on('error', (err) => {
|
|
44
|
+
c.error(err);
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
cancel() {
|
|
48
|
+
readerCancelled = true;
|
|
49
|
+
stream.destroy();
|
|
50
|
+
},
|
|
51
|
+
}).getReader();
|
|
52
|
+
if (controller) {
|
|
53
|
+
controller._internals.signal.addEventListener('abort', () => {
|
|
54
|
+
reader.cancel().catch(() => { });
|
|
55
|
+
}, { once: true });
|
|
56
|
+
}
|
|
57
|
+
return Promise.resolve({
|
|
58
|
+
reader: {
|
|
59
|
+
reader,
|
|
60
|
+
abort: async () => {
|
|
61
|
+
try {
|
|
62
|
+
stream.destroy();
|
|
63
|
+
ownController.abort();
|
|
64
|
+
await reader.cancel();
|
|
65
|
+
}
|
|
66
|
+
catch (_a) { }
|
|
67
|
+
},
|
|
62
68
|
},
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
69
|
+
contentLength: stats.size,
|
|
70
|
+
contentType: null,
|
|
71
|
+
name: src.split(path_1.sep).pop(),
|
|
72
|
+
supportsContentRange: true,
|
|
73
|
+
needsContentRange: true,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
return Promise.reject(err);
|
|
78
|
+
}
|
|
70
79
|
};
|
|
71
80
|
exports.nodeReadContent = nodeReadContent;
|
|
72
81
|
const nodeReadWholeAsText = (src) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CreateAdjacentFileSource,
|
|
1
|
+
import type { CreateAdjacentFileSource, MediaParserReaderInterface, ReadContent, ReadWholeAsText } from './reader';
|
|
2
2
|
export declare const webFileReadContent: ReadContent;
|
|
3
3
|
export declare const webFileReadWholeAsText: ReadWholeAsText;
|
|
4
4
|
export declare const webFileCreateAdjacentFileSource: CreateAdjacentFileSource;
|
|
5
|
-
export declare const webFileReader:
|
|
5
|
+
export declare const webFileReader: MediaParserReaderInterface;
|
package/dist/readers/reader.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MediaParserController } from '../controller/media-parser-controller';
|
|
2
|
-
import type {
|
|
2
|
+
import type { MediaParserLogLevel } from '../log';
|
|
3
3
|
import type { ParseMediaRange, ParseMediaSrc } from '../options';
|
|
4
4
|
import type { PrefetchCache } from './from-fetch';
|
|
5
5
|
export type Reader = {
|
|
@@ -18,24 +18,24 @@ export type ReadContent = (options: {
|
|
|
18
18
|
src: ParseMediaSrc;
|
|
19
19
|
range: ParseMediaRange;
|
|
20
20
|
controller: MediaParserController;
|
|
21
|
-
logLevel:
|
|
21
|
+
logLevel: MediaParserLogLevel;
|
|
22
22
|
prefetchCache: PrefetchCache;
|
|
23
23
|
}) => Promise<ReadResult>;
|
|
24
24
|
export type ReadWholeAsText = (src: ParseMediaSrc) => Promise<string>;
|
|
25
25
|
export type PreloadContent = (options: {
|
|
26
26
|
src: ParseMediaSrc;
|
|
27
27
|
range: ParseMediaRange;
|
|
28
|
-
logLevel:
|
|
28
|
+
logLevel: MediaParserLogLevel;
|
|
29
29
|
prefetchCache: PrefetchCache;
|
|
30
30
|
}) => void;
|
|
31
31
|
export type ClearPreloadCache = (options: {
|
|
32
32
|
src: ParseMediaSrc;
|
|
33
33
|
range: ParseMediaRange;
|
|
34
|
-
logLevel:
|
|
34
|
+
logLevel: MediaParserLogLevel;
|
|
35
35
|
prefetchCache: PrefetchCache;
|
|
36
36
|
}) => void;
|
|
37
37
|
export type CreateAdjacentFileSource = (relativePath: string, src: ParseMediaSrc) => string;
|
|
38
|
-
export type
|
|
38
|
+
export type MediaParserReaderInterface = {
|
|
39
39
|
read: ReadContent;
|
|
40
40
|
readWholeAsText: ReadWholeAsText;
|
|
41
41
|
createAdjacentFileSource: CreateAdjacentFileSource;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const universalReader:
|
|
1
|
+
import type { MediaParserReaderInterface } from './reader';
|
|
2
|
+
export declare const universalReader: MediaParserReaderInterface;
|
package/dist/readers/web.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const webReader:
|
|
1
|
+
import type { MediaParserReaderInterface } from './reader';
|
|
2
|
+
export declare const webReader: MediaParserReaderInterface;
|
package/dist/register-track.d.ts
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { MediaParserAudioTrack, MediaParserTrack, MediaParserVideoTrack } from './get-tracks';
|
|
2
|
+
import type { MediaParserLogLevel } from './log';
|
|
3
3
|
import type { MediaParserContainer } from './options';
|
|
4
4
|
import type { TracksState } from './state/has-tracks-section';
|
|
5
5
|
import type { ParserState } from './state/parser-state';
|
|
6
6
|
import type { CallbacksState } from './state/sample-callbacks';
|
|
7
|
-
import type {
|
|
7
|
+
import type { MediaParserOnAudioTrack, MediaParserOnVideoTrack } from './webcodec-sample-types';
|
|
8
8
|
export declare const registerVideoTrack: ({ track, container, logLevel, onVideoTrack, registerVideoSampleCallback, tracks, }: {
|
|
9
|
-
track:
|
|
9
|
+
track: MediaParserTrack;
|
|
10
10
|
container: MediaParserContainer;
|
|
11
|
-
logLevel:
|
|
12
|
-
onVideoTrack:
|
|
11
|
+
logLevel: MediaParserLogLevel;
|
|
12
|
+
onVideoTrack: MediaParserOnVideoTrack | null;
|
|
13
13
|
registerVideoSampleCallback: CallbacksState["registerVideoSampleCallback"];
|
|
14
14
|
tracks: TracksState;
|
|
15
|
-
}) => Promise<import("./webcodec-sample-types").
|
|
15
|
+
}) => Promise<import("./webcodec-sample-types").MediaParserOnVideoSample | null>;
|
|
16
16
|
export declare const registerAudioTrack: ({ track, container, tracks, logLevel, onAudioTrack, registerAudioSampleCallback, }: {
|
|
17
|
-
track:
|
|
17
|
+
track: MediaParserAudioTrack;
|
|
18
18
|
container: MediaParserContainer;
|
|
19
19
|
tracks: TracksState;
|
|
20
|
-
logLevel:
|
|
21
|
-
onAudioTrack:
|
|
20
|
+
logLevel: MediaParserLogLevel;
|
|
21
|
+
onAudioTrack: MediaParserOnAudioTrack | null;
|
|
22
22
|
registerAudioSampleCallback: CallbacksState["registerAudioSampleCallback"];
|
|
23
|
-
}) => Promise<import("./webcodec-sample-types").
|
|
23
|
+
}) => Promise<import("./webcodec-sample-types").MediaParserOnAudioSample | null>;
|
|
24
24
|
export declare const registerVideoTrackWhenProfileIsAvailable: ({ state, track, container, }: {
|
|
25
25
|
state: ParserState;
|
|
26
|
-
track:
|
|
26
|
+
track: MediaParserVideoTrack;
|
|
27
27
|
container: MediaParserContainer;
|
|
28
28
|
}) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MediaParserLogLevel } from './log';
|
|
2
2
|
export declare const warnIfRemotionLicenseNotAcknowledged: ({ acknowledgeRemotionLicense, logLevel, apiName, }: {
|
|
3
3
|
acknowledgeRemotionLicense: boolean;
|
|
4
|
-
logLevel:
|
|
4
|
+
logLevel: MediaParserLogLevel;
|
|
5
5
|
apiName: string;
|
|
6
6
|
}) => void;
|
package/dist/seek-backwards.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import type { MediaParserController } from './controller/media-parser-controller';
|
|
2
2
|
import type { PrefetchCache } from './fetch';
|
|
3
3
|
import type { BufferIterator } from './iterator/buffer-iterator';
|
|
4
|
-
import type {
|
|
4
|
+
import type { MediaParserLogLevel } from './log';
|
|
5
5
|
import type { ParseMediaSrc } from './options';
|
|
6
|
-
import type {
|
|
6
|
+
import type { MediaParserReaderInterface } from './readers/reader';
|
|
7
7
|
import type { CurrentReader } from './state/current-reader';
|
|
8
8
|
export declare const seekBackwards: ({ iterator, seekTo, readerInterface, src, controller, logLevel, currentReader, prefetchCache, }: {
|
|
9
9
|
iterator: BufferIterator;
|
|
10
10
|
seekTo: number;
|
|
11
|
-
readerInterface:
|
|
11
|
+
readerInterface: MediaParserReaderInterface;
|
|
12
12
|
src: ParseMediaSrc;
|
|
13
13
|
controller: MediaParserController;
|
|
14
|
-
logLevel:
|
|
14
|
+
logLevel: MediaParserLogLevel;
|
|
15
15
|
currentReader: CurrentReader;
|
|
16
16
|
prefetchCache: PrefetchCache;
|
|
17
17
|
}) => Promise<void>;
|
package/dist/seek-forwards.d.ts
CHANGED
|
@@ -2,18 +2,18 @@ import type { MediaParserController } from './controller/media-parser-controller
|
|
|
2
2
|
import type { PrefetchCache } from './fetch';
|
|
3
3
|
import type { AllOptions, ParseMediaFields } from './fields';
|
|
4
4
|
import type { BufferIterator } from './iterator/buffer-iterator';
|
|
5
|
-
import type {
|
|
5
|
+
import type { MediaParserLogLevel } from './log';
|
|
6
6
|
import type { ParseMediaSrc } from './options';
|
|
7
|
-
import type {
|
|
7
|
+
import type { MediaParserReaderInterface } from './readers/reader';
|
|
8
8
|
import type { CurrentReader } from './state/current-reader';
|
|
9
9
|
export declare const seekForward: ({ seekTo, userInitiated, iterator, fields, logLevel, currentReader, readerInterface, src, controller, discardReadBytes, prefetchCache, }: {
|
|
10
10
|
seekTo: number;
|
|
11
11
|
userInitiated: boolean;
|
|
12
12
|
iterator: BufferIterator;
|
|
13
13
|
fields: Partial<AllOptions<ParseMediaFields>>;
|
|
14
|
-
logLevel:
|
|
14
|
+
logLevel: MediaParserLogLevel;
|
|
15
15
|
currentReader: CurrentReader;
|
|
16
|
-
readerInterface:
|
|
16
|
+
readerInterface: MediaParserReaderInterface;
|
|
17
17
|
src: ParseMediaSrc;
|
|
18
18
|
controller: MediaParserController;
|
|
19
19
|
discardReadBytes: (force: boolean) => Promise<void>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseMediaOnServerWorker = void 0;
|
|
4
|
+
const parse_media_on_worker_entry_1 = require("./parse-media-on-worker-entry");
|
|
5
|
+
const parseMediaOnServerWorker = (params) => {
|
|
6
|
+
if (typeof Worker === 'undefined') {
|
|
7
|
+
throw new Error('"Worker" is not available. Cannot call parseMediaOnServerWorker()');
|
|
8
|
+
}
|
|
9
|
+
const worker = new Worker(new URL('./worker-server-entry', import.meta.url));
|
|
10
|
+
return (0, parse_media_on_worker_entry_1.parseMediaOnWorkerImplementation)(params, worker, 'parseMediaOnServerWorker');
|
|
11
|
+
};
|
|
12
|
+
exports.parseMediaOnServerWorker = parseMediaOnServerWorker;
|
|
@@ -15,7 +15,7 @@ const needsTracksForField = ({ field, structure, }) => {
|
|
|
15
15
|
field === 'fps' ||
|
|
16
16
|
field === 'isHdr' ||
|
|
17
17
|
field === 'rotation' ||
|
|
18
|
-
field === '
|
|
18
|
+
field === 'slowStructure' ||
|
|
19
19
|
field === 'tracks' ||
|
|
20
20
|
field === 'unrotatedDimensions' ||
|
|
21
21
|
field === 'videoCodec' ||
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { Options, ParseMediaFields } from '../fields';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
2
|
+
import type { MediaParserTrack } from '../get-tracks';
|
|
3
|
+
import type { MediaParserLogLevel } from '../log';
|
|
4
4
|
import type { ParseMediaSrc } from '../options';
|
|
5
5
|
import type { CanSkipTracksState } from './can-skip-tracks';
|
|
6
6
|
export declare const makeTracksSectionState: (canSkipTracksState: CanSkipTracksState, src: ParseMediaSrc) => {
|
|
7
7
|
hasAllTracks: () => boolean;
|
|
8
8
|
getIsDone: () => boolean;
|
|
9
|
-
setIsDone: (logLevel:
|
|
10
|
-
addTrack: (track:
|
|
11
|
-
getTracks: () =>
|
|
9
|
+
setIsDone: (logLevel: MediaParserLogLevel) => void;
|
|
10
|
+
addTrack: (track: MediaParserTrack) => void;
|
|
11
|
+
getTracks: () => MediaParserTrack[];
|
|
12
12
|
ensureHasTracksAtEnd: (fields: Options<ParseMediaFields>) => void;
|
|
13
13
|
};
|
|
14
14
|
export type TracksState = ReturnType<typeof makeTracksSectionState>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { JumpMark } from '../../containers/iso-base-media/mdat/calculate-jump-marks';
|
|
2
2
|
import type { SamplePosition } from '../../get-sample-positions';
|
|
3
|
-
import type {
|
|
3
|
+
import type { MediaParserAudioTrack, MediaParserOtherTrack, MediaParserVideoTrack } from '../../get-tracks';
|
|
4
4
|
import type { ParserState } from '../parser-state';
|
|
5
5
|
export type FlatSample = {
|
|
6
|
-
track:
|
|
6
|
+
track: MediaParserVideoTrack | MediaParserAudioTrack | MediaParserOtherTrack;
|
|
7
7
|
samplePosition: SamplePosition;
|
|
8
8
|
};
|
|
9
9
|
export type MinimalFlatSampleForTesting = {
|
|
@@ -21,7 +21,7 @@ export declare const calculateFlatSamples: ({ state, mediaSectionStart, }: {
|
|
|
21
21
|
state: ParserState;
|
|
22
22
|
mediaSectionStart: number;
|
|
23
23
|
}) => {
|
|
24
|
-
track:
|
|
24
|
+
track: import("../../get-tracks").MediaParserTrack;
|
|
25
25
|
samplePosition: SamplePosition;
|
|
26
26
|
}[][];
|
|
27
27
|
export declare const cachedSamplePositionsState: () => {
|