2
2
/// Worker APIs
3
3
/////////////////////////////
4
4
5
+ interface AacEncoderConfig {
6
+ format ?: AacBitstreamFormat ;
7
+ }
8
+
5
9
interface AddEventListenerOptions extends EventListenerOptions {
6
10
once ?: boolean ;
7
11
passive ?: boolean ;
@@ -47,6 +51,61 @@ interface AudioConfiguration {
47
51
spatialRendering ?: boolean ;
48
52
}
49
53
54
+ interface AudioDataCopyToOptions {
55
+ format ?: AudioSampleFormat ;
56
+ frameCount ?: number ;
57
+ frameOffset ?: number ;
58
+ planeIndex : number ;
59
+ }
60
+
61
+ interface AudioDataInit {
62
+ data : BufferSource ;
63
+ format : AudioSampleFormat ;
64
+ numberOfChannels : number ;
65
+ numberOfFrames : number ;
66
+ sampleRate : number ;
67
+ timestamp : number ;
68
+ transfer ?: ArrayBuffer [ ] ;
69
+ }
70
+
71
+ interface AudioDecoderConfig {
72
+ codec : string ;
73
+ description ?: BufferSource ;
74
+ numberOfChannels : number ;
75
+ sampleRate : number ;
76
+ }
77
+
78
+ interface AudioDecoderInit {
79
+ error : WebCodecsErrorCallback ;
80
+ output : AudioDataOutputCallback ;
81
+ }
82
+
83
+ interface AudioDecoderSupport {
84
+ config ?: AudioDecoderConfig ;
85
+ supported ?: boolean ;
86
+ }
87
+
88
+ interface AudioEncoderConfig {
89
+ aac ?: AacEncoderConfig ;
90
+ bitrate ?: number ;
91
+ bitrateMode ?: BitrateMode ;
92
+ codec : string ;
93
+ flac ?: FlacEncoderConfig ;
94
+ numberOfChannels : number ;
95
+ opus ?: OpusEncoderConfig ;
96
+ sampleRate : number ;
97
+ }
98
+
99
+ interface AudioEncoderInit {
100
+ error : WebCodecsErrorCallback ;
101
+ output : EncodedAudioChunkOutputCallback ;
102
+ }
103
+
104
+ interface AudioEncoderSupport {
105
+ config ?: AudioEncoderConfig ;
106
+ supported ?: boolean ;
107
+ }
108
+
50
109
interface AvcEncoderConfig {
51
110
format ?: AvcBitstreamFormat ;
52
111
}
@@ -163,6 +222,18 @@ interface EcdsaParams extends Algorithm {
163
222
hash : HashAlgorithmIdentifier ;
164
223
}
165
224
225
+ interface EncodedAudioChunkInit {
226
+ data : AllowSharedBufferSource ;
227
+ duration ?: number ;
228
+ timestamp : number ;
229
+ transfer ?: ArrayBuffer [ ] ;
230
+ type : EncodedAudioChunkType ;
231
+ }
232
+
233
+ interface EncodedAudioChunkMetadata {
234
+ decoderConfig ?: AudioDecoderConfig ;
235
+ }
236
+
166
237
interface EncodedVideoChunkInit {
167
238
data : AllowSharedBufferSource ;
168
239
duration ?: number ;
@@ -240,6 +311,11 @@ interface FileSystemRemoveOptions {
240
311
recursive ?: boolean ;
241
312
}
242
313
314
+ interface FlacEncoderConfig {
315
+ blockSize ?: number ;
316
+ compressLevel ?: number ;
317
+ }
318
+
243
319
interface FontFaceDescriptors {
244
320
ascentOverride ?: string ;
245
321
descentOverride ?: string ;
@@ -430,6 +506,17 @@ interface NotificationOptions {
430
506
tag ?: string ;
431
507
}
432
508
509
+ interface OpusEncoderConfig {
510
+ application ?: OpusApplication ;
511
+ complexity ?: number ;
512
+ format ?: OpusBitstreamFormat ;
513
+ frameDuration ?: number ;
514
+ packetlossperc ?: number ;
515
+ signal ?: OpusSignal ;
516
+ usedtx ?: boolean ;
517
+ useinbandfec ?: boolean ;
518
+ }
519
+
433
520
interface Pbkdf2Params extends Algorithm {
434
521
hash : HashAlgorithmIdentifier ;
435
522
iterations : number ;
@@ -870,6 +957,7 @@ interface WebTransportHash {
870
957
interface WebTransportOptions {
871
958
allowPooling ?: boolean ;
872
959
congestionControl ?: WebTransportCongestionControl ;
960
+ protocols ?: string [ ] ;
873
961
requireUnreliable ?: boolean ;
874
962
serverCertificateHashes ?: WebTransportHash [ ] ;
875
963
}
@@ -990,6 +1078,113 @@ interface AnimationFrameProvider {
990
1078
requestAnimationFrame ( callback : FrameRequestCallback ) : number ;
991
1079
}
992
1080
1081
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData) */
1082
+ interface AudioData {
1083
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/duration) */
1084
+ readonly duration : number ;
1085
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/format) */
1086
+ readonly format : AudioSampleFormat | null ;
1087
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfChannels) */
1088
+ readonly numberOfChannels : number ;
1089
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfFrames) */
1090
+ readonly numberOfFrames : number ;
1091
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/sampleRate) */
1092
+ readonly sampleRate : number ;
1093
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/timestamp) */
1094
+ readonly timestamp : number ;
1095
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/allocationSize) */
1096
+ allocationSize ( options : AudioDataCopyToOptions ) : number ;
1097
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/clone) */
1098
+ clone ( ) : AudioData ;
1099
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/close) */
1100
+ close ( ) : void ;
1101
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/copyTo) */
1102
+ copyTo ( destination : AllowSharedBufferSource , options : AudioDataCopyToOptions ) : void ;
1103
+ }
1104
+
1105
+ declare var AudioData : {
1106
+ prototype : AudioData ;
1107
+ new ( init : AudioDataInit ) : AudioData ;
1108
+ } ;
1109
+
1110
+ interface AudioDecoderEventMap {
1111
+ "dequeue" : Event ;
1112
+ }
1113
+
1114
+ /**
1115
+ * Available only in secure contexts.
1116
+ *
1117
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder)
1118
+ */
1119
+ interface AudioDecoder extends EventTarget {
1120
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decodeQueueSize) */
1121
+ readonly decodeQueueSize : number ;
1122
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/dequeue_event) */
1123
+ ondequeue : ( ( this : AudioDecoder , ev : Event ) => any ) | null ;
1124
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/state) */
1125
+ readonly state : CodecState ;
1126
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/close) */
1127
+ close ( ) : void ;
1128
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/configure) */
1129
+ configure ( config : AudioDecoderConfig ) : void ;
1130
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decode) */
1131
+ decode ( chunk : EncodedAudioChunk ) : void ;
1132
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/flush) */
1133
+ flush ( ) : Promise < void > ;
1134
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/reset) */
1135
+ reset ( ) : void ;
1136
+ addEventListener < K extends keyof AudioDecoderEventMap > ( type : K , listener : ( this : AudioDecoder , ev : AudioDecoderEventMap [ K ] ) => any , options ?: boolean | AddEventListenerOptions ) : void ;
1137
+ addEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | AddEventListenerOptions ) : void ;
1138
+ removeEventListener < K extends keyof AudioDecoderEventMap > ( type : K , listener : ( this : AudioDecoder , ev : AudioDecoderEventMap [ K ] ) => any , options ?: boolean | EventListenerOptions ) : void ;
1139
+ removeEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | EventListenerOptions ) : void ;
1140
+ }
1141
+
1142
+ declare var AudioDecoder : {
1143
+ prototype : AudioDecoder ;
1144
+ new ( init : AudioDecoderInit ) : AudioDecoder ;
1145
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/isConfigSupported_static) */
1146
+ isConfigSupported ( config : AudioDecoderConfig ) : Promise < AudioDecoderSupport > ;
1147
+ } ;
1148
+
1149
+ interface AudioEncoderEventMap {
1150
+ "dequeue" : Event ;
1151
+ }
1152
+
1153
+ /**
1154
+ * Available only in secure contexts.
1155
+ *
1156
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder)
1157
+ */
1158
+ interface AudioEncoder extends EventTarget {
1159
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encodeQueueSize) */
1160
+ readonly encodeQueueSize : number ;
1161
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/dequeue_event) */
1162
+ ondequeue : ( ( this : AudioEncoder , ev : Event ) => any ) | null ;
1163
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/state) */
1164
+ readonly state : CodecState ;
1165
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/close) */
1166
+ close ( ) : void ;
1167
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/configure) */
1168
+ configure ( config : AudioEncoderConfig ) : void ;
1169
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encode) */
1170
+ encode ( data : AudioData ) : void ;
1171
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/flush) */
1172
+ flush ( ) : Promise < void > ;
1173
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/reset) */
1174
+ reset ( ) : void ;
1175
+ addEventListener < K extends keyof AudioEncoderEventMap > ( type : K , listener : ( this : AudioEncoder , ev : AudioEncoderEventMap [ K ] ) => any , options ?: boolean | AddEventListenerOptions ) : void ;
1176
+ addEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | AddEventListenerOptions ) : void ;
1177
+ removeEventListener < K extends keyof AudioEncoderEventMap > ( type : K , listener : ( this : AudioEncoder , ev : AudioEncoderEventMap [ K ] ) => any , options ?: boolean | EventListenerOptions ) : void ;
1178
+ removeEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | EventListenerOptions ) : void ;
1179
+ }
1180
+
1181
+ declare var AudioEncoder : {
1182
+ prototype : AudioEncoder ;
1183
+ new ( init : AudioEncoderInit ) : AudioEncoder ;
1184
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/isConfigSupported_static) */
1185
+ isConfigSupported ( config : AudioEncoderConfig ) : Promise < AudioEncoderSupport > ;
1186
+ } ;
1187
+
993
1188
/**
994
1189
* 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
1190
*
@@ -2378,6 +2573,25 @@ interface EXT_texture_norm16 {
2378
2573
readonly RGBA16_SNORM_EXT : 0x8F9B ;
2379
2574
}
2380
2575
2576
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk) */
2577
+ interface EncodedAudioChunk {
2578
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/byteLength) */
2579
+ readonly byteLength : number ;
2580
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/duration) */
2581
+ readonly duration : number | null ;
2582
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/timestamp) */
2583
+ readonly timestamp : number ;
2584
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/type) */
2585
+ readonly type : EncodedAudioChunkType ;
2586
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/copyTo) */
2587
+ copyTo ( destination : AllowSharedBufferSource ) : void ;
2588
+ }
2589
+
2590
+ declare var EncodedAudioChunk : {
2591
+ prototype : EncodedAudioChunk ;
2592
+ new ( init : EncodedAudioChunkInit ) : EncodedAudioChunk ;
2593
+ } ;
2594
+
2381
2595
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk) */
2382
2596
interface EncodedVideoChunk {
2383
2597
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/byteLength) */
@@ -9113,6 +9327,14 @@ declare namespace WebAssembly {
9113
9327
function validate ( bytes : BufferSource ) : boolean ;
9114
9328
}
9115
9329
9330
+ interface AudioDataOutputCallback {
9331
+ ( output : AudioData ) : void ;
9332
+ }
9333
+
9334
+ interface EncodedAudioChunkOutputCallback {
9335
+ ( output : EncodedAudioChunk , metadata ?: EncodedAudioChunkMetadata ) : void ;
9336
+ }
9337
+
9116
9338
interface EncodedVideoChunkOutputCallback {
9117
9339
( chunk : EncodedVideoChunk , metadata ?: EncodedVideoChunkMetadata ) : void ;
9118
9340
}
@@ -9364,12 +9586,15 @@ type ReportList = Report[];
9364
9586
type RequestInfo = Request | string ;
9365
9587
type TexImageSource = ImageBitmap | ImageData | OffscreenCanvas | VideoFrame ;
9366
9588
type TimerHandler = string | Function ;
9367
- type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | MediaSourceHandle | ReadableStream | WritableStream | TransformStream | VideoFrame | ArrayBuffer ;
9589
+ type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | MediaSourceHandle | ReadableStream | WritableStream | TransformStream | AudioData | VideoFrame | ArrayBuffer ;
9368
9590
type Uint32List = Uint32Array | GLuint [ ] ;
9369
9591
type XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string ;
9592
+ type AacBitstreamFormat = "aac" | "adts" ;
9370
9593
type AlphaOption = "discard" | "keep" ;
9594
+ type AudioSampleFormat = "f32" | "f32-planar" | "s16" | "s16-planar" | "s32" | "s32-planar" | "u8" | "u8-planar" ;
9371
9595
type AvcBitstreamFormat = "annexb" | "avc" ;
9372
9596
type BinaryType = "arraybuffer" | "blob" ;
9597
+ type BitrateMode = "constant" | "variable" ;
9373
9598
type CSSMathOperator = "clamp" | "invert" | "max" | "min" | "negate" | "product" | "sum" ;
9374
9599
type CSSNumericBaseType = "angle" | "flex" | "frequency" | "length" | "percent" | "resolution" | "time" ;
9375
9600
type CanvasDirection = "inherit" | "ltr" | "rtl" ;
@@ -9388,6 +9613,7 @@ type ColorGamut = "p3" | "rec2020" | "srgb";
9388
9613
type ColorSpaceConversion = "default" | "none" ;
9389
9614
type CompressionFormat = "deflate" | "deflate-raw" | "gzip" ;
9390
9615
type DocumentVisibilityState = "hidden" | "visible" ;
9616
+ type EncodedAudioChunkType = "delta" | "key" ;
9391
9617
type EncodedVideoChunkType = "delta" | "key" ;
9392
9618
type EndingType = "native" | "transparent" ;
9393
9619
type FileSystemHandleKind = "directory" | "file" ;
@@ -9414,6 +9640,9 @@ type MediaEncodingType = "record" | "webrtc";
9414
9640
type NotificationDirection = "auto" | "ltr" | "rtl" ;
9415
9641
type NotificationPermission = "default" | "denied" | "granted" ;
9416
9642
type OffscreenRenderingContextId = "2d" | "bitmaprenderer" | "webgl" | "webgl2" | "webgpu" ;
9643
+ type OpusApplication = "audio" | "lowdelay" | "voip" ;
9644
+ type OpusBitstreamFormat = "ogg" | "opus" ;
9645
+ type OpusSignal = "auto" | "music" | "voice" ;
9417
9646
type PermissionName = "geolocation" | "midi" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock" | "storage-access" ;
9418
9647
type PermissionState = "denied" | "granted" | "prompt" ;
9419
9648
type PredefinedColorSpace = "display-p3" | "srgb" ;
0 commit comments