@@ -47,6 +47,59 @@ interface AudioConfiguration {
47
47
spatialRendering ?: boolean ;
48
48
}
49
49
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
+
50
103
interface AvcEncoderConfig {
51
104
format ?: AvcBitstreamFormat ;
52
105
}
@@ -163,6 +216,18 @@ interface EcdsaParams extends Algorithm {
163
216
hash : HashAlgorithmIdentifier ;
164
217
}
165
218
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
+
166
231
interface EncodedVideoChunkInit {
167
232
data : AllowSharedBufferSource ;
168
233
duration ?: number ;
@@ -430,6 +495,15 @@ interface NotificationOptions {
430
495
tag ?: string ;
431
496
}
432
497
498
+ interface OpusEncoderConfig {
499
+ complexity ?: number ;
500
+ format ?: OpusBitstreamFormat ;
501
+ frameDuration ?: number ;
502
+ packetlossperc ?: number ;
503
+ usedtx ?: boolean ;
504
+ useinbandfec ?: boolean ;
505
+ }
506
+
433
507
interface Pbkdf2Params extends Algorithm {
434
508
hash : HashAlgorithmIdentifier ;
435
509
iterations : number ;
@@ -750,6 +824,7 @@ interface VideoConfiguration {
750
824
colorGamut ?: ColorGamut ;
751
825
contentType : string ;
752
826
framerate : number ;
827
+ hasAlphaChannel ?: boolean ;
753
828
hdrMetadataType ?: HdrMetadataType ;
754
829
height : number ;
755
830
scalabilityMode ?: string ;
@@ -785,6 +860,7 @@ interface VideoEncoderConfig {
785
860
bitrate ?: number ;
786
861
bitrateMode ?: VideoEncoderBitrateMode ;
787
862
codec : string ;
863
+ contentHint ?: string ;
788
864
displayHeight ?: number ;
789
865
displayWidth ?: number ;
790
866
framerate ?: number ;
@@ -796,9 +872,14 @@ interface VideoEncoderConfig {
796
872
}
797
873
798
874
interface VideoEncoderEncodeOptions {
875
+ avc ?: VideoEncoderEncodeOptionsForAvc ;
799
876
keyFrame ?: boolean ;
800
877
}
801
878
879
+ interface VideoEncoderEncodeOptionsForAvc {
880
+ quantizer ?: number | null ;
881
+ }
882
+
802
883
interface VideoEncoderInit {
803
884
error : WebCodecsErrorCallback ;
804
885
output : EncodedVideoChunkOutputCallback ;
@@ -823,6 +904,8 @@ interface VideoFrameBufferInit {
823
904
}
824
905
825
906
interface VideoFrameCopyToOptions {
907
+ colorSpace ?: PredefinedColorSpace ;
908
+ format ?: VideoPixelFormat ;
826
909
layout ?: PlaneLayout [ ] ;
827
910
rect ?: DOMRectInit ;
828
911
}
@@ -990,6 +1073,113 @@ interface AnimationFrameProvider {
990
1073
requestAnimationFrame ( callback : FrameRequestCallback ) : number ;
991
1074
}
992
1075
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
+
993
1183
/**
994
1184
* 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.
995
1185
*
@@ -2378,6 +2568,25 @@ interface EXT_texture_norm16 {
2378
2568
readonly RGBA16_SNORM_EXT : 0x8F9B ;
2379
2569
}
2380
2570
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
+
2381
2590
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk) */
2382
2591
interface EncodedVideoChunk {
2383
2592
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/byteLength) */
@@ -9113,6 +9322,14 @@ declare namespace WebAssembly {
9113
9322
function validate ( bytes : BufferSource ) : boolean ;
9114
9323
}
9115
9324
9325
+ interface AudioDataOutputCallback {
9326
+ ( output : AudioData ) : void ;
9327
+ }
9328
+
9329
+ interface EncodedAudioChunkOutputCallback {
9330
+ ( output : EncodedAudioChunk , metadata ?: EncodedAudioChunkMetadata ) : void ;
9331
+ }
9332
+
9116
9333
interface EncodedVideoChunkOutputCallback {
9117
9334
( chunk : EncodedVideoChunk , metadata ?: EncodedVideoChunkMetadata ) : void ;
9118
9335
}
@@ -9364,12 +9581,14 @@ type ReportList = Report[];
9364
9581
type RequestInfo = Request | string ;
9365
9582
type TexImageSource = ImageBitmap | ImageData | OffscreenCanvas | VideoFrame ;
9366
9583
type 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 ;
9368
9585
type Uint32List = Uint32Array | GLuint [ ] ;
9369
9586
type XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string ;
9370
9587
type AlphaOption = "discard" | "keep" ;
9588
+ type AudioSampleFormat = "f32" | "f32-planar" | "s16" | "s16-planar" | "s32" | "s32-planar" | "u8" | "u8-planar" ;
9371
9589
type AvcBitstreamFormat = "annexb" | "avc" ;
9372
9590
type BinaryType = "arraybuffer" | "blob" ;
9591
+ type BitrateMode = "constant" | "variable" ;
9373
9592
type CSSMathOperator = "clamp" | "invert" | "max" | "min" | "negate" | "product" | "sum" ;
9374
9593
type CSSNumericBaseType = "angle" | "flex" | "frequency" | "length" | "percent" | "resolution" | "time" ;
9375
9594
type CanvasDirection = "inherit" | "ltr" | "rtl" ;
@@ -9388,6 +9607,7 @@ type ColorGamut = "p3" | "rec2020" | "srgb";
9388
9607
type ColorSpaceConversion = "default" | "none" ;
9389
9608
type CompressionFormat = "deflate" | "deflate-raw" | "gzip" ;
9390
9609
type DocumentVisibilityState = "hidden" | "visible" ;
9610
+ type EncodedAudioChunkType = "delta" | "key" ;
9391
9611
type EncodedVideoChunkType = "delta" | "key" ;
9392
9612
type EndingType = "native" | "transparent" ;
9393
9613
type FileSystemHandleKind = "directory" | "file" ;
@@ -9414,6 +9634,7 @@ type MediaEncodingType = "record" | "webrtc";
9414
9634
type NotificationDirection = "auto" | "ltr" | "rtl" ;
9415
9635
type NotificationPermission = "default" | "denied" | "granted" ;
9416
9636
type OffscreenRenderingContextId = "2d" | "bitmaprenderer" | "webgl" | "webgl2" | "webgpu" ;
9637
+ type OpusBitstreamFormat = "ogg" | "opus" ;
9417
9638
type PermissionName = "geolocation" | "midi" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock" | "storage-access" ;
9418
9639
type PermissionState = "denied" | "granted" | "prompt" ;
9419
9640
type PredefinedColorSpace = "display-p3" | "srgb" ;
0 commit comments