@remotion/media-parser 4.0.249 → 4.0.250
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/boxes/iso-base-media/continue-mdat-routine.d.ts +14 -0
- package/dist/boxes/iso-base-media/continue-mdat-routine.js +74 -0
- package/dist/boxes/iso-base-media/get-children.d.ts +2 -8
- package/dist/boxes/iso-base-media/get-children.js +14 -30
- package/dist/boxes/iso-base-media/mdat/mdat.d.ts +3 -23
- package/dist/boxes/iso-base-media/mdat/mdat.js +80 -130
- package/dist/boxes/iso-base-media/moov/moov.d.ts +1 -6
- package/dist/boxes/iso-base-media/moov/moov.js +5 -14
- package/dist/boxes/iso-base-media/parse-all-children.d.ts +8 -0
- package/dist/boxes/iso-base-media/parse-all-children.js +20 -0
- package/dist/boxes/iso-base-media/parse-boxes.d.ts +2 -10
- package/dist/boxes/iso-base-media/parse-boxes.js +33 -116
- package/dist/boxes/iso-base-media/parse-mdat-partially.d.ts +1 -4
- package/dist/boxes/iso-base-media/parse-mdat-partially.js +2 -11
- package/dist/boxes/iso-base-media/process-box.d.ts +1 -9
- package/dist/boxes/iso-base-media/process-box.js +49 -143
- package/dist/boxes/iso-base-media/stsd/mebx.d.ts +1 -4
- package/dist/boxes/iso-base-media/stsd/mebx.js +5 -14
- package/dist/boxes/iso-base-media/stsd/samples.d.ts +4 -12
- package/dist/boxes/iso-base-media/stsd/samples.js +24 -66
- package/dist/boxes/iso-base-media/stsd/stsd.d.ts +1 -4
- package/dist/boxes/iso-base-media/stsd/stsd.js +2 -5
- package/dist/boxes/iso-base-media/trak/trak.d.ts +1 -6
- package/dist/boxes/iso-base-media/trak/trak.js +5 -14
- package/dist/boxes/iso-base-media/traversal.d.ts +0 -2
- package/dist/boxes/iso-base-media/traversal.js +1 -12
- package/dist/boxes/mp3/id3.d.ts +1 -3
- package/dist/boxes/mp3/id3.js +7 -5
- package/dist/boxes/mp3/parse-mp3.d.ts +2 -3
- package/dist/boxes/mp3/parse-mp3.js +3 -19
- package/dist/boxes/riff/expect-riff-box.d.ts +1 -9
- package/dist/boxes/riff/expect-riff-box.js +47 -25
- package/dist/boxes/riff/get-tracks-from-avi.d.ts +1 -1
- package/dist/boxes/riff/get-tracks-from-avi.js +6 -10
- package/dist/boxes/riff/parse-fmt-box.d.ts +3 -2
- package/dist/boxes/riff/parse-fmt-box.js +7 -5
- package/dist/boxes/riff/parse-list-box.d.ts +1 -3
- package/dist/boxes/riff/parse-list-box.js +16 -16
- package/dist/boxes/riff/parse-movi.d.ts +2 -5
- package/dist/boxes/riff/parse-movi.js +34 -56
- package/dist/boxes/riff/parse-riff-body.d.ts +2 -6
- package/dist/boxes/riff/parse-riff-body.js +15 -95
- package/dist/boxes/riff/parse-riff-box.d.ts +1 -4
- package/dist/boxes/riff/parse-riff-box.js +3 -7
- package/dist/boxes/riff/parse-riff-header.d.ts +7 -0
- package/dist/boxes/riff/parse-riff-header.js +23 -0
- package/dist/boxes/riff/parse-riff.d.ts +7 -0
- package/dist/boxes/riff/parse-riff.js +15 -0
- package/dist/boxes/riff/parse-strf.d.ts +4 -4
- package/dist/boxes/riff/parse-strf.js +4 -8
- package/dist/boxes/riff/parse-strh.js +11 -0
- package/dist/boxes/riff/parse-video-section.d.ts +6 -0
- package/dist/boxes/riff/parse-video-section.js +20 -0
- package/dist/boxes/riff/riff-box.d.ts +4 -5
- package/dist/boxes/riff/traversal.d.ts +1 -2
- package/dist/boxes/riff/traversal.js +1 -6
- package/dist/boxes/transport-stream/get-tracks.d.ts +2 -3
- package/dist/boxes/transport-stream/get-tracks.js +4 -3
- package/dist/boxes/transport-stream/parse-packet.d.ts +1 -7
- package/dist/boxes/transport-stream/parse-packet.js +3 -4
- package/dist/boxes/transport-stream/parse-stream-packet.d.ts +1 -5
- package/dist/boxes/transport-stream/parse-stream-packet.js +10 -12
- package/dist/boxes/transport-stream/parse-transport-stream.d.ts +1 -7
- package/dist/boxes/transport-stream/parse-transport-stream.js +7 -26
- package/dist/boxes/transport-stream/process-stream-buffers.d.ts +1 -2
- package/dist/boxes/transport-stream/process-stream-buffers.js +3 -3
- package/dist/boxes/webm/parse-ebml.js +3 -0
- package/dist/boxes/webm/parse-webm-header.d.ts +2 -4
- package/dist/boxes/webm/parse-webm-header.js +41 -25
- package/dist/boxes/webm/segments/parse-children.d.ts +2 -16
- package/dist/boxes/webm/segments/parse-children.js +7 -130
- package/dist/boxes/webm/segments.d.ts +4 -8
- package/dist/boxes/webm/segments.js +41 -123
- package/dist/buffer-iterator.d.ts +0 -3
- package/dist/buffer-iterator.js +6 -16
- package/dist/bun-reader.d.ts +1 -0
- package/dist/bun-reader.js +17 -0
- package/dist/emit-available-info.js +4 -4
- package/dist/esm/from-node.mjs +8 -9
- package/dist/esm/index.mjs +4224 -4950
- package/dist/file-types/detect-file-type.js +4 -2
- package/dist/get-audio-codec.d.ts +1 -1
- package/dist/get-audio-codec.js +2 -2
- package/dist/get-dimensions.js +1 -1
- package/dist/get-duration.js +1 -1
- package/dist/get-is-hdr.d.ts +1 -1
- package/dist/get-is-hdr.js +2 -2
- package/dist/get-tracks.d.ts +1 -1
- package/dist/get-tracks.js +14 -13
- package/dist/get-video-codec.d.ts +1 -1
- package/dist/get-video-codec.js +2 -2
- package/dist/index.d.ts +50 -24
- package/dist/index.js +1 -1
- package/dist/may-skip-video-data/may-skip-video-data.js +6 -2
- package/dist/parse-media.js +45 -30
- package/dist/parse-result.d.ts +1 -18
- package/dist/parse-video.d.ts +3 -17
- package/dist/parse-video.js +45 -32
- package/dist/readers/from-node.js +7 -8
- package/dist/state/can-skip-tracks.d.ts +8 -1
- package/dist/state/can-skip-tracks.js +38 -27
- package/dist/state/iso-base-media/cached-sample-positions.d.ts +15 -0
- package/dist/state/iso-base-media/cached-sample-positions.js +42 -0
- package/dist/state/iso-base-media/iso-state.d.ts +8 -0
- package/dist/state/iso-base-media/iso-state.js +15 -0
- package/dist/state/iso-state.d.ts +4 -0
- package/dist/state/iso-state.js +13 -0
- package/dist/state/parser-state.d.ts +49 -14
- package/dist/state/parser-state.js +11 -3
- package/dist/state/sample-callbacks.d.ts +5 -1
- package/dist/state/sample-callbacks.js +4 -1
- package/dist/state/transport-stream.d.ts +8 -0
- package/dist/state/transport-stream.js +11 -0
- package/dist/state/video-section.d.ts +16 -0
- package/dist/state/video-section.js +37 -0
- package/dist/state/webm.d.ts +15 -0
- package/dist/state/webm.js +32 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
- package/test.json +663 -0
|
@@ -1,152 +1,70 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.expectSegment = void 0;
|
|
4
|
+
const log_1 = require("../../log");
|
|
4
5
|
const parse_ebml_1 = require("./parse-ebml");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
throw new Error('Should not continue after done');
|
|
9
|
-
}
|
|
10
|
-
const proceeded = await result.continueParsing();
|
|
11
|
-
if (proceeded.status === 'done') {
|
|
12
|
-
return {
|
|
13
|
-
status: 'done',
|
|
14
|
-
segment,
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
return {
|
|
18
|
-
continueParsing() {
|
|
19
|
-
return continueAfterMatroskaParseResult({
|
|
20
|
-
result: proceeded,
|
|
21
|
-
iterator,
|
|
22
|
-
state,
|
|
23
|
-
segment,
|
|
24
|
-
});
|
|
25
|
-
},
|
|
26
|
-
segment: null,
|
|
27
|
-
status: 'incomplete',
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
const expectSegment = async ({ iterator, state, offset, children, fields, topLevelStructure, }) => {
|
|
31
|
-
iterator.counter.decrement(iterator.counter.getOffset() - offset);
|
|
6
|
+
const all_segments_1 = require("./segments/all-segments");
|
|
7
|
+
const expectSegment = async ({ iterator, state, isInsideSegment, }) => {
|
|
8
|
+
var _a;
|
|
32
9
|
if (iterator.bytesRemaining() === 0) {
|
|
33
|
-
|
|
34
|
-
status: 'incomplete',
|
|
35
|
-
continueParsing: () => {
|
|
36
|
-
return (0, parse_children_1.expectAndProcessSegment)({
|
|
37
|
-
iterator,
|
|
38
|
-
state,
|
|
39
|
-
offset,
|
|
40
|
-
children,
|
|
41
|
-
fields,
|
|
42
|
-
topLevelStructure,
|
|
43
|
-
});
|
|
44
|
-
},
|
|
45
|
-
segment: null,
|
|
46
|
-
};
|
|
10
|
+
throw new Error('has no bytes');
|
|
47
11
|
}
|
|
12
|
+
const offset = iterator.counter.getOffset();
|
|
13
|
+
const { returnToCheckpoint } = iterator.startCheckpoint();
|
|
48
14
|
const segmentId = iterator.getMatroskaSegmentId();
|
|
49
15
|
if (segmentId === null) {
|
|
50
|
-
|
|
51
|
-
return
|
|
52
|
-
status: 'incomplete',
|
|
53
|
-
continueParsing: () => {
|
|
54
|
-
return (0, parse_children_1.expectAndProcessSegment)({
|
|
55
|
-
iterator,
|
|
56
|
-
state,
|
|
57
|
-
offset,
|
|
58
|
-
children,
|
|
59
|
-
fields,
|
|
60
|
-
topLevelStructure,
|
|
61
|
-
});
|
|
62
|
-
},
|
|
63
|
-
segment: null,
|
|
64
|
-
};
|
|
16
|
+
returnToCheckpoint();
|
|
17
|
+
return null;
|
|
65
18
|
}
|
|
66
19
|
const offsetBeforeVInt = iterator.counter.getOffset();
|
|
67
|
-
const
|
|
20
|
+
const size = iterator.getVint();
|
|
68
21
|
const offsetAfterVInt = iterator.counter.getOffset();
|
|
69
|
-
if (
|
|
70
|
-
|
|
71
|
-
return
|
|
72
|
-
status: 'incomplete',
|
|
73
|
-
continueParsing: () => {
|
|
74
|
-
return (0, exports.expectSegment)({
|
|
75
|
-
iterator,
|
|
76
|
-
state,
|
|
77
|
-
offset,
|
|
78
|
-
children,
|
|
79
|
-
fields,
|
|
80
|
-
topLevelStructure,
|
|
81
|
-
});
|
|
82
|
-
},
|
|
83
|
-
segment: null,
|
|
84
|
-
};
|
|
22
|
+
if (size === null) {
|
|
23
|
+
returnToCheckpoint();
|
|
24
|
+
return null;
|
|
85
25
|
}
|
|
86
|
-
const bytesRemainingNow = iterator.
|
|
87
|
-
|
|
26
|
+
const bytesRemainingNow = iterator.bytesRemaining();
|
|
27
|
+
log_1.Log.trace(state.logLevel, 'Segment ID:', (_a = all_segments_1.ebmlMap[segmentId]) === null || _a === void 0 ? void 0 : _a.name, 'Size:' + size, bytesRemainingNow);
|
|
28
|
+
if (segmentId === all_segments_1.matroskaElements.Segment) {
|
|
29
|
+
state.webm.addSegment({
|
|
30
|
+
start: offset,
|
|
31
|
+
size,
|
|
32
|
+
});
|
|
88
33
|
const newSegment = {
|
|
89
|
-
type:
|
|
34
|
+
type: 'Segment',
|
|
90
35
|
minVintWidth: offsetAfterVInt - offsetBeforeVInt,
|
|
91
36
|
value: [],
|
|
92
37
|
};
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
startOffset: iterator.counter.getOffset(),
|
|
99
|
-
fields,
|
|
100
|
-
topLevelStructure,
|
|
101
|
-
});
|
|
102
|
-
if (main.status === 'incomplete') {
|
|
103
|
-
return {
|
|
104
|
-
status: 'incomplete',
|
|
105
|
-
continueParsing: () => {
|
|
106
|
-
return continueAfterMatroskaParseResult({
|
|
107
|
-
iterator,
|
|
108
|
-
state,
|
|
109
|
-
result: main,
|
|
110
|
-
segment: newSegment,
|
|
111
|
-
});
|
|
112
|
-
},
|
|
113
|
-
segment: newSegment,
|
|
114
|
-
};
|
|
38
|
+
return newSegment;
|
|
39
|
+
}
|
|
40
|
+
if (segmentId === all_segments_1.matroskaElements.Cluster) {
|
|
41
|
+
if (isInsideSegment === null) {
|
|
42
|
+
throw new Error('Expected to be inside segment');
|
|
115
43
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
44
|
+
state.webm.addCluster({
|
|
45
|
+
start: offset,
|
|
46
|
+
size,
|
|
47
|
+
segment: isInsideSegment.index,
|
|
48
|
+
});
|
|
49
|
+
const newSegment = {
|
|
50
|
+
type: 'Cluster',
|
|
51
|
+
minVintWidth: offsetAfterVInt - offsetBeforeVInt,
|
|
52
|
+
value: [],
|
|
119
53
|
};
|
|
54
|
+
return newSegment;
|
|
120
55
|
}
|
|
121
|
-
if (bytesRemainingNow <
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
return {
|
|
125
|
-
status: 'incomplete',
|
|
126
|
-
segment: null,
|
|
127
|
-
continueParsing: () => {
|
|
128
|
-
return (0, exports.expectSegment)({
|
|
129
|
-
iterator,
|
|
130
|
-
state,
|
|
131
|
-
offset,
|
|
132
|
-
children,
|
|
133
|
-
fields,
|
|
134
|
-
topLevelStructure,
|
|
135
|
-
});
|
|
136
|
-
},
|
|
137
|
-
};
|
|
56
|
+
if (bytesRemainingNow < size) {
|
|
57
|
+
returnToCheckpoint();
|
|
58
|
+
return null;
|
|
138
59
|
}
|
|
139
60
|
const segment = await parseSegment({
|
|
140
61
|
segmentId,
|
|
141
62
|
iterator,
|
|
142
|
-
length,
|
|
63
|
+
length: size,
|
|
143
64
|
state,
|
|
144
65
|
headerReadSoFar: iterator.counter.getOffset() - offset,
|
|
145
66
|
});
|
|
146
|
-
return
|
|
147
|
-
status: 'done',
|
|
148
|
-
segment,
|
|
149
|
-
};
|
|
67
|
+
return segment;
|
|
150
68
|
};
|
|
151
69
|
exports.expectSegment = expectSegment;
|
|
152
70
|
const parseSegment = async ({ segmentId, iterator, length, state, headerReadSoFar, }) => {
|
|
@@ -18,7 +18,6 @@ export declare const getArrayBufferIterator: (initialData: Uint8Array, maxBytes:
|
|
|
18
18
|
peekB: (length: number) => void;
|
|
19
19
|
peekD: (length: number) => void;
|
|
20
20
|
getBits: (bits: number) => number;
|
|
21
|
-
byteLength: () => number;
|
|
22
21
|
bytesRemaining: () => number;
|
|
23
22
|
leb128: () => number;
|
|
24
23
|
removeBytesRead: () => void;
|
|
@@ -58,8 +57,6 @@ export declare const getArrayBufferIterator: (initialData: Uint8Array, maxBytes:
|
|
|
58
57
|
getInt32Le: () => number;
|
|
59
58
|
getInt32: () => number;
|
|
60
59
|
destroy: () => void;
|
|
61
|
-
disallowDiscard: () => void;
|
|
62
|
-
allowDiscard: () => void;
|
|
63
60
|
startBox: (size: number) => {
|
|
64
61
|
discardRest: () => void;
|
|
65
62
|
expectNoMoreBytes: () => void;
|
package/dist/buffer-iterator.js
CHANGED
|
@@ -69,7 +69,6 @@ const getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
69
69
|
data.set(initialData);
|
|
70
70
|
let view = new DataView(data.buffer);
|
|
71
71
|
const counter = makeOffsetCounter();
|
|
72
|
-
let discardAllowed = true;
|
|
73
72
|
const startCheckpoint = () => {
|
|
74
73
|
const checkpoint = counter.getOffset();
|
|
75
74
|
return {
|
|
@@ -83,12 +82,6 @@ const getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
83
82
|
counter.increment(amount);
|
|
84
83
|
return value;
|
|
85
84
|
};
|
|
86
|
-
const disallowDiscard = () => {
|
|
87
|
-
discardAllowed = false;
|
|
88
|
-
};
|
|
89
|
-
const allowDiscard = () => {
|
|
90
|
-
discardAllowed = true;
|
|
91
|
-
};
|
|
92
85
|
const discard = (length) => {
|
|
93
86
|
counter.increment(length);
|
|
94
87
|
};
|
|
@@ -199,22 +192,22 @@ const getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
199
192
|
const addData = (newData) => {
|
|
200
193
|
const oldLength = buf.byteLength;
|
|
201
194
|
const newLength = oldLength + newData.byteLength;
|
|
195
|
+
if (newLength < oldLength) {
|
|
196
|
+
throw new Error('Cannot decrement size');
|
|
197
|
+
}
|
|
198
|
+
if (newLength > (maxBytes !== null && maxBytes !== void 0 ? maxBytes : Infinity)) {
|
|
199
|
+
throw new Error(`Exceeded maximum byte length ${maxBytes} with ${newLength}`);
|
|
200
|
+
}
|
|
202
201
|
buf.resize(newLength);
|
|
203
202
|
const newArray = new Uint8Array(buf);
|
|
204
203
|
newArray.set(newData, oldLength);
|
|
205
204
|
data = newArray;
|
|
206
205
|
view = new DataView(data.buffer);
|
|
207
206
|
};
|
|
208
|
-
const byteLength = () => {
|
|
209
|
-
return data.byteLength;
|
|
210
|
-
};
|
|
211
207
|
const bytesRemaining = () => {
|
|
212
208
|
return data.byteLength - counter.getDiscardedOffset();
|
|
213
209
|
};
|
|
214
210
|
const removeBytesRead = () => {
|
|
215
|
-
if (!discardAllowed) {
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
211
|
const bytesToRemove = counter.getDiscardedOffset();
|
|
219
212
|
// Only do this operation if it is really worth it 😇
|
|
220
213
|
if (bytesToRemove < 100000) {
|
|
@@ -331,7 +324,6 @@ const getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
331
324
|
peekB,
|
|
332
325
|
peekD,
|
|
333
326
|
getBits,
|
|
334
|
-
byteLength,
|
|
335
327
|
bytesRemaining,
|
|
336
328
|
leb128,
|
|
337
329
|
removeBytesRead,
|
|
@@ -536,8 +528,6 @@ const getArrayBufferIterator = (initialData, maxBytes) => {
|
|
|
536
528
|
getInt32Le,
|
|
537
529
|
getInt32,
|
|
538
530
|
destroy,
|
|
539
|
-
disallowDiscard,
|
|
540
|
-
allowDiscard,
|
|
541
531
|
startBox,
|
|
542
532
|
readExpGolomb,
|
|
543
533
|
startCheckpoint,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const example_videos_1 = require("@remotion/example-videos");
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const stream_1 = require("stream");
|
|
6
|
+
const range = null;
|
|
7
|
+
const stream = (0, fs_1.createReadStream)(example_videos_1.exampleVideos.framer24fps, {
|
|
8
|
+
start: range === null ? 0 : typeof range === 'number' ? range : range[0],
|
|
9
|
+
end: range === null ? Infinity : typeof range === 'number' ? Infinity : range[1],
|
|
10
|
+
});
|
|
11
|
+
const reader = stream_1.Readable.toWeb(stream).getReader();
|
|
12
|
+
console.log(await reader.read());
|
|
13
|
+
console.log(await reader.read());
|
|
14
|
+
console.log(await reader.read());
|
|
15
|
+
console.log(await reader.read());
|
|
16
|
+
console.log(await reader.read());
|
|
17
|
+
console.log(await reader.read());
|
|
@@ -156,7 +156,7 @@ const emitAvailableInfo = ({ hasInfo, parseResult, callbacks, state, returnValue
|
|
|
156
156
|
hasInfo.videoCodec &&
|
|
157
157
|
parseResult &&
|
|
158
158
|
segments) {
|
|
159
|
-
const videoCodec = (0, get_video_codec_1.getVideoCodec)(
|
|
159
|
+
const videoCodec = (0, get_video_codec_1.getVideoCodec)(state);
|
|
160
160
|
(_m = callbacks.onVideoCodec) === null || _m === void 0 ? void 0 : _m.call(callbacks, videoCodec);
|
|
161
161
|
if (fieldsInReturnValue.videoCodec) {
|
|
162
162
|
returnValue.videoCodec = videoCodec;
|
|
@@ -170,7 +170,7 @@ const emitAvailableInfo = ({ hasInfo, parseResult, callbacks, state, returnValue
|
|
|
170
170
|
hasInfo.audioCodec &&
|
|
171
171
|
parseResult &&
|
|
172
172
|
segments) {
|
|
173
|
-
const audioCodec = (0, get_audio_codec_1.getAudioCodec)(
|
|
173
|
+
const audioCodec = (0, get_audio_codec_1.getAudioCodec)(state);
|
|
174
174
|
(_o = callbacks.onAudioCodec) === null || _o === void 0 ? void 0 : _o.call(callbacks, audioCodec);
|
|
175
175
|
if (fieldsInReturnValue.audioCodec) {
|
|
176
176
|
returnValue.audioCodec = audioCodec;
|
|
@@ -181,7 +181,7 @@ const emitAvailableInfo = ({ hasInfo, parseResult, callbacks, state, returnValue
|
|
|
181
181
|
}
|
|
182
182
|
if (key === 'tracks') {
|
|
183
183
|
if (!emittedFields.tracks && hasInfo.tracks && parseResult && segments) {
|
|
184
|
-
const { videoTracks, audioTracks } = (0, get_tracks_1.getTracks)(
|
|
184
|
+
const { videoTracks, audioTracks } = (0, get_tracks_1.getTracks)(state);
|
|
185
185
|
(_p = callbacks.onTracks) === null || _p === void 0 ? void 0 : _p.call(callbacks, { videoTracks, audioTracks });
|
|
186
186
|
if (fieldsInReturnValue.tracks) {
|
|
187
187
|
returnValue.tracks = { videoTracks, audioTracks };
|
|
@@ -233,7 +233,7 @@ const emitAvailableInfo = ({ hasInfo, parseResult, callbacks, state, returnValue
|
|
|
233
233
|
}
|
|
234
234
|
if (key === 'isHdr') {
|
|
235
235
|
if (!returnValue.isHdr && hasInfo.isHdr && parseResult && segments) {
|
|
236
|
-
const isHdr = (0, get_is_hdr_1.getIsHdr)(
|
|
236
|
+
const isHdr = (0, get_is_hdr_1.getIsHdr)(state);
|
|
237
237
|
(_t = callbacks.onIsHdr) === null || _t === void 0 ? void 0 : _t.call(callbacks, isHdr);
|
|
238
238
|
if (fieldsInReturnValue.isHdr) {
|
|
239
239
|
returnValue.isHdr = isHdr;
|
package/dist/esm/from-node.mjs
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
// src/readers/from-node.ts
|
|
2
|
-
import { createReadStream } from "fs";
|
|
3
|
-
import { stat } from "node:fs/promises";
|
|
2
|
+
import { createReadStream, statSync } from "fs";
|
|
4
3
|
import { sep } from "path";
|
|
5
4
|
import { Readable } from "stream";
|
|
6
5
|
var nodeReader = {
|
|
7
|
-
read:
|
|
6
|
+
read: (src, range, signal) => {
|
|
8
7
|
if (typeof src !== "string") {
|
|
9
8
|
throw new Error("src must be a string when using `nodeReader`");
|
|
10
9
|
}
|
|
@@ -17,7 +16,7 @@ var nodeReader = {
|
|
|
17
16
|
signal?.addEventListener("abort", () => {
|
|
18
17
|
controller.abort();
|
|
19
18
|
}, { once: true });
|
|
20
|
-
const stats =
|
|
19
|
+
const stats = statSync(src);
|
|
21
20
|
const reader = Readable.toWeb(stream).getReader();
|
|
22
21
|
if (signal) {
|
|
23
22
|
signal.addEventListener("abort", () => {
|
|
@@ -25,7 +24,7 @@ var nodeReader = {
|
|
|
25
24
|
});
|
|
26
25
|
}, { once: true });
|
|
27
26
|
}
|
|
28
|
-
return {
|
|
27
|
+
return Promise.resolve({
|
|
29
28
|
reader: {
|
|
30
29
|
reader,
|
|
31
30
|
abort: () => {
|
|
@@ -36,14 +35,14 @@ var nodeReader = {
|
|
|
36
35
|
contentType: null,
|
|
37
36
|
name: src.split(sep).pop(),
|
|
38
37
|
supportsContentRange: true
|
|
39
|
-
};
|
|
38
|
+
});
|
|
40
39
|
},
|
|
41
|
-
getLength:
|
|
40
|
+
getLength: (src) => {
|
|
42
41
|
if (typeof src !== "string") {
|
|
43
42
|
throw new Error("src must be a string when using `nodeReader`");
|
|
44
43
|
}
|
|
45
|
-
const stats =
|
|
46
|
-
return stats.size;
|
|
44
|
+
const stats = statSync(src);
|
|
45
|
+
return Promise.resolve(stats.size);
|
|
47
46
|
}
|
|
48
47
|
};
|
|
49
48
|
export {
|