@remotion/webcodecs 4.0.422 → 4.0.424

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.
Files changed (80) hide show
  1. package/dist/arraybuffer-to-uint8-array.d.ts +1 -1
  2. package/dist/audio-data/data-types.d.ts +1 -1
  3. package/dist/audio-encoder-config.d.ts +1 -2
  4. package/dist/auto-select-writer.d.ts +2 -2
  5. package/dist/can-copy-audio-track.d.ts +2 -4
  6. package/dist/can-copy-video-track.d.ts +2 -4
  7. package/dist/can-reencode-audio-track.d.ts +1 -2
  8. package/dist/can-reencode-video-track.d.ts +1 -2
  9. package/dist/convert-media.d.ts +25 -28
  10. package/dist/convert-to-correct-videoframe.d.ts +2 -3
  11. package/dist/copy-audio-track.d.ts +8 -4
  12. package/dist/copy-video-track.d.ts +9 -5
  13. package/dist/create/event-emitter.js +6 -8
  14. package/dist/create/iso-base-media/create-ilst.d.ts +1 -1
  15. package/dist/create/iso-base-media/create-mdia.d.ts +3 -3
  16. package/dist/create/iso-base-media/create-moov.d.ts +3 -3
  17. package/dist/create/iso-base-media/create-trak.d.ts +2 -2
  18. package/dist/create/iso-base-media/create-udta.d.ts +1 -1
  19. package/dist/create/iso-base-media/example-stts.d.ts +3 -3
  20. package/dist/create/iso-base-media/mp4-header.d.ts +1 -2
  21. package/dist/create/iso-base-media/primitives.d.ts +3 -3
  22. package/dist/create/iso-base-media/serialize-track.d.ts +2 -2
  23. package/dist/create/iso-base-media/trak/mdia/create-minf.d.ts +2 -2
  24. package/dist/create/iso-base-media/trak/mdia/minf/create-stbl.d.ts +3 -3
  25. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-ctts.d.ts +2 -2
  26. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stco.d.ts +2 -2
  27. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsc.d.ts +2 -2
  28. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stss.d.ts +2 -2
  29. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsz.d.ts +2 -2
  30. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stts.d.ts +2 -2
  31. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avc1.d.ts +1 -1
  32. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avcc.d.ts +1 -1
  33. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-hvcc.d.ts +1 -1
  34. package/dist/create/iso-base-media/udta/create-meta.d.ts +2 -2
  35. package/dist/create/iso-base-media/udta/meta/create-hdlr.d.ts +1 -1
  36. package/dist/create/matroska/cluster-segment.d.ts +1 -1
  37. package/dist/create/matroska/cluster.d.ts +3 -3
  38. package/dist/create/matroska/matroska-seek.d.ts +2 -2
  39. package/dist/create/matroska/matroska-utils.d.ts +7 -7
  40. package/dist/create/media-fn.d.ts +2 -2
  41. package/dist/create-audio-decoder.d.ts +3 -3
  42. package/dist/create-video-decoder.d.ts +5 -6
  43. package/dist/esm/buffer.mjs +1 -4
  44. package/dist/esm/index.mjs +3 -10
  45. package/dist/esm/web-fs.mjs +1 -3
  46. package/dist/generate-output-filename.d.ts +1 -2
  47. package/dist/get-available-audio-codecs.d.ts +2 -3
  48. package/dist/get-available-containers.d.ts +1 -1
  49. package/dist/get-available-video-codecs.d.ts +2 -3
  50. package/dist/get-codec-string.d.ts +1 -2
  51. package/dist/get-default-audio-codec.d.ts +2 -4
  52. package/dist/get-default-video-codec.d.ts +2 -4
  53. package/dist/get-partial-audio-data.d.ts +1 -1
  54. package/dist/get-wave-audio-decoder.d.ts +8 -5
  55. package/dist/index.d.ts +2 -2
  56. package/dist/index.js +22 -22
  57. package/dist/internal-extract-frames.d.ts +3 -3
  58. package/dist/io-manager/io-synchronizer.d.ts +1 -2
  59. package/dist/is-different-video-codec.d.ts +2 -4
  60. package/dist/log.d.ts +4 -4
  61. package/dist/log.js +0 -1
  62. package/dist/on-audio-track.d.ts +11 -9
  63. package/dist/on-frame.d.ts +1 -2
  64. package/dist/on-video-track.d.ts +12 -10
  65. package/dist/processing-queue.d.ts +1 -1
  66. package/dist/reencode-audio-track.d.ts +9 -5
  67. package/dist/reencode-video-track.d.ts +9 -5
  68. package/dist/rotate-and-resize-video-frame.d.ts +1 -1
  69. package/dist/undecodable-error.d.ts +2 -2
  70. package/dist/undecodable-error.js +2 -0
  71. package/dist/video-encoder-config.d.ts +1 -2
  72. package/dist/video-encoder.d.ts +2 -4
  73. package/dist/wav-audio-encoder.d.ts +7 -3
  74. package/dist/worker.js +1 -1
  75. package/dist/writers/buffer-implementation/writer.d.ts +2 -2
  76. package/dist/writers/buffer-implementation/writer.js +1 -1
  77. package/dist/writers/buffer.d.ts +2 -2
  78. package/dist/writers/web-fs.d.ts +2 -2
  79. package/dist/writers/web-fs.js +1 -1
  80. package/package.json +8 -7
