@remotion/webcodecs 4.0.297 → 4.0.300

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 (60) hide show
  1. package/dist/audio-decoder.d.ts +4 -4
  2. package/dist/audio-decoder.js +8 -6
  3. package/dist/audio-encoder.d.ts +2 -2
  4. package/dist/audio-encoder.js +6 -4
  5. package/dist/auto-select-writer.d.ts +2 -3
  6. package/dist/can-copy-video-track.d.ts +2 -2
  7. package/dist/can-copy-video-track.js +3 -5
  8. package/dist/can-reencode-audio-track.d.ts +2 -2
  9. package/dist/can-reencode-video-track.d.ts +2 -2
  10. package/dist/convert-encoded-chunk.d.ts +2 -2
  11. package/dist/convert-media.d.ts +7 -8
  12. package/dist/convert-media.js +8 -8
  13. package/dist/create/iso-base-media/example-stts.d.ts +3 -3
  14. package/dist/create/iso-base-media/mp4-header.d.ts +2 -2
  15. package/dist/create/iso-base-media/serialize-track.d.ts +2 -2
  16. package/dist/create/iso-base-media/trak/mdia/minf/create-stbl.d.ts +2 -2
  17. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-ctts.d.ts +2 -2
  18. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stco.d.ts +2 -2
  19. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsc.d.ts +2 -2
  20. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stss.d.ts +2 -2
  21. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsz.d.ts +2 -2
  22. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stts.d.ts +2 -2
  23. package/dist/create/make-track-info.d.ts +2 -2
  24. package/dist/create/matroska/cluster.d.ts +7 -8
  25. package/dist/create/matroska/color.d.ts +2 -2
  26. package/dist/create/matroska/color.js +83 -26
  27. package/dist/create/matroska/matroska-seek.d.ts +2 -2
  28. package/dist/create/matroska/matroska-trackentry.d.ts +2 -2
  29. package/dist/create/matroska/matroska-utils.d.ts +7 -3
  30. package/dist/create/media-fn.d.ts +4 -5
  31. package/dist/esm/buffer.mjs +4 -1
  32. package/dist/esm/index.mjs +147 -62
  33. package/dist/esm/web-fs.mjs +3 -1
  34. package/dist/index.d.ts +1 -1
  35. package/dist/io-manager/io-synchronizer.js +3 -3
  36. package/dist/log.d.ts +6 -6
  37. package/dist/on-audio-track-handler.d.ts +3 -3
  38. package/dist/on-audio-track.d.ts +3 -3
  39. package/dist/on-audio-track.js +5 -5
  40. package/dist/on-frame.d.ts +2 -2
  41. package/dist/on-video-track-handler.d.ts +3 -3
  42. package/dist/on-video-track.d.ts +3 -3
  43. package/dist/on-video-track.js +6 -6
  44. package/dist/resizing/calculate-new-size.d.ts +4 -4
  45. package/dist/resizing/mode.d.ts +0 -4
  46. package/dist/rotation.d.ts +3 -3
  47. package/dist/sort-video-frames.js +3 -3
  48. package/dist/video-decoder.d.ts +3 -3
  49. package/dist/video-decoder.js +6 -5
  50. package/dist/video-encoder.d.ts +2 -2
  51. package/dist/video-encoder.js +6 -4
  52. package/dist/wav-audio-encoder.js +1 -1
  53. package/dist/webcodecs-controller.d.ts +1 -3
  54. package/dist/webcodecs-controller.js +1 -2
  55. package/dist/writers/buffer-implementation/writer.d.ts +2 -2
  56. package/dist/writers/buffer-implementation/writer.js +2 -4
  57. package/dist/writers/buffer.d.ts +2 -2
  58. package/dist/writers/web-fs.d.ts +2 -2
  59. package/dist/writers/web-fs.js +1 -1
  60. package/package.json +5 -5
