From c95058e659d8591858c7325299936b920b7d4367 Mon Sep 17 00:00:00 2001 From: Vanilagy <1696106+Vanilagy@users.noreply.github.com> Date: Sat, 5 Apr 2025 15:16:48 +0200 Subject: [PATCH] Add onEncoderConfig --- dev/convert.html | 2 +- eslint.config.mjs | 1 + src/media-source.ts | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dev/convert.html b/dev/convert.html index 9518045..932f192 100644 --- a/dev/convert.html +++ b/dev/convert.html @@ -21,7 +21,7 @@ chunked: true, chunkSize: 2**20 }); - const outputFormat = new Metamuxer.OggOutputFormat({ + const outputFormat = new Metamuxer.WebMOutputFormat({ //streamable: true //fastStart: 'fragmented' }); diff --git a/eslint.config.mjs b/eslint.config.mjs index 8f8d66d..413e4de 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -39,6 +39,7 @@ export default tseslint.config( 'build.mjs', 'append-namespace.mjs', 'eslint.config.mjs', + 'docs/.vitepress/cache', ] } ); diff --git a/src/media-source.ts b/src/media-source.ts index fbd600e..938d0f9 100644 --- a/src/media-source.ts +++ b/src/media-source.ts @@ -190,6 +190,8 @@ export type VideoEncodingConfig = { onEncodedPacket?: (packet: EncodedPacket, meta: EncodedVideoChunkMetadata | undefined) => unknown; /** Called when an error occurs during encoding. */ onEncodingError?: (error: Error) => unknown; + /** Called when the internal encoder config, as used by the WebCodecs API, is created. */ + onEncoderConfig?: (config: VideoEncoderConfig) => unknown; }; const validateVideoEncodingConfig = (config: VideoEncodingConfig) => { @@ -337,6 +339,7 @@ class VideoEncoderWrapper { latencyMode: this.encodingConfig.latencyMode, ...getVideoEncoderConfigExtension(this.encodingConfig.codec), }; + this.encodingConfig.onEncoderConfig?.(encoderConfig); const MatchingCustomEncoder = customVideoEncoders.find(x => x.supports( this.encodingConfig.codec, @@ -634,6 +637,8 @@ export type AudioEncodingConfig = { onEncodedPacket?: (packet: EncodedPacket, meta: EncodedAudioChunkMetadata | undefined) => unknown; /** Called when an error occurs during encoding. */ onEncodingError?: (error: Error) => unknown; + /** Called when the internal encoder config, as used by the WebCodecs API, is created. */ + onEncoderConfig?: (config: AudioEncoderConfig) => unknown; }; const validateAudioEncodingConfig = (config: AudioEncodingConfig) => { @@ -842,6 +847,7 @@ class AudioEncoderWrapper { bitrate, ...getAudioEncoderConfigExtension(this.encodingConfig.codec), }; + this.encodingConfig.onEncoderConfig?.(encoderConfig); const MatchingCustomEncoder = customAudioEncoders.find(x => x.supports( this.encodingConfig.codec,