@@ -1,7 +1,6 @@
1
- import type { ConvertMediaContainer } from './get-available-containers';
2
1
  declare const availableAudioCodecs: readonly ["opus", "aac", "wav"];
3
2
  export declare const getAvailableAudioCodecs: ({ container, }: {
4
- container: ConvertMediaContainer;
5
- }) => ConvertMediaAudioCodec[];
3
+ container: "mp4" | "wav" | "webm";
4
+ }) => ("aac" | "opus" | "wav")[];
6
5
  export type ConvertMediaAudioCodec = (typeof availableAudioCodecs)[number];
7
6
  export {};
@@ -1,3 +1,3 @@
1
1
  export declare const availableContainers: readonly ["webm", "mp4", "wav"];
2
2
  export type ConvertMediaContainer = (typeof availableContainers)[number];
3
- export declare const getAvailableContainers: () => readonly ConvertMediaContainer[];
3
+ export declare const getAvailableContainers: () => readonly ("mp4" | "wav" | "webm")[];
@@ -1,6 +1,5 @@
1
- import type { ConvertMediaContainer } from './get-available-containers';
2
1
  export declare const availableVideoCodecs: readonly ["vp8", "vp9", "h264", "h265"];
3
2
  export type ConvertMediaVideoCodec = (typeof availableVideoCodecs)[number];
4
3
  export declare const getAvailableVideoCodecs: ({ container, }: {
5
- container: ConvertMediaContainer;
6
- }) => ConvertMediaVideoCodec[];
4
+ container: "mp4" | "wav" | "webm";
5
+ }) => ("h264" | "h265" | "vp8" | "vp9")[];
@@ -1,6 +1,5 @@
1
- import type { ConvertMediaVideoCodec } from './get-available-video-codecs';
2
1
  export declare const getCodecStringForEncoder: ({ codec, fps, height, width, }: {
3
- codec: ConvertMediaVideoCodec;
2
+ codec: "h264" | "h265" | "vp8" | "vp9";
4
3
  fps: number | null;
5
4
  height: number;
6
5
  width: number;
@@ -1,5 +1,3 @@
1
- import type { ConvertMediaAudioCodec } from './get-available-audio-codecs';
2
- import type { ConvertMediaContainer } from './get-available-containers';
3
1
  export declare const getDefaultAudioCodec: ({ container, }: {
4
- container: ConvertMediaContainer;
5
- }) => ConvertMediaAudioCodec;
2
+ container: "mp4" | "wav" | "webm";
3
+ }) => "aac" | "opus" | "wav";
@@ -1,5 +1,3 @@
1
- import type { ConvertMediaContainer } from './get-available-containers';
2
- import type { ConvertMediaVideoCodec } from './get-available-video-codecs';
3
1
  export declare const getDefaultVideoCodec: ({ container, }: {
4
- container: ConvertMediaContainer;
5
- }) => ConvertMediaVideoCodec | null;
2
+ container: "mp4" | "wav" | "webm";
3
+ }) => "h264" | "h265" | "vp8" | "vp9" | null;
@@ -5,4 +5,4 @@ export type GetPartialAudioDataProps = {
5
5
  channelIndex: number;
6
6
  signal: AbortSignal;
7
7
  };
8
- export declare const getPartialAudioData: ({ src, fromSeconds, toSeconds, channelIndex, signal, }: GetPartialAudioDataProps) => Promise<Float32Array>;
8
+ export declare const getPartialAudioData: ({ src, fromSeconds, toSeconds, channelIndex, signal, }: GetPartialAudioDataProps) => Promise<Float32Array<ArrayBufferLike>>;
@@ -1,9 +1,12 @@
1
- import type { MediaParserLogLevel } from '@remotion/media-parser';
2
1
  import type { CreateAudioDecoderInit, WebCodecsAudioDecoder } from './create-audio-decoder';
