@@ -47,6 +47,59 @@ interface AudioConfiguration {
4747 spatialRendering ?: boolean ;
4848}
4949
50+ interface AudioDataCopyToOptions {
51+ format ?: AudioSampleFormat ;
52+ frameCount ?: number ;
53+ frameOffset ?: number ;
54+ planeIndex : number ;
55+ }
56+
57+ interface AudioDataInit {
58+ data : BufferSource ;
59+ format : AudioSampleFormat ;
60+ numberOfChannels : number ;
61+ numberOfFrames : number ;
62+ sampleRate : number ;
63+ timestamp : number ;
64+ transfer ?: ArrayBuffer [ ] ;
65+ }
66+
67+ interface AudioDecoderConfig {
68+ codec : string ;
69+ description ?: BufferSource ;
70+ numberOfChannels : number ;
71+ sampleRate : number ;
72+ }
73+
74+ interface AudioDecoderInit {
75+ error : WebCodecsErrorCallback ;
76+ output : AudioDataOutputCallback ;
77+ }
78+
79+ interface AudioDecoderSupport {
80+ config ?: AudioDecoderConfig ;
81+ supported ?: boolean ;
82+ }
83+
84+ interface AudioEncoderConfig {
85+ bitrate ?: number ;
86+ bitrateMode ?: BitrateMode ;
87+ codec : string ;
88+ numberOfChannels : number ;
89+ opus ?: OpusEncoderConfig ;
90+ sampleRate : number ;
91+ }
92+
93+ interface AudioEncoderInit {
94+ error : WebCodecsErrorCallback ;
95+ output : EncodedAudioChunkOutputCallback ;
96+ }
97+
98+ interface AudioEncoderSupport {
99+ config ?: AudioEncoderConfig ;
100+ supported ?: boolean ;
101+ }
102+
50103interface AvcEncoderConfig {
51104 format ?: AvcBitstreamFormat ;
52105}
@@ -163,6 +216,18 @@ interface EcdsaParams extends Algorithm {
163216 hash : HashAlgorithmIdentifier ;
164217}
165218
219+ interface EncodedAudioChunkInit {
220+ data : AllowSharedBufferSource ;
221+ duration ?: number ;
222+ timestamp : number ;
223+ transfer ?: ArrayBuffer [ ] ;
224+ type : EncodedAudioChunkType ;
225+ }
226+
227+ interface EncodedAudioChunkMetadata {
228+ decoderConfig ?: AudioDecoderConfig ;
229+ }
230+
166231interface EncodedVideoChunkInit {
167232 data : AllowSharedBufferSource ;
168233 duration ?: number ;
@@ -430,6 +495,15 @@ interface NotificationOptions {
430495 tag ?: string ;
431496}
432497
498+ interface OpusEncoderConfig {
499+ complexity ?: number ;
500+ format ?: OpusBitstreamFormat ;
501+ frameDuration ?: number ;
502+ packetlossperc ?: number ;
503+ usedtx ?: boolean ;
504+ useinbandfec ?: boolean ;
505+ }
506+
433507interface Pbkdf2Params extends Algorithm {
434508 hash : HashAlgorithmIdentifier ;
435509 iterations : number ;
@@ -750,6 +824,7 @@ interface VideoConfiguration {
750824 colorGamut ?: ColorGamut ;
751825 contentType : string ;
752826 framerate : number ;
827+ hasAlphaChannel ?: boolean ;
753828 hdrMetadataType ?: HdrMetadataType ;
754829 height : number ;
755830 scalabilityMode ?: string ;
@@ -785,6 +860,7 @@ interface VideoEncoderConfig {
785860 bitrate ?: number ;
786861 bitrateMode ?: VideoEncoderBitrateMode ;
787862 codec : string ;
863+ contentHint ?: string ;
788864 displayHeight ?: number ;
789865 displayWidth ?: number ;
790866 framerate ?: number ;
@@ -796,9 +872,14 @@ interface VideoEncoderConfig {
796872}
797873
798874interface VideoEncoderEncodeOptions {
875+ avc ?: VideoEncoderEncodeOptionsForAvc ;
799876 keyFrame ?: boolean ;
800877}
801878
879+ interface VideoEncoderEncodeOptionsForAvc {
880+ quantizer ?: number | null ;
881+ }
882+
802883interface VideoEncoderInit {
803884 error : WebCodecsErrorCallback ;
804885 output : EncodedVideoChunkOutputCallback ;
@@ -823,6 +904,8 @@ interface VideoFrameBufferInit {
823904}
824905
825906interface VideoFrameCopyToOptions {
907+ colorSpace ?: PredefinedColorSpace ;
908+ format ?: VideoPixelFormat ;
826909 layout ?: PlaneLayout [ ] ;
827910 rect ?: DOMRectInit ;
828911}
@@ -990,6 +1073,113 @@ interface AnimationFrameProvider {
9901073 requestAnimationFrame ( callback : FrameRequestCallback ) : number ;
9911074}
9921075
1076+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData) */
1077+ interface AudioData {
1078+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/duration) */
1079+ readonly duration : number ;
1080+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/format) */
1081+ readonly format : AudioSampleFormat | null ;
1082+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfChannels) */
1083+ readonly numberOfChannels : number ;
1084+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfFrames) */
1085+ readonly numberOfFrames : number ;
1086+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/sampleRate) */
1087+ readonly sampleRate : number ;
1088+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/timestamp) */
1089+ readonly timestamp : number ;
1090+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/allocationSize) */
1091+ allocationSize ( options : AudioDataCopyToOptions ) : number ;
1092+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/clone) */
1093+ clone ( ) : AudioData ;
1094+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/close) */
1095+ close ( ) : void ;
1096+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/copyTo) */
1097+ copyTo ( destination : AllowSharedBufferSource , options : AudioDataCopyToOptions ) : void ;
1098+ }
1099+
1100+ declare var AudioData : {
1101+ prototype : AudioData ;
1102+ new ( init : AudioDataInit ) : AudioData ;
1103+ } ;
1104+
1105+ interface AudioDecoderEventMap {
1106+ "dequeue" : Event ;
1107+ }
1108+
1109+ /**
1110+ * Available only in secure contexts.
1111+ *
1112+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder)
1113+ */
1114+ interface AudioDecoder extends EventTarget {
1115+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decodeQueueSize) */
1116+ readonly decodeQueueSize : number ;
1117+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/dequeue_event) */
1118+ ondequeue : ( ( this : AudioDecoder , ev : Event ) => any ) | null ;
1119+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/state) */
1120+ readonly state : CodecState ;
1121+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/close) */
1122+ close ( ) : void ;
1123+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/configure) */
1124+ configure ( config : AudioDecoderConfig ) : void ;
1125+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decode) */
1126+ decode ( chunk : EncodedAudioChunk ) : void ;
1127+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/flush) */
1128+ flush ( ) : Promise < void > ;
1129+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/reset) */
1130+ reset ( ) : void ;
1131+ addEventListener < K extends keyof AudioDecoderEventMap > ( type : K , listener : ( this : AudioDecoder , ev : AudioDecoderEventMap [ K ] ) => any , options ?: boolean | AddEventListenerOptions ) : void ;
1132+ addEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | AddEventListenerOptions ) : void ;
1133+ removeEventListener < K extends keyof AudioDecoderEventMap > ( type : K , listener : ( this : AudioDecoder , ev : AudioDecoderEventMap [ K ] ) => any , options ?: boolean | EventListenerOptions ) : void ;
1134+ removeEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | EventListenerOptions ) : void ;
1135+ }
1136+
1137+ declare var AudioDecoder : {
1138+ prototype : AudioDecoder ;
1139+ new ( init : AudioDecoderInit ) : AudioDecoder ;
1140+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/isConfigSupported_static) */
1141+ isConfigSupported ( config : AudioDecoderConfig ) : Promise < AudioDecoderSupport > ;
1142+ } ;
1143+
1144+ interface AudioEncoderEventMap {
1145+ "dequeue" : Event ;
1146+ }
1147+
1148+ /**
1149+ * Available only in secure contexts.
1150+ *
1151+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder)
1152+ */
1153+ interface AudioEncoder extends EventTarget {
1154+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encodeQueueSize) */
1155+ readonly encodeQueueSize : number ;
1156+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/dequeue_event) */
1157+ ondequeue : ( ( this : AudioEncoder , ev : Event ) => any ) | null ;
1158+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/state) */
1159+ readonly state : CodecState ;
1160+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/close) */
1161+ close ( ) : void ;
1162+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/configure) */
1163+ configure ( config : AudioEncoderConfig ) : void ;
1164+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encode) */
1165+ encode ( data : AudioData ) : void ;
1166+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/flush) */
1167+ flush ( ) : Promise < void > ;
1168+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/reset) */
1169+ reset ( ) : void ;
1170+ addEventListener < K extends keyof AudioEncoderEventMap > ( type : K , listener : ( this : AudioEncoder , ev : AudioEncoderEventMap [ K ] ) => any , options ?: boolean | AddEventListenerOptions ) : void ;
1171+ addEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | AddEventListenerOptions ) : void ;
1172+ removeEventListener < K extends keyof AudioEncoderEventMap > ( type : K , listener : ( this : AudioEncoder , ev : AudioEncoderEventMap [ K ] ) => any , options ?: boolean | EventListenerOptions ) : void ;
1173+ removeEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | EventListenerOptions ) : void ;
1174+ }
1175+
1176+ declare var AudioEncoder : {
1177+ prototype : AudioEncoder ;
1178+ new ( init : AudioEncoderInit ) : AudioEncoder ;
1179+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/isConfigSupported_static) */
1180+ isConfigSupported ( config : AudioEncoderConfig ) : Promise < AudioEncoderSupport > ;
1181+ } ;
1182+
9931183/**
9941184 * A file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user's system.
9951185 *
@@ -2378,6 +2568,25 @@ interface EXT_texture_norm16 {
23782568 readonly RGBA16_SNORM_EXT : 0x8F9B ;
23792569}
23802570
2571+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk) */
2572+ interface EncodedAudioChunk {
2573+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/byteLength) */
2574+ readonly byteLength : number ;
2575+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/duration) */
2576+ readonly duration : number | null ;
2577+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/timestamp) */
2578+ readonly timestamp : number ;
2579+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/type) */
2580+ readonly type : EncodedAudioChunkType ;
2581+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/copyTo) */
2582+ copyTo ( destination : AllowSharedBufferSource ) : void ;
2583+ }
2584+
2585+ declare var EncodedAudioChunk : {
2586+ prototype : EncodedAudioChunk ;
2587+ new ( init : EncodedAudioChunkInit ) : EncodedAudioChunk ;
2588+ } ;
2589+
23812590/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk) */
23822591interface EncodedVideoChunk {
23832592 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/byteLength) */
@@ -9113,6 +9322,14 @@ declare namespace WebAssembly {
91139322 function validate ( bytes : BufferSource ) : boolean ;
91149323}
91159324
9325+ interface AudioDataOutputCallback {
9326+ ( output : AudioData ) : void ;
9327+ }
9328+
9329+ interface EncodedAudioChunkOutputCallback {
9330+ ( output : EncodedAudioChunk , metadata ?: EncodedAudioChunkMetadata ) : void ;
9331+ }
9332+
91169333interface EncodedVideoChunkOutputCallback {
91179334 ( chunk : EncodedVideoChunk , metadata ?: EncodedVideoChunkMetadata ) : void ;
91189335}
@@ -9364,12 +9581,14 @@ type ReportList = Report[];
93649581type RequestInfo = Request | string ;
93659582type TexImageSource = ImageBitmap | ImageData | OffscreenCanvas | VideoFrame ;
93669583type TimerHandler = string | Function ;
9367- type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | MediaSourceHandle | ReadableStream | WritableStream | TransformStream | VideoFrame | ArrayBuffer ;
9584+ type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | MediaSourceHandle | ReadableStream | WritableStream | TransformStream | AudioData | VideoFrame | ArrayBuffer ;
93689585type Uint32List = Uint32Array | GLuint [ ] ;
93699586type XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string ;
93709587type AlphaOption = "discard" | "keep" ;
9588+ type AudioSampleFormat = "f32" | "f32-planar" | "s16" | "s16-planar" | "s32" | "s32-planar" | "u8" | "u8-planar" ;
93719589type AvcBitstreamFormat = "annexb" | "avc" ;
93729590type BinaryType = "arraybuffer" | "blob" ;
9591+ type BitrateMode = "constant" | "variable" ;
93739592type CSSMathOperator = "clamp" | "invert" | "max" | "min" | "negate" | "product" | "sum" ;
93749593type CSSNumericBaseType = "angle" | "flex" | "frequency" | "length" | "percent" | "resolution" | "time" ;
93759594type CanvasDirection = "inherit" | "ltr" | "rtl" ;
@@ -9388,6 +9607,7 @@ type ColorGamut = "p3" | "rec2020" | "srgb";
93889607type ColorSpaceConversion = "default" | "none" ;
93899608type CompressionFormat = "deflate" | "deflate-raw" | "gzip" ;
93909609type DocumentVisibilityState = "hidden" | "visible" ;
9610+ type EncodedAudioChunkType = "delta" | "key" ;
93919611type EncodedVideoChunkType = "delta" | "key" ;
93929612type EndingType = "native" | "transparent" ;
93939613type FileSystemHandleKind = "directory" | "file" ;
@@ -9414,6 +9634,7 @@ type MediaEncodingType = "record" | "webrtc";
94149634type NotificationDirection = "auto" | "ltr" | "rtl" ;
94159635type NotificationPermission = "default" | "denied" | "granted" ;
94169636type OffscreenRenderingContextId = "2d" | "bitmaprenderer" | "webgl" | "webgl2" | "webgpu" ;
9637+ type OpusBitstreamFormat = "ogg" | "opus" ;
94179638type PermissionName = "geolocation" | "midi" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock" | "storage-access" ;
94189639type PermissionState = "denied" | "granted" | "prompt" ;
94199640type PredefinedColorSpace = "display-p3" | "srgb" ;
0 commit comments