@remotion/media-parser 4.0.286 → 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/containers/flac/get-channel-count.d.ts +1 -1
- 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/get-keyframes.js +1 -1
- package/dist/containers/iso-base-media/get-sample-positions-from-track.d.ts +2 -2
- package/dist/containers/iso-base-media/get-seeking-byte.d.ts +15 -0
- package/dist/containers/iso-base-media/{get-seeking-from-mp4.js → get-seeking-byte.js} +16 -2
- package/dist/containers/iso-base-media/mdat/mdat.js +6 -3
- package/dist/containers/iso-base-media/process-box.js +5 -3
- package/dist/containers/iso-base-media/{get-seeking-info-from-mp4.d.ts → seeking-hints.d.ts} +8 -3
- package/dist/containers/iso-base-media/seeking-hints.js +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 +23 -20
- package/dist/containers/riff/parse-video-section.js +1 -1
- package/dist/containers/transport-stream/handle-aac-packet.js +4 -1
- package/dist/containers/transport-stream/handle-avc-packet.js +4 -1
- package/dist/containers/transport-stream/seeking-hints.d.ts +9 -0
- package/dist/containers/transport-stream/seeking-hints.js +26 -0
- package/dist/containers/wav/get-seeking-byte.d.ts +2 -2
- package/dist/containers/wav/get-seeking-byte.js +2 -2
- package/dist/containers/wav/seeking-hints.d.ts +12 -0
- package/dist/containers/wav/seeking-hints.js +25 -0
- package/dist/containers/webm/seek/get-seeking-byte.d.ts +3 -5
- package/dist/containers/webm/seek/get-seeking-byte.js +5 -5
- package/dist/containers/webm/seek/seeking-hints.d.ts +10 -0
- package/dist/containers/webm/seek/seeking-hints.js +28 -0
- package/dist/controller/media-parser-controller.d.ts +3 -0
- package/dist/controller/media-parser-controller.js +15 -0
- package/dist/download-and-parse-media.js +2 -1
- package/dist/emit-available-info.js +1 -1
- package/dist/esm/index.mjs +430 -197
- package/dist/esm/node-writer.mjs +1 -2
- package/dist/esm/node.mjs +1 -2
- package/dist/esm/server-worker.mjs +46 -1
- package/dist/esm/universal.mjs +2 -4
- package/dist/esm/web.mjs +1 -2
- package/dist/esm/worker-server-entry.mjs +466 -204
- package/dist/esm/worker-web-entry.mjs +465 -202
- package/dist/esm/worker.mjs +46 -1
- package/dist/{forward-controller.d.ts → forward-controller-pause-resume-abort.d.ts} +1 -1
- package/dist/{forward-controller.js → forward-controller-pause-resume-abort.js} +3 -3
- package/dist/get-audio-codec.js +2 -2
- 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-seeking-byte.d.ts +7 -5
- package/dist/get-seeking-byte.js +13 -12
- package/dist/{get-seeking-info.d.ts → get-seeking-hints.d.ts} +7 -3
- package/dist/get-seeking-hints.js +35 -0
- package/dist/get-tracks.d.ts +4 -4
- package/dist/get-tracks.js +8 -6
- package/dist/get-video-codec.js +2 -2
- package/dist/has-all-info.js +1 -1
- package/dist/index.d.ts +31 -3
- package/dist/internal-parse-media.js +16 -1
- package/dist/iterator/buffer-iterator.js +3 -4
- package/dist/metadata/metadata-from-iso.js +1 -0
- package/dist/options.d.ts +2 -0
- package/dist/parse-media-on-worker-entry.js +51 -1
- package/dist/parse-media.js +2 -1
- package/dist/samples-from-moof.d.ts +2 -2
- package/dist/samples-from-moof.js +5 -8
- package/dist/seeking-hints.d.ts +39 -0
- package/dist/set-seeking-hints.d.ts +6 -0
- package/dist/set-seeking-hints.js +27 -0
- package/dist/state/has-tracks-section.js +3 -1
- package/dist/state/iso-base-media/cached-sample-positions.js +1 -1
- package/dist/state/iso-base-media/iso-state.d.ts +18 -2
- package/dist/state/iso-base-media/iso-state.js +4 -0
- package/dist/state/iso-base-media/lazy-mfra-load.d.ts +3 -0
- package/dist/state/iso-base-media/lazy-mfra-load.js +13 -0
- package/dist/state/iso-base-media/moov-box.d.ts +7 -2
- package/dist/state/iso-base-media/moov-box.js +1 -1
- package/dist/state/iso-base-media/precomputed-moof.d.ts +11 -0
- package/dist/state/iso-base-media/precomputed-moof.js +28 -0
- package/dist/state/iso-base-media/precomputed-tfra.d.ts +6 -0
- package/dist/state/iso-base-media/precomputed-tfra.js +17 -0
- package/dist/state/keyframes.d.ts +2 -0
- package/dist/state/keyframes.js +17 -9
- package/dist/state/matroska/lazy-cues-fetch.d.ts +7 -1
- package/dist/state/matroska/lazy-cues-fetch.js +21 -0
- package/dist/state/matroska/webm.d.ts +7 -0
- package/dist/state/matroska/webm.js +9 -1
- package/dist/state/parser-state.d.ts +31 -3
- package/dist/state/samples-observed/slow-duration-fps.js +0 -3
- package/dist/state/transport-stream/observed-pes-header.d.ts +2 -0
- package/dist/state/transport-stream/observed-pes-header.js +22 -12
- package/dist/state/transport-stream/pts-start-offset.d.ts +4 -1
- package/dist/state/transport-stream/pts-start-offset.js +1 -1
- package/dist/state/transport-stream/transport-stream.d.ts +5 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/with-resolvers.d.ts +5 -0
- package/dist/work-on-seek-request.js +8 -5
- package/dist/worker/{forward-controller.js → forward-controller-to-worker.js} +17 -0
- package/dist/worker/serialize-error.d.ts +6 -1
- package/dist/worker/serialize-error.js +2 -1
- package/dist/worker/worker-types.d.ts +12 -2
- package/dist/worker-server.js +16 -5
- package/package.json +3 -3
- package/dist/containers/iso-base-media/get-mfra-atom.d.ts +0 -9
- package/dist/containers/iso-base-media/get-mfra-atom.js +0 -12
- package/dist/containers/iso-base-media/get-seeking-from-mp4.d.ts +0 -11
- package/dist/containers/iso-base-media/get-seeking-info-from-mp4.js +0 -25
- package/dist/containers/iso-base-media/mfra/mfra.d.ts +0 -2
- package/dist/containers/iso-base-media/mfra/mfra.js +0 -11
- package/dist/containers/transport-stream/get-seeking-info.d.ts +0 -4
- package/dist/containers/transport-stream/get-seeking-info.js +0 -17
- package/dist/containers/transport-stream/next-pes-header-store.d.ts +0 -6
- package/dist/containers/transport-stream/next-pes-header-store.js +0 -18
- package/dist/containers/transport-stream/start-offset.d.ts +0 -4
- package/dist/containers/transport-stream/start-offset.js +0 -13
- package/dist/containers/wav/get-seeking-info.d.ts +0 -7
- package/dist/containers/wav/get-seeking-info.js +0 -20
- package/dist/containers/wav/parse-video-section.d.ts +0 -5
- package/dist/containers/wav/parse-video-section.js +0 -41
- package/dist/containers/webm/cues/fetch-web-cues.d.ts +0 -12
- package/dist/containers/webm/cues/fetch-web-cues.js +0 -32
- package/dist/containers/webm/cues/format-cues.d.ts +0 -8
- package/dist/containers/webm/cues/format-cues.js +0 -41
- package/dist/containers/webm/cues/get-seeking-byte.d.ts +0 -14
- package/dist/containers/webm/cues/get-seeking-byte.js +0 -91
- package/dist/containers/webm/fetch-web-cues.d.ts +0 -12
- package/dist/containers/webm/fetch-web-cues.js +0 -29
- package/dist/containers/webm/get-seeking-byte.d.ts +0 -14
- package/dist/containers/webm/get-seeking-byte.js +0 -91
- package/dist/containers/webm/get-seeking-info.d.ts +0 -3
- package/dist/containers/webm/get-seeking-info.js +0 -17
- package/dist/containers/webm/seek/get-seeking-info.d.ts +0 -3
- package/dist/containers/webm/seek/get-seeking-info.js +0 -17
- package/dist/emitter.d.ts +0 -33
- package/dist/emitter.js +0 -65
- package/dist/get-sample-positions-from-lpcm.d.ts +0 -3
- package/dist/get-sample-positions-from-lpcm.js +0 -46
- package/dist/get-seeking-info.js +0 -35
- package/dist/media-parser-controller.d.ts +0 -21
- package/dist/media-parser-controller.js +0 -38
- package/dist/pause-signal.d.ts +0 -11
- package/dist/pause-signal.js +0 -38
- package/dist/readers/state/aac-state.d.ts +0 -13
- package/dist/readers/state/aac-state.js +0 -17
- package/dist/readers/state/can-skip-tracks.d.ts +0 -16
- package/dist/readers/state/can-skip-tracks.js +0 -60
- package/dist/readers/state/current-reader.d.ts +0 -6
- package/dist/readers/state/current-reader.js +0 -13
- package/dist/readers/state/emitted-fields.d.ts +0 -1
- package/dist/readers/state/emitted-fields.js +0 -37
- package/dist/readers/state/flac-state.d.ts +0 -4
- package/dist/readers/state/flac-state.js +0 -13
- package/dist/readers/state/has-tracks-section.d.ts +0 -14
- package/dist/readers/state/has-tracks-section.js +0 -37
- package/dist/readers/state/images.d.ts +0 -9
- package/dist/readers/state/images.js +0 -14
- package/dist/readers/state/iso-base-media/cached-sample-positions.d.ts +0 -12
- package/dist/readers/state/iso-base-media/cached-sample-positions.js +0 -46
- package/dist/readers/state/iso-base-media/iso-state.d.ts +0 -24
- package/dist/readers/state/iso-base-media/iso-state.js +0 -20
- package/dist/readers/state/iso-base-media/lazy-mfra-load.d.ts +0 -13
- package/dist/readers/state/iso-base-media/lazy-mfra-load.js +0 -29
- package/dist/readers/state/iso-base-media/moov-box.d.ts +0 -5
- package/dist/readers/state/iso-base-media/moov-box.js +0 -13
- package/dist/readers/state/keyframes.d.ts +0 -6
- package/dist/readers/state/keyframes.js +0 -15
- package/dist/readers/state/m3u-state.d.ts +0 -44
- package/dist/readers/state/m3u-state.js +0 -124
- package/dist/readers/state/may-skip-video-data.d.ts +0 -4
- package/dist/readers/state/may-skip-video-data.js +0 -18
- package/dist/readers/state/mp3.d.ts +0 -15
- package/dist/readers/state/mp3.js +0 -19
- package/dist/readers/state/need-samples-for-fields.d.ts +0 -6
- package/dist/readers/state/need-samples-for-fields.js +0 -39
- package/dist/readers/state/parser-state.d.ts +0 -252
- package/dist/readers/state/parser-state.js +0 -124
- package/dist/readers/state/riff.d.ts +0 -10
- package/dist/readers/state/riff.js +0 -32
- package/dist/readers/state/sample-callbacks.d.ts +0 -44
- package/dist/readers/state/sample-callbacks.js +0 -118
- package/dist/readers/state/seek-infinite-loop.d.ts +0 -5
- package/dist/readers/state/seek-infinite-loop.js +0 -22
- package/dist/readers/state/slow-duration-fps.d.ts +0 -11
- package/dist/readers/state/slow-duration-fps.js +0 -86
- package/dist/readers/state/structure.d.ts +0 -15
- package/dist/readers/state/structure.js +0 -78
- package/dist/readers/state/timings.d.ts +0 -8
- package/dist/readers/state/timings.js +0 -13
- package/dist/readers/state/transport-stream/last-emitted-sample.d.ts +0 -6
- package/dist/readers/state/transport-stream/last-emitted-sample.js +0 -16
- package/dist/readers/state/transport-stream/next-pes-header-store.d.ts +0 -6
- package/dist/readers/state/transport-stream/next-pes-header-store.js +0 -18
- package/dist/readers/state/transport-stream/start-offset.d.ts +0 -4
- package/dist/readers/state/transport-stream/start-offset.js +0 -13
- package/dist/readers/state/transport-stream/transport-stream.d.ts +0 -19
- package/dist/readers/state/transport-stream/transport-stream.js +0 -25
- package/dist/readers/state/video-section.d.ts +0 -33
- package/dist/readers/state/video-section.js +0 -65
- package/dist/readers/state/webm.d.ts +0 -28
- package/dist/readers/state/webm.js +0 -109
- package/dist/seek-signal.d.ts +0 -19
- package/dist/seek-signal.js +0 -24
- package/dist/seeking-info.d.ts +0 -31
- package/dist/server-worker.module.d.ts +0 -2
- package/dist/server-worker.module.js +0 -12
- package/dist/state/matroska/lazy-seek-fetch.d.ts +0 -1
- package/dist/state/matroska/lazy-seek-fetch.js +0 -5
- package/dist/state/matroska.d.ts +0 -0
- package/dist/state/matroska.js +0 -1
- package/dist/state/slow-duration-fps.d.ts +0 -11
- package/dist/state/slow-duration-fps.js +0 -86
- package/dist/state/transport-stream/start-offset.d.ts +0 -5
- package/dist/state/transport-stream/start-offset.js +0 -13
- package/dist/state/transport-stream.d.ts +0 -8
- package/dist/state/transport-stream.js +0 -11
- package/dist/state/uml.d.ts +0 -32
- package/dist/state/uml.js +0 -52
- package/dist/state/webm.d.ts +0 -30
- package/dist/state/webm.js +0 -109
- package/dist/state/work-on-seek-request-options.d.ts +0 -3
- package/dist/state/work-on-seek-request-options.js +0 -26
- package/dist/worker.module.d.ts +0 -4
- package/dist/worker.module.js +0 -12
- /package/dist/{seeking-info.js → seeking-hints.js} +0 -0
- /package/dist/worker/{forward-controller.d.ts → forward-controller-to-worker.d.ts} +0 -0
package/dist/esm/node-writer.mjs
CHANGED
|
@@ -41,8 +41,7 @@ var createContent = (filename) => {
|
|
|
41
41
|
let writPromise = Promise.resolve();
|
|
42
42
|
const remove = async () => {
|
|
43
43
|
Log.verbose(logLevel, "Removing file", filename);
|
|
44
|
-
await fs.promises.unlink(filename).catch(() => {
|
|
45
|
-
});
|
|
44
|
+
await fs.promises.unlink(filename).catch(() => {});
|
|
46
45
|
};
|
|
47
46
|
await remove();
|
|
48
47
|
if (!fs.existsSync(filename)) {
|
package/dist/esm/node.mjs
CHANGED
|
@@ -19,8 +19,7 @@ var nodeReadContent = ({ src, range, controller }) => {
|
|
|
19
19
|
const reader = Readable.toWeb(stream).getReader();
|
|
20
20
|
if (controller) {
|
|
21
21
|
controller._internals.signal.addEventListener("abort", () => {
|
|
22
|
-
reader.cancel().catch(() => {
|
|
23
|
-
});
|
|
22
|
+
reader.cancel().catch(() => {});
|
|
24
23
|
}, { once: true });
|
|
25
24
|
}
|
|
26
25
|
return Promise.resolve({
|
|
@@ -235,6 +235,7 @@ var parseMediaOnWorkerImplementation = async ({ controller, reader, ...params },
|
|
|
235
235
|
throw new Error(`\`reader\` should not be provided to \`${apiName}\`. If you want to use it in the browser, use parseMediaOnWorker(). If you also want to read files from the file system, use parseMediaOnServerWorker().`);
|
|
236
236
|
}
|
|
237
237
|
post(worker, convertToWorkerPayload(params));
|
|
238
|
+
let workerTerminated = false;
|
|
238
239
|
const { promise, resolve, reject } = withResolvers();
|
|
239
240
|
const onAbort = () => {
|
|
240
241
|
post(worker, { type: "request-abort" });
|
|
@@ -249,15 +250,48 @@ var parseMediaOnWorkerImplementation = async ({ controller, reader, ...params },
|
|
|
249
250
|
post(worker, { type: "request-seek", payload: seek });
|
|
250
251
|
controller?._internals.seekSignal.clearSeekIfStillSame(seek);
|
|
251
252
|
};
|
|
253
|
+
const seekingHintPromises = [];
|
|
254
|
+
let finalSeekingHints = null;
|
|
255
|
+
controller?._internals.attachSeekingHintResolution(() => {
|
|
256
|
+
if (finalSeekingHints) {
|
|
257
|
+
return Promise.resolve(finalSeekingHints);
|
|
258
|
+
}
|
|
259
|
+
if (workerTerminated) {
|
|
260
|
+
return Promise.reject(new Error("Worker terminated"));
|
|
261
|
+
}
|
|
262
|
+
const prom = withResolvers();
|
|
263
|
+
post(worker, { type: "request-get-seeking-hints" });
|
|
264
|
+
seekingHintPromises.push(prom);
|
|
265
|
+
return prom.promise;
|
|
266
|
+
});
|
|
252
267
|
const callbacks = {};
|
|
253
268
|
function onMessage(message) {
|
|
254
269
|
const data = message.data;
|
|
255
270
|
if (data.type === "response-done") {
|
|
256
271
|
resolve(data.payload);
|
|
272
|
+
if (data.seekingHints) {
|
|
273
|
+
finalSeekingHints = data.seekingHints;
|
|
274
|
+
for (const prom of seekingHintPromises) {
|
|
275
|
+
prom.resolve(finalSeekingHints);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return;
|
|
257
279
|
}
|
|
258
280
|
if (data.type === "response-error") {
|
|
259
281
|
cleanup();
|
|
260
|
-
|
|
282
|
+
const error = deserializeError(data);
|
|
283
|
+
reject(error);
|
|
284
|
+
if (data.errorName === "MediaParserAbortError") {
|
|
285
|
+
finalSeekingHints = data.seekingHints;
|
|
286
|
+
for (const prom of seekingHintPromises) {
|
|
287
|
+
prom.resolve(finalSeekingHints);
|
|
288
|
+
}
|
|
289
|
+
} else {
|
|
290
|
+
for (const prom of seekingHintPromises) {
|
|
291
|
+
prom.reject(error);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
return;
|
|
261
295
|
}
|
|
262
296
|
if (data.type === "response-on-callback-request") {
|
|
263
297
|
Promise.resolve().then(async () => {
|
|
@@ -430,7 +464,17 @@ var parseMediaOnWorkerImplementation = async ({ controller, reader, ...params },
|
|
|
430
464
|
nonce: data.nonce
|
|
431
465
|
});
|
|
432
466
|
});
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
if (data.type === "response-get-seeking-hints") {
|
|
470
|
+
const firstPromise = seekingHintPromises.shift();
|
|
471
|
+
if (!firstPromise) {
|
|
472
|
+
throw new Error("No seeking hint promise found");
|
|
473
|
+
}
|
|
474
|
+
firstPromise.resolve(data.payload);
|
|
475
|
+
return;
|
|
433
476
|
}
|
|
477
|
+
throw new Error(`Unknown response type: ${JSON.stringify(data)}`);
|
|
434
478
|
}
|
|
435
479
|
worker.addEventListener("message", onMessage);
|
|
436
480
|
controller?.addEventListener("abort", onAbort);
|
|
@@ -443,6 +487,7 @@ var parseMediaOnWorkerImplementation = async ({ controller, reader, ...params },
|
|
|
443
487
|
controller?.removeEventListener("resume", onResume);
|
|
444
488
|
controller?.removeEventListener("pause", onPause);
|
|
445
489
|
controller?.removeEventListener("seek", onSeek);
|
|
490
|
+
workerTerminated = true;
|
|
446
491
|
worker.terminate();
|
|
447
492
|
}
|
|
448
493
|
controller?._internals.markAsReadyToEmitEvents();
|
package/dist/esm/universal.mjs
CHANGED
|
@@ -151,8 +151,7 @@ var fetchReadContent = async ({
|
|
|
151
151
|
});
|
|
152
152
|
if (controller) {
|
|
153
153
|
controller._internals.signal.addEventListener("abort", () => {
|
|
154
|
-
reader.reader.cancel().catch(() => {
|
|
155
|
-
});
|
|
154
|
+
reader.reader.cancel().catch(() => {});
|
|
156
155
|
}, { once: true });
|
|
157
156
|
}
|
|
158
157
|
return {
|
|
@@ -202,8 +201,7 @@ var nodeReadContent = ({ src, range, controller }) => {
|
|
|
202
201
|
const reader = Readable.toWeb(stream).getReader();
|
|
203
202
|
if (controller) {
|
|
204
203
|
controller._internals.signal.addEventListener("abort", () => {
|
|
205
|
-
reader.cancel().catch(() => {
|
|
206
|
-
});
|
|
204
|
+
reader.cancel().catch(() => {});
|
|
207
205
|
}, { once: true });
|
|
208
206
|
}
|
|
209
207
|
return Promise.resolve({
|
package/dist/esm/web.mjs
CHANGED
|
@@ -151,8 +151,7 @@ var fetchReadContent = async ({
|
|
|
151
151
|
});
|
|
152
152
|
if (controller) {
|
|
153
153
|
controller._internals.signal.addEventListener("abort", () => {
|
|
154
|
-
reader.reader.cancel().catch(() => {
|
|
155
|
-
});
|
|
154
|
+
reader.reader.cancel().catch(() => {});
|
|
156
155
|
}, { once: true });
|
|
157
156
|
}
|
|
158
157
|
return {
|