3
- import type { IoSynchronizer } from './io-manager/io-synchronizer';
4
- export declare const getWaveAudioDecoder: ({ onFrame, config, sampleFormat, ioSynchronizer, onError, }: Pick<CreateAudioDecoderInit, "onFrame" | "config"> & {
2
+ export declare const getWaveAudioDecoder: ({ onFrame, config, sampleFormat, ioSynchronizer, onError, }: Pick<CreateAudioDecoderInit, "config" | "onFrame"> & {
5
3
  sampleFormat: "s16" | "s24";
6
- logLevel: MediaParserLogLevel;
7
- ioSynchronizer: IoSynchronizer;
4
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
5
+ ioSynchronizer: {
6
+ inputItem: (timestamp: number) => void;
7
+ onOutput: (timestamp: number) => void;
8
+ waitForQueueSize: (queueSize: number) => Promise<void>;
9
+ clearQueue: () => void;
10
+ };
8
11
  onError: (error: Error) => void;
9
12
  }) => WebCodecsAudioDecoder;
package/dist/index.d.ts CHANGED
@@ -37,8 +37,8 @@ export declare const WebCodecsInternals: {
37
37
  rotateAndResizeVideoFrame: ({ frame, rotation, needsToBeMultipleOfTwo, resizeOperation, }: {
38
38
  frame: VideoFrame;
39
39
  rotation: number;
40
- resizeOperation: import("./resizing/mode").ResizeOperation | null;
41
- needsToBeMultipleOfTwo?: boolean;
40
+ resizeOperation: import(".").ResizeOperation | null;
41
+ needsToBeMultipleOfTwo?: boolean | undefined;
42
42
  }) => VideoFrame;
43
43
  normalizeVideoRotation: (rotation: number) => number;
44
44
  };
package/dist/index.js CHANGED
@@ -2,50 +2,50 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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
- var audio_encoder_1 = require("./audio-encoder");
5
+ const audio_encoder_1 = require("./audio-encoder");
6
6
  Object.defineProperty(exports, "createAudioEncoder", { enumerable: true, get: function () { return audio_encoder_1.createAudioEncoder; } });
7
- var can_copy_audio_track_1 = require("./can-copy-audio-track");
7
+ const can_copy_audio_track_1 = require("./can-copy-audio-track");
8
8
  Object.defineProperty(exports, "canCopyAudioTrack", { enumerable: true, get: function () { return can_copy_audio_track_1.canCopyAudioTrack; } });
9
- var can_copy_video_track_1 = require("./can-copy-video-track");
9
+ const can_copy_video_track_1 = require("./can-copy-video-track");
10
10
  Object.defineProperty(exports, "canCopyVideoTrack", { enumerable: true, get: function () { return can_copy_video_track_1.canCopyVideoTrack; } });
11
- var can_reencode_audio_track_1 = require("./can-reencode-audio-track");
11
+ const can_reencode_audio_track_1 = require("./can-reencode-audio-track");
12
12
  Object.defineProperty(exports, "canReencodeAudioTrack", { enumerable: true, get: function () { return can_reencode_audio_track_1.canReencodeAudioTrack; } });
13
- var can_reencode_video_track_1 = require("./can-reencode-video-track");
13
+ const can_reencode_video_track_1 = require("./can-reencode-video-track");
14
14
  Object.defineProperty(exports, "canReencodeVideoTrack", { enumerable: true, get: function () { return can_reencode_video_track_1.canReencodeVideoTrack; } });
15
- var convert_audiodata_1 = require("./convert-audiodata");
15
+ const convert_audiodata_1 = require("./convert-audiodata");
16
16
  Object.defineProperty(exports, "convertAudioData", { enumerable: true, get: function () { return convert_audiodata_1.convertAudioData; } });
17
- var convert_media_1 = require("./convert-media");
17
+ const convert_media_1 = require("./convert-media");
18
18
  Object.defineProperty(exports, "convertMedia", { enumerable: true, get: function () { return convert_media_1.convertMedia; } });
19
- var create_audio_decoder_1 = require("./create-audio-decoder");
19
+ const create_audio_decoder_1 = require("./create-audio-decoder");
20
20
  Object.defineProperty(exports, "createAudioDecoder", { enumerable: true, get: function () { return create_audio_decoder_1.createAudioDecoder; } });
21
- var create_video_decoder_1 = require("./create-video-decoder");
21
+ const create_video_decoder_1 = require("./create-video-decoder");
22
22
  Object.defineProperty(exports, "createVideoDecoder", { enumerable: true, get: function () { return create_video_decoder_1.createVideoDecoder; } });
23
- var default_on_audio_track_handler_1 = require("./default-on-audio-track-handler");
23
+ const default_on_audio_track_handler_1 = require("./default-on-audio-track-handler");
24
24
  Object.defineProperty(exports, "defaultOnAudioTrackHandler", { enumerable: true, get: function () { return default_on_audio_track_handler_1.defaultOnAudioTrackHandler; } });
25
- var default_on_video_track_handler_1 = require("./default-on-video-track-handler");
25
+ const default_on_video_track_handler_1 = require("./default-on-video-track-handler");
26
26
  Object.defineProperty(exports, "defaultOnVideoTrackHandler", { enumerable: true, get: function () { return default_on_video_track_handler_1.defaultOnVideoTrackHandler; } });
27
- var extract_frames_1 = require("./extract-frames");
27
+ const extract_frames_1 = require("./extract-frames");
28
28
  Object.defineProperty(exports, "extractFrames", { enumerable: true, get: function () { return extract_frames_1.extractFrames; } });
29
- var get_available_audio_codecs_1 = require("./get-available-audio-codecs");
29
+ const get_available_audio_codecs_1 = require("./get-available-audio-codecs");
30
30
  Object.defineProperty(exports, "getAvailableAudioCodecs", { enumerable: true, get: function () { return get_available_audio_codecs_1.getAvailableAudioCodecs; } });
31
- var get_available_containers_1 = require("./get-available-containers");
31
+ const get_available_containers_1 = require("./get-available-containers");
32
32
  Object.defineProperty(exports, "getAvailableContainers", { enumerable: true, get: function () { return get_available_containers_1.getAvailableContainers; } });
33
- var get_available_video_codecs_1 = require("./get-available-video-codecs");
33
+ const get_available_video_codecs_1 = require("./get-available-video-codecs");
34
34
  Object.defineProperty(exports, "getAvailableVideoCodecs", { enumerable: true, get: function () { return get_available_video_codecs_1.getAvailableVideoCodecs; } });
35
- var get_default_audio_codec_1 = require("./get-default-audio-codec");
35
+ const get_default_audio_codec_1 = require("./get-default-audio-codec");
36
36
  Object.defineProperty(exports, "getDefaultAudioCodec", { enumerable: true, get: function () { return get_default_audio_codec_1.getDefaultAudioCodec; } });
37
- var get_default_video_codec_1 = require("./get-default-video-codec");
37
+ const get_default_video_codec_1 = require("./get-default-video-codec");
38
38
  Object.defineProperty(exports, "getDefaultVideoCodec", { enumerable: true, get: function () { return get_default_video_codec_1.getDefaultVideoCodec; } });
39
- var get_partial_audio_data_1 = require("./get-partial-audio-data");
39
+ const get_partial_audio_data_1 = require("./get-partial-audio-data");
40
40
  Object.defineProperty(exports, "getPartialAudioData", { enumerable: true, get: function () { return get_partial_audio_data_1.getPartialAudioData; } });
41
- var rotate_and_resize_video_frame_2 = require("./rotate-and-resize-video-frame");
41
+ const rotate_and_resize_video_frame_2 = require("./rotate-and-resize-video-frame");
42
42
  Object.defineProperty(exports, "rotateAndResizeVideoFrame", { enumerable: true, get: function () { return rotate_and_resize_video_frame_2.rotateAndResizeVideoFrame; } });
43
- var undecodable_error_1 = require("./undecodable-error");
43
+ const undecodable_error_1 = require("./undecodable-error");
44
44
  Object.defineProperty(exports, "AudioUndecodableError", { enumerable: true, get: function () { return undecodable_error_1.AudioUndecodableError; } });
45
45
  Object.defineProperty(exports, "VideoUndecodableError", { enumerable: true, get: function () { return undecodable_error_1.VideoUndecodableError; } });
46
- var video_encoder_1 = require("./video-encoder");
46
+ const video_encoder_1 = require("./video-encoder");
47
47
  Object.defineProperty(exports, "createVideoEncoder", { enumerable: true, get: function () { return video_encoder_1.createVideoEncoder; } });
48
- var webcodecs_controller_1 = require("./webcodecs-controller");
48
+ const webcodecs_controller_1 = require("./webcodecs-controller");
49
49
  Object.defineProperty(exports, "webcodecsController", { enumerable: true, get: function () { return webcodecs_controller_1.webcodecsController; } });
50
50
  exports.WebCodecsInternals = {
51
51
  rotateAndResizeVideoFrame: rotate_and_resize_video_frame_1.rotateAndResizeVideoFrame,
@@ -1,4 +1,4 @@
1
- import type { MediaParserContainer, MediaParserLogLevel, MediaParserVideoTrack, ParseMedia } from '@remotion/media-parser';
1
+ import type { MediaParserContainer, MediaParserVideoTrack, ParseMedia } from '@remotion/media-parser';
2
2
  import type { ParseMediaOnWorker } from '@remotion/media-parser/worker';
3
3
  export type ExtractFramesTimestampsInSecondsFn = (options: {
4
4
  track: MediaParserVideoTrack;
@@ -11,6 +11,6 @@ export declare const internalExtractFrames: ({ src, onFrame, signal, timestampsI
11
11
  onFrame: (frame: VideoFrame) => void;
12
12
  signal: AbortSignal | null;
13
13
  acknowledgeRemotionLicense: boolean;
14
- logLevel: MediaParserLogLevel;
15
- parseMediaImplementation: ParseMediaOnWorker | ParseMedia;
14
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
15
+ parseMediaImplementation: ParseMedia | ParseMediaOnWorker;
16
16
  }) => Promise<void>;
@@ -1,7 +1,6 @@
1
- import type { LogLevel } from '../log';
2
1
  import type { WebCodecsController } from '../webcodecs-controller';
3
2
  export declare const makeIoSynchronizer: ({ logLevel, label, controller, }: {
4
- logLevel: LogLevel;
3
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
5
4
  label: string;
6
5
  controller: WebCodecsController | null;
7
6
  }) => {
@@ -1,11 +1,9 @@
1
1
  import type { MediaParserAudioCodec, MediaParserVideoCodec } from '@remotion/media-parser';
2
- import type { ConvertMediaAudioCodec } from './get-available-audio-codecs';
3
- import type { ConvertMediaVideoCodec } from './get-available-video-codecs';
4
2
  export declare const isSameVideoCodec: ({ inputVideoCodec, outputCodec, }: {
5
3
  inputVideoCodec: MediaParserVideoCodec;
6
- outputCodec: ConvertMediaVideoCodec;
4
+ outputCodec: "h264" | "h265" | "vp8" | "vp9";
7
5
  }) => boolean;
8
6
  export declare const isSameAudioCodec: ({ inputAudioCodec, outputCodec, }: {
9
7
  inputAudioCodec: MediaParserAudioCodec;
10
- outputCodec: ConvertMediaAudioCodec;
8
+ outputCodec: "aac" | "opus" | "wav";
11
9
  }) => boolean;
package/dist/log.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import type { MediaParserLogLevel } from '@remotion/media-parser';
2
2
  declare const Log: {
3
- trace: (logLevel: MediaParserLogLevel, message?: any, ...optionalParams: any[]) => void;
4
- verbose: (logLevel: MediaParserLogLevel, message?: any, ...optionalParams: any[]) => void;
5
- info: (logLevel: MediaParserLogLevel, message?: any, ...optionalParams: any[]) => void;
6
- warn: (logLevel: MediaParserLogLevel, message?: any, ...optionalParams: any[]) => void;
3
+ trace: (logLevel: "error" | "info" | "trace" | "verbose" | "warn", message?: any, ...optionalParams: any[]) => void;
4
+ verbose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn", message?: any, ...optionalParams: any[]) => void;
5
+ info: (logLevel: "error" | "info" | "trace" | "verbose" | "warn", message?: any, ...optionalParams: any[]) => void;
6
+ warn: (logLevel: "error" | "info" | "trace" | "verbose" | "warn", message?: any, ...optionalParams: any[]) => void;
7
7
  error: (message?: any, ...optionalParams: any[]) => void;
8
8
  };
9
9
  export { Log };
package/dist/log.js CHANGED
@@ -3,4 +3,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Log = void 0;
4
4
  const media_parser_1 = require("@remotion/media-parser");
5
5
  const { Log } = media_parser_1.MediaParserInternals;
6
- exports.Log = Log;
@@ -1,21 +1,23 @@
1
- import { type MediaParserLogLevel, type MediaParserOnAudioTrack } from '@remotion/media-parser';
1
+ import { type MediaParserOnAudioTrack } from '@remotion/media-parser';
2
2
  import type { ConvertMediaOnAudioData } from './convert-media';
3
3
  import type { MediaFn } from './create/media-fn';
4
- import type { ProgressTracker } from './create/progress-tracker';
5
- import type { ConvertMediaAudioCodec } from './get-available-audio-codecs';
6
- import type { ConvertMediaContainer } from './get-available-containers';
7
4
  import type { ConvertMediaOnAudioTrackHandler } from './on-audio-track-handler';
8
5
  import type { ConvertMediaProgressFn } from './throttled-state-update';
9
6
  import type { WebCodecsController } from './webcodecs-controller';
10
7
  export declare const makeAudioTrackHandler: ({ state, defaultAudioCodec: audioCodec, controller, abortConversion, onMediaStateUpdate, onAudioTrack, logLevel, outputContainer, onAudioData, progressTracker, }: {
11
8
  state: MediaFn;
12
- defaultAudioCodec: ConvertMediaAudioCodec | null;
9
+ defaultAudioCodec: "aac" | "opus" | "wav" | null;
13
10
  controller: WebCodecsController;
14
11
  abortConversion: (errCause: Error) => void;
15
- onMediaStateUpdate: null | ConvertMediaProgressFn;
12
+ onMediaStateUpdate: ConvertMediaProgressFn | null;
16
13
  onAudioTrack: ConvertMediaOnAudioTrackHandler | null;
17
- logLevel: MediaParserLogLevel;
18
- outputContainer: ConvertMediaContainer;
14
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
15
+ outputContainer: "mp4" | "wav" | "webm";
19
16
  onAudioData: ConvertMediaOnAudioData | null;
20
- progressTracker: ProgressTracker;
17
+ progressTracker: {
18
+ registerTrack: (trackNumber: number) => void;
19
+ getSmallestProgress: () => number;
20
+ updateTrackProgress: (trackNumber: number, progress: number) => void;
21
+ setPossibleLowestTimestamp: (timestamp: number) => void;
22
+ };
21
23
  }) => MediaParserOnAudioTrack;
@@ -1,12 +1,11 @@
1
1
  import type { MediaParserVideoTrack } from '@remotion/media-parser';
2
2
  import type { ConvertMediaOnVideoFrame } from './convert-media';
3
- import type { ConvertMediaVideoCodec } from './get-available-video-codecs';
4
3
  import type { ResizeOperation } from './resizing/mode';
5
4
  export declare const processFrame: ({ frame: unrotatedFrame, onVideoFrame, track, outputCodec, rotation, resizeOperation, }: {
6
5
  frame: VideoFrame;
7
6
  onVideoFrame: ConvertMediaOnVideoFrame | null;
8
7
  track: MediaParserVideoTrack;
9
- outputCodec: ConvertMediaVideoCodec;
8
+ outputCodec: "h264" | "h265" | "vp8" | "vp9";
10
9
  rotation: number;
11
10
  resizeOperation: ResizeOperation | null;
12
11
  }) => Promise<VideoFrame>;
@@ -1,24 +1,26 @@
1
- import type { MediaParserLogLevel, MediaParserOnVideoTrack } from '@remotion/media-parser';
1
+ import type { MediaParserOnVideoTrack } from '@remotion/media-parser';
2
2
  import type { ConvertMediaOnVideoFrame } from './convert-media';
3
3
  import type { MediaFn } from './create/media-fn';
4
- import type { ProgressTracker } from './create/progress-tracker';
5
- import type { ConvertMediaContainer } from './get-available-containers';
6
- import type { ConvertMediaVideoCodec } from './get-available-video-codecs';
7
4
  import type { ConvertMediaOnVideoTrackHandler } from './on-video-track-handler';
8
5
  import type { ResizeOperation } from './resizing/mode';
9
6
  import type { ConvertMediaProgressFn } from './throttled-state-update';
10
7
  import type { WebCodecsController } from './webcodecs-controller';
11
8
  export declare const makeVideoTrackHandler: ({ state, onVideoFrame, onMediaStateUpdate, abortConversion, controller, defaultVideoCodec, onVideoTrack, logLevel, outputContainer, rotate, resizeOperation, progressTracker, }: {
12
9
  state: MediaFn;
13
- onVideoFrame: null | ConvertMediaOnVideoFrame;
14
- onMediaStateUpdate: null | ConvertMediaProgressFn;
10
+ onVideoFrame: ConvertMediaOnVideoFrame | null;
11
+ onMediaStateUpdate: ConvertMediaProgressFn | null;
15
12
  abortConversion: (errCause: Error) => void;
16
13
  controller: WebCodecsController;
17
- defaultVideoCodec: ConvertMediaVideoCodec | null;
14
+ defaultVideoCodec: "h264" | "h265" | "vp8" | "vp9" | null;
18
15
  onVideoTrack: ConvertMediaOnVideoTrackHandler | null;
19
- logLevel: MediaParserLogLevel;
20
- outputContainer: ConvertMediaContainer;
16
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
17
+ outputContainer: "mp4" | "wav" | "webm";
21
18
  rotate: number;
22
19
  resizeOperation: ResizeOperation | null;
23
- progressTracker: ProgressTracker;
20
+ progressTracker: {
21
+ registerTrack: (trackNumber: number) => void;
22
+ getSmallestProgress: () => number;
23
+ updateTrackProgress: (trackNumber: number, progress: number) => void;
24
+ setPossibleLowestTimestamp: (timestamp: number) => void;
25
+ };
24
26
  }) => MediaParserOnVideoTrack;
@@ -1,7 +1,7 @@
1
1
  import type { LogLevel } from './log';
2
2
  import type { WebCodecsController } from './webcodecs-controller';
3
3
  type Processable = EncodedAudioChunk | EncodedVideoChunk | AudioData | VideoFrame;
4
- export declare function processingQueue<T extends Processable>({ onOutput, logLevel, label, onError, controller, }: {
4
+ export declare function processingQueue<T extends Processable>({ onOutput, logLevel, label, onError, controller }: {
5
5
  onOutput: (item: T) => Promise<void>;
6
6
  onError: (error: Error) => void;
7
7
  logLevel: LogLevel;
@@ -1,18 +1,22 @@
1
- import type { MediaParserAudioTrack, MediaParserLogLevel, MediaParserOnAudioSample } from '@remotion/media-parser';
1
+ import type { MediaParserAudioTrack, MediaParserOnAudioSample } from '@remotion/media-parser';
2
2
  import type { ConvertMediaOnAudioData } from './convert-media';
3
3
  import type { MediaFn } from './create/media-fn';
4
- import type { ProgressTracker } from './create/progress-tracker';
5
4
  import type { AudioOperation } from './on-audio-track-handler';
6
5
  import type { ConvertMediaProgressFn } from './throttled-state-update';
7
6
  import type { WebCodecsController } from './webcodecs-controller';
8
7
  export declare const reencodeAudioTrack: ({ audioOperation, track, logLevel, abortConversion, state, controller, onMediaStateUpdate, onAudioData, progressTracker, }: {
9
8
  audioOperation: AudioOperation;
10
9
  track: MediaParserAudioTrack;
11
- logLevel: MediaParserLogLevel;
10
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
12
11
  abortConversion: (errCause: Error) => void;
13
12
  state: MediaFn;
14
13
  controller: WebCodecsController;
15
- onMediaStateUpdate: null | ConvertMediaProgressFn;
14
+ onMediaStateUpdate: ConvertMediaProgressFn | null;
16
15
  onAudioData: ConvertMediaOnAudioData | null;
17
- progressTracker: ProgressTracker;
16
+ progressTracker: {
17
+ registerTrack: (trackNumber: number) => void;
18
+ getSmallestProgress: () => number;
19
+ updateTrackProgress: (trackNumber: number, progress: number) => void;
20
+ setPossibleLowestTimestamp: (timestamp: number) => void;
21
+ };
18
22
  }) => Promise<MediaParserOnAudioSample | null>;
@@ -1,7 +1,6 @@
1
- import type { MediaParserLogLevel, MediaParserOnVideoSample, MediaParserVideoTrack } from '@remotion/media-parser';
1
+ import type { MediaParserOnVideoSample, MediaParserVideoTrack } from '@remotion/media-parser';
2
2
  import type { ConvertMediaOnVideoFrame } from './convert-media';
3
3
  import type { MediaFn } from './create/media-fn';
4
- import type { ProgressTracker } from './create/progress-tracker';
5
4
  import type { VideoOperation } from './on-video-track-handler';
6
5
  import type { ConvertMediaProgressFn } from './throttled-state-update';
7
6
  import type { WebCodecsController } from './webcodecs-controller';
@@ -9,11 +8,16 @@ export declare const reencodeVideoTrack: ({ videoOperation, rotate, track, logLe
9
8
  videoOperation: VideoOperation;
10
9
  rotate: number;
11
10
  track: MediaParserVideoTrack;
12
- logLevel: MediaParserLogLevel;
11
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
13
12
  abortConversion: (errCause: Error) => void;
14
- onMediaStateUpdate: null | ConvertMediaProgressFn;
13
+ onMediaStateUpdate: ConvertMediaProgressFn | null;
15
14
  controller: WebCodecsController;
16
15
  onVideoFrame: ConvertMediaOnVideoFrame | null;
17
16
  state: MediaFn;
18
- progressTracker: ProgressTracker;
17
+ progressTracker: {
18
+ registerTrack: (trackNumber: number) => void;
19
+ getSmallestProgress: () => number;
20
+ updateTrackProgress: (trackNumber: number, progress: number) => void;
21
+ setPossibleLowestTimestamp: (timestamp: number) => void;
22
+ };
19
23
  }) => Promise<MediaParserOnVideoSample | null>;
@@ -4,5 +4,5 @@ export declare const rotateAndResizeVideoFrame: ({ frame, rotation, needsToBeMul
4
4
  frame: VideoFrame;
5
5
  rotation: number;
6
6
  resizeOperation: ResizeOperation | null;
7
- needsToBeMultipleOfTwo?: boolean;
7
+ needsToBeMultipleOfTwo?: boolean | undefined;
8
8
  }) => VideoFrame;
@@ -1,13 +1,13 @@
1
1
  export declare class VideoUndecodableError extends Error {
2
2
  config: VideoDecoderConfig;
3
- constructor({ message, config, }: {
3
+ constructor({ message, config }: {
4
4
  message: string;
5
5
  config: VideoDecoderConfig;
6
6
  });
7
7
  }
8
8
  export declare class AudioUndecodableError extends Error {
9
9
  config: AudioDecoderConfig;
10
- constructor({ message, config, }: {
10
+ constructor({ message, config }: {
11
11
  message: string;
12
12
  config: AudioDecoderConfig;
13
13
  });
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AudioUndecodableError = exports.VideoUndecodableError = void 0;
4
4
  class VideoUndecodableError extends Error {
5
+ config;
5
6
  constructor({ message, config, }) {
6
7
  super(message);
7
8
  this.name = 'VideoUndecodableError';
@@ -13,6 +14,7 @@ class VideoUndecodableError extends Error {
13
14
  }
14
15
  exports.VideoUndecodableError = VideoUndecodableError;
15
16
  class AudioUndecodableError extends Error {
17
+ config;
16
18
  constructor({ message, config, }) {
17
19
  super(message);
18
20
  this.name = 'AudioUndecodableError';
@@ -1,7 +1,6 @@
1
- import type { ConvertMediaVideoCodec } from './get-available-video-codecs';
2
1
  export declare const getVideoEncoderConfig: ({ codec, height, width, fps, }: {
3
2
  width: number;
4
3
  height: number;
5
- codec: ConvertMediaVideoCodec;
4
+ codec: "h264" | "h265" | "vp8" | "vp9";
6
5
  fps: number | null;
7
6
  }) => Promise<VideoEncoderConfig | null>;
@@ -1,5 +1,3 @@
1
- import { type MediaParserLogLevel } from '@remotion/media-parser';
2
- import type { ConvertMediaVideoCodec } from './get-available-video-codecs';
3
1
  import type { IoSynchronizer } from './io-manager/io-synchronizer';
4
2
  import type { WebCodecsController } from './webcodecs-controller';
5
3
  export type WebCodecsVideoEncoder = {
@@ -14,7 +12,7 @@ export declare const createVideoEncoder: ({ onChunk, onError, controller, config
14
12
  onError: (error: Error) => void;
15
13
  controller: WebCodecsController;
16
14
  config: VideoEncoderConfig;
17
- logLevel: MediaParserLogLevel;
18
- outputCodec: ConvertMediaVideoCodec;
15
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
16
+ outputCodec: "h264" | "h265" | "vp8" | "vp9";
19
17
  keyframeInterval: number;
20
18
  }) => WebCodecsVideoEncoder;
@@ -1,5 +1,9 @@
1
1
  import type { AudioEncoderInit, WebCodecsAudioEncoder } from './audio-encoder';
2
- import type { IoSynchronizer } from './io-manager/io-synchronizer';
3
- export declare const getWaveAudioEncoder: ({ onChunk, controller, config, ioSynchronizer, }: Pick<AudioEncoderInit, "onChunk" | "controller" | "config"> & {
4
- ioSynchronizer: IoSynchronizer;
2
+ export declare const getWaveAudioEncoder: ({ onChunk, controller, config, ioSynchronizer, }: Pick<AudioEncoderInit, "config" | "controller" | "onChunk"> & {
3
+ ioSynchronizer: {
4
+ inputItem: (timestamp: number) => void;
5
+ onOutput: (timestamp: number) => void;
6
+ waitForQueueSize: (queueSize: number) => Promise<void>;
7
+ clearQueue: () => void;
8
+ };
5
9
  }) => WebCodecsAudioEncoder;
package/dist/worker.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractFramesOnWebWorker = void 0;
4
- var extract_frames_on_web_worker_1 = require("./extract-frames-on-web-worker");
4
+ const extract_frames_on_web_worker_1 = require("./extract-frames-on-web-worker");
5
5
  Object.defineProperty(exports, "extractFramesOnWebWorker", { enumerable: true, get: function () { return extract_frames_on_web_worker_1.extractFramesOnWebWorker; } });
@@ -1,2 +1,2 @@
1
- import type { MediaParserInternalTypes } from '@remotion/media-parser';
2
- export declare const createContent: MediaParserInternalTypes['CreateContent'];
1
+ import type { CreateContent } from '@remotion/media-parser';
2
+ export declare const createContent: CreateContent;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createContent = void 0;
4
- const createContent = ({ filename, mimeType, }) => {
4
+ const createContent = ({ filename, mimeType }) => {
5
5
  const buf = new ArrayBuffer(0, {
6
6
  // TODO: Educate that the buffer is limited to 2GB
7
7
  maxByteLength: 2000000000,
@@ -1,2 +1,2 @@
1
- import type { MediaParserInternalTypes } from '@remotion/media-parser';
2
- export declare const bufferWriter: MediaParserInternalTypes['WriterInterface'];
1
+ import type { WriterInterface } from '@remotion/media-parser';
2
+ export declare const bufferWriter: WriterInterface;
@@ -1,3 +1,3 @@
1
- import type { MediaParserInternalTypes } from '@remotion/media-parser';
2
- export declare const webFsWriter: MediaParserInternalTypes['WriterInterface'];
1
+ import type { WriterInterface } from '@remotion/media-parser';
2
+ export declare const webFsWriter: WriterInterface;
3
3
  export declare const canUseWebFsWriter: () => Promise<boolean>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.canUseWebFsWriter = exports.webFsWriter = void 0;
4
- const createContent = async ({ filename, }) => {
4
+ const createContent = async ({ filename }) => {
5
5
  const directoryHandle = await navigator.storage.getDirectory();
6
6
  const actualFilename = `__remotion_mediaparser:${filename}`;
7
7
  const remove = async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/webcodecs",
3
- "version": "4.0.422",
3
+ "version": "4.0.424",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "module": "dist/esm/index.mjs",
@@ -16,8 +16,8 @@
16
16
  "lint": "eslint src",
17
17
  "test": "bun test src/test",
18
18
  "testwebcodecs": "playwright test src/it-tests",
19
- "watch": "tsc -w",
20
- "make": "tsc -d && bun --env-file=../.env.bundle bundle.ts"
19
+ "watch": "tsgo -w",
20
+ "make": "tsgo -d && bun --env-file=../.env.bundle bundle.ts"
21
21
  },
22
22
  "files": [
23
23
  "dist",
@@ -27,17 +27,18 @@
27
27
  "author": "Jonny Burger <jonny@remotion.dev>",
28
28
  "license": "Remotion License (See https://remotion.dev/docs/webcodecs#license)",
29
29
  "dependencies": {
30
- "@remotion/media-parser": "4.0.422"
30
+ "@remotion/media-parser": "4.0.424"
31
31
  },
32
32
  "peerDependencies": {},
33
33
  "devDependencies": {
34
34
  "@types/dom-webcodecs": "0.1.11",
35
- "@remotion/example-videos": "4.0.422",
36
- "@remotion/eslint-config-internal": "4.0.422",
35
+ "@remotion/example-videos": "4.0.424",
36
+ "@remotion/eslint-config-internal": "4.0.424",
37
37
  "playwright": "1.55.1",
38
38
  "vite": "5.4.21",
39
39
  "@playwright/test": "1.55.1",
40
- "eslint": "9.19.0"
40
+ "eslint": "9.19.0",
41
+ "@typescript/native-preview": "7.0.0-dev.20260217.1"
41
42
  },
42
43
  "keywords": [],
43
44
  "publishConfig": {