@remotion/media-parser 4.0.285 → 4.0.287
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/aac-codecprivate.d.ts +1 -1
- package/dist/combine-uint8-arrays.d.ts +1 -1
- package/dist/containers/aac/parse-aac.js +0 -3
- package/dist/containers/avc/create-sps-pps-data.d.ts +1 -1
- package/dist/containers/flac/get-channel-count.d.ts +1 -1
- package/dist/containers/flac/parse-flac-frame.js +0 -2
- package/dist/containers/flac/parse-streaminfo.js +0 -2
- 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 +4 -3
- package/dist/containers/iso-base-media/get-keyframes.js +1 -1
- package/dist/containers/iso-base-media/get-moov-atom.js +0 -4
- 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 +6 -6
- package/dist/containers/iso-base-media/mfra/get-mfra-atom.d.ts +3 -3
- package/dist/containers/iso-base-media/parse-boxes.js +0 -2
- package/dist/containers/iso-base-media/process-box.d.ts +0 -2
- package/dist/containers/iso-base-media/process-box.js +6 -6
- 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 +52 -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 +24 -20
- package/dist/containers/m3u/run-over-m3u.js +0 -3
- package/dist/containers/mp3/parse-mpeg-header.js +0 -3
- package/dist/containers/riff/expect-riff-box.js +0 -2
- package/dist/containers/riff/parse-movi.js +0 -3
- package/dist/containers/riff/parse-video-section.js +1 -1
- package/dist/containers/transport-stream/adts-header.d.ts +1 -1
- package/dist/containers/transport-stream/discard-rest-of-packet.d.ts +1 -1
- package/dist/containers/transport-stream/find-separator.d.ts +17 -1
- package/dist/containers/transport-stream/find-separator.js +6 -5
- package/dist/containers/transport-stream/handle-aac-packet.d.ts +10 -3
- package/dist/containers/transport-stream/handle-aac-packet.js +24 -16
- package/dist/containers/transport-stream/handle-avc-packet.d.ts +10 -3
- package/dist/containers/transport-stream/handle-avc-packet.js +29 -17
- package/dist/containers/transport-stream/parse-packet.d.ts +8 -4
- package/dist/containers/transport-stream/parse-packet.js +15 -16
- package/dist/containers/transport-stream/parse-pes.d.ts +5 -1
- package/dist/containers/transport-stream/parse-pes.js +4 -3
- package/dist/containers/transport-stream/parse-stream-packet.d.ts +6 -6
- package/dist/containers/transport-stream/parse-stream-packet.js +10 -115
- package/dist/containers/transport-stream/parse-transport-stream.js +15 -3
- package/dist/containers/transport-stream/process-stream-buffers.d.ts +26 -6
- package/dist/containers/transport-stream/process-stream-buffers.js +77 -12
- package/dist/containers/transport-stream/seeking-hints.d.ts +9 -0
- package/dist/containers/transport-stream/seeking-hints.js +26 -0
- package/dist/containers/transport-stream/traversal.d.ts +3 -1
- package/dist/containers/transport-stream/traversal.js +10 -2
- 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/parse-fmt.js +0 -2
- package/dist/containers/wav/parse-media-section.js +0 -2
- package/dist/containers/wav/seeking-hints.d.ts +12 -0
- package/dist/containers/wav/seeking-hints.js +25 -0
- package/dist/containers/webm/get-byte-for-cues.d.ts +5 -0
- package/dist/containers/webm/get-byte-for-cues.js +33 -0
- package/dist/containers/webm/get-ready-tracks.d.ts +9 -4
- package/dist/containers/webm/get-ready-tracks.js +6 -6
- package/dist/containers/webm/get-sample-from-block.d.ts +3 -2
- package/dist/containers/webm/get-sample-from-block.js +9 -8
- package/dist/containers/webm/parse-ebml.d.ts +5 -4
- package/dist/containers/webm/parse-ebml.js +29 -34
- package/dist/containers/webm/parse-webm-header.js +14 -2
- package/dist/containers/webm/seek/fetch-web-cues.d.ts +12 -0
- package/dist/containers/webm/seek/fetch-web-cues.js +32 -0
- package/dist/containers/webm/seek/format-cues.d.ts +8 -0
- package/dist/containers/webm/seek/format-cues.js +42 -0
- package/dist/containers/webm/seek/get-seeking-byte.d.ts +12 -0
- package/dist/containers/webm/seek/get-seeking-byte.js +100 -0
- package/dist/containers/webm/seek/seeking-hints.d.ts +10 -0
- package/dist/containers/webm/seek/seeking-hints.js +28 -0
- package/dist/containers/webm/segments/all-segments.d.ts +1 -0
- package/dist/containers/webm/segments.d.ts +10 -4
- package/dist/containers/webm/segments.js +30 -12
- package/dist/containers/webm/state-for-processing.d.ts +15 -0
- package/dist/containers/webm/state-for-processing.js +14 -0
- package/dist/controller/media-parser-controller.d.ts +3 -0
- package/dist/controller/media-parser-controller.js +15 -0
- package/dist/controller/seek-signal.d.ts +2 -2
- package/dist/download-and-parse-media.js +3 -1
- package/dist/emit-audio-sample.d.ts +2 -5
- package/dist/emit-audio-sample.js +2 -5
- package/dist/emit-available-info.js +1 -1
- package/dist/esm/index.mjs +3859 -2963
- 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 +3 -5
- package/dist/esm/web.mjs +2 -3
- package/dist/esm/worker-server-entry.mjs +2681 -1756
- package/dist/esm/worker-web-entry.mjs +2680 -1754
- package/dist/esm/worker.mjs +46 -1
- package/dist/file-types/detect-file-type.js +3 -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 +2 -1
- package/dist/get-audio-codec.js +17 -3
- 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-lpcm.d.ts → get-sample-positions-from-mp4.d.ts} +1 -1
- package/dist/{get-sample-positions-from-lpcm.js → get-sample-positions-from-mp4.js} +3 -3
- package/dist/{get-seeking-info.d.ts → get-seeking-byte.d.ts} +10 -9
- package/dist/get-seeking-byte.js +51 -0
- package/dist/get-seeking-hints.d.ts +19 -0
- package/dist/get-seeking-hints.js +35 -0
- package/dist/get-tracks.d.ts +4 -4
- package/dist/get-tracks.js +14 -8
- package/dist/get-video-codec.js +2 -2
- package/dist/has-all-info.js +1 -1
- package/dist/index.d.ts +74 -21
- package/dist/init-video.js +4 -3
- package/dist/internal-parse-media.js +18 -2
- package/dist/iterator/buffer-iterator.d.ts +3 -3
- package/dist/iterator/buffer-iterator.js +3 -4
- package/dist/iterator/buffer-manager.d.ts +3 -3
- package/dist/log.d.ts +5 -5
- package/dist/metadata/metadata-from-iso.js +1 -0
- package/dist/options.d.ts +3 -0
- package/dist/parse-loop.js +0 -3
- package/dist/parse-media-on-worker-entry.d.ts +1 -1
- package/dist/parse-media-on-worker-entry.js +51 -1
- package/dist/parse-media.js +3 -1
- package/dist/readers/from-web-file.js +1 -1
- package/dist/register-track.d.ts +2 -5
- package/dist/register-track.js +2 -10
- package/dist/samples-from-moof.d.ts +2 -2
- package/dist/samples-from-moof.js +5 -8
- package/dist/seek-backwards.js +2 -3
- 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/has-tracks-section.js +3 -1
- package/dist/state/iso-base-media/cached-sample-positions.d.ts +1 -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 -6
- package/dist/state/matroska/lazy-cues-fetch.d.ts +25 -0
- package/dist/state/matroska/lazy-cues-fetch.js +72 -0
- package/dist/state/matroska/webm.d.ts +53 -0
- package/dist/state/{webm.js → matroska/webm.js} +27 -7
- package/dist/state/parser-state.d.ts +64 -11
- package/dist/state/parser-state.js +7 -6
- package/dist/state/sample-callbacks.d.ts +1 -1
- package/dist/state/sample-callbacks.js +9 -9
- package/dist/{readers/state → state/samples-observed}/slow-duration-fps.d.ts +3 -3
- package/dist/state/samples-observed/slow-duration-fps.js +89 -0
- package/dist/state/seek-infinite-loop.js +12 -2
- package/dist/state/transport-stream/observed-pes-header.d.ts +15 -0
- package/dist/state/transport-stream/observed-pes-header.js +39 -0
- package/dist/state/transport-stream/pts-start-offset.d.ts +8 -0
- package/dist/state/transport-stream/{start-offset.js → pts-start-offset.js} +4 -4
- package/dist/state/transport-stream/transport-stream.d.ts +11 -1
- package/dist/state/transport-stream/transport-stream.js +4 -2
- package/dist/state/video-section.js +14 -2
- 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.d.ts +8 -0
- package/dist/work-on-seek-request.js +31 -10
- 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 -4
- package/dist/worker.d.ts +0 -1
- package/package.json +4 -4
- 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/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/emitter.d.ts +0 -33
- package/dist/emitter.js +0 -65
- package/dist/get-seeking-info.js +0 -48
- 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.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 -18
- package/dist/server-worker.module.d.ts +0 -2
- package/dist/server-worker.module.js +0 -12
- 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 -4
- 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/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
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.webmState = void 0;
|
|
4
|
-
const traversal_1 = require("../containers/webm/traversal");
|
|
5
|
-
const webmState = () => {
|
|
6
|
-
const trackEntries = {};
|
|
7
|
-
const onTrackEntrySegment = (trackEntry) => {
|
|
8
|
-
var _a;
|
|
9
|
-
const trackId = (0, traversal_1.getTrackId)(trackEntry);
|
|
10
|
-
if (!trackId) {
|
|
11
|
-
throw new Error('Expected track id');
|
|
12
|
-
}
|
|
13
|
-
if (trackEntries[trackId]) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
const codec = (0, traversal_1.getTrackCodec)(trackEntry);
|
|
17
|
-
if (!codec) {
|
|
18
|
-
throw new Error('Expected codec');
|
|
19
|
-
}
|
|
20
|
-
const trackTimescale = (0, traversal_1.getTrackTimestampScale)(trackEntry);
|
|
21
|
-
trackEntries[trackId] = {
|
|
22
|
-
codec: codec.value,
|
|
23
|
-
trackTimescale: (_a = trackTimescale === null || trackTimescale === void 0 ? void 0 : trackTimescale.value) !== null && _a !== void 0 ? _a : null,
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
const timestampMap = new Map();
|
|
27
|
-
const getTimestampOffsetForByteOffset = (byteOffset) => {
|
|
28
|
-
const entries = Array.from(timestampMap.entries());
|
|
29
|
-
const sortedByByteOffset = entries
|
|
30
|
-
.sort((a, b) => {
|
|
31
|
-
return a[0] - b[0];
|
|
32
|
-
})
|
|
33
|
-
.reverse();
|
|
34
|
-
for (const [offset, timestamp] of sortedByByteOffset) {
|
|
35
|
-
if (offset >= byteOffset) {
|
|
36
|
-
continue;
|
|
37
|
-
}
|
|
38
|
-
return timestamp;
|
|
39
|
-
}
|
|
40
|
-
return timestampMap.get(byteOffset);
|
|
41
|
-
};
|
|
42
|
-
const setTimestampOffset = (byteOffset, timestamp) => {
|
|
43
|
-
timestampMap.set(byteOffset, timestamp);
|
|
44
|
-
};
|
|
45
|
-
let timescale = null;
|
|
46
|
-
const setTimescale = (newTimescale) => {
|
|
47
|
-
timescale = newTimescale;
|
|
48
|
-
};
|
|
49
|
-
const getTimescale = () => {
|
|
50
|
-
// https://www.matroska.org/technical/notes.html
|
|
51
|
-
// When using the default value of TimestampScale of “1,000,000”, one Segment Tick represents one millisecond.
|
|
52
|
-
if (timescale === null) {
|
|
53
|
-
return 1000000;
|
|
54
|
-
}
|
|
55
|
-
return timescale;
|
|
56
|
-
};
|
|
57
|
-
const segments = [];
|
|
58
|
-
const clusters = [];
|
|
59
|
-
const avcProfilesMap = {};
|
|
60
|
-
const setAvcProfileForTrackNumber = (trackNumber, avcProfile) => {
|
|
61
|
-
avcProfilesMap[trackNumber] = avcProfile;
|
|
62
|
-
};
|
|
63
|
-
const getAvcProfileForTrackNumber = (trackNumber) => {
|
|
64
|
-
var _a;
|
|
65
|
-
return (_a = avcProfilesMap[trackNumber]) !== null && _a !== void 0 ? _a : null;
|
|
66
|
-
};
|
|
67
|
-
return {
|
|
68
|
-
onTrackEntrySegment,
|
|
69
|
-
getTrackInfoByNumber: (id) => trackEntries[id],
|
|
70
|
-
setTimestampOffset,
|
|
71
|
-
getTimestampOffsetForByteOffset,
|
|
72
|
-
timescale,
|
|
73
|
-
getTimescale,
|
|
74
|
-
setTimescale,
|
|
75
|
-
addSegment: (seg) => {
|
|
76
|
-
const segment = {
|
|
77
|
-
...seg,
|
|
78
|
-
index: segments.length,
|
|
79
|
-
};
|
|
80
|
-
segments.push(segment);
|
|
81
|
-
},
|
|
82
|
-
addCluster: (cluster) => {
|
|
83
|
-
clusters.push(cluster);
|
|
84
|
-
},
|
|
85
|
-
isInsideSegment: (iterator) => {
|
|
86
|
-
var _a;
|
|
87
|
-
const offset = iterator.counter.getOffset();
|
|
88
|
-
const insideClusters = segments.filter((cluster) => {
|
|
89
|
-
return (offset >= cluster.start && offset <= cluster.start + cluster.size);
|
|
90
|
-
});
|
|
91
|
-
if (insideClusters.length > 1) {
|
|
92
|
-
throw new Error('Expected to only be inside 1 cluster');
|
|
93
|
-
}
|
|
94
|
-
return (_a = insideClusters[0]) !== null && _a !== void 0 ? _a : null;
|
|
95
|
-
},
|
|
96
|
-
isInsideCluster: (iterator) => {
|
|
97
|
-
for (const cluster of clusters) {
|
|
98
|
-
const offset = iterator.counter.getOffset();
|
|
99
|
-
if (offset >= cluster.start && offset <= cluster.start + cluster.size) {
|
|
100
|
-
return cluster;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return null;
|
|
104
|
-
},
|
|
105
|
-
setAvcProfileForTrackNumber,
|
|
106
|
-
getAvcProfileForTrackNumber,
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
exports.webmState = webmState;
|
package/dist/seek-signal.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { MediaParserEmitter } from './emitter';
|
|
2
|
-
export type SeekSignal = {
|
|
3
|
-
seek: (seek: Seek) => void;
|
|
4
|
-
getSeek: () => Seek | undefined;
|
|
5
|
-
clearSeekIfStillSame: (previousSeek: Seek) => {
|
|
6
|
-
hasChanged: boolean;
|
|
7
|
-
};
|
|
8
|
-
};
|
|
9
|
-
type SeekToTime = {
|
|
10
|
-
type: 'keyframe-before-time-in-seconds';
|
|
11
|
-
time: number;
|
|
12
|
-
};
|
|
13
|
-
type SeekToByte = {
|
|
14
|
-
type: 'byte';
|
|
15
|
-
byte: number;
|
|
16
|
-
};
|
|
17
|
-
export type Seek = SeekToTime | SeekToByte;
|
|
18
|
-
export declare const makeSeekSignal: (emitter: MediaParserEmitter) => SeekSignal;
|
|
19
|
-
export {};
|
package/dist/seek-signal.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeSeekSignal = void 0;
|
|
4
|
-
const makeSeekSignal = (emitter) => {
|
|
5
|
-
let seek;
|
|
6
|
-
return {
|
|
7
|
-
seek: (seekRequest) => {
|
|
8
|
-
seek = seekRequest;
|
|
9
|
-
emitter.dispatchSeek(seekRequest);
|
|
10
|
-
},
|
|
11
|
-
getSeek() {
|
|
12
|
-
return seek;
|
|
13
|
-
},
|
|
14
|
-
// In the meanwhile a new seek could have been queued
|
|
15
|
-
clearSeekIfStillSame(previousSeek) {
|
|
16
|
-
if (seek === previousSeek) {
|
|
17
|
-
seek = undefined;
|
|
18
|
-
return { hasChanged: false };
|
|
19
|
-
}
|
|
20
|
-
return { hasChanged: true };
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
exports.makeSeekSignal = makeSeekSignal;
|
package/dist/seeking-info.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { IsoBaseMediaBox } from './containers/iso-base-media/base-media-box';
|
|
2
|
-
import type { TfraBox } from './containers/iso-base-media/mfra/tfra';
|
|
3
|
-
import type { MoovBox } from './containers/iso-base-media/moov/moov';
|
|
4
|
-
import type { MediaSection } from './state/video-section';
|
|
5
|
-
export type IsoBaseMediaSeekingInfo = {
|
|
6
|
-
type: 'iso-base-media-seeking-info';
|
|
7
|
-
moovBox: MoovBox;
|
|
8
|
-
moofBoxes: IsoBaseMediaBox[];
|
|
9
|
-
tfraBoxes: TfraBox[];
|
|
10
|
-
mediaSections: MediaSection[];
|
|
11
|
-
};
|
|
12
|
-
export type WavSeekingInfo = {
|
|
13
|
-
type: 'wav-seeking-info';
|
|
14
|
-
sampleRate: number;
|
|
15
|
-
blockAlign: number;
|
|
16
|
-
mediaSections: MediaSection;
|
|
17
|
-
};
|
|
18
|
-
export type SeekingInfo = IsoBaseMediaSeekingInfo | WavSeekingInfo;
|
|
@@ -1,12 +0,0 @@
|
|
|
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;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { AudioOrVideoSample } from '../webcodec-sample-types';
|
|
2
|
-
export declare const slowDurationAndFpsState: () => {
|
|
3
|
-
addVideoSample: (videoSample: AudioOrVideoSample) => void;
|
|
4
|
-
addAudioSample: (audioSample: AudioOrVideoSample) => void;
|
|
5
|
-
getSlowDurationInSeconds: () => number;
|
|
6
|
-
getFps: () => number;
|
|
7
|
-
getSlowNumberOfFrames: () => number;
|
|
8
|
-
getAudioBitrate: () => number | null;
|
|
9
|
-
getVideoBitrate: () => number | null;
|
|
10
|
-
};
|
|
11
|
-
export type SlowDurationAndFpsState = ReturnType<typeof slowDurationAndFpsState>;
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.slowDurationAndFpsState = void 0;
|
|
4
|
-
const slowDurationAndFpsState = () => {
|
|
5
|
-
let smallestVideoSample;
|
|
6
|
-
let largestVideoSample;
|
|
7
|
-
let smallestAudioSample;
|
|
8
|
-
let largestAudioSample;
|
|
9
|
-
const videoSamples = new Map();
|
|
10
|
-
const audioSamples = new Map();
|
|
11
|
-
const getSlowVideoDurationInSeconds = () => {
|
|
12
|
-
let videoDuration = null;
|
|
13
|
-
if (smallestVideoSample !== undefined && largestVideoSample !== undefined) {
|
|
14
|
-
const startingTimestampDifference = largestVideoSample - smallestVideoSample;
|
|
15
|
-
const timeBetweenSamples = startingTimestampDifference / (videoSamples.size - 1);
|
|
16
|
-
videoDuration = timeBetweenSamples * videoSamples.size;
|
|
17
|
-
}
|
|
18
|
-
return videoDuration;
|
|
19
|
-
};
|
|
20
|
-
const getSlowDurationInSeconds = () => {
|
|
21
|
-
const videoDuration = getSlowVideoDurationInSeconds();
|
|
22
|
-
let audioDuration = null;
|
|
23
|
-
if (smallestAudioSample !== undefined && largestAudioSample !== undefined) {
|
|
24
|
-
const startingTimestampDifferenceAudio = largestAudioSample - smallestAudioSample;
|
|
25
|
-
const timeBetweenSamplesAudio = startingTimestampDifferenceAudio / (audioSamples.size - 1);
|
|
26
|
-
audioDuration = timeBetweenSamplesAudio * audioSamples.size;
|
|
27
|
-
}
|
|
28
|
-
if (videoDuration === null && audioDuration === null) {
|
|
29
|
-
throw new Error('No samples');
|
|
30
|
-
}
|
|
31
|
-
return Math.max(videoDuration !== null && videoDuration !== void 0 ? videoDuration : 0, audioDuration !== null && audioDuration !== void 0 ? audioDuration : 0);
|
|
32
|
-
};
|
|
33
|
-
return {
|
|
34
|
-
addVideoSample: (videoSample) => {
|
|
35
|
-
videoSamples.set(videoSample.cts, videoSample.data.byteLength);
|
|
36
|
-
const presentationTimeInSeconds = videoSample.cts / videoSample.timescale;
|
|
37
|
-
if (largestVideoSample === undefined ||
|
|
38
|
-
presentationTimeInSeconds > largestVideoSample) {
|
|
39
|
-
largestVideoSample = presentationTimeInSeconds;
|
|
40
|
-
}
|
|
41
|
-
if (smallestVideoSample === undefined ||
|
|
42
|
-
presentationTimeInSeconds < smallestVideoSample) {
|
|
43
|
-
smallestVideoSample = presentationTimeInSeconds;
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
addAudioSample: (audioSample) => {
|
|
47
|
-
audioSamples.set(audioSample.cts, audioSample.data.byteLength);
|
|
48
|
-
const presentationTimeInSeconds = audioSample.cts / audioSample.timescale;
|
|
49
|
-
if (largestAudioSample === undefined ||
|
|
50
|
-
presentationTimeInSeconds > largestAudioSample) {
|
|
51
|
-
largestAudioSample = presentationTimeInSeconds;
|
|
52
|
-
}
|
|
53
|
-
if (smallestAudioSample === undefined ||
|
|
54
|
-
presentationTimeInSeconds < smallestAudioSample) {
|
|
55
|
-
smallestAudioSample = presentationTimeInSeconds;
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
getSlowDurationInSeconds,
|
|
59
|
-
getFps: () => {
|
|
60
|
-
var _a;
|
|
61
|
-
const videoDuration = (_a = getSlowVideoDurationInSeconds()) !== null && _a !== void 0 ? _a : 0;
|
|
62
|
-
if (videoDuration === 0) {
|
|
63
|
-
return 0;
|
|
64
|
-
}
|
|
65
|
-
return videoSamples.size / videoDuration;
|
|
66
|
-
},
|
|
67
|
-
getSlowNumberOfFrames: () => videoSamples.size,
|
|
68
|
-
getAudioBitrate: () => {
|
|
69
|
-
const audioDuration = getSlowDurationInSeconds();
|
|
70
|
-
if (audioDuration === 0 || audioSamples.size === 0) {
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
const audioSizesInBytes = Array.from(audioSamples.values()).reduce((acc, size) => acc + size, 0);
|
|
74
|
-
return (audioSizesInBytes * 8) / audioDuration;
|
|
75
|
-
},
|
|
76
|
-
getVideoBitrate: () => {
|
|
77
|
-
const videoDuration = getSlowDurationInSeconds();
|
|
78
|
-
if (videoDuration === 0 || videoSamples.size === 0) {
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
const videoSizesInBytes = Array.from(videoSamples.values()).reduce((acc, size) => acc + size, 0);
|
|
82
|
-
return (videoSizesInBytes * 8) / videoDuration;
|
|
83
|
-
},
|
|
84
|
-
};
|
|
85
|
-
};
|
|
86
|
-
exports.slowDurationAndFpsState = slowDurationAndFpsState;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { TransportStreamPacketBuffer } from '../containers/transport-stream/process-stream-buffers';
|
|
2
|
-
export declare const transportStreamState: () => {
|
|
3
|
-
nextPesHeaderStore: {
|
|
4
|
-
setNextPesHeader: (pesHeader: import("../containers/transport-stream/parse-pes").PacketPes) => void;
|
|
5
|
-
getNextPesHeader: () => import("../containers/transport-stream/parse-pes").PacketPes;
|
|
6
|
-
};
|
|
7
|
-
streamBuffers: Map<number, TransportStreamPacketBuffer>;
|
|
8
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transportStreamState = void 0;
|
|
4
|
-
const next_pes_header_store_1 = require("../containers/transport-stream/next-pes-header-store");
|
|
5
|
-
const transportStreamState = () => {
|
|
6
|
-
return {
|
|
7
|
-
nextPesHeaderStore: (0, next_pes_header_store_1.makeNextPesHeaderStore)(),
|
|
8
|
-
streamBuffers: new Map(),
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
exports.transportStreamState = transportStreamState;
|
package/dist/state/uml.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
interface Shape {
|
|
2
|
-
getArea(): number;
|
|
3
|
-
getVolume(depth: number): number;
|
|
4
|
-
}
|
|
5
|
-
declare class Rect implements Shape {
|
|
6
|
-
width: number;
|
|
7
|
-
height: number;
|
|
8
|
-
constructor(width: number, height: number);
|
|
9
|
-
getVolume(depth: number): number;
|
|
10
|
-
getArea(): number;
|
|
11
|
-
}
|
|
12
|
-
declare class Circle implements Shape {
|
|
13
|
-
radius: number;
|
|
14
|
-
constructor(radius: number);
|
|
15
|
-
getVolume(depth: number): number;
|
|
16
|
-
getArea(): number;
|
|
17
|
-
}
|
|
18
|
-
declare class Oval implements Shape {
|
|
19
|
-
radius: number;
|
|
20
|
-
constructor(radius: number);
|
|
21
|
-
getVolume(depth: number): number;
|
|
22
|
-
getArea(): number;
|
|
23
|
-
}
|
|
24
|
-
declare class Triangle implements Shape {
|
|
25
|
-
radius: number;
|
|
26
|
-
constructor(radius: number);
|
|
27
|
-
getVolume(depth: number): number;
|
|
28
|
-
getArea(): number;
|
|
29
|
-
}
|
|
30
|
-
declare const rect: Rect;
|
|
31
|
-
declare const circle: Circle;
|
|
32
|
-
declare const shapes: Shape[];
|
package/dist/state/uml.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
class Rect {
|
|
3
|
-
constructor(width, height) {
|
|
4
|
-
this.width = width;
|
|
5
|
-
this.height = height;
|
|
6
|
-
}
|
|
7
|
-
getVolume(depth) {
|
|
8
|
-
throw new Error('Method not implemented.');
|
|
9
|
-
}
|
|
10
|
-
getArea() {
|
|
11
|
-
return this.width * this.height;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
class Circle {
|
|
15
|
-
constructor(radius) {
|
|
16
|
-
this.radius = radius;
|
|
17
|
-
}
|
|
18
|
-
getVolume(depth) {
|
|
19
|
-
throw new Error('Method not implemented.');
|
|
20
|
-
}
|
|
21
|
-
getArea() {
|
|
22
|
-
return Math.PI * this.radius * this.radius;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
class Oval {
|
|
26
|
-
constructor(radius) {
|
|
27
|
-
this.radius = radius;
|
|
28
|
-
}
|
|
29
|
-
getVolume(depth) {
|
|
30
|
-
throw new Error('Method not implemented.');
|
|
31
|
-
}
|
|
32
|
-
getArea() {
|
|
33
|
-
return Math.PI * this.radius * this.radius;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
class Triangle {
|
|
37
|
-
constructor(radius) {
|
|
38
|
-
this.radius = radius;
|
|
39
|
-
}
|
|
40
|
-
getVolume(depth) {
|
|
41
|
-
throw new Error('Method not implemented.');
|
|
42
|
-
}
|
|
43
|
-
getArea() {
|
|
44
|
-
return this.radius * this.radius;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
const rect = new Rect(10, 10);
|
|
48
|
-
const circle = new Circle(10);
|
|
49
|
-
const shapes = [rect, circle];
|
|
50
|
-
for (const shape of shapes) {
|
|
51
|
-
console.log(shape.getArea());
|
|
52
|
-
}
|
package/dist/state/webm.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { AvcProfileInfo } from '../containers/avc/parse-avc';
|
|
2
|
-
import type { OnTrackEntrySegment } from '../containers/webm/segments';
|
|
3
|
-
import type { TrackInfo } from '../containers/webm/segments/track-entry';
|
|
4
|
-
import type { BufferIterator } from '../iterator/buffer-iterator';
|
|
5
|
-
export type SegmentSection = {
|
|
6
|
-
start: number;
|
|
7
|
-
size: number;
|
|
8
|
-
index: number;
|
|
9
|
-
};
|
|
10
|
-
export type ClusterSection = {
|
|
11
|
-
start: number;
|
|
12
|
-
size: number;
|
|
13
|
-
segment: number;
|
|
14
|
-
};
|
|
15
|
-
export declare const webmState: () => {
|
|
16
|
-
onTrackEntrySegment: OnTrackEntrySegment;
|
|
17
|
-
getTrackInfoByNumber: (id: number) => TrackInfo;
|
|
18
|
-
setTimestampOffset: (byteOffset: number, timestamp: number) => void;
|
|
19
|
-
getTimestampOffsetForByteOffset: (byteOffset: number) => number | undefined;
|
|
20
|
-
timescale: null;
|
|
21
|
-
getTimescale: () => number;
|
|
22
|
-
setTimescale: (newTimescale: number) => void;
|
|
23
|
-
addSegment: (seg: Omit<SegmentSection, "index">) => void;
|
|
24
|
-
addCluster: (cluster: ClusterSection) => void;
|
|
25
|
-
isInsideSegment: (iterator: BufferIterator) => SegmentSection | null;
|
|
26
|
-
isInsideCluster: (iterator: BufferIterator) => ClusterSection | null;
|
|
27
|
-
setAvcProfileForTrackNumber: (trackNumber: number, avcProfile: AvcProfileInfo) => void;
|
|
28
|
-
getAvcProfileForTrackNumber: (trackNumber: number) => AvcProfileInfo | null;
|
|
29
|
-
};
|
|
30
|
-
export type WebmState = ReturnType<typeof webmState>;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getWorkOnSeekRequestOptions = void 0;
|
|
4
|
-
const getWorkOnSeekRequestOptions = (state) => {
|
|
5
|
-
return {
|
|
6
|
-
logLevel: state.logLevel,
|
|
7
|
-
controller: state.controller,
|
|
8
|
-
isoState: state.iso,
|
|
9
|
-
iterator: state.iterator,
|
|
10
|
-
structureState: state.structure,
|
|
11
|
-
callbacks: state.callbacks,
|
|
12
|
-
src: state.src,
|
|
13
|
-
contentLength: state.contentLength,
|
|
14
|
-
readerInterface: state.readerInterface,
|
|
15
|
-
videoSection: state.videoSection,
|
|
16
|
-
mp4HeaderSegment: state.mp4HeaderSegment,
|
|
17
|
-
mode: state.mode,
|
|
18
|
-
seekInfiniteLoop: state.seekInfiniteLoop,
|
|
19
|
-
currentReader: state.currentReader,
|
|
20
|
-
discardReadBytes: state.discardReadBytes,
|
|
21
|
-
fields: state.fields,
|
|
22
|
-
onAudioTrack: state.onAudioTrack,
|
|
23
|
-
onVideoTrack: state.onVideoTrack,
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
exports.getWorkOnSeekRequestOptions = getWorkOnSeekRequestOptions;
|
package/dist/worker.module.d.ts
DELETED
package/dist/worker.module.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseMediaOnServerWorker = exports.parseMediaOnWebWorker = void 0;
|
|
4
|
-
const parse_media_on_worker_entry_1 = require("./parse-media-on-worker-entry");
|
|
5
|
-
const parseMediaOnWebWorker = (params) => {
|
|
6
|
-
return (0, parse_media_on_worker_entry_1.parseMediaOnWorkerImplementation)(params, new URL('./worker-web-entry', import.meta.url), 'parseMediaOnWebWorker');
|
|
7
|
-
};
|
|
8
|
-
exports.parseMediaOnWebWorker = parseMediaOnWebWorker;
|
|
9
|
-
const parseMediaOnServerWorker = (params) => {
|
|
10
|
-
return (0, parse_media_on_worker_entry_1.parseMediaOnWorkerImplementation)(params, new URL('./worker-server-entry', import.meta.url), 'parseMediaOnServerWorker');
|
|
11
|
-
};
|
|
12
|
-
exports.parseMediaOnServerWorker = parseMediaOnServerWorker;
|
|
File without changes
|
|
File without changes
|