Skip to content

Commit c42e918

Browse files
committed
add Media Capture and Streams types
1 parent 54cad7d commit c42e918

File tree

5 files changed

+391
-83
lines changed

5 files changed

+391
-83
lines changed

baselines/dom.generated.d.ts

Lines changed: 93 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ interface ConstrainDoubleRange extends DoubleRange {
236236
ideal?: number;
237237
}
238238

239-
interface ConstrainLongRange extends LongRange {
239+
interface ConstrainULongRange extends ULongRange {
240240
exact?: number;
241241
ideal?: number;
242242
}
@@ -606,11 +606,6 @@ interface KeyframeEffectOptions extends EffectTiming {
606606
iterationComposite?: IterationCompositeOperation;
607607
}
608608

609-
interface LongRange {
610-
max?: number;
611-
min?: number;
612-
}
613-
614609
interface MediaElementAudioSourceOptions {
615610
mediaElement: HTMLMediaElement;
616611
}
@@ -668,39 +663,45 @@ interface MediaStreamTrackAudioSourceOptions {
668663
}
669664

670665
interface MediaStreamTrackEventInit extends EventInit {
671-
track?: MediaStreamTrack | null;
666+
track: MediaStreamTrack;
672667
}
673668

674669
interface MediaTrackCapabilities {
675-
aspectRatio?: number | DoubleRange;
670+
aspectRatio?: DoubleRange;
671+
autoGainControl?: boolean[];
672+
channelCount?: ULongRange;
676673
deviceId?: string;
677674
echoCancellation?: boolean[];
678-
facingMode?: string;
679-
frameRate?: number | DoubleRange;
675+
facingMode?: string[];
676+
frameRate?: DoubleRange;
680677
groupId?: string;
681-
height?: number | LongRange;
682-
sampleRate?: number | LongRange;
683-
sampleSize?: number | LongRange;
684-
volume?: number | DoubleRange;
685-
width?: number | LongRange;
678+
height?: ULongRange;
679+
latency?: DoubleRange;
680+
noiseSuppression?: boolean[];
681+
resizeMode?: string[];
682+
sampleRate?: ULongRange;
683+
sampleSize?: ULongRange;
684+
volume?: DoubleRange;
685+
width?: ULongRange;
686686
}
687687

688688
interface MediaTrackConstraintSet {
689-
aspectRatio?: number | ConstrainDoubleRange;
690-
channelCount?: number | ConstrainLongRange;
691-
deviceId?: string | string[] | ConstrainDOMStringParameters;
692-
displaySurface?: string | string[] | ConstrainDOMStringParameters;
693-
echoCancellation?: boolean | ConstrainBooleanParameters;
694-
facingMode?: string | string[] | ConstrainDOMStringParameters;
695-
frameRate?: number | ConstrainDoubleRange;
696-
groupId?: string | string[] | ConstrainDOMStringParameters;
697-
height?: number | ConstrainLongRange;
698-
latency?: number | ConstrainDoubleRange;
699-
logicalSurface?: boolean | ConstrainBooleanParameters;
700-
sampleRate?: number | ConstrainLongRange;
701-
sampleSize?: number | ConstrainLongRange;
702-
volume?: number | ConstrainDoubleRange;
703-
width?: number | ConstrainLongRange;
689+
aspectRatio?: ConstrainDouble;
690+
autoGainControl?: ConstrainBoolean;
691+
channelCount?: ConstrainULong;
692+
deviceId?: ConstrainDOMString;
693+
echoCancellation?: ConstrainBoolean;
694+
facingMode?: ConstrainDOMString;
695+
frameRate?: ConstrainDouble;
696+
groupId?: ConstrainDOMString;
697+
height?: ConstrainULong;
698+
latency?: ConstrainDouble;
699+
noiseSuppression?: ConstrainBoolean;
700+
resizeMode?: ConstrainDOMString;
701+
sampleRate?: ConstrainULong;
702+
sampleSize?: ConstrainULong;
703+
volume?: ConstrainDouble;
704+
width?: ConstrainULong;
704705
}
705706

706707
interface MediaTrackConstraints extends MediaTrackConstraintSet {
@@ -709,12 +710,17 @@ interface MediaTrackConstraints extends MediaTrackConstraintSet {
709710

710711
interface MediaTrackSettings {
711712
aspectRatio?: number;
713+
autoGainControl?: boolean;
714+
channelCount?: number;
712715
deviceId?: string;
713716
echoCancellation?: boolean;
714717
facingMode?: string;
715718
frameRate?: number;
716719
groupId?: string;
717720
height?: number;
721+
latency?: number;
722+
noiseSuppression?: boolean;
723+
resizeMode?: string;
718724
sampleRate?: number;
719725
sampleSize?: number;
720726
volume?: number;
@@ -723,12 +729,17 @@ interface MediaTrackSettings {
723729

724730
interface MediaTrackSupportedConstraints {
725731
aspectRatio?: boolean;
732+
autoGainControl?: boolean;
733+
channelCount?: boolean;
726734
deviceId?: boolean;
727735
echoCancellation?: boolean;
728736
facingMode?: boolean;
729737
frameRate?: boolean;
730738
groupId?: boolean;
731739
height?: boolean;
740+
latency?: boolean;
741+
noiseSuppression?: boolean;
742+
resizeMode?: boolean;
732743
sampleRate?: boolean;
733744
sampleSize?: boolean;
734745
volume?: boolean;
@@ -826,6 +837,10 @@ interface OscillatorOptions extends AudioNodeOptions {
826837
type?: OscillatorType;
827838
}
828839

840+
interface OverconstrainedErrorEventInit extends EventInit {
841+
error?: OverconstrainedError | null;
842+
}
843+
829844
interface PannerOptions extends AudioNodeOptions {
830845
coneInnerAngle?: number;
831846
coneOuterAngle?: number;
@@ -1576,6 +1591,11 @@ interface UIEventInit extends EventInit {
15761591
view?: Window | null;
15771592
}
15781593

1594+
interface ULongRange {
1595+
max?: number;
1596+
min?: number;
1597+
}
1598+
15791599
interface UnderlyingByteSource {
15801600
autoAllocateChunkSize?: number;
15811601
cancel?: ReadableStreamErrorCallback;
@@ -4439,6 +4459,7 @@ interface Document extends Node, NonElementParentNode, DocumentOrShadowRoot, Par
44394459
createEvent(eventInterface: "MutationEvent"): MutationEvent;
44404460
createEvent(eventInterface: "MutationEvents"): MutationEvent;
44414461
createEvent(eventInterface: "OfflineAudioCompletionEvent"): OfflineAudioCompletionEvent;
4462+
createEvent(eventInterface: "OverconstrainedErrorEvent"): OverconstrainedErrorEvent;
44424463
createEvent(eventInterface: "OverflowEvent"): OverflowEvent;
44434464
createEvent(eventInterface: "PageTransitionEvent"): PageTransitionEvent;
44444465
createEvent(eventInterface: "PaymentRequestUpdateEvent"): PaymentRequestUpdateEvent;
@@ -4693,6 +4714,7 @@ interface DocumentEvent {
46934714
createEvent(eventInterface: "MutationEvent"): MutationEvent;
46944715
createEvent(eventInterface: "MutationEvents"): MutationEvent;
46954716
createEvent(eventInterface: "OfflineAudioCompletionEvent"): OfflineAudioCompletionEvent;
4717+
createEvent(eventInterface: "OverconstrainedErrorEvent"): OverconstrainedErrorEvent;
46964718
createEvent(eventInterface: "OverflowEvent"): OverflowEvent;
46974719
createEvent(eventInterface: "PageTransitionEvent"): PageTransitionEvent;
46984720
createEvent(eventInterface: "PaymentRequestUpdateEvent"): PaymentRequestUpdateEvent;
@@ -9421,6 +9443,15 @@ interface InnerHTML {
94219443
innerHTML: string;
94229444
}
94239445

9446+
interface InputDeviceInfo extends MediaDeviceInfo {
9447+
getCapabilities(): MediaTrackCapabilities;
9448+
}
9449+
9450+
declare var InputDeviceInfo: {
9451+
prototype: InputDeviceInfo;
9452+
new(): InputDeviceInfo;
9453+
};
9454+
94249455
/** provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document's viewport. */
94259456
interface IntersectionObserver {
94269457
readonly root: Element | null;
@@ -9853,6 +9884,7 @@ interface MediaDeviceInfo {
98539884
readonly groupId: string;
98549885
readonly kind: MediaDeviceKind;
98559886
readonly label: string;
9887+
toJSON(): any;
98569888
}
98579889

98589890
declare var MediaDeviceInfo: {
@@ -9869,7 +9901,7 @@ interface MediaDevices extends EventTarget {
98699901
ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
98709902
enumerateDevices(): Promise<MediaDeviceInfo[]>;
98719903
getSupportedConstraints(): MediaTrackSupportedConstraints;
9872-
getUserMedia(constraints: MediaStreamConstraints): Promise<MediaStream>;
9904+
getUserMedia(constraints?: MediaStreamConstraints): Promise<MediaStream>;
98739905
addEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
98749906
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
98759907
removeEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
@@ -10081,19 +10113,15 @@ declare var MediaSource: {
1008110113
};
1008210114

1008310115
interface MediaStreamEventMap {
10084-
"active": Event;
1008510116
"addtrack": MediaStreamTrackEvent;
10086-
"inactive": Event;
1008710117
"removetrack": MediaStreamTrackEvent;
1008810118
}
1008910119

1009010120
/** A stream of media content. A stream consists of several tracks such as video or audio tracks. Each track is specified as an instance of MediaStreamTrack. */
1009110121
interface MediaStream extends EventTarget {
1009210122
readonly active: boolean;
1009310123
readonly id: string;
10094-
onactive: ((this: MediaStream, ev: Event) => any) | null;
1009510124
onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
10096-
oninactive: ((this: MediaStream, ev: Event) => any) | null;
1009710125
onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1009810126
addTrack(track: MediaStreamTrack): void;
1009910127
clone(): MediaStream;
@@ -10102,7 +10130,6 @@ interface MediaStream extends EventTarget {
1010210130
getTracks(): MediaStreamTrack[];
1010310131
getVideoTracks(): MediaStreamTrack[];
1010410132
removeTrack(track: MediaStreamTrack): void;
10105-
stop(): void;
1010610133
addEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1010710134
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1010810135
removeEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
@@ -10166,10 +10193,10 @@ declare var MediaStreamEvent: {
1016610193
};
1016710194

1016810195
interface MediaStreamTrackEventMap {
10169-
"ended": MediaStreamErrorEvent;
10196+
"ended": Event;
1017010197
"isolationchange": Event;
1017110198
"mute": Event;
10172-
"overconstrained": MediaStreamErrorEvent;
10199+
"overconstrained": OverconstrainedErrorEvent;
1017310200
"unmute": Event;
1017410201
}
1017510202

@@ -10181,15 +10208,13 @@ interface MediaStreamTrack extends EventTarget {
1018110208
readonly kind: string;
1018210209
readonly label: string;
1018310210
readonly muted: boolean;
10184-
onended: ((this: MediaStreamTrack, ev: MediaStreamErrorEvent) => any) | null;
10211+
onended: ((this: MediaStreamTrack, ev: Event) => any) | null;
1018510212
onisolationchange: ((this: MediaStreamTrack, ev: Event) => any) | null;
1018610213
onmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
10187-
onoverconstrained: ((this: MediaStreamTrack, ev: MediaStreamErrorEvent) => any) | null;
10214+
onoverconstrained: ((this: MediaStreamTrack, ev: OverconstrainedErrorEvent) => any) | null;
1018810215
onunmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
10189-
readonly readonly: boolean;
1019010216
readonly readyState: MediaStreamTrackState;
10191-
readonly remote: boolean;
10192-
applyConstraints(constraints: MediaTrackConstraints): Promise<void>;
10217+
applyConstraints(constraints?: MediaTrackConstraints): Promise<void>;
1019310218
clone(): MediaStreamTrack;
1019410219
getCapabilities(): MediaTrackCapabilities;
1019510220
getConstraints(): MediaTrackConstraints;
@@ -10221,7 +10246,7 @@ interface MediaStreamTrackEvent extends Event {
1022110246

1022210247
declare var MediaStreamTrackEvent: {
1022310248
prototype: MediaStreamTrackEvent;
10224-
new(typeArg: string, eventInitDict?: MediaStreamTrackEventInit): MediaStreamTrackEvent;
10249+
new(type: string, eventInitDict: MediaStreamTrackEventInit): MediaStreamTrackEvent;
1022510250
};
1022610251

1022710252
/** An interface of the Channel Messaging API allows us to create a new message channel and send data through it via its two MessagePort properties. */
@@ -10521,6 +10546,7 @@ interface Navigator extends NavigatorID, NavigatorOnLine, NavigatorContentUtils,
1052110546
gamepadInputEmulation: GamepadInputEmulationType;
1052210547
readonly geolocation: Geolocation;
1052310548
readonly maxTouchPoints: number;
10549+
readonly mediaDevices: MediaDevices;
1052410550
readonly mimeTypes: MimeTypeArray;
1052510551
readonly msManipulationViewsEnabled: boolean;
1052610552
readonly msMaxTouchPoints: number;
@@ -10531,6 +10557,7 @@ interface Navigator extends NavigatorID, NavigatorOnLine, NavigatorContentUtils,
1053110557
readonly serviceWorker: ServiceWorkerContainer;
1053210558
readonly webdriver: boolean;
1053310559
getGamepads(): (Gamepad | null)[];
10560+
getUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void;
1053410561
getVRDisplays(): Promise<VRDisplay[]>;
1053510562
javaEnabled(): boolean;
1053610563
msLaunchUri(uri: string, successCallback?: MSLaunchUriCallback, noHandlerCallback?: MSLaunchUriCallback): void;
@@ -10962,6 +10989,24 @@ declare var OscillatorNode: {
1096210989
new(context: BaseAudioContext, options?: OscillatorOptions): OscillatorNode;
1096310990
};
1096410991

10992+
interface OverconstrainedError extends Error {
10993+
constraint: string;
10994+
}
10995+
10996+
declare var OverconstrainedError: {
10997+
prototype: OverconstrainedError;
10998+
new(): OverconstrainedError;
10999+
};
11000+
11001+
interface OverconstrainedErrorEvent extends Event {
11002+
readonly error: OverconstrainedError | null;
11003+
}
11004+
11005+
declare var OverconstrainedErrorEvent: {
11006+
prototype: OverconstrainedErrorEvent;
11007+
new(type: string, eventInitDict: OverconstrainedErrorEventInit): OverconstrainedErrorEvent;
11008+
};
11009+
1096511010
interface OverflowEvent extends UIEvent {
1096611011
readonly horizontalOverflow: boolean;
1096711012
readonly orient: number;
@@ -18444,6 +18489,10 @@ type ImageBitmapSource = CanvasImageSource | Blob | ImageData;
1844418489
type OnErrorEventHandler = OnErrorEventHandlerNonNull | null;
1844518490
type OnBeforeUnloadEventHandler = OnBeforeUnloadEventHandlerNonNull | null;
1844618491
type TimerHandler = string | Function;
18492+
type ConstrainULong = number | ConstrainULongRange;
18493+
type ConstrainDouble = number | ConstrainDoubleRange;
18494+
type ConstrainBoolean = boolean | ConstrainBooleanParameters;
18495+
type ConstrainDOMString = string | string[] | ConstrainDOMStringParameters;
1844718496
type PerformanceEntryList = PerformanceEntry[];
1844818497
type VibratePattern = number | number[];
1844918498
type AlgorithmIdentifier = string | Algorithm;
@@ -18470,10 +18519,6 @@ type FormDataEntryValue = File | string;
1847018519
type InsertPosition = "beforebegin" | "afterbegin" | "beforeend" | "afterend";
1847118520
type IDBValidKey = number | string | Date | BufferSource | IDBArrayKey;
1847218521
type MutationRecordType = "attributes" | "characterData" | "childList";
18473-
type ConstrainBoolean = boolean | ConstrainBooleanParameters;
18474-
type ConstrainDOMString = string | string[] | ConstrainDOMStringParameters;
18475-
type ConstrainDouble = number | ConstrainDoubleRange;
18476-
type ConstrainLong = number | ConstrainLongRange;
1847718522
type IDBKeyPath = string;
1847818523
type Transferable = ArrayBuffer | MessagePort | ImageBitmap;
1847918524
type RTCIceGatherCandidate = RTCIceCandidateDictionary | RTCIceCandidateComplete;

inputfiles/addedTypes.json

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1848,6 +1848,43 @@
18481848
"name": "SVGAnimateMotionElement",
18491849
"extends": "SVGAnimationElement",
18501850
"exposed": "Window"
1851+
},
1852+
"MediaStream": {
1853+
"events": {
1854+
"event": [
1855+
{
1856+
"name": "addtrack",
1857+
"type": "MediaStreamTrackEvent"
1858+
},
1859+
{
1860+
"name": "removetrack",
1861+
"type": "MediaStreamTrackEvent"
1862+
}
1863+
]
1864+
}
1865+
},
1866+
"MediaStreamTrack": {
1867+
"events": {
1868+
"event": [
1869+
{
1870+
"name": "overconstrained",
1871+
"type": "OverconstrainedErrorEvent"
1872+
}
1873+
]
1874+
}
1875+
},
1876+
"OverconstrainedError": {
1877+
"name": "OverconstrainedError",
1878+
"extends": "Error",
1879+
"exposed": "Window",
1880+
"properties": {
1881+
"property": {
1882+
"constraint": {
1883+
"name": "constraint",
1884+
"type": "DOMString"
1885+
}
1886+
}
1887+
}
18511888
}
18521889
}
18531890
},
@@ -1942,22 +1979,6 @@
19421979
"new-type": "MutationRecordType",
19431980
"override-type": "\"attributes\" | \"characterData\" | \"childList\""
19441981
},
1945-
{
1946-
"new-type": "ConstrainBoolean",
1947-
"override-type": "boolean | ConstrainBooleanParameters"
1948-
},
1949-
{
1950-
"new-type": "ConstrainDOMString",
1951-
"override-type": "string | string[] | ConstrainDOMStringParameters"
1952-
},
1953-
{
1954-
"new-type": "ConstrainDouble",
1955-
"override-type": "number | ConstrainDoubleRange"
1956-
},
1957-
{
1958-
"new-type": "ConstrainLong",
1959-
"override-type": "number | ConstrainLongRange"
1960-
},
19611982
{
19621983
"new-type": "IDBKeyPath",
19631984
"override-type": "string"

0 commit comments

Comments
 (0)