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 ;
@@ -990,6 +1077,113 @@ interface AnimationFrameProvider {
990
1077
requestAnimationFrame ( callback : FrameRequestCallback ) : number ;
991
1078
}
992
1079
1080
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData) */
1081
+ interface AudioData {
1082
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/duration) */
1083
+ readonly duration : number ;
1084
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/format) */
1085
+ readonly format : AudioSampleFormat | null ;
1086
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfChannels) */
1087
+ readonly numberOfChannels : number ;
1088
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfFrames) */
1089
+ readonly numberOfFrames : number ;
1090
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/sampleRate) */
1091
+ readonly sampleRate : number ;
1092
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/timestamp) */
1093
+ readonly timestamp : number ;
1094
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/allocationSize) */
1095
+ allocationSize ( options : AudioDataCopyToOptions ) : number ;
1096
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/clone) */
1097
+ clone ( ) : AudioData ;
1098
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/close) */
1099
+ close ( ) : void ;
1100
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/copyTo) */
1101
+ copyTo ( destination : AllowSharedBufferSource , options : AudioDataCopyToOptions ) : void ;
1102
+ }
1103
+
1104
+ declare var AudioData : {
1105
+ prototype : AudioData ;
1106
+ new ( init : AudioDataInit ) : AudioData ;
1107
+ } ;
1108
+
1109
+ interface AudioDecoderEventMap {
1110
+ "dequeue" : Event ;
1111
+ }
1112
+
1113
+ /**
1114
+ * Available only in secure contexts.
1115
+ *
1116
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder)
1117
+ */
1118
+ interface AudioDecoder extends EventTarget {
1119
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decodeQueueSize) */
1120
+ readonly decodeQueueSize : number ;
1121
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/dequeue_event) */
1122
+ ondequeue : ( ( this : AudioDecoder , ev : Event ) => any ) | null ;
1123
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/state) */
1124
+ readonly state : CodecState ;
1125
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/close) */
1126
+ close ( ) : void ;
1127
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/configure) */
1128
+ configure ( config : AudioDecoderConfig ) : void ;
1129
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decode) */
1130
+ decode ( chunk : EncodedAudioChunk ) : void ;
1131
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/flush) */
1132
+ flush ( ) : Promise < void > ;
1133
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/reset) */
1134
+ reset ( ) : void ;
1135
+ addEventListener < K extends keyof AudioDecoderEventMap > ( type : K , listener : ( this : AudioDecoder , ev : AudioDecoderEventMap [ K ] ) => any , options ?: boolean | AddEventListenerOptions ) : void ;
1136
+ addEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | AddEventListenerOptions ) : void ;
1137
+ removeEventListener < K extends keyof AudioDecoderEventMap > ( type : K , listener : ( this : AudioDecoder , ev : AudioDecoderEventMap [ K ] ) => any , options ?: boolean | EventListenerOptions ) : void ;
1138
+ removeEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | EventListenerOptions ) : void ;
1139
+ }
1140
+
1141
+ declare var AudioDecoder : {
1142
+ prototype : AudioDecoder ;
1143
+ new ( init : AudioDecoderInit ) : AudioDecoder ;
1144
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/isConfigSupported_static) */
1145
+ isConfigSupported ( config : AudioDecoderConfig ) : Promise < AudioDecoderSupport > ;
1146
+ } ;
1147
+
1148
+ interface AudioEncoderEventMap {
1149
+ "dequeue" : Event ;
1150
+ }
1151
+
1152
+ /**
1153
+ * Available only in secure contexts.
1154
+ *
1155
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder)
1156
+ */
1157
+ interface AudioEncoder extends EventTarget {
1158
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encodeQueueSize) */
1159
+ readonly encodeQueueSize : number ;
1160
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/dequeue_event) */
1161
+ ondequeue : ( ( this : AudioEncoder , ev : Event ) => any ) | null ;
1162
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/state) */
1163
+ readonly state : CodecState ;
1164
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/close) */
1165
+ close ( ) : void ;
1166
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/configure) */
1167
+ configure ( config : AudioEncoderConfig ) : void ;
1168
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encode) */
1169
+ encode ( data : AudioData ) : void ;
1170
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/flush) */
1171
+ flush ( ) : Promise < void > ;
1172
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/reset) */
1173
+ reset ( ) : void ;
1174
+ addEventListener < K extends keyof AudioEncoderEventMap > ( type : K , listener : ( this : AudioEncoder , ev : AudioEncoderEventMap [ K ] ) => any , options ?: boolean | AddEventListenerOptions ) : void ;
1175
+ addEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | AddEventListenerOptions ) : void ;
1176
+ removeEventListener < K extends keyof AudioEncoderEventMap > ( type : K , listener : ( this : AudioEncoder , ev : AudioEncoderEventMap [ K ] ) => any , options ?: boolean | EventListenerOptions ) : void ;
1177
+ removeEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | EventListenerOptions ) : void ;
1178
+ }
1179
+
1180
+ declare var AudioEncoder : {
1181
+ prototype : AudioEncoder ;
1182
+ new ( init : AudioEncoderInit ) : AudioEncoder ;
1183
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/isConfigSupported_static) */
1184
+ isConfigSupported ( config : AudioEncoderConfig ) : Promise < AudioEncoderSupport > ;
1185
+ } ;
1186
+
993
1187
/**
994
1188
* 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
1189
*
@@ -2378,6 +2572,25 @@ interface EXT_texture_norm16 {
2378
2572
readonly RGBA16_SNORM_EXT : 0x8F9B ;
2379
2573
}
2380
2574
2575
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk) */
2576
+ interface EncodedAudioChunk {
2577
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/byteLength) */
2578
+ readonly byteLength : number ;
2579
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/duration) */
2580
+ readonly duration : number | null ;
2581
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/timestamp) */
2582
+ readonly timestamp : number ;
2583
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/type) */
2584
+ readonly type : EncodedAudioChunkType ;
2585
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/copyTo) */
2586
+ copyTo ( destination : AllowSharedBufferSource ) : void ;
2587
+ }
2588
+
2589
+ declare var EncodedAudioChunk : {
2590
+ prototype : EncodedAudioChunk ;
2591
+ new ( init : EncodedAudioChunkInit ) : EncodedAudioChunk ;
2592
+ } ;
2593
+
2381
2594
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk) */
2382
2595
interface EncodedVideoChunk {
2383
2596
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/byteLength) */
@@ -9113,6 +9326,14 @@ declare namespace WebAssembly {
9113
9326
function validate ( bytes : BufferSource ) : boolean ;
9114
9327
}
9115
9328
9329
+ interface AudioDataOutputCallback {
9330
+ ( output : AudioData ) : void ;
9331
+ }
9332
+
9333
+ interface EncodedAudioChunkOutputCallback {
9334
+ ( output : EncodedAudioChunk , metadata ?: EncodedAudioChunkMetadata ) : void ;
9335
+ }
9336
+
9116
9337
interface EncodedVideoChunkOutputCallback {
9117
9338
( chunk : EncodedVideoChunk , metadata ?: EncodedVideoChunkMetadata ) : void ;
9118
9339
}
@@ -9364,12 +9585,15 @@ type ReportList = Report[];
9364
9585
type RequestInfo = Request | string ;
9365
9586
type TexImageSource = ImageBitmap | ImageData | OffscreenCanvas | VideoFrame ;
9366
9587
type TimerHandler = string | Function ;
9367
- type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | MediaSourceHandle | ReadableStream | WritableStream | TransformStream | VideoFrame | ArrayBuffer ;
9588
+ type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | MediaSourceHandle | ReadableStream | WritableStream | TransformStream | AudioData | VideoFrame | ArrayBuffer ;
9368
9589
type Uint32List = Uint32Array | GLuint [ ] ;
9369
9590
type XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string ;
9591
+ type AacBitstreamFormat = "aac" | "adts" ;
9370
9592
type AlphaOption = "discard" | "keep" ;
9593
+ type AudioSampleFormat = "f32" | "f32-planar" | "s16" | "s16-planar" | "s32" | "s32-planar" | "u8" | "u8-planar" ;
9371
9594
type AvcBitstreamFormat = "annexb" | "avc" ;
9372
9595
type BinaryType = "arraybuffer" | "blob" ;
9596
+ type BitrateMode = "constant" | "variable" ;
9373
9597
type CSSMathOperator = "clamp" | "invert" | "max" | "min" | "negate" | "product" | "sum" ;
9374
9598
type CSSNumericBaseType = "angle" | "flex" | "frequency" | "length" | "percent" | "resolution" | "time" ;
9375
9599
type CanvasDirection = "inherit" | "ltr" | "rtl" ;
@@ -9388,6 +9612,7 @@ type ColorGamut = "p3" | "rec2020" | "srgb";
9388
9612
type ColorSpaceConversion = "default" | "none" ;
9389
9613
type CompressionFormat = "deflate" | "deflate-raw" | "gzip" ;
9390
9614
type DocumentVisibilityState = "hidden" | "visible" ;
9615
+ type EncodedAudioChunkType = "delta" | "key" ;
9391
9616
type EncodedVideoChunkType = "delta" | "key" ;
9392
9617
type EndingType = "native" | "transparent" ;
9393
9618
type FileSystemHandleKind = "directory" | "file" ;
@@ -9414,6 +9639,9 @@ type MediaEncodingType = "record" | "webrtc";
9414
9639
type NotificationDirection = "auto" | "ltr" | "rtl" ;
9415
9640
type NotificationPermission = "default" | "denied" | "granted" ;
9416
9641
type OffscreenRenderingContextId = "2d" | "bitmaprenderer" | "webgl" | "webgl2" | "webgpu" ;
9642
+ type OpusApplication = "audio" | "lowdelay" | "voip" ;
9643
+ type OpusBitstreamFormat = "ogg" | "opus" ;
9644
+ type OpusSignal = "auto" | "music" | "voice" ;
9417
9645
type PermissionName = "geolocation" | "midi" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock" | "storage-access" ;
9418
9646
type PermissionState = "denied" | "granted" | "prompt" ;
9419
9647
type PredefinedColorSpace = "display-p3" | "srgb" ;
0 commit comments