diff --git a/interfaces/mediacapture-main.idl b/interfaces/mediacapture-main.idl
index 0513f8fa76..d5e39e342a 100644
--- a/interfaces/mediacapture-main.idl
+++ b/interfaces/mediacapture-main.idl
@@ -1,39 +1,43 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the Media Capture and Streams spec.
+// See https://w3c.github.io/mediacapture-main/
+
[Exposed=Window,
Constructor,
- Constructor(MediaStream stream),
- Constructor(sequence tracks)]
+ Constructor (MediaStream stream),
+ Constructor (sequence tracks)]
interface MediaStream : EventTarget {
- readonly attribute DOMString id;
- sequence getAudioTracks();
- sequence getVideoTracks();
- sequence getTracks();
- MediaStreamTrack? getTrackById(DOMString trackId);
- void addTrack(MediaStreamTrack track);
- void removeTrack(MediaStreamTrack track);
- MediaStream clone();
- readonly attribute boolean active;
- attribute EventHandler onaddtrack;
- attribute EventHandler onremovetrack;
+ readonly attribute DOMString id;
+ sequence getAudioTracks ();
+ sequence getVideoTracks ();
+ sequence getTracks ();
+ MediaStreamTrack? getTrackById (DOMString trackId);
+ void addTrack (MediaStreamTrack track);
+ void removeTrack (MediaStreamTrack track);
+ MediaStream clone ();
+ readonly attribute boolean active;
+ attribute EventHandler onaddtrack;
+ attribute EventHandler onremovetrack;
};
[Exposed=Window]
interface MediaStreamTrack : EventTarget {
- readonly attribute DOMString kind;
- readonly attribute DOMString id;
- readonly attribute DOMString label;
- attribute boolean enabled;
- readonly attribute boolean muted;
- attribute EventHandler onmute;
- attribute EventHandler onunmute;
- readonly attribute MediaStreamTrackState readyState;
- attribute EventHandler onended;
- MediaStreamTrack clone();
- void stop();
- MediaTrackCapabilities getCapabilities();
- MediaTrackConstraints getConstraints();
- MediaTrackSettings getSettings();
- Promise applyConstraints(optional MediaTrackConstraints constraints);
- attribute EventHandler onoverconstrained;
+ readonly attribute DOMString kind;
+ readonly attribute DOMString id;
+ readonly attribute DOMString label;
+ attribute boolean enabled;
+ readonly attribute boolean muted;
+ attribute EventHandler onmute;
+ attribute EventHandler onunmute;
+ readonly attribute MediaStreamTrackState readyState;
+ attribute EventHandler onended;
+ MediaStreamTrack clone ();
+ void stop ();
+ MediaTrackCapabilities getCapabilities ();
+ MediaTrackConstraints getConstraints ();
+ MediaTrackSettings getSettings ();
+ Promise applyConstraints (optional MediaTrackConstraints constraints);
+ attribute EventHandler onoverconstrained;
};
enum MediaStreamTrackState {
@@ -42,71 +46,83 @@ enum MediaStreamTrackState {
};
dictionary MediaTrackSupportedConstraints {
- boolean width = true;
- boolean height = true;
- boolean aspectRatio = true;
- boolean frameRate = true;
- boolean facingMode = true;
- boolean volume = true;
- boolean sampleRate = true;
- boolean sampleSize = true;
- boolean echoCancellation = true;
- boolean latency = true;
- boolean channelCount = true;
- boolean deviceId = true;
- boolean groupId = true;
+ boolean width = true;
+ boolean height = true;
+ boolean aspectRatio = true;
+ boolean frameRate = true;
+ boolean facingMode = true;
+ boolean resizeMode = true;
+ boolean volume = true;
+ boolean sampleRate = true;
+ boolean sampleSize = true;
+ boolean echoCancellation = true;
+ boolean autoGainControl = true;
+ boolean noiseSuppression = true;
+ boolean latency = true;
+ boolean channelCount = true;
+ boolean deviceId = true;
+ boolean groupId = true;
};
dictionary MediaTrackCapabilities {
- LongRange width;
- LongRange height;
- DoubleRange aspectRatio;
- DoubleRange frameRate;
- sequence facingMode;
- DoubleRange volume;
- LongRange sampleRate;
- LongRange sampleSize;
- sequence echoCancellation;
- DoubleRange latency;
- LongRange channelCount;
- DOMString deviceId;
- DOMString groupId;
-};
-
-dictionary MediaTrackConstraints : MediaTrackConstraintSet {
- sequence advanced;
+ ULongRange width;
+ ULongRange height;
+ DoubleRange aspectRatio;
+ DoubleRange frameRate;
+ sequence facingMode;
+ sequence resizeMode;
+ DoubleRange volume;
+ ULongRange sampleRate;
+ ULongRange sampleSize;
+ sequence echoCancellation;
+ sequence autoGainControl;
+ sequence noiseSuppression;
+ DoubleRange latency;
+ ULongRange channelCount;
+ DOMString deviceId;
+ DOMString groupId;
+};
+
+ dictionary MediaTrackConstraints : MediaTrackConstraintSet {
+ sequence advanced;
};
dictionary MediaTrackConstraintSet {
- ConstrainLong width;
- ConstrainLong height;
- ConstrainDouble aspectRatio;
- ConstrainDouble frameRate;
- ConstrainDOMString facingMode;
- ConstrainDouble volume;
- ConstrainLong sampleRate;
- ConstrainLong sampleSize;
- ConstrainBoolean echoCancellation;
- ConstrainDouble latency;
- ConstrainLong channelCount;
- ConstrainDOMString deviceId;
- ConstrainDOMString groupId;
+ ConstrainULong width;
+ ConstrainULong height;
+ ConstrainDouble aspectRatio;
+ ConstrainDouble frameRate;
+ ConstrainDOMString facingMode;
+ ConstrainDOMString resizeMode;
+ ConstrainDouble volume;
+ ConstrainULong sampleRate;
+ ConstrainULong sampleSize;
+ ConstrainBoolean echoCancellation;
+ ConstrainBoolean autoGainControl;
+ ConstrainBoolean noiseSuppression;
+ ConstrainDouble latency;
+ ConstrainULong channelCount;
+ ConstrainDOMString deviceId;
+ ConstrainDOMString groupId;
};
dictionary MediaTrackSettings {
- long width;
- long height;
- double aspectRatio;
- double frameRate;
- DOMString facingMode;
- double volume;
- long sampleRate;
- long sampleSize;
- boolean echoCancellation;
- double latency;
- long channelCount;
- DOMString deviceId;
- DOMString groupId;
+ long width;
+ long height;
+ double aspectRatio;
+ double frameRate;
+ DOMString facingMode;
+ DOMString resizeMode;
+ double volume;
+ long sampleRate;
+ long sampleSize;
+ boolean echoCancellation;
+ boolean autoGainControl;
+ boolean noiseSuppression;
+ double latency;
+ long channelCount;
+ DOMString deviceId;
+ DOMString groupId;
};
enum VideoFacingModeEnum {
@@ -116,11 +132,16 @@ enum VideoFacingModeEnum {
"right"
};
+enum VideoResizeModeEnum {
+ "none",
+ "crop-and-scale"
+};
+
[Exposed=Window,
- Constructor(DOMString type, MediaStreamTrackEventInit eventInitDict)]
+ Constructor (DOMString type, MediaStreamTrackEventInit eventInitDict)]
interface MediaStreamTrackEvent : Event {
[SameObject]
- readonly attribute MediaStreamTrack track;
+ readonly attribute MediaStreamTrack track;
};
dictionary MediaStreamTrackEventInit : EventInit {
@@ -128,36 +149,35 @@ dictionary MediaStreamTrackEventInit : EventInit {
};
[Exposed=Window,
- Constructor(DOMString type, OverconstrainedErrorEventInit eventInitDict)]
+ Constructor (DOMString type, OverconstrainedErrorEventInit eventInitDict)]
interface OverconstrainedErrorEvent : Event {
- readonly attribute OverconstrainedError? error;
+ readonly attribute OverconstrainedError? error;
};
dictionary OverconstrainedErrorEventInit : EventInit {
- OverconstrainedError? error = null;
+ OverconstrainedError? error = null;
};
-[Exposed=Window,
- NoInterfaceObject]
+[Exposed=Window, NoInterfaceObject]
interface NavigatorUserMedia {
[SameObject]
- readonly attribute MediaDevices mediaDevices;
+ readonly attribute MediaDevices mediaDevices;
};
Navigator implements NavigatorUserMedia;
[Exposed=Window]
interface MediaDevices : EventTarget {
- attribute EventHandler ondevicechange;
- Promise> enumerateDevices();
+ attribute EventHandler ondevicechange;
+ Promise> enumerateDevices ();
};
[Exposed=Window]
interface MediaDeviceInfo {
- readonly attribute DOMString deviceId;
- readonly attribute MediaDeviceKind kind;
- readonly attribute DOMString label;
- readonly attribute DOMString groupId;
+ readonly attribute DOMString deviceId;
+ readonly attribute MediaDeviceKind kind;
+ readonly attribute DOMString label;
+ readonly attribute DOMString groupId;
[Default] object toJSON();
};
@@ -167,25 +187,22 @@ enum MediaDeviceKind {
"videoinput"
};
-[Exposed=Window]
-interface InputDeviceInfo : MediaDeviceInfo {
- MediaTrackCapabilities getCapabilities();
+ [Exposed=Window] interface InputDeviceInfo : MediaDeviceInfo {
+ MediaTrackCapabilities getCapabilities ();
};
partial interface NavigatorUserMedia {
- void getUserMedia(MediaStreamConstraints constraints,
- NavigatorUserMediaSuccessCallback successCallback,
- NavigatorUserMediaErrorCallback errorCallback);
+ void getUserMedia (MediaStreamConstraints constraints, NavigatorUserMediaSuccessCallback successCallback, NavigatorUserMediaErrorCallback errorCallback);
};
partial interface MediaDevices {
- MediaTrackSupportedConstraints getSupportedConstraints();
- Promise getUserMedia(optional MediaStreamConstraints constraints);
+ MediaTrackSupportedConstraints getSupportedConstraints ();
+ Promise getUserMedia (optional MediaStreamConstraints constraints);
};
dictionary MediaStreamConstraints {
- (boolean or MediaTrackConstraints) video = false;
- (boolean or MediaTrackConstraints) audio = false;
+ (boolean or MediaTrackConstraints) video = false;
+ (boolean or MediaTrackConstraints) audio = false;
};
callback NavigatorUserMediaSuccessCallback = void (MediaStream stream);
@@ -196,44 +213,44 @@ typedef object MediaStreamError;
[NoInterfaceObject]
interface ConstrainablePattern {
- Capabilities getCapabilities();
- Constraints getConstraints();
- Settings getSettings();
- Promise applyConstraints(optional Constraints constraints);
- attribute EventHandler onoverconstrained;
+ Capabilities getCapabilities ();
+ Constraints getConstraints ();
+ Settings getSettings ();
+ Promise applyConstraints (optional Constraints constraints);
+ attribute EventHandler onoverconstrained;
};
dictionary DoubleRange {
- double max;
- double min;
+ double max;
+ double min;
};
dictionary ConstrainDoubleRange : DoubleRange {
- double exact;
- double ideal;
+ double exact;
+ double ideal;
};
-dictionary LongRange {
- long max;
- long min;
+dictionary ULongRange {
+ [Clamp] unsigned long max;
+ [Clamp] unsigned long min;
};
-dictionary ConstrainLongRange : LongRange {
- long exact;
- long ideal;
+dictionary ConstrainULongRange : ULongRange {
+ [Clamp] unsigned long exact;
+ [Clamp] unsigned long ideal;
};
dictionary ConstrainBooleanParameters {
- boolean exact;
- boolean ideal;
+ boolean exact;
+ boolean ideal;
};
dictionary ConstrainDOMStringParameters {
- (DOMString or sequence) exact;
- (DOMString or sequence) ideal;
+ (DOMString or sequence) exact;
+ (DOMString or sequence) ideal;
};
-typedef (long or ConstrainLongRange) ConstrainLong;
+typedef ([Clamp] unsigned long or ConstrainULongRange) ConstrainULong;
typedef (double or ConstrainDoubleRange) ConstrainDouble;
@@ -251,5 +268,5 @@ dictionary ConstraintSet {
};
dictionary Constraints : ConstraintSet {
- sequence advanced;
+ sequence advanced;
};
diff --git a/mediacapture-fromelement/idlharness.html b/mediacapture-fromelement/idlharness.html
index 1dad5c4c2e..500720b879 100644
--- a/mediacapture-fromelement/idlharness.html
+++ b/mediacapture-fromelement/idlharness.html
@@ -13,12 +13,6 @@