@@ -1,4 +1,4 @@
1
- import type { AudioTrack, LogLevel, MediaParserContainer } from '@remotion/media-parser';
1
+ import type { MediaParserAudioTrack, MediaParserContainer, MediaParserLogLevel } from '@remotion/media-parser';
2
2
  import type { ConvertMediaAudioCodec } from './get-available-audio-codecs';
3
3
  import type { ConvertMediaContainer } from './get-available-containers';
4
4
  export type AudioOperation = {
@@ -14,9 +14,9 @@ export type AudioOperation = {
14
14
  type: 'drop';
15
15
  };
16
16
  export type ConvertMediaOnAudioTrackHandler = (options: {
17
- track: AudioTrack;
17
+ track: MediaParserAudioTrack;
18
18
  defaultAudioCodec: ConvertMediaAudioCodec | null;
19
- logLevel: LogLevel;
19
+ logLevel: MediaParserLogLevel;
20
20
  outputContainer: ConvertMediaContainer;
21
21
  inputContainer: MediaParserContainer;
22
22
  canCopyTrack: boolean;
@@ -1,4 +1,4 @@
1
- import { type LogLevel, type OnAudioTrack } from '@remotion/media-parser';
1
+ import { type MediaParserLogLevel, type MediaParserOnAudioTrack } from '@remotion/media-parser';
2
2
  import type { ConvertMediaOnAudioData } from './convert-media';
3
3
  import type { MediaFn } from './create/media-fn';
4
4
  import type { ProgressTracker } from './create/progress-tracker';
@@ -14,8 +14,8 @@ export declare const makeAudioTrackHandler: ({ state, defaultAudioCodec: audioCo
14
14
  abortConversion: (errCause: Error) => void;
15
15
  onMediaStateUpdate: null | ConvertMediaProgressFn;
16
16
  onAudioTrack: ConvertMediaOnAudioTrackHandler | null;
17
- logLevel: LogLevel;
17
+ logLevel: MediaParserLogLevel;
18
18
  outputContainer: ConvertMediaContainer;
19
19
  progressTracker: ProgressTracker;
20
20
  onAudioData: ConvertMediaOnAudioData | null;
21
- }) => OnAudioTrack;
21
+ }) => MediaParserOnAudioTrack;
@@ -13,7 +13,7 @@ const get_default_audio_codec_1 = require("./get-default-audio-codec");
13
13
  const log_1 = require("./log");
14
14
  const makeAudioTrackHandler = ({ state, defaultAudioCodec: audioCodec, controller, abortConversion, onMediaStateUpdate, onAudioTrack, logLevel, outputContainer, progressTracker, onAudioData, }) => async ({ track, container: inputContainer }) => {
15
15
  const canCopyTrack = (0, can_copy_audio_track_1.canCopyAudioTrack)({
16
- inputCodec: track.codecWithoutConfig,
16
+ inputCodec: track.codecEnum,
17
17
  outputContainer,
18
18
  inputContainer,
19
19
  });
@@ -34,19 +34,19 @@ const makeAudioTrackHandler = ({ state, defaultAudioCodec: audioCodec, controlle
34
34
  if (audioOperation.type === 'copy') {
35
35
  const addedTrack = await state.addTrack({
36
36
  type: 'audio',
37
- codec: track.codecWithoutConfig,
37
+ codec: track.codecEnum,
38
38
  numberOfChannels: track.numberOfChannels,
39
39
  sampleRate: track.sampleRate,
40
- codecPrivate: track.codecPrivate,
40
+ codecPrivate: track.codecData?.data ?? null,
41
41
  timescale: track.timescale,
42
42
  });
43
- log_1.Log.verbose(logLevel, `Copying audio track ${track.trackId} as track ${addedTrack.trackNumber}. Timescale = ${track.timescale}, codec = ${track.codecWithoutConfig} (${track.codec}) `);
43
+ log_1.Log.verbose(logLevel, `Copying audio track ${track.trackId} as track ${addedTrack.trackNumber}. Timescale = ${track.timescale}, codec = ${track.codecEnum} (${track.codec}) `);
44
44
  return async (audioSample) => {
45
45
  await state.addSample({
46
46
  chunk: audioSample,
47
47
  trackNumber: addedTrack.trackNumber,
48
48
  isVideo: false,
49
- codecPrivate: track.codecPrivate,
49
+ codecPrivate: track.codecData?.data ?? null,
50
50
  });
51
51
  onMediaStateUpdate?.((prevState) => {
52
52
  return {
@@ -1,4 +1,4 @@
1
- import type { VideoTrack } from '@remotion/media-parser';
1
+ import type { MediaParserVideoTrack } from '@remotion/media-parser';
2
2
  import type { ConvertMediaOnVideoFrame } from './convert-media';
3
3
  import type { ConvertMediaVideoCodec } from './get-available-video-codecs';
4
4
  import type { ResizeOperation } from './resizing/mode';
@@ -7,7 +7,7 @@ export declare const onFrame: ({ frame: unrotatedFrame, onVideoFrame, videoEncod
7
7
  frame: VideoFrame;
8
8
  onVideoFrame: ConvertMediaOnVideoFrame | null;
9
9
  videoEncoder: WebCodecsVideoEncoder;
10
- track: VideoTrack;
10
+ track: MediaParserVideoTrack;
11
11
  outputCodec: ConvertMediaVideoCodec;
12
12
  rotation: number;
13
13
  resizeOperation: ResizeOperation | null;
@@ -1,4 +1,4 @@
1
- import type { LogLevel, MediaParserContainer, VideoTrack } from '@remotion/media-parser';
1
+ import type { MediaParserContainer, MediaParserLogLevel, MediaParserVideoTrack } from '@remotion/media-parser';
2
2
  import type { ConvertMediaContainer } from './get-available-containers';
3
3
  import type { ConvertMediaVideoCodec } from './get-available-video-codecs';
4
4
  import type { ResizeOperation } from './resizing/mode';
@@ -16,8 +16,8 @@ export type VideoOperation = {
16
16
  };
17
17
  export type ConvertMediaOnVideoTrackHandler = (options: {
18
18
  defaultVideoCodec: ConvertMediaVideoCodec | null;
19
- track: VideoTrack;
20
- logLevel: LogLevel;
19
+ track: MediaParserVideoTrack;
20
+ logLevel: MediaParserLogLevel;
21
21
  outputContainer: ConvertMediaContainer;
22
22
  rotate: number;
23
23
  resizeOperation: ResizeOperation | null;
@@ -1,4 +1,4 @@
1
- import type { LogLevel, OnVideoTrack } from '@remotion/media-parser';
1
+ import type { MediaParserLogLevel, MediaParserOnVideoTrack } from '@remotion/media-parser';
2
2
  import type { ConvertMediaOnVideoFrame } from './convert-media';
3
3
  import type { MediaFn } from './create/media-fn';
4
4
  import type { ProgressTracker } from './create/progress-tracker';
@@ -16,9 +16,9 @@ export declare const makeVideoTrackHandler: ({ state, onVideoFrame, onMediaState
16
16
  controller: WebCodecsController;
17
17
  defaultVideoCodec: ConvertMediaVideoCodec | null;
18
18
  onVideoTrack: ConvertMediaOnVideoTrackHandler | null;
19
- logLevel: LogLevel;
19
+ logLevel: MediaParserLogLevel;
20
20
  outputContainer: ConvertMediaContainer;
21
21
  rotate: number;
22
22
  progress: ProgressTracker;
23
23
  resizeOperation: ResizeOperation | null;
24
- }) => OnVideoTrack;
24
+ }) => MediaParserOnVideoTrack;
@@ -14,7 +14,7 @@ const video_decoder_config_1 = require("./video-decoder-config");
14
14
  const video_encoder_1 = require("./video-encoder");
15
15
  const video_encoder_config_1 = require("./video-encoder-config");
16
16
  const makeVideoTrackHandler = ({ state, onVideoFrame, onMediaStateUpdate, abortConversion, controller, defaultVideoCodec, onVideoTrack, logLevel, outputContainer, rotate, progress, resizeOperation, }) => async ({ track, container: inputContainer }) => {
17
- if (controller._internals.signal.aborted) {
17
+ if (controller._internals._mediaParserController._internals.signal.aborted) {
18
18
  throw new Error('Aborted');
19
19
  }
20
20
  const canCopyTrack = (0, can_copy_video_track_1.canCopyVideoTrack)({
@@ -44,11 +44,11 @@ const makeVideoTrackHandler = ({ state, onVideoFrame, onMediaStateUpdate, abortC
44
44
  log_1.Log.verbose(logLevel, `Copying video track with codec ${track.codec} and timescale ${track.timescale}`);
45
45
  const videoTrack = await state.addTrack({
46
46
  type: 'video',
47
- color: track.color,
47
+ color: track.advancedColor,
48
48
  width: track.codedWidth,
49
49
  height: track.codedHeight,
50
- codec: track.codecWithoutConfig,
51
- codecPrivate: track.codecPrivate,
50
+ codec: track.codecEnum,
51
+ codecPrivate: track.codecData?.data ?? null,
52
52
  timescale: track.timescale,
53
53
  });
54
54
  return async (sample) => {
@@ -56,7 +56,7 @@ const makeVideoTrackHandler = ({ state, onVideoFrame, onMediaStateUpdate, abortC
56
56
  chunk: sample,
57
57
  trackNumber: videoTrack.trackNumber,
58
58
  isVideo: true,
59
- codecPrivate: track.codecPrivate,
59
+ codecPrivate: track.codecData?.data ?? null,
60
60
  });
61
61
  onMediaStateUpdate?.((prevState) => {
62
62
  return {
@@ -96,7 +96,7 @@ const makeVideoTrackHandler = ({ state, onVideoFrame, onMediaStateUpdate, abortC
96
96
  }
97
97
  const { trackNumber } = await state.addTrack({
98
98
  type: 'video',
99
- color: track.color,
99
+ color: track.advancedColor,
100
100
  width: newWidth,
101
101
  height: newHeight,
102
102
  codec: videoOperation.videoCodec,
@@ -1,8 +1,8 @@
1
- import type { MediaParserVideoCodec } from '@remotion/media-parser';
1
+ import type { MediaParserDimensions, MediaParserVideoCodec } from '@remotion/media-parser';
2
2
  import type { ConvertMediaVideoCodec } from '../get-available-video-codecs';
3
- import type { Dimensions, ResizeOperation } from './mode';
3
+ import type { ResizeOperation } from './mode';
4
4
  export declare const calculateNewSizeAfterResizing: ({ dimensions, resizeOperation, videoCodec, }: {
5
- dimensions: Dimensions;
5
+ dimensions: MediaParserDimensions;
6
6
  resizeOperation: ResizeOperation | null;
7
7
  videoCodec: ConvertMediaVideoCodec | MediaParserVideoCodec;
8
- }) => Dimensions;
8
+ }) => MediaParserDimensions;
@@ -1,7 +1,3 @@
1
- export type Dimensions = {
2
- width: number;
3
- height: number;
4
- };
5
1
  export type ResizeOperation = {
6
2
  mode: 'width';
7
3
  width: number;
@@ -1,7 +1,7 @@
1
- import type { Dimensions, MediaParserVideoCodec } from '@remotion/media-parser';
1
+ import type { MediaParserDimensions, MediaParserVideoCodec } from '@remotion/media-parser';
2
2
  import type { ConvertMediaVideoCodec } from './get-available-video-codecs';
3
3
  import type { ResizeOperation } from './resizing/mode';
4
- export declare const calculateNewDimensionsFromRotate: ({ height, width, rotation, }: Dimensions & {
4
+ export declare const calculateNewDimensionsFromRotate: ({ height, width, rotation, }: MediaParserDimensions & {
5
5
  rotation: number;
6
6
  }) => {
7
7
  height: number;
@@ -13,4 +13,4 @@ export declare const calculateNewDimensionsFromRotateAndScale: ({ width, height,
13
13
  rotation: number;
14
14
  resizeOperation: ResizeOperation | null;
15
15
  videoCodec: ConvertMediaVideoCodec | MediaParserVideoCodec;
16
- }) => import("./resizing/mode").Dimensions;
16
+ }) => MediaParserDimensions;
@@ -5,7 +5,7 @@ const MAX_QUEUE_SIZE = 5;
5
5
  const videoFrameSorter = ({ onRelease, controller, }) => {
6
6
  const frames = [];
7
7
  const releaseFrame = async () => {
8
- await controller._internals.checkForAbortAndPause();
8
+ await controller._internals._mediaParserController._internals.checkForAbortAndPause();
9
9
  const frame = frames.shift();
10
10
  if (frame) {
11
11
  await onRelease(frame);
@@ -41,9 +41,9 @@ const videoFrameSorter = ({ onRelease, controller, }) => {
41
41
  while (frames.length > 0) {
42
42
  await releaseFrame();
43
43
  }
44
- controller._internals.signal.removeEventListener('abort', onAbort);
44
+ controller._internals._mediaParserController._internals.signal.removeEventListener('abort', onAbort);
45
45
  };
46
- controller._internals.signal.addEventListener('abort', onAbort);
46
+ controller._internals._mediaParserController._internals.signal.addEventListener('abort', onAbort);
47
47
  return {
48
48
  inputFrame,
49
49
  flush,
@@ -1,8 +1,8 @@
1
- import type { AudioOrVideoSample, LogLevel } from '@remotion/media-parser';
1
+ import type { MediaParserLogLevel, MediaParserVideoSample } from '@remotion/media-parser';
2
2
  import type { ProgressTracker } from './create/progress-tracker';
3
3
  import type { WebCodecsController } from './webcodecs-controller';
4
4
  export type WebCodecsVideoDecoder = {
5
- processSample: (videoSample: AudioOrVideoSample) => Promise<void>;
5
+ processSample: (videoSample: MediaParserVideoSample) => Promise<void>;
6
6
  waitForFinish: () => Promise<void>;
7
7
  close: () => void;
8
8
  flush: () => Promise<void>;
@@ -12,6 +12,6 @@ export declare const createVideoDecoder: ({ onFrame, onError, controller, config
12
12
  onError: (error: DOMException) => void;
13
13
  controller: WebCodecsController;
14
14
  config: VideoDecoderConfig;
15
- logLevel: LogLevel;
15
+ logLevel: MediaParserLogLevel;
16
16
  progress: ProgressTracker;
17
17
  }) => WebCodecsVideoDecoder;
@@ -15,12 +15,12 @@ const createVideoDecoder = ({ onFrame, onError, controller, config, logLevel, pr
15
15
  const cleanup = () => {
16
16
  frame.close();
17
17
  };
18
- controller._internals.signal.addEventListener('abort', cleanup, {
18
+ controller._internals._mediaParserController._internals.signal.addEventListener('abort', cleanup, {
19
19
  once: true,
20
20
  });
21
21
  outputQueue = outputQueue
22
22
  .then(() => {
23
- if (controller._internals.signal.aborted) {
23
+ if (controller._internals._mediaParserController._internals.signal.aborted) {
24
24
  return;
25
25
  }
26
26
  return onFrame(frame);
@@ -32,7 +32,7 @@ const createVideoDecoder = ({ onFrame, onError, controller, config, logLevel, pr
32
32
  onError(err);
33
33
  })
34
34
  .finally(() => {
35
- controller._internals.signal.removeEventListener('abort', cleanup);
35
+ controller._internals._mediaParserController._internals.signal.removeEventListener('abort', cleanup);
36
36
  cleanup();
37
37
  });
38
38
  return outputQueue;
@@ -53,8 +53,9 @@ const createVideoDecoder = ({ onFrame, onError, controller, config, logLevel, pr
53
53
  },
54
54
  });
55
55
  const close = () => {
56
+ controller._internals._mediaParserController._internals.signal.removeEventListener('abort',
56
57
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
57
- controller._internals.signal.removeEventListener('abort', onAbort);
58
+ onAbort);
58
59
  if (videoDecoder.state === 'closed') {
59
60
  return;
60
61
  }
@@ -63,7 +64,7 @@ const createVideoDecoder = ({ onFrame, onError, controller, config, logLevel, pr
63
64
  const onAbort = () => {
64
65
  close();
65
66
  };
66
- controller._internals.signal.addEventListener('abort', onAbort);
67
+ controller._internals._mediaParserController._internals.signal.addEventListener('abort', onAbort);
67
68
  videoDecoder.configure(config);
68
69
  const processSample = async (sample) => {
69
70
  if (videoDecoder.state === 'closed') {
@@ -1,4 +1,4 @@
1
- import { type LogLevel } from '@remotion/media-parser';
1
+ import { type MediaParserLogLevel } from '@remotion/media-parser';
2
2
  import type { ProgressTracker } from './create/progress-tracker';
3
3
  import type { ConvertMediaVideoCodec } from './get-available-video-codecs';
4
4
  import type { WebCodecsController } from './webcodecs-controller';
@@ -13,7 +13,7 @@ export declare const createVideoEncoder: ({ onChunk, onError, controller, config
13
13
  onError: (error: DOMException) => void;
14
14
  controller: WebCodecsController;
15
15
  config: VideoEncoderConfig;
16
- logLevel: LogLevel;
16
+ logLevel: MediaParserLogLevel;
17
17
  outputCodec: ConvertMediaVideoCodec;
18
18
  progress: ProgressTracker;
19
19
  }) => WebCodecsVideoEncoder;
@@ -6,7 +6,7 @@ const convert_to_correct_videoframe_1 = require("./convert-to-correct-videoframe
6
6
  const io_synchronizer_1 = require("./io-manager/io-synchronizer");
7
7
  const log_1 = require("./log");
8
8
  const createVideoEncoder = ({ onChunk, onError, controller, config, logLevel, outputCodec, progress, }) => {
9
- if (controller._internals.signal.aborted) {
9
+ if (controller._internals._mediaParserController._internals.signal.aborted) {
10
10
  throw new media_parser_1.MediaParserAbortError('Not creating video encoder, already aborted');
11
11
  }
12
12
  const ioSynchronizer = (0, io_synchronizer_1.makeIoSynchronizer)({
@@ -24,7 +24,8 @@ const createVideoEncoder = ({ onChunk, onError, controller, config, logLevel, ou
24
24
  ioSynchronizer.onOutput(timestamp);
25
25
  outputQueue = outputQueue
26
26
  .then(() => {
27
- if (controller._internals.signal.aborted) {
27
+ if (controller._internals._mediaParserController._internals.signal
28
+ .aborted) {
28
29
  return;
29
30
  }
30
31
  return onChunk(chunk, metadata ?? null);
@@ -39,8 +40,9 @@ const createVideoEncoder = ({ onChunk, onError, controller, config, logLevel, ou
39
40
  },
40
41
  });
41
42
  const close = () => {
43
+ controller._internals._mediaParserController._internals.signal.removeEventListener('abort',
42
44
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
43
- controller._internals.signal.removeEventListener('abort', onAbort);
45
+ onAbort);
44
46
  if (encoder.state === 'closed') {
45
47
  return;
46
48
  }
@@ -49,7 +51,7 @@ const createVideoEncoder = ({ onChunk, onError, controller, config, logLevel, ou
49
51
  const onAbort = () => {
50
52
  close();
51
53
  };
52
- controller._internals.signal.addEventListener('abort', onAbort);
54
+ controller._internals._mediaParserController._internals.signal.addEventListener('abort', onAbort);
53
55
  log_1.Log.verbose(logLevel, 'Configuring video encoder', config);
54
56
  encoder.configure(config);
55
57
  let framesProcessed = 0;
@@ -8,7 +8,7 @@ const getWaveAudioEncoder = ({ onChunk, controller, config, }) => {
8
8
  return Promise.resolve();
9
9
  },
10
10
  encodeFrame: (unconvertedAudioData) => {
11
- if (controller._internals.signal.aborted) {
11
+ if (controller._internals._mediaParserController._internals.signal.aborted) {
12
12
  return Promise.resolve();
13
13
  }
14
14
  const audioData = (0, convert_audiodata_1.convertAudioData)({
@@ -9,9 +9,7 @@ export type WebCodecsController = {
9
9
  * @deprecated Not public API
10
10
  */
11
11
  _internals: {
12
- signal: AbortSignal;
13
- checkForAbortAndPause: MediaParserController['_internals']['checkForAbortAndPause'];
12
+ _mediaParserController: MediaParserController;
14
13
  };
15
- _mediaParserController: MediaParserController;
16
14
  };
17
15
  export declare const webcodecsController: () => WebCodecsController;
@@ -10,8 +10,7 @@ const webcodecsController = () => {
10
10
  resume: controller.resume,
11
11
  addEventListener: controller.addEventListener,
12
12
  removeEventListener: controller.removeEventListener,
13
- _internals: controller._internals,
14
- _mediaParserController: controller,
13
+ _internals: { _mediaParserController: controller },
15
14
  };
16
15
  };
17
16
  exports.webcodecsController = webcodecsController;
@@ -1,2 +1,2 @@
1
- import type { CreateContent } from '@remotion/media-parser';
2
- export declare const createContent: CreateContent;
1
+ import type { MediaParserInternalTypes } from '@remotion/media-parser';
2
+ export declare const createContent: MediaParserInternalTypes['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,
@@ -36,9 +36,7 @@ const createContent = ({ filename, mimeType }) => {
36
36
  },
37
37
  getBlob() {
38
38
  const arr = new Uint8Array(buf);
39
- return Promise.resolve(
40
- // TODO: Unhardcode MIME type and file name
41
- new File([arr.slice()], filename, { type: mimeType }));
39
+ return Promise.resolve(new File([arr.slice()], filename, { type: mimeType }));
42
40
  },
43
41
  remove() {
44
42
  removed = true;
@@ -1,2 +1,2 @@
1
- import type { WriterInterface } from '@remotion/media-parser';
2
- export declare const bufferWriter: WriterInterface;
1
+ import type { MediaParserInternalTypes } from '@remotion/media-parser';
2
+ export declare const bufferWriter: MediaParserInternalTypes['WriterInterface'];
@@ -1,3 +1,3 @@
1
- import type { WriterInterface } from '@remotion/media-parser';
2
- export declare const webFsWriter: WriterInterface;
1
+ import type { MediaParserInternalTypes } from '@remotion/media-parser';
2
+ export declare const webFsWriter: MediaParserInternalTypes['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.297",
3
+ "version": "4.0.300",
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.297",
23
- "@remotion/licensing": "4.0.297"
22
+ "@remotion/media-parser": "4.0.300",
23
+ "@remotion/licensing": "4.0.300"
24
24
  },
25
25
  "peerDependencies": {},
26
26
  "devDependencies": {
@@ -28,8 +28,8 @@
28
28
  "playwright": "1.51.1",
29
29
  "@playwright/test": "1.51.1",
30
30
  "eslint": "9.19.0",
31
- "@remotion/example-videos": "4.0.297",
32
- "@remotion/eslint-config-internal": "4.0.297"
31
+ "@remotion/example-videos": "4.0.300",
32
+ "@remotion/eslint-config-internal": "4.0.300"
33
33
  },
34
34
  "keywords": [],
35
35
  "publishConfig": {