@remotion/media-parser 4.0.298 → 4.0.301
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/add-avc-profile-to-track.d.ts +2 -2
- package/dist/add-avc-profile-to-track.js +7 -1
- package/dist/codec-data.d.ts +29 -0
- package/dist/codec-data.js +2 -0
- package/dist/containers/aac/parse-aac.js +2 -3
- package/dist/containers/avc/color.d.ts +6 -6
- package/dist/containers/avc/color.js +53 -27
- package/dist/containers/avc/interpret-sps.d.ts +2 -2
- package/dist/containers/avc/interpret-sps.js +2 -2
- package/dist/containers/flac/parse-streaminfo.js +2 -3
- package/dist/containers/iso-base-media/collect-sample-positions-from-moof-boxes.d.ts +1 -1
- package/dist/containers/iso-base-media/color-to-webcodecs-colors.d.ts +2 -0
- package/dist/containers/iso-base-media/color-to-webcodecs-colors.js +12 -0
- package/dist/containers/iso-base-media/find-keyframe-before-time.d.ts +2 -2
- package/dist/containers/iso-base-media/find-track-to-seek.d.ts +5 -5
- package/dist/containers/iso-base-media/find-track-to-seek.js +18 -2
- package/dist/containers/iso-base-media/get-actual-number-of-channels.d.ts +3 -2
- package/dist/containers/iso-base-media/get-actual-number-of-channels.js +14 -3
- package/dist/containers/iso-base-media/get-children.d.ts +2 -2
- package/dist/containers/iso-base-media/get-keyframes.js +11 -2
- package/dist/containers/iso-base-media/get-mfra-seeking-box.d.ts +4 -4
- package/dist/containers/iso-base-media/get-moov-atom.js +1 -1
- package/dist/containers/iso-base-media/get-seeking-byte-from-fragmented-mp4.d.ts +9 -5
- package/dist/containers/iso-base-media/get-seeking-byte-from-fragmented-mp4.js +17 -4
- package/dist/containers/iso-base-media/get-seeking-byte.d.ts +2 -2
- package/dist/containers/iso-base-media/get-seeking-byte.js +5 -8
- package/dist/containers/iso-base-media/make-track.d.ts +2 -2
- package/dist/containers/iso-base-media/make-track.js +18 -17
- package/dist/containers/iso-base-media/mfra/find-best-segment-from-tfra.d.ts +2 -2
- package/dist/containers/iso-base-media/mfra/get-mfra-atom.d.ts +4 -4
- package/dist/containers/iso-base-media/mfra/get-mfro-atom.d.ts +4 -4
- package/dist/containers/iso-base-media/moov/moov.d.ts +2 -2
- package/dist/containers/iso-base-media/process-box.d.ts +5 -5
- package/dist/containers/iso-base-media/stsd/mebx.d.ts +2 -2
- package/dist/containers/iso-base-media/stsd/samples.d.ts +3 -3
- package/dist/containers/iso-base-media/stsd/stsd.d.ts +2 -2
- package/dist/containers/iso-base-media/trak/trak.d.ts +2 -2
- package/dist/containers/iso-base-media/traversal.d.ts +1 -0
- package/dist/containers/iso-base-media/traversal.js +13 -1
- package/dist/containers/m3u/after-manifest-fetch.d.ts +6 -6
- package/dist/containers/m3u/after-manifest-fetch.js +1 -1
- package/dist/containers/m3u/fetch-m3u8-stream.d.ts +2 -2
- package/dist/containers/m3u/first-sample-in-m3u-chunk.d.ts +3 -3
- package/dist/containers/m3u/first-sample-in-m3u-chunk.js +2 -8
- package/dist/containers/m3u/get-seeking-byte.d.ts +3 -3
- package/dist/containers/m3u/get-streams.d.ts +6 -6
- package/dist/containers/m3u/get-streams.js +9 -9
- package/dist/containers/m3u/parse-stream-inf.js +3 -3
- package/dist/containers/m3u/process-m3u-chunk.js +3 -3
- package/dist/containers/m3u/run-over-m3u.d.ts +2 -2
- package/dist/containers/m3u/sample-sorter.d.ts +7 -7
- package/dist/containers/m3u/types.d.ts +3 -3
- package/dist/containers/mp3/parse-mpeg-header.js +2 -3
- package/dist/containers/mp3/seek/audio-sample-from-cbr.d.ts +2 -2
- package/dist/containers/riff/get-tracks-from-avi.d.ts +4 -9
- package/dist/containers/riff/get-tracks-from-avi.js +19 -20
- package/dist/containers/riff/parse-video-section.js +1 -1
- package/dist/containers/riff/seek/fetch-idx1.d.ts +4 -4
- package/dist/containers/transport-stream/get-tracks.d.ts +2 -2
- package/dist/containers/transport-stream/get-tracks.js +1 -5
- package/dist/containers/transport-stream/handle-aac-packet.d.ts +4 -4
- package/dist/containers/transport-stream/handle-aac-packet.js +5 -4
- package/dist/containers/transport-stream/handle-avc-packet.d.ts +4 -4
- package/dist/containers/transport-stream/handle-avc-packet.js +10 -4
- package/dist/containers/transport-stream/process-audio.d.ts +5 -5
- package/dist/containers/transport-stream/process-stream-buffers.d.ts +8 -8
- package/dist/containers/transport-stream/process-video.d.ts +5 -5
- package/dist/containers/wav/parse-fmt.js +2 -3
- package/dist/containers/webm/color.d.ts +2 -2
- package/dist/containers/webm/color.js +6 -25
- package/dist/containers/webm/get-ready-tracks.d.ts +3 -3
- package/dist/containers/webm/get-sample-from-block.d.ts +7 -7
- package/dist/containers/webm/make-track.d.ts +3 -3
- package/dist/containers/webm/make-track.js +53 -21
- package/dist/containers/webm/parse-webm-header.js +5 -0
- package/dist/containers/webm/seek/fetch-web-cues.d.ts +4 -4
- package/dist/containers/webm/seek/get-seeking-byte.d.ts +2 -2
- package/dist/containers/webm/segments.d.ts +2 -2
- package/dist/containers/webm/segments.js +1 -1
- package/dist/containers/webm/state-for-processing.d.ts +5 -5
- package/dist/containers/webm/traversal.js +2 -1
- package/dist/controller/emitter.d.ts +2 -3
- package/dist/controller/seek-signal.d.ts +3 -9
- package/dist/controller/seek-signal.js +2 -2
- package/dist/convert-audio-or-video-sample.d.ts +4 -4
- package/dist/download-and-parse-media.js +1 -1
- package/dist/emit-available-info.js +9 -9
- package/dist/errors.d.ts +4 -18
- package/dist/errors.js +1 -15
- package/dist/esm/index.mjs +654 -544
- package/dist/esm/node.mjs +63 -51
- package/dist/esm/server-worker.mjs +13 -34
- package/dist/esm/universal.mjs +63 -51
- package/dist/esm/worker-server-entry.mjs +500 -388
- package/dist/esm/worker-web-entry.mjs +437 -337
- package/dist/esm/worker.mjs +14 -35
- package/dist/fields.d.ts +2 -2
- package/dist/file-types/bmp.d.ts +2 -2
- package/dist/file-types/detect-file-type.d.ts +2 -1
- package/dist/file-types/detect-file-type.js +1 -6
- package/dist/file-types/gif.d.ts +2 -0
- package/dist/file-types/gif.js +18 -0
- package/dist/file-types/index.js +4 -2
- package/dist/file-types/png.d.ts +2 -2
- package/dist/file-types/webp.d.ts +2 -2
- package/dist/get-audio-codec.d.ts +3 -4
- package/dist/get-audio-codec.js +44 -23
- package/dist/get-dimensions.d.ts +2 -2
- package/dist/get-dimensions.js +6 -3
- package/dist/get-duration.js +6 -7
- package/dist/get-fields-from-callbacks.js +1 -1
- package/dist/get-is-hdr.js +6 -5
- package/dist/get-sample-aspect-ratio.d.ts +5 -5
- package/dist/get-seeking-byte.d.ts +2 -2
- package/dist/get-tracks.d.ts +34 -44
- package/dist/get-tracks.js +6 -46
- package/dist/get-video-codec.d.ts +4 -3
- package/dist/get-video-codec.js +6 -6
- package/dist/has-all-info.js +1 -1
- package/dist/index.d.ts +114 -55
- package/dist/index.js +6 -4
- package/dist/init-video.js +4 -11
- package/dist/internal-parse-media.js +1 -1
- package/dist/log.d.ts +6 -6
- package/dist/metadata/get-metadata.js +6 -4
- package/dist/options.d.ts +19 -23
- package/dist/parse-loop.js +2 -2
- package/dist/parse-media-on-worker-entry.js +13 -5
- package/dist/parse-media.js +1 -1
- package/dist/perform-seek.d.ts +4 -4
- package/dist/readers/from-fetch.d.ts +2 -2
- package/dist/readers/from-node.d.ts +2 -2
- package/dist/readers/from-node.js +64 -55
- package/dist/readers/from-web-file.d.ts +2 -2
- package/dist/readers/reader.d.ts +5 -5
- package/dist/readers/universal.d.ts +2 -2
- package/dist/readers/web.d.ts +2 -2
- package/dist/register-track.d.ts +12 -12
- package/dist/remotion-license-acknowledge.d.ts +2 -2
- package/dist/seek-backwards.d.ts +4 -4
- package/dist/seek-forwards.d.ts +4 -4
- package/dist/state/can-skip-tracks.js +1 -1
- package/dist/state/emitted-fields.js +1 -1
- package/dist/state/has-tracks-section.d.ts +5 -5
- package/dist/state/iso-base-media/cached-sample-positions.d.ts +3 -3
- package/dist/state/iso-base-media/cached-sample-positions.js +16 -7
- package/dist/state/iso-base-media/iso-state.d.ts +4 -4
- package/dist/state/iso-base-media/lazy-mfra-load.d.ts +4 -4
- package/dist/state/m3u-state.d.ts +11 -11
- package/dist/state/matroska/lazy-cues-fetch.d.ts +4 -4
- package/dist/state/matroska/webm.d.ts +4 -4
- package/dist/state/matroska/webm.js +1 -1
- package/dist/state/may-skip-video-data.d.ts +1 -0
- package/dist/state/may-skip-video-data.js +23 -2
- package/dist/state/need-samples-for-fields.js +1 -1
- package/dist/state/parser-state.d.ts +67 -38
- package/dist/state/riff/lazy-idx1-fetch.d.ts +4 -4
- package/dist/state/riff/sample-counter.d.ts +3 -3
- package/dist/state/riff.d.ts +6 -6
- package/dist/state/sample-callbacks.d.ts +12 -12
- package/dist/state/sample-callbacks.js +2 -2
- package/dist/state/samples-observed/slow-duration-fps.d.ts +3 -3
- package/dist/state/transport-stream/last-emitted-sample.d.ts +3 -3
- package/dist/state/transport-stream/transport-stream.d.ts +2 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webcodec-sample-types.d.ts +21 -10
- package/dist/work-on-seek-request.d.ts +4 -4
- package/dist/work-on-seek-request.js +40 -43
- package/dist/worker/serialize-error.d.ts +2 -2
- package/dist/worker/serialize-error.js +7 -25
- package/dist/worker/worker-types.d.ts +22 -24
- package/dist/worker-server.d.ts +2 -2
- package/dist/worker-server.js +5 -5
- package/dist/writers/writer.d.ts +2 -2
- package/package.json +3 -3
- package/dist/containers/iso-base-media/sample-positions.d.ts +0 -25
- package/dist/containers/iso-base-media/sample-positions.js +0 -37
- package/dist/containers/iso-base-media/turn-sample-positions-into-array.d.ts +0 -19
- package/dist/containers/iso-base-media/turn-sample-positions-into-array.js +0 -73
- package/dist/containers/m3u/iterate-over-segment-files.d.ts +0 -21
- package/dist/containers/m3u/iterate-over-segment-files.js +0 -132
- package/dist/containers/mp3/audio-sample-from-cbr.d.ts +0 -11
- package/dist/containers/mp3/audio-sample-from-cbr.js +0 -35
- package/dist/emit-audio-sample.d.ts +0 -12
- package/dist/emit-audio-sample.js +0 -11
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { MediaParserController } from '../../controller/media-parser-controller';
|
|
2
2
|
import type { PrefetchCache } from '../../fetch';
|
|
3
|
-
import type {
|
|
3
|
+
import type { MediaParserLogLevel } from '../../log';
|
|
4
4
|
import type { ParseMediaSrc } from '../../options';
|
|
5
|
-
import type {
|
|
5
|
+
import type { MediaParserReaderInterface } from '../../readers/reader';
|
|
6
6
|
export declare const isoBaseMediaState: ({ contentLength, controller, readerInterface, src, logLevel, prefetchCache, }: {
|
|
7
7
|
contentLength: number;
|
|
8
8
|
controller: MediaParserController;
|
|
9
|
-
readerInterface:
|
|
9
|
+
readerInterface: MediaParserReaderInterface;
|
|
10
10
|
src: ParseMediaSrc;
|
|
11
|
-
logLevel:
|
|
11
|
+
logLevel: MediaParserLogLevel;
|
|
12
12
|
prefetchCache: PrefetchCache;
|
|
13
13
|
}) => {
|
|
14
14
|
flatSamples: {
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { IsoBaseMediaBox } from '../../containers/iso-base-media/base-media-box';
|
|
2
2
|
import type { MediaParserController } from '../../controller/media-parser-controller';
|
|
3
3
|
import type { PrefetchCache } from '../../fetch';
|
|
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 { IsoBaseMediaSeekingHints } from '../../seeking-hints';
|
|
8
8
|
export declare const lazyMfraLoad: ({ contentLength, controller, readerInterface, src, logLevel, prefetchCache, }: {
|
|
9
9
|
contentLength: number;
|
|
10
10
|
controller: MediaParserController;
|
|
11
|
-
readerInterface:
|
|
11
|
+
readerInterface: MediaParserReaderInterface;
|
|
12
12
|
src: ParseMediaSrc;
|
|
13
|
-
logLevel:
|
|
13
|
+
logLevel: MediaParserLogLevel;
|
|
14
14
|
prefetchCache: PrefetchCache;
|
|
15
15
|
}) => {
|
|
16
16
|
triggerLoad: () => Promise<IsoBaseMediaBox[] | null>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { M3uAssociatedPlaylist, M3uStream } from '../containers/m3u/get-streams';
|
|
2
|
-
import type {
|
|
2
|
+
import type { MediaParserLogLevel } from '../log';
|
|
3
3
|
import type { IsoBaseMediaStructure } from '../parse-result';
|
|
4
|
-
import type {
|
|
4
|
+
import type { MediaParserOnAudioSample, MediaParserOnVideoSample } from '../webcodec-sample-types';
|
|
5
5
|
export type M3uStreamOrInitialUrl = {
|
|
6
6
|
type: 'selected-stream';
|
|
7
7
|
stream: M3uStream;
|
|
@@ -16,13 +16,13 @@ export type M3uRun = {
|
|
|
16
16
|
type M3uSeek = {
|
|
17
17
|
targetTime: number;
|
|
18
18
|
};
|
|
19
|
-
export declare const m3uState: (logLevel:
|
|
19
|
+
export declare const m3uState: (logLevel: MediaParserLogLevel) => {
|
|
20
20
|
setSelectedMainPlaylist: (stream: M3uStreamOrInitialUrl) => void;
|
|
21
21
|
getSelectedMainPlaylist: () => M3uStreamOrInitialUrl | null;
|
|
22
|
-
setHasEmittedVideoTrack: (src: string, callback:
|
|
23
|
-
hasEmittedVideoTrack: (src: string) => false |
|
|
24
|
-
setHasEmittedAudioTrack: (src: string, callback:
|
|
25
|
-
hasEmittedAudioTrack: (src: string) => false |
|
|
22
|
+
setHasEmittedVideoTrack: (src: string, callback: MediaParserOnVideoSample | null) => void;
|
|
23
|
+
hasEmittedVideoTrack: (src: string) => false | MediaParserOnVideoSample | null;
|
|
24
|
+
setHasEmittedAudioTrack: (src: string, callback: MediaParserOnAudioSample | null) => void;
|
|
25
|
+
hasEmittedAudioTrack: (src: string) => false | MediaParserOnAudioSample | null;
|
|
26
26
|
setHasEmittedDoneWithTracks: (src: string) => void;
|
|
27
27
|
hasEmittedDoneWithTracks: (src: string) => boolean;
|
|
28
28
|
setReadyToIterateOverM3u: () => void;
|
|
@@ -45,12 +45,12 @@ export declare const m3uState: (logLevel: LogLevel) => {
|
|
|
45
45
|
sampleSorter: {
|
|
46
46
|
clearSamples: () => void;
|
|
47
47
|
addToStreamWithTrack: (src: string) => void;
|
|
48
|
-
addVideoStreamToConsider: (src: string, callback:
|
|
49
|
-
addAudioStreamToConsider: (src: string, callback:
|
|
48
|
+
addVideoStreamToConsider: (src: string, callback: MediaParserOnVideoSample) => void;
|
|
49
|
+
addAudioStreamToConsider: (src: string, callback: MediaParserOnAudioSample) => void;
|
|
50
50
|
hasAudioStreamToConsider: (src: string) => boolean;
|
|
51
51
|
hasVideoStreamToConsider: (src: string) => boolean;
|
|
52
|
-
addAudioSample: (src: string, sample: import("../webcodec-sample-types").
|
|
53
|
-
addVideoSample: (src: string, sample: import("../webcodec-sample-types").
|
|
52
|
+
addAudioSample: (src: string, sample: import("../webcodec-sample-types").MediaParserAudioSample) => Promise<void>;
|
|
53
|
+
addVideoSample: (src: string, sample: import("../webcodec-sample-types").MediaParserVideoSample) => Promise<void>;
|
|
54
54
|
getNextStreamToRun: (streams: string[]) => string;
|
|
55
55
|
};
|
|
56
56
|
setMp4HeaderSegment: (playlistUrl: string, structure: IsoBaseMediaStructure) => void;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { MatroskaCue } from '../../containers/webm/seek/format-cues';
|
|
2
2
|
import type { MediaParserController } from '../../controller/media-parser-controller';
|
|
3
3
|
import type { PrefetchCache } from '../../fetch';
|
|
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 { WebmSeekingHints } from '../../seeking-hints';
|
|
8
8
|
export declare const lazyCuesFetch: ({ controller, logLevel, readerInterface, src, prefetchCache, }: {
|
|
9
9
|
controller: MediaParserController;
|
|
10
|
-
logLevel:
|
|
11
|
-
readerInterface:
|
|
10
|
+
logLevel: MediaParserLogLevel;
|
|
11
|
+
readerInterface: MediaParserReaderInterface;
|
|
12
12
|
src: ParseMediaSrc;
|
|
13
13
|
prefetchCache: PrefetchCache;
|
|
14
14
|
}) => {
|
|
@@ -4,9 +4,9 @@ import type { TrackInfo } from '../../containers/webm/segments/track-entry';
|
|
|
4
4
|
import type { MediaParserController } from '../../controller/media-parser-controller';
|
|
5
5
|
import type { PrefetchCache } from '../../fetch';
|
|
6
6
|
import type { BufferIterator } from '../../iterator/buffer-iterator';
|
|
7
|
-
import type {
|
|
7
|
+
import type { MediaParserLogLevel } from '../../log';
|
|
8
8
|
import type { ParseMediaSrc } from '../../options';
|
|
9
|
-
import type {
|
|
9
|
+
import type { MediaParserReaderInterface } from '../../readers/reader';
|
|
10
10
|
export type SegmentSection = {
|
|
11
11
|
start: number;
|
|
12
12
|
size: number;
|
|
@@ -19,8 +19,8 @@ export type ClusterSection = {
|
|
|
19
19
|
};
|
|
20
20
|
export declare const webmState: ({ controller, logLevel, readerInterface, src, prefetchCache, }: {
|
|
21
21
|
controller: MediaParserController;
|
|
22
|
-
logLevel:
|
|
23
|
-
readerInterface:
|
|
22
|
+
logLevel: MediaParserLogLevel;
|
|
23
|
+
readerInterface: MediaParserReaderInterface;
|
|
24
24
|
src: ParseMediaSrc;
|
|
25
25
|
prefetchCache: PrefetchCache;
|
|
26
26
|
}) => {
|
|
@@ -117,7 +117,7 @@ const webmState = ({ controller, logLevel, readerInterface, src, prefetchCache,
|
|
|
117
117
|
},
|
|
118
118
|
isInsideCluster: (offset) => {
|
|
119
119
|
for (const cluster of clusters) {
|
|
120
|
-
if (offset >= cluster.start && offset
|
|
120
|
+
if (offset >= cluster.start && offset < cluster.start + cluster.size) {
|
|
121
121
|
return cluster;
|
|
122
122
|
}
|
|
123
123
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.maySkipOverSamplesInTheMiddle = exports.maySkipVideoData = void 0;
|
|
3
|
+
exports.maySkipOverSamplesInTheMiddle = exports.maySkipVideoData = exports.missesMatroskaTracks = void 0;
|
|
4
|
+
const get_ready_tracks_1 = require("../containers/webm/get-ready-tracks");
|
|
5
|
+
const traversal_1 = require("../containers/webm/traversal");
|
|
4
6
|
const need_samples_for_fields_1 = require("./need-samples-for-fields");
|
|
5
7
|
const getHasCallbacks = (state) => {
|
|
6
8
|
const hasNoTrackHandlers = !state.callbacks.hasAudioTrackHandlers &&
|
|
@@ -13,13 +15,32 @@ const getHasCallbacks = (state) => {
|
|
|
13
15
|
Object.values(state.callbacks.audioSampleCallbacks).length > 0;
|
|
14
16
|
return hasAllTracksAndNoCallbacks;
|
|
15
17
|
};
|
|
18
|
+
const missesMatroskaTracks = (state) => {
|
|
19
|
+
const struct = state.structure.getStructureOrNull();
|
|
20
|
+
if (struct === null) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
if (struct.type !== 'matroska') {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
const mainSegment = (0, traversal_1.getMainSegment)(struct.boxes);
|
|
27
|
+
if (mainSegment === null) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return ((0, get_ready_tracks_1.getTracksFromMatroska)({
|
|
31
|
+
structureState: state.structure,
|
|
32
|
+
webmState: state.webm,
|
|
33
|
+
}).missingInfo.length > 0);
|
|
34
|
+
};
|
|
35
|
+
exports.missesMatroskaTracks = missesMatroskaTracks;
|
|
16
36
|
const maySkipVideoData = ({ state }) => {
|
|
17
37
|
const hasCallbacks = getHasCallbacks(state);
|
|
18
38
|
return (!hasCallbacks &&
|
|
19
39
|
!(0, need_samples_for_fields_1.needsToIterateOverSamples)({
|
|
20
40
|
emittedFields: state.emittedFields,
|
|
21
41
|
fields: state.fields,
|
|
22
|
-
})
|
|
42
|
+
}) &&
|
|
43
|
+
!(0, exports.missesMatroskaTracks)(state));
|
|
23
44
|
};
|
|
24
45
|
exports.maySkipVideoData = maySkipVideoData;
|
|
25
46
|
const maySkipOverSamplesInTheMiddle = ({ state, }) => {
|
|
@@ -4,10 +4,10 @@ import type { MediaParserController } from '../controller/media-parser-controlle
|
|
|
4
4
|
import type { PrefetchCache } from '../fetch';
|
|
5
5
|
import type { Options, ParseMediaFields } from '../fields';
|
|
6
6
|
import { type BufferIterator } from '../iterator/buffer-iterator';
|
|
7
|
-
import { type
|
|
8
|
-
import type {
|
|
9
|
-
import type {
|
|
10
|
-
import type {
|
|
7
|
+
import { type MediaParserLogLevel } from '../log';
|
|
8
|
+
import type { M3uPlaylistContext, OnDiscardedData, ParseMediaCallbacks, ParseMediaMode, ParseMediaSrc } from '../options';
|
|
9
|
+
import type { MediaParserReaderInterface, Reader } from '../readers/reader';
|
|
10
|
+
import type { MediaParserOnAudioTrack, MediaParserOnVideoTrack } from '../webcodec-sample-types';
|
|
11
11
|
export type InternalStats = {
|
|
12
12
|
skippedBytes: number;
|
|
13
13
|
finalCursorOffset: number;
|
|
@@ -20,13 +20,13 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
|
|
|
20
20
|
hasAudioTrackHandlers: boolean;
|
|
21
21
|
hasVideoTrackHandlers: boolean;
|
|
22
22
|
controller: MediaParserController;
|
|
23
|
-
onAudioTrack:
|
|
24
|
-
onVideoTrack:
|
|
23
|
+
onAudioTrack: MediaParserOnAudioTrack | null;
|
|
24
|
+
onVideoTrack: MediaParserOnVideoTrack | null;
|
|
25
25
|
contentLength: number;
|
|
26
|
-
logLevel:
|
|
26
|
+
logLevel: MediaParserLogLevel;
|
|
27
27
|
mode: ParseMediaMode;
|
|
28
28
|
src: ParseMediaSrc;
|
|
29
|
-
readerInterface:
|
|
29
|
+
readerInterface: MediaParserReaderInterface;
|
|
30
30
|
onDiscardedData: OnDiscardedData | null;
|
|
31
31
|
selectM3uStreamFn: SelectM3uStreamFn;
|
|
32
32
|
selectM3uAssociatedPlaylistsFn: SelectM3uAssociatedPlaylistsFn;
|
|
@@ -66,8 +66,8 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
|
|
|
66
66
|
}> | Promise<null>;
|
|
67
67
|
};
|
|
68
68
|
sampleCounter: {
|
|
69
|
-
onAudioSample: (trackId: number, audioSample: import("../webcodec-sample-types").
|
|
70
|
-
onVideoSample: (trackId: number, videoSample: import("../webcodec-sample-types").
|
|
69
|
+
onAudioSample: (trackId: number, audioSample: import("../webcodec-sample-types").MediaParserAudioSample) => void;
|
|
70
|
+
onVideoSample: (trackId: number, videoSample: import("../webcodec-sample-types").MediaParserVideoSample) => void;
|
|
71
71
|
getSamplesForTrack: (trackId: number) => number;
|
|
72
72
|
setSamplesFromSeek: (samples: Record<number, number>) => void;
|
|
73
73
|
riffKeys: {
|
|
@@ -99,8 +99,8 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
|
|
|
99
99
|
};
|
|
100
100
|
resetBeforeSeek: () => void;
|
|
101
101
|
lastEmittedSample: {
|
|
102
|
-
setLastEmittedSample: (sample: import("../webcodec-sample-types").
|
|
103
|
-
getLastEmittedSample: () => import("../webcodec-sample-types").
|
|
102
|
+
setLastEmittedSample: (sample: import("../webcodec-sample-types").MediaParserAudioSample | import("../webcodec-sample-types").MediaParserVideoSample) => void;
|
|
103
|
+
getLastEmittedSample: () => import("../webcodec-sample-types").MediaParserAudioSample | import("../webcodec-sample-types").MediaParserVideoSample | null;
|
|
104
104
|
resetLastEmittedSample: () => void;
|
|
105
105
|
};
|
|
106
106
|
};
|
|
@@ -207,10 +207,10 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
|
|
|
207
207
|
m3u: {
|
|
208
208
|
setSelectedMainPlaylist: (stream: import("./m3u-state").M3uStreamOrInitialUrl) => void;
|
|
209
209
|
getSelectedMainPlaylist: () => import("./m3u-state").M3uStreamOrInitialUrl | null;
|
|
210
|
-
setHasEmittedVideoTrack: (src: string, callback: import("../webcodec-sample-types").
|
|
211
|
-
hasEmittedVideoTrack: (src: string) => false | import("../webcodec-sample-types").
|
|
212
|
-
setHasEmittedAudioTrack: (src: string, callback: import("../webcodec-sample-types").
|
|
213
|
-
hasEmittedAudioTrack: (src: string) => false | import("../webcodec-sample-types").
|
|
210
|
+
setHasEmittedVideoTrack: (src: string, callback: import("../webcodec-sample-types").MediaParserOnVideoSample | null) => void;
|
|
211
|
+
hasEmittedVideoTrack: (src: string) => false | import("../webcodec-sample-types").MediaParserOnVideoSample | null;
|
|
212
|
+
setHasEmittedAudioTrack: (src: string, callback: import("../webcodec-sample-types").MediaParserOnAudioSample | null) => void;
|
|
213
|
+
hasEmittedAudioTrack: (src: string) => false | import("../webcodec-sample-types").MediaParserOnAudioSample | null;
|
|
214
214
|
setHasEmittedDoneWithTracks: (src: string) => void;
|
|
215
215
|
hasEmittedDoneWithTracks: (src: string) => boolean;
|
|
216
216
|
setReadyToIterateOverM3u: () => void;
|
|
@@ -233,12 +233,12 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
|
|
|
233
233
|
sampleSorter: {
|
|
234
234
|
clearSamples: () => void;
|
|
235
235
|
addToStreamWithTrack: (src: string) => void;
|
|
236
|
-
addVideoStreamToConsider: (src: string, callback: import("../webcodec-sample-types").
|
|
237
|
-
addAudioStreamToConsider: (src: string, callback: import("../webcodec-sample-types").
|
|
236
|
+
addVideoStreamToConsider: (src: string, callback: import("../webcodec-sample-types").MediaParserOnVideoSample) => void;
|
|
237
|
+
addAudioStreamToConsider: (src: string, callback: import("../webcodec-sample-types").MediaParserOnAudioSample) => void;
|
|
238
238
|
hasAudioStreamToConsider: (src: string) => boolean;
|
|
239
239
|
hasVideoStreamToConsider: (src: string) => boolean;
|
|
240
|
-
addAudioSample: (src: string, sample: import("../webcodec-sample-types").
|
|
241
|
-
addVideoSample: (src: string, sample: import("../webcodec-sample-types").
|
|
240
|
+
addAudioSample: (src: string, sample: import("../webcodec-sample-types").MediaParserAudioSample) => Promise<void>;
|
|
241
|
+
addVideoSample: (src: string, sample: import("../webcodec-sample-types").MediaParserVideoSample) => Promise<void>;
|
|
242
242
|
getNextStreamToRun: (streams: string[]) => string;
|
|
243
243
|
};
|
|
244
244
|
setMp4HeaderSegment: (playlistUrl: string, structure: import("../parse-result").IsoBaseMediaStructure) => void;
|
|
@@ -260,24 +260,24 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
|
|
|
260
260
|
timeFreeingData: number;
|
|
261
261
|
};
|
|
262
262
|
callbacks: {
|
|
263
|
-
registerVideoSampleCallback: (id: number, callback: import("../webcodec-sample-types").
|
|
264
|
-
onAudioSample: (trackId: number, audioSample: import("../webcodec-sample-types").
|
|
265
|
-
onVideoSample: (trackId: number, videoSample: import("../webcodec-sample-types").
|
|
263
|
+
registerVideoSampleCallback: (id: number, callback: import("../webcodec-sample-types").MediaParserOnVideoSample | null) => Promise<void>;
|
|
264
|
+
onAudioSample: (trackId: number, audioSample: import("../webcodec-sample-types").MediaParserAudioSample) => Promise<void>;
|
|
265
|
+
onVideoSample: (trackId: number, videoSample: import("../webcodec-sample-types").MediaParserVideoSample) => Promise<void>;
|
|
266
266
|
canSkipTracksState: {
|
|
267
267
|
doFieldsNeedTracks: () => boolean;
|
|
268
268
|
canSkipTracks: () => boolean;
|
|
269
269
|
};
|
|
270
|
-
registerAudioSampleCallback: (id: number, callback: import("../webcodec-sample-types").
|
|
270
|
+
registerAudioSampleCallback: (id: number, callback: import("../webcodec-sample-types").MediaParserOnAudioSample | null) => Promise<void>;
|
|
271
271
|
tracks: {
|
|
272
272
|
hasAllTracks: () => boolean;
|
|
273
273
|
getIsDone: () => boolean;
|
|
274
|
-
setIsDone: (logLevel:
|
|
275
|
-
addTrack: (track: import("..").
|
|
276
|
-
getTracks: () => import("..").
|
|
274
|
+
setIsDone: (logLevel: MediaParserLogLevel) => void;
|
|
275
|
+
addTrack: (track: import("..").MediaParserTrack) => void;
|
|
276
|
+
getTracks: () => import("..").MediaParserTrack[];
|
|
277
277
|
ensureHasTracksAtEnd: (fields: Options<ParseMediaFields>) => void;
|
|
278
278
|
};
|
|
279
|
-
audioSampleCallbacks: Record<number, import("../webcodec-sample-types").
|
|
280
|
-
videoSampleCallbacks: Record<number, import("../webcodec-sample-types").
|
|
279
|
+
audioSampleCallbacks: Record<number, import("../webcodec-sample-types").MediaParserOnAudioSample>;
|
|
280
|
+
videoSampleCallbacks: Record<number, import("../webcodec-sample-types").MediaParserOnVideoSample>;
|
|
281
281
|
hasAudioTrackHandlers: boolean;
|
|
282
282
|
hasVideoTrackHandlers: boolean;
|
|
283
283
|
};
|
|
@@ -290,9 +290,9 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
|
|
|
290
290
|
setFromSeekingHints: (keyframesFromHints: import("../options").MediaParserKeyframe[]) => void;
|
|
291
291
|
};
|
|
292
292
|
structure: {
|
|
293
|
-
getStructureOrNull: () => import("
|
|
294
|
-
getStructure: () => import("
|
|
295
|
-
setStructure: (value: import("
|
|
293
|
+
getStructureOrNull: () => import("../parse-result").MediaParserStructureUnstable | null;
|
|
294
|
+
getStructure: () => import("../parse-result").MediaParserStructureUnstable;
|
|
295
|
+
setStructure: (value: import("../parse-result").MediaParserStructureUnstable) => void;
|
|
296
296
|
getFlacStructure: () => import("../containers/flac/types").FlacStructure;
|
|
297
297
|
getIsoStructure: () => import("../parse-result").IsoBaseMediaStructure;
|
|
298
298
|
getMp3Structure: () => import("../parse-result").Mp3Structure;
|
|
@@ -302,13 +302,13 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
|
|
|
302
302
|
getWavStructure: () => import("../containers/wav/types").WavStructure;
|
|
303
303
|
getMatroskaStructure: () => import("../parse-result").MatroskaStructure;
|
|
304
304
|
};
|
|
305
|
-
onAudioTrack:
|
|
306
|
-
onVideoTrack:
|
|
305
|
+
onAudioTrack: MediaParserOnAudioTrack | null;
|
|
306
|
+
onVideoTrack: MediaParserOnVideoTrack | null;
|
|
307
307
|
emittedFields: import("../fields").AllOptions<ParseMediaFields>;
|
|
308
308
|
fields: Partial<import("../fields").AllOptions<ParseMediaFields>>;
|
|
309
309
|
samplesObserved: {
|
|
310
|
-
addVideoSample: (videoSample: import("../webcodec-sample-types").
|
|
311
|
-
addAudioSample: (audioSample: import("../webcodec-sample-types").
|
|
310
|
+
addVideoSample: (videoSample: import("../webcodec-sample-types").MediaParserVideoSample) => void;
|
|
311
|
+
addAudioSample: (audioSample: import("../webcodec-sample-types").MediaParserAudioSample) => void;
|
|
312
312
|
getSlowDurationInSeconds: () => number;
|
|
313
313
|
getFps: () => number;
|
|
314
314
|
getSlowNumberOfFrames: () => number;
|
|
@@ -414,14 +414,43 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
|
|
|
414
414
|
controller: MediaParserController;
|
|
415
415
|
mode: ParseMediaMode;
|
|
416
416
|
src: ParseMediaSrc;
|
|
417
|
-
readerInterface:
|
|
417
|
+
readerInterface: MediaParserReaderInterface;
|
|
418
418
|
discardReadBytes: (force: boolean) => Promise<void>;
|
|
419
419
|
selectM3uStreamFn: SelectM3uStreamFn;
|
|
420
420
|
selectM3uAssociatedPlaylistsFn: SelectM3uAssociatedPlaylistsFn;
|
|
421
421
|
m3uPlaylistContext: M3uPlaylistContext | null;
|
|
422
422
|
contentType: string | null;
|
|
423
423
|
name: string;
|
|
424
|
-
returnValue:
|
|
424
|
+
returnValue: {
|
|
425
|
+
dimensions: import("..").MediaParserDimensions | null;
|
|
426
|
+
durationInSeconds: number | null;
|
|
427
|
+
slowDurationInSeconds: number;
|
|
428
|
+
slowNumberOfFrames: number;
|
|
429
|
+
slowFps: number;
|
|
430
|
+
slowStructure: import("../parse-result").MediaParserStructureUnstable;
|
|
431
|
+
fps: number | null;
|
|
432
|
+
videoCodec: import("..").MediaParserVideoCodec | null;
|
|
433
|
+
audioCodec: import("..").MediaParserAudioCodec | null;
|
|
434
|
+
tracks: import("..").MediaParserTrack[];
|
|
435
|
+
rotation: number | null;
|
|
436
|
+
unrotatedDimensions: import("..").MediaParserDimensions | null;
|
|
437
|
+
internalStats: InternalStats;
|
|
438
|
+
size: number | null;
|
|
439
|
+
name: string;
|
|
440
|
+
container: import("../options").MediaParserContainer;
|
|
441
|
+
isHdr: boolean;
|
|
442
|
+
metadata: import("..").MediaParserMetadataEntry[];
|
|
443
|
+
location: import("..").MediaParserLocation | null;
|
|
444
|
+
mimeType: string | null;
|
|
445
|
+
keyframes: import("../options").MediaParserKeyframe[] | null;
|
|
446
|
+
slowKeyframes: import("../options").MediaParserKeyframe[];
|
|
447
|
+
images: import("./images").MediaParserEmbeddedImage[];
|
|
448
|
+
sampleRate: number | null;
|
|
449
|
+
numberOfAudioChannels: number | null;
|
|
450
|
+
slowVideoBitrate: number | null;
|
|
451
|
+
slowAudioBitrate: number | null;
|
|
452
|
+
m3uStreams: import("..").M3uStream[] | null;
|
|
453
|
+
};
|
|
425
454
|
callbackFunctions: Partial<import("../options").ParseMediaCallbacksMandatory>;
|
|
426
455
|
fieldsInReturnValue: Partial<import("../fields").AllOptions<ParseMediaFields>>;
|
|
427
456
|
mimeType: string | null;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { RiffSeekingHints } from '../../containers/riff/seeking-hints';
|
|
2
2
|
import type { MediaParserController } from '../../controller/media-parser-controller';
|
|
3
3
|
import type { PrefetchCache } from '../../fetch';
|
|
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
|
export declare const lazyIdx1Fetch: ({ controller, logLevel, readerInterface, src, prefetchCache, }: {
|
|
8
8
|
controller: MediaParserController;
|
|
9
|
-
logLevel:
|
|
10
|
-
readerInterface:
|
|
9
|
+
logLevel: MediaParserLogLevel;
|
|
10
|
+
readerInterface: MediaParserReaderInterface;
|
|
11
11
|
src: ParseMediaSrc;
|
|
12
12
|
prefetchCache: PrefetchCache;
|
|
13
13
|
}) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MediaParserAudioSample, MediaParserVideoSample } from '../../webcodec-sample-types';
|
|
2
2
|
export declare const riffSampleCounter: () => {
|
|
3
|
-
onAudioSample: (trackId: number, audioSample:
|
|
4
|
-
onVideoSample: (trackId: number, videoSample:
|
|
3
|
+
onAudioSample: (trackId: number, audioSample: MediaParserAudioSample) => void;
|
|
4
|
+
onVideoSample: (trackId: number, videoSample: MediaParserVideoSample) => void;
|
|
5
5
|
getSamplesForTrack: (trackId: number) => number;
|
|
6
6
|
setSamplesFromSeek: (samples: Record<number, number>) => void;
|
|
7
7
|
riffKeys: {
|
package/dist/state/riff.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { MediaParserController } from '../controller/media-parser-controller';
|
|
2
2
|
import type { PrefetchCache } from '../fetch';
|
|
3
|
-
import type {
|
|
3
|
+
import type { MediaParserLogLevel } from '../log';
|
|
4
4
|
import type { ParseMediaSrc } from '../options';
|
|
5
|
-
import type {
|
|
5
|
+
import type { MediaParserReaderInterface } from '../readers/reader';
|
|
6
6
|
import type { SpsAndPps } from './parser-state';
|
|
7
7
|
type AvcProfileInfoCallback = (profile: SpsAndPps) => Promise<void>;
|
|
8
8
|
export declare const riffSpecificState: ({ controller, logLevel, readerInterface, src, prefetchCache, }: {
|
|
9
9
|
controller: MediaParserController;
|
|
10
|
-
logLevel:
|
|
11
|
-
readerInterface:
|
|
10
|
+
logLevel: MediaParserLogLevel;
|
|
11
|
+
readerInterface: MediaParserReaderInterface;
|
|
12
12
|
src: ParseMediaSrc;
|
|
13
13
|
prefetchCache: PrefetchCache;
|
|
14
14
|
}) => {
|
|
@@ -37,8 +37,8 @@ export declare const riffSpecificState: ({ controller, logLevel, readerInterface
|
|
|
37
37
|
}> | Promise<null>;
|
|
38
38
|
};
|
|
39
39
|
sampleCounter: {
|
|
40
|
-
onAudioSample: (trackId: number, audioSample: import("..").
|
|
41
|
-
onVideoSample: (trackId: number, videoSample: import("..").
|
|
40
|
+
onAudioSample: (trackId: number, audioSample: import("..").MediaParserAudioSample) => void;
|
|
41
|
+
onVideoSample: (trackId: number, videoSample: import("..").MediaParserVideoSample) => void;
|
|
42
42
|
getSamplesForTrack: (trackId: number) => number;
|
|
43
43
|
setSamplesFromSeek: (samples: Record<number, number>) => void;
|
|
44
44
|
riffKeys: {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { MediaParserController } from '../controller/media-parser-controller';
|
|
2
2
|
import type { SeekSignal } from '../controller/seek-signal';
|
|
3
3
|
import type { AllOptions, Options, ParseMediaFields } from '../fields';
|
|
4
|
-
import type {
|
|
4
|
+
import type { MediaParserLogLevel } from '../log';
|
|
5
5
|
import type { ParseMediaSrc } from '../options';
|
|
6
|
-
import type {
|
|
6
|
+
import type { MediaParserAudioSample, MediaParserOnAudioSample, MediaParserOnVideoSample, MediaParserVideoSample } from '../webcodec-sample-types';
|
|
7
7
|
import { type KeyframesState } from './keyframes';
|
|
8
8
|
import type { SamplesObservedState } from './samples-observed/slow-duration-fps';
|
|
9
9
|
import type { StructureState } from './structure';
|
|
@@ -18,26 +18,26 @@ export declare const callbacksState: ({ controller, hasAudioTrackHandlers, hasVi
|
|
|
18
18
|
structure: StructureState;
|
|
19
19
|
src: ParseMediaSrc;
|
|
20
20
|
seekSignal: SeekSignal;
|
|
21
|
-
logLevel:
|
|
21
|
+
logLevel: MediaParserLogLevel;
|
|
22
22
|
}) => {
|
|
23
|
-
registerVideoSampleCallback: (id: number, callback:
|
|
24
|
-
onAudioSample: (trackId: number, audioSample:
|
|
25
|
-
onVideoSample: (trackId: number, videoSample:
|
|
23
|
+
registerVideoSampleCallback: (id: number, callback: MediaParserOnVideoSample | null) => Promise<void>;
|
|
24
|
+
onAudioSample: (trackId: number, audioSample: MediaParserAudioSample) => Promise<void>;
|
|
25
|
+
onVideoSample: (trackId: number, videoSample: MediaParserVideoSample) => Promise<void>;
|
|
26
26
|
canSkipTracksState: {
|
|
27
27
|
doFieldsNeedTracks: () => boolean;
|
|
28
28
|
canSkipTracks: () => boolean;
|
|
29
29
|
};
|
|
30
|
-
registerAudioSampleCallback: (id: number, callback:
|
|
30
|
+
registerAudioSampleCallback: (id: number, callback: MediaParserOnAudioSample | null) => Promise<void>;
|
|
31
31
|
tracks: {
|
|
32
32
|
hasAllTracks: () => boolean;
|
|
33
33
|
getIsDone: () => boolean;
|
|
34
|
-
setIsDone: (logLevel:
|
|
35
|
-
addTrack: (track: import("..").
|
|
36
|
-
getTracks: () => import("..").
|
|
34
|
+
setIsDone: (logLevel: MediaParserLogLevel) => void;
|
|
35
|
+
addTrack: (track: import("..").MediaParserTrack) => void;
|
|
36
|
+
getTracks: () => import("..").MediaParserTrack[];
|
|
37
37
|
ensureHasTracksAtEnd: (fields: Options<ParseMediaFields>) => void;
|
|
38
38
|
};
|
|
39
|
-
audioSampleCallbacks: Record<number,
|
|
40
|
-
videoSampleCallbacks: Record<number,
|
|
39
|
+
audioSampleCallbacks: Record<number, MediaParserOnAudioSample>;
|
|
40
|
+
videoSampleCallbacks: Record<number, MediaParserOnVideoSample>;
|
|
41
41
|
hasAudioTrackHandlers: boolean;
|
|
42
42
|
hasVideoTrackHandlers: boolean;
|
|
43
43
|
};
|
|
@@ -38,7 +38,7 @@ const callbacksState = ({ controller, hasAudioTrackHandlers, hasVideoTrackHandle
|
|
|
38
38
|
if (audioSample.data.length > 0) {
|
|
39
39
|
// If we emit samples with data length 0, Chrome will fail
|
|
40
40
|
if (callback) {
|
|
41
|
-
if (seekSignal.getSeek()) {
|
|
41
|
+
if (seekSignal.getSeek() !== null) {
|
|
42
42
|
log_1.Log.trace(logLevel, 'Not emitting sample because seek is processing');
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
@@ -58,7 +58,7 @@ const callbacksState = ({ controller, hasAudioTrackHandlers, hasVideoTrackHandle
|
|
|
58
58
|
const callback = videoSampleCallbacks[trackId];
|
|
59
59
|
// If we emit samples with data 0, Chrome will fail
|
|
60
60
|
if (callback) {
|
|
61
|
-
if (seekSignal.getSeek()) {
|
|
61
|
+
if (seekSignal.getSeek() !== null) {
|
|
62
62
|
log_1.Log.trace(logLevel, 'Not emitting sample because seek is processing');
|
|
63
63
|
}
|
|
64
64
|
else {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MediaParserAudioSample, MediaParserVideoSample } from '../../webcodec-sample-types';
|
|
2
2
|
export declare const samplesObservedState: () => {
|
|
3
|
-
addVideoSample: (videoSample:
|
|
4
|
-
addAudioSample: (audioSample:
|
|
3
|
+
addVideoSample: (videoSample: MediaParserVideoSample) => void;
|
|
4
|
+
addAudioSample: (audioSample: MediaParserAudioSample) => void;
|
|
5
5
|
getSlowDurationInSeconds: () => number;
|
|
6
6
|
getFps: () => number;
|
|
7
7
|
getSlowNumberOfFrames: () => number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MediaParserAudioSample, MediaParserVideoSample } from '../../webcodec-sample-types';
|
|
2
2
|
export declare const lastEmittedSampleState: () => {
|
|
3
|
-
setLastEmittedSample: (sample:
|
|
4
|
-
getLastEmittedSample: () =>
|
|
3
|
+
setLastEmittedSample: (sample: MediaParserAudioSample | MediaParserVideoSample) => void;
|
|
4
|
+
getLastEmittedSample: () => MediaParserAudioSample | MediaParserVideoSample | null;
|
|
5
5
|
resetLastEmittedSample: () => void;
|
|
6
6
|
};
|
|
@@ -21,8 +21,8 @@ export declare const transportStreamState: () => {
|
|
|
21
21
|
};
|
|
22
22
|
resetBeforeSeek: () => void;
|
|
23
23
|
lastEmittedSample: {
|
|
24
|
-
setLastEmittedSample: (sample: import("../..").
|
|
25
|
-
getLastEmittedSample: () => import("../..").
|
|
24
|
+
setLastEmittedSample: (sample: import("../..").MediaParserAudioSample | import("../..").MediaParserVideoSample) => void;
|
|
25
|
+
getLastEmittedSample: () => import("../..").MediaParserAudioSample | import("../..").MediaParserVideoSample | null;
|
|
26
26
|
resetLastEmittedSample: () => void;
|
|
27
27
|
};
|
|
28
28
|
};
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "4.0.
|
|
1
|
+
export declare const VERSION = "4.0.301";
|
package/dist/version.js
CHANGED
|
@@ -1,18 +1,29 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MediaParserAudioTrack, MediaParserVideoTrack } from './get-tracks';
|
|
2
2
|
import type { MediaParserContainer } from './options';
|
|
3
|
-
export type
|
|
4
|
-
export type
|
|
5
|
-
export type
|
|
6
|
-
track:
|
|
3
|
+
export type MediaParserOnAudioSample = (sample: MediaParserAudioSample) => void | Promise<void>;
|
|
4
|
+
export type MediaParserOnVideoSample = (sample: MediaParserVideoSample) => void | Promise<void>;
|
|
5
|
+
export type MediaParserOnAudioTrackParams = {
|
|
6
|
+
track: MediaParserAudioTrack;
|
|
7
7
|
container: MediaParserContainer;
|
|
8
8
|
};
|
|
9
|
-
export type
|
|
10
|
-
export type
|
|
11
|
-
track:
|
|
9
|
+
export type MediaParserOnAudioTrack = (options: MediaParserOnAudioTrackParams) => MediaParserOnAudioSample | Promise<MediaParserOnAudioSample | null> | null;
|
|
10
|
+
export type MediaParserOnVideoTrackParams = {
|
|
11
|
+
track: MediaParserVideoTrack;
|
|
12
12
|
container: MediaParserContainer;
|
|
13
13
|
};
|
|
14
|
-
export type
|
|
15
|
-
export type
|
|
14
|
+
export type MediaParserOnVideoTrack = (options: MediaParserOnVideoTrackParams) => MediaParserOnVideoSample | Promise<MediaParserOnVideoSample | null> | null;
|
|
15
|
+
export type MediaParserAudioSample = {
|
|
16
|
+
data: Uint8Array;
|
|
17
|
+
timestamp: number;
|
|
18
|
+
duration: number | undefined;
|
|
19
|
+
trackId: number;
|
|
20
|
+
type: 'key' | 'delta';
|
|
21
|
+
cts: number;
|
|
22
|
+
dts: number;
|
|
23
|
+
offset: number;
|
|
24
|
+
timescale: number;
|
|
25
|
+
};
|
|
26
|
+
export type MediaParserVideoSample = {
|
|
16
27
|
data: Uint8Array;
|
|
17
28
|
timestamp: number;
|
|
18
29
|
duration: number | undefined;
|