@remotion/webcodecs 4.0.332 → 4.0.334
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/create-audio-decoder.d.ts +2 -2
- package/dist/create-audio-decoder.js +9 -1
- package/dist/create-video-decoder.d.ts +2 -2
- package/dist/create-video-decoder.js +9 -1
- package/dist/default-on-video-track-handler.js +2 -1
- package/dist/esm/index.mjs +56 -9
- package/dist/esm/worker.mjs +40 -2
- package/dist/get-partial-audio-data.js +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4 -1
- package/dist/internal-extract-frames.js +1 -1
- package/dist/reencode-audio-track.js +1 -1
- package/dist/reencode-video-track.js +1 -1
- package/dist/undecodable-error.d.ts +14 -0
- package/dist/undecodable-error.js +25 -0
- package/package.json +5 -5
|
@@ -18,11 +18,11 @@ export type CreateAudioDecoderInit = {
|
|
|
18
18
|
config: AudioDecoderConfig;
|
|
19
19
|
logLevel: MediaParserLogLevel;
|
|
20
20
|
};
|
|
21
|
-
export declare const internalCreateAudioDecoder: ({ onFrame, onError, controller, config, logLevel, }: CreateAudioDecoderInit) => WebCodecsAudioDecoder
|
|
21
|
+
export declare const internalCreateAudioDecoder: ({ onFrame, onError, controller, config, logLevel, }: CreateAudioDecoderInit) => Promise<WebCodecsAudioDecoder>;
|
|
22
22
|
export declare const createAudioDecoder: ({ track, onFrame, onError, controller, logLevel, }: {
|
|
23
23
|
track: AudioDecoderConfig;
|
|
24
24
|
onFrame: (frame: AudioData) => Promise<void> | void;
|
|
25
25
|
onError: (error: Error) => void;
|
|
26
26
|
controller?: WebCodecsController | null;
|
|
27
27
|
logLevel?: MediaParserLogLevel;
|
|
28
|
-
}) => WebCodecsAudioDecoder
|
|
28
|
+
}) => Promise<WebCodecsAudioDecoder>;
|
|
@@ -4,7 +4,8 @@ exports.createAudioDecoder = exports.internalCreateAudioDecoder = void 0;
|
|
|
4
4
|
const flush_pending_1 = require("./flush-pending");
|
|
5
5
|
const get_wave_audio_decoder_1 = require("./get-wave-audio-decoder");
|
|
6
6
|
const io_synchronizer_1 = require("./io-manager/io-synchronizer");
|
|
7
|
-
const
|
|
7
|
+
const undecodable_error_1 = require("./undecodable-error");
|
|
8
|
+
const internalCreateAudioDecoder = async ({ onFrame, onError, controller, config, logLevel, }) => {
|
|
8
9
|
if (controller &&
|
|
9
10
|
controller._internals._mediaParserController._internals.signal.aborted) {
|
|
10
11
|
throw new Error('Not creating audio decoder, already aborted');
|
|
@@ -57,6 +58,13 @@ const internalCreateAudioDecoder = ({ onFrame, onError, controller, config, logL
|
|
|
57
58
|
if (controller) {
|
|
58
59
|
controller._internals._mediaParserController._internals.signal.addEventListener('abort', onAbort);
|
|
59
60
|
}
|
|
61
|
+
const isConfigSupported = await AudioDecoder.isConfigSupported(config);
|
|
62
|
+
if (!isConfigSupported) {
|
|
63
|
+
throw new undecodable_error_1.AudioUndecodableError({
|
|
64
|
+
message: 'Audio cannot be decoded by this browser',
|
|
65
|
+
config,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
60
68
|
audioDecoder.configure(config);
|
|
61
69
|
const decode = async (audioSample) => {
|
|
62
70
|
if (audioDecoder.state === 'closed') {
|
|
@@ -17,11 +17,11 @@ export declare const internalCreateVideoDecoder: ({ onFrame, onError, controller
|
|
|
17
17
|
controller: WebCodecsController | null;
|
|
18
18
|
config: VideoDecoderConfig;
|
|
19
19
|
logLevel: MediaParserLogLevel;
|
|
20
|
-
}) => WebCodecsVideoDecoder
|
|
20
|
+
}) => Promise<WebCodecsVideoDecoder>;
|
|
21
21
|
export declare const createVideoDecoder: ({ onFrame, onError, controller, track, logLevel, }: {
|
|
22
22
|
track: VideoDecoderConfig;
|
|
23
23
|
onFrame: (frame: VideoFrame) => Promise<void> | void;
|
|
24
24
|
onError: (error: Error) => void;
|
|
25
25
|
controller?: WebCodecsController;
|
|
26
26
|
logLevel?: MediaParserLogLevel;
|
|
27
|
-
}) => WebCodecsVideoDecoder
|
|
27
|
+
}) => Promise<WebCodecsVideoDecoder>;
|
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createVideoDecoder = exports.internalCreateVideoDecoder = void 0;
|
|
4
4
|
const flush_pending_1 = require("./flush-pending");
|
|
5
5
|
const io_synchronizer_1 = require("./io-manager/io-synchronizer");
|
|
6
|
-
const
|
|
6
|
+
const undecodable_error_1 = require("./undecodable-error");
|
|
7
|
+
const internalCreateVideoDecoder = async ({ onFrame, onError, controller, config, logLevel, }) => {
|
|
7
8
|
if (controller &&
|
|
8
9
|
controller._internals._mediaParserController._internals.signal.aborted) {
|
|
9
10
|
throw new Error('Not creating audio decoder, already aborted');
|
|
@@ -46,6 +47,13 @@ const internalCreateVideoDecoder = ({ onFrame, onError, controller, config, logL
|
|
|
46
47
|
if (controller) {
|
|
47
48
|
controller._internals._mediaParserController._internals.signal.addEventListener('abort', onAbort);
|
|
48
49
|
}
|
|
50
|
+
const isConfigSupported = await VideoDecoder.isConfigSupported(config);
|
|
51
|
+
if (!isConfigSupported) {
|
|
52
|
+
throw new undecodable_error_1.VideoUndecodableError({
|
|
53
|
+
message: 'Video cannot be decoded by this browser',
|
|
54
|
+
config,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
49
57
|
videoDecoder.configure(config);
|
|
50
58
|
const decode = async (sample) => {
|
|
51
59
|
if (videoDecoder.state === 'closed') {
|
|
@@ -23,7 +23,8 @@ const defaultOnVideoTrackHandler = async ({ track, defaultVideoCodec, logLevel,
|
|
|
23
23
|
return Promise.resolve({
|
|
24
24
|
type: 'reencode',
|
|
25
25
|
videoCodec: defaultVideoCodec,
|
|
26
|
-
|
|
26
|
+
// By default, will remove rotation when re-encoding
|
|
27
|
+
rotate: undefined,
|
|
27
28
|
resize: resizeOperation,
|
|
28
29
|
});
|
|
29
30
|
}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -4264,8 +4264,39 @@ var getWaveAudioDecoder = ({
|
|
|
4264
4264
|
};
|
|
4265
4265
|
};
|
|
4266
4266
|
|
|
4267
|
+
// src/undecodable-error.ts
|
|
4268
|
+
class VideoUndecodableError extends Error {
|
|
4269
|
+
config;
|
|
4270
|
+
constructor({
|
|
4271
|
+
message,
|
|
4272
|
+
config
|
|
4273
|
+
}) {
|
|
4274
|
+
super(message);
|
|
4275
|
+
this.name = "VideoUndecodableError";
|
|
4276
|
+
this.config = config;
|
|
4277
|
+
if (Error.captureStackTrace) {
|
|
4278
|
+
Error.captureStackTrace(this, VideoUndecodableError);
|
|
4279
|
+
}
|
|
4280
|
+
}
|
|
4281
|
+
}
|
|
4282
|
+
|
|
4283
|
+
class AudioUndecodableError extends Error {
|
|
4284
|
+
config;
|
|
4285
|
+
constructor({
|
|
4286
|
+
message,
|
|
4287
|
+
config
|
|
4288
|
+
}) {
|
|
4289
|
+
super(message);
|
|
4290
|
+
this.name = "AudioUndecodableError";
|
|
4291
|
+
this.config = config;
|
|
4292
|
+
if (Error.captureStackTrace) {
|
|
4293
|
+
Error.captureStackTrace(this, AudioUndecodableError);
|
|
4294
|
+
}
|
|
4295
|
+
}
|
|
4296
|
+
}
|
|
4297
|
+
|
|
4267
4298
|
// src/create-audio-decoder.ts
|
|
4268
|
-
var internalCreateAudioDecoder = ({
|
|
4299
|
+
var internalCreateAudioDecoder = async ({
|
|
4269
4300
|
onFrame,
|
|
4270
4301
|
onError,
|
|
4271
4302
|
controller,
|
|
@@ -4320,6 +4351,13 @@ var internalCreateAudioDecoder = ({
|
|
|
4320
4351
|
if (controller) {
|
|
4321
4352
|
controller._internals._mediaParserController._internals.signal.addEventListener("abort", onAbort);
|
|
4322
4353
|
}
|
|
4354
|
+
const isConfigSupported = await AudioDecoder.isConfigSupported(config);
|
|
4355
|
+
if (!isConfigSupported) {
|
|
4356
|
+
throw new AudioUndecodableError({
|
|
4357
|
+
message: "Audio cannot be decoded by this browser",
|
|
4358
|
+
config
|
|
4359
|
+
});
|
|
4360
|
+
}
|
|
4323
4361
|
audioDecoder.configure(config);
|
|
4324
4362
|
const decode = async (audioSample) => {
|
|
4325
4363
|
if (audioDecoder.state === "closed") {
|
|
@@ -4558,7 +4596,7 @@ var reencodeAudioTrack = async ({
|
|
|
4558
4596
|
newAudioData.close();
|
|
4559
4597
|
}
|
|
4560
4598
|
});
|
|
4561
|
-
const audioDecoder = internalCreateAudioDecoder({
|
|
4599
|
+
const audioDecoder = await internalCreateAudioDecoder({
|
|
4562
4600
|
onFrame: async (audioData) => {
|
|
4563
4601
|
await controller._internals._mediaParserController._internals.checkForAbortAndPause();
|
|
4564
4602
|
await audioProcessingQueue.ioSynchronizer.waitForQueueSize(10);
|
|
@@ -4711,7 +4749,7 @@ var defaultOnVideoTrackHandler = async ({
|
|
|
4711
4749
|
return Promise.resolve({
|
|
4712
4750
|
type: "reencode",
|
|
4713
4751
|
videoCodec: defaultVideoCodec,
|
|
4714
|
-
rotate:
|
|
4752
|
+
rotate: undefined,
|
|
4715
4753
|
resize: resizeOperation
|
|
4716
4754
|
});
|
|
4717
4755
|
}
|
|
@@ -4741,7 +4779,7 @@ var arrayBufferToUint8Array = (buffer) => {
|
|
|
4741
4779
|
};
|
|
4742
4780
|
|
|
4743
4781
|
// src/create-video-decoder.ts
|
|
4744
|
-
var internalCreateVideoDecoder = ({
|
|
4782
|
+
var internalCreateVideoDecoder = async ({
|
|
4745
4783
|
onFrame,
|
|
4746
4784
|
onError,
|
|
4747
4785
|
controller,
|
|
@@ -4786,6 +4824,13 @@ var internalCreateVideoDecoder = ({
|
|
|
4786
4824
|
if (controller) {
|
|
4787
4825
|
controller._internals._mediaParserController._internals.signal.addEventListener("abort", onAbort);
|
|
4788
4826
|
}
|
|
4827
|
+
const isConfigSupported = await VideoDecoder.isConfigSupported(config);
|
|
4828
|
+
if (!isConfigSupported) {
|
|
4829
|
+
throw new VideoUndecodableError({
|
|
4830
|
+
message: "Video cannot be decoded by this browser",
|
|
4831
|
+
config
|
|
4832
|
+
});
|
|
4833
|
+
}
|
|
4789
4834
|
videoDecoder.configure(config);
|
|
4790
4835
|
const decode = async (sample) => {
|
|
4791
4836
|
if (videoDecoder.state === "closed") {
|
|
@@ -5183,7 +5228,7 @@ var reencodeVideoTrack = async ({
|
|
|
5183
5228
|
videoProcessingQueue.input(frame);
|
|
5184
5229
|
}
|
|
5185
5230
|
});
|
|
5186
|
-
const videoDecoder = createVideoDecoder({
|
|
5231
|
+
const videoDecoder = await createVideoDecoder({
|
|
5187
5232
|
track: videoDecoderConfig,
|
|
5188
5233
|
onFrame: async (frame) => {
|
|
5189
5234
|
await frameSorter.waitUntilProcessed();
|
|
@@ -5652,7 +5697,7 @@ var internalExtractFrames = ({
|
|
|
5652
5697
|
throw new Error("expected at least one timestamp to extract but found zero");
|
|
5653
5698
|
}
|
|
5654
5699
|
controller.seek(timestampTargets[0]);
|
|
5655
|
-
const decoder = createVideoDecoder({
|
|
5700
|
+
const decoder = await createVideoDecoder({
|
|
5656
5701
|
onFrame: (frame) => {
|
|
5657
5702
|
Log.trace(logLevel, "Received frame with timestamp", frame.timestamp);
|
|
5658
5703
|
if (expectedFrames.length === 0) {
|
|
@@ -5844,11 +5889,11 @@ var getPartialAudioData = async ({
|
|
|
5844
5889
|
acknowledgeRemotionLicense: true,
|
|
5845
5890
|
src,
|
|
5846
5891
|
controller,
|
|
5847
|
-
onAudioTrack: ({ track }) => {
|
|
5892
|
+
onAudioTrack: async ({ track }) => {
|
|
5848
5893
|
if (signal.aborted) {
|
|
5849
5894
|
return null;
|
|
5850
5895
|
}
|
|
5851
|
-
const audioDecoder = createAudioDecoder({
|
|
5896
|
+
const audioDecoder = await createAudioDecoder({
|
|
5852
5897
|
track,
|
|
5853
5898
|
onFrame: (sample) => {
|
|
5854
5899
|
if (signal.aborted) {
|
|
@@ -5948,5 +5993,7 @@ export {
|
|
|
5948
5993
|
canReencodeAudioTrack,
|
|
5949
5994
|
canCopyVideoTrack,
|
|
5950
5995
|
canCopyAudioTrack,
|
|
5951
|
-
WebCodecsInternals
|
|
5996
|
+
WebCodecsInternals,
|
|
5997
|
+
VideoUndecodableError,
|
|
5998
|
+
AudioUndecodableError
|
|
5952
5999
|
};
|
package/dist/esm/worker.mjs
CHANGED
|
@@ -231,8 +231,39 @@ var makeIoSynchronizer = ({
|
|
|
231
231
|
};
|
|
232
232
|
};
|
|
233
233
|
|
|
234
|
+
// src/undecodable-error.ts
|
|
235
|
+
class VideoUndecodableError extends Error {
|
|
236
|
+
config;
|
|
237
|
+
constructor({
|
|
238
|
+
message,
|
|
239
|
+
config
|
|
240
|
+
}) {
|
|
241
|
+
super(message);
|
|
242
|
+
this.name = "VideoUndecodableError";
|
|
243
|
+
this.config = config;
|
|
244
|
+
if (Error.captureStackTrace) {
|
|
245
|
+
Error.captureStackTrace(this, VideoUndecodableError);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
class AudioUndecodableError extends Error {
|
|
251
|
+
config;
|
|
252
|
+
constructor({
|
|
253
|
+
message,
|
|
254
|
+
config
|
|
255
|
+
}) {
|
|
256
|
+
super(message);
|
|
257
|
+
this.name = "AudioUndecodableError";
|
|
258
|
+
this.config = config;
|
|
259
|
+
if (Error.captureStackTrace) {
|
|
260
|
+
Error.captureStackTrace(this, AudioUndecodableError);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
234
265
|
// src/create-video-decoder.ts
|
|
235
|
-
var internalCreateVideoDecoder = ({
|
|
266
|
+
var internalCreateVideoDecoder = async ({
|
|
236
267
|
onFrame,
|
|
237
268
|
onError,
|
|
238
269
|
controller,
|
|
@@ -277,6 +308,13 @@ var internalCreateVideoDecoder = ({
|
|
|
277
308
|
if (controller) {
|
|
278
309
|
controller._internals._mediaParserController._internals.signal.addEventListener("abort", onAbort);
|
|
279
310
|
}
|
|
311
|
+
const isConfigSupported = await VideoDecoder.isConfigSupported(config);
|
|
312
|
+
if (!isConfigSupported) {
|
|
313
|
+
throw new VideoUndecodableError({
|
|
314
|
+
message: "Video cannot be decoded by this browser",
|
|
315
|
+
config
|
|
316
|
+
});
|
|
317
|
+
}
|
|
280
318
|
videoDecoder.configure(config);
|
|
281
319
|
const decode = async (sample) => {
|
|
282
320
|
if (videoDecoder.state === "closed") {
|
|
@@ -387,7 +425,7 @@ var internalExtractFrames = ({
|
|
|
387
425
|
throw new Error("expected at least one timestamp to extract but found zero");
|
|
388
426
|
}
|
|
389
427
|
controller.seek(timestampTargets[0]);
|
|
390
|
-
const decoder = createVideoDecoder({
|
|
428
|
+
const decoder = await createVideoDecoder({
|
|
391
429
|
onFrame: (frame) => {
|
|
392
430
|
Log.trace(logLevel, "Received frame with timestamp", frame.timestamp);
|
|
393
431
|
if (expectedFrames.length === 0) {
|
|
@@ -69,11 +69,11 @@ const getPartialAudioData = async ({ src, fromSeconds, toSeconds, channelIndex,
|
|
|
69
69
|
acknowledgeRemotionLicense: true,
|
|
70
70
|
src,
|
|
71
71
|
controller,
|
|
72
|
-
onAudioTrack: ({ track }) => {
|
|
72
|
+
onAudioTrack: async ({ track }) => {
|
|
73
73
|
if (signal.aborted) {
|
|
74
74
|
return null;
|
|
75
75
|
}
|
|
76
|
-
const audioDecoder = (0, create_audio_decoder_1.createAudioDecoder)({
|
|
76
|
+
const audioDecoder = await (0, create_audio_decoder_1.createAudioDecoder)({
|
|
77
77
|
track,
|
|
78
78
|
onFrame: (sample) => {
|
|
79
79
|
if (signal.aborted) {
|
package/dist/index.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export type { AudioOperation, ConvertMediaOnAudioTrackHandler, } from './on-audi
|
|
|
28
28
|
export type { ConvertMediaOnVideoTrackHandler, VideoOperation, } from './on-video-track-handler';
|
|
29
29
|
export type { ResizeOperation } from './resizing/mode';
|
|
30
30
|
export { rotateAndResizeVideoFrame } from './rotate-and-resize-video-frame';
|
|
31
|
+
export { AudioUndecodableError, VideoUndecodableError, } from './undecodable-error';
|
|
31
32
|
export { createVideoEncoder } from './video-encoder';
|
|
32
33
|
export type { WebCodecsVideoEncoder } from './video-encoder';
|
|
33
34
|
export { webcodecsController } from './webcodecs-controller';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WebCodecsInternals = exports.webcodecsController = exports.createVideoEncoder = exports.rotateAndResizeVideoFrame = exports.getPartialAudioData = exports.getDefaultVideoCodec = exports.getDefaultAudioCodec = exports.getAvailableVideoCodecs = exports.getAvailableContainers = exports.getAvailableAudioCodecs = exports.extractFrames = exports.defaultOnVideoTrackHandler = exports.defaultOnAudioTrackHandler = exports.createVideoDecoder = exports.createAudioDecoder = exports.convertMedia = exports.convertAudioData = exports.canReencodeVideoTrack = exports.canReencodeAudioTrack = exports.canCopyVideoTrack = exports.canCopyAudioTrack = exports.createAudioEncoder = void 0;
|
|
3
|
+
exports.WebCodecsInternals = exports.webcodecsController = exports.createVideoEncoder = exports.VideoUndecodableError = exports.AudioUndecodableError = exports.rotateAndResizeVideoFrame = exports.getPartialAudioData = exports.getDefaultVideoCodec = exports.getDefaultAudioCodec = exports.getAvailableVideoCodecs = exports.getAvailableContainers = exports.getAvailableAudioCodecs = exports.extractFrames = exports.defaultOnVideoTrackHandler = exports.defaultOnAudioTrackHandler = exports.createVideoDecoder = exports.createAudioDecoder = exports.convertMedia = exports.convertAudioData = exports.canReencodeVideoTrack = exports.canReencodeAudioTrack = exports.canCopyVideoTrack = exports.canCopyAudioTrack = exports.createAudioEncoder = void 0;
|
|
4
4
|
const rotate_and_resize_video_frame_1 = require("./rotate-and-resize-video-frame");
|
|
5
5
|
const rotation_1 = require("./rotation");
|
|
6
6
|
const set_remotion_imported_1 = require("./set-remotion-imported");
|
|
@@ -42,6 +42,9 @@ var get_partial_audio_data_1 = require("./get-partial-audio-data");
|
|
|
42
42
|
Object.defineProperty(exports, "getPartialAudioData", { enumerable: true, get: function () { return get_partial_audio_data_1.getPartialAudioData; } });
|
|
43
43
|
var rotate_and_resize_video_frame_2 = require("./rotate-and-resize-video-frame");
|
|
44
44
|
Object.defineProperty(exports, "rotateAndResizeVideoFrame", { enumerable: true, get: function () { return rotate_and_resize_video_frame_2.rotateAndResizeVideoFrame; } });
|
|
45
|
+
var undecodable_error_1 = require("./undecodable-error");
|
|
46
|
+
Object.defineProperty(exports, "AudioUndecodableError", { enumerable: true, get: function () { return undecodable_error_1.AudioUndecodableError; } });
|
|
47
|
+
Object.defineProperty(exports, "VideoUndecodableError", { enumerable: true, get: function () { return undecodable_error_1.VideoUndecodableError; } });
|
|
45
48
|
var video_encoder_1 = require("./video-encoder");
|
|
46
49
|
Object.defineProperty(exports, "createVideoEncoder", { enumerable: true, get: function () { return video_encoder_1.createVideoEncoder; } });
|
|
47
50
|
var webcodecs_controller_1 = require("./webcodecs-controller");
|
|
@@ -38,7 +38,7 @@ const internalExtractFrames = ({ src, onFrame, signal, timestampsInSeconds, ackn
|
|
|
38
38
|
throw new Error('expected at least one timestamp to extract but found zero');
|
|
39
39
|
}
|
|
40
40
|
controller.seek(timestampTargets[0]);
|
|
41
|
-
const decoder = (0, create_video_decoder_1.createVideoDecoder)({
|
|
41
|
+
const decoder = await (0, create_video_decoder_1.createVideoDecoder)({
|
|
42
42
|
onFrame: (frame) => {
|
|
43
43
|
log_1.Log.trace(logLevel, 'Received frame with timestamp', frame.timestamp);
|
|
44
44
|
if (expectedFrames.length === 0) {
|
|
@@ -129,7 +129,7 @@ const reencodeAudioTrack = async ({ audioOperation, track, logLevel, abortConver
|
|
|
129
129
|
newAudioData.close();
|
|
130
130
|
},
|
|
131
131
|
});
|
|
132
|
-
const audioDecoder = (0, create_audio_decoder_1.internalCreateAudioDecoder)({
|
|
132
|
+
const audioDecoder = await (0, create_audio_decoder_1.internalCreateAudioDecoder)({
|
|
133
133
|
onFrame: async (audioData) => {
|
|
134
134
|
await controller._internals._mediaParserController._internals.checkForAbortAndPause();
|
|
135
135
|
await audioProcessingQueue.ioSynchronizer.waitForQueueSize(10);
|
|
@@ -111,7 +111,7 @@ const reencodeVideoTrack = async ({ videoOperation, rotate, track, logLevel, abo
|
|
|
111
111
|
videoProcessingQueue.input(frame);
|
|
112
112
|
},
|
|
113
113
|
});
|
|
114
|
-
const videoDecoder = (0, create_video_decoder_1.createVideoDecoder)({
|
|
114
|
+
const videoDecoder = await (0, create_video_decoder_1.createVideoDecoder)({
|
|
115
115
|
track: videoDecoderConfig,
|
|
116
116
|
onFrame: async (frame) => {
|
|
117
117
|
await frameSorter.waitUntilProcessed();
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare class VideoUndecodableError extends Error {
|
|
2
|
+
config: VideoDecoderConfig;
|
|
3
|
+
constructor({ message, config, }: {
|
|
4
|
+
message: string;
|
|
5
|
+
config: VideoDecoderConfig;
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
export declare class AudioUndecodableError extends Error {
|
|
9
|
+
config: AudioDecoderConfig;
|
|
10
|
+
constructor({ message, config, }: {
|
|
11
|
+
message: string;
|
|
12
|
+
config: AudioDecoderConfig;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AudioUndecodableError = exports.VideoUndecodableError = void 0;
|
|
4
|
+
class VideoUndecodableError extends Error {
|
|
5
|
+
constructor({ message, config, }) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'VideoUndecodableError';
|
|
8
|
+
this.config = config;
|
|
9
|
+
if (Error.captureStackTrace) {
|
|
10
|
+
Error.captureStackTrace(this, VideoUndecodableError);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.VideoUndecodableError = VideoUndecodableError;
|
|
15
|
+
class AudioUndecodableError extends Error {
|
|
16
|
+
constructor({ message, config, }) {
|
|
17
|
+
super(message);
|
|
18
|
+
this.name = 'AudioUndecodableError';
|
|
19
|
+
this.config = config;
|
|
20
|
+
if (Error.captureStackTrace) {
|
|
21
|
+
Error.captureStackTrace(this, AudioUndecodableError);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.AudioUndecodableError = AudioUndecodableError;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/webcodecs",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.334",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"module": "dist/esm/index.mjs",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"author": "Jonny Burger <jonny@remotion.dev>",
|
|
20
20
|
"license": "Remotion License (See https://remotion.dev/docs/webcodecs#license)",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@remotion/media-parser": "4.0.
|
|
23
|
-
"@remotion/licensing": "4.0.
|
|
22
|
+
"@remotion/media-parser": "4.0.334",
|
|
23
|
+
"@remotion/licensing": "4.0.334"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {},
|
|
26
26
|
"devDependencies": {
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"vite": "5.4.19",
|
|
30
30
|
"@playwright/test": "1.51.1",
|
|
31
31
|
"eslint": "9.19.0",
|
|
32
|
-
"@remotion/
|
|
33
|
-
"@remotion/
|
|
32
|
+
"@remotion/eslint-config-internal": "4.0.334",
|
|
33
|
+
"@remotion/example-videos": "4.0.334"
|
|
34
34
|
},
|
|
35
35
|
"keywords": [],
|
|
36
36
|
"publishConfig": {
|