mirror of
https://github.com/servo/servo.git
synced 2025-07-01 12:33:40 +01:00
255 lines
6.9 KiB
Text
255 lines
6.9 KiB
Text
[Exposed=Window,
|
|
Constructor,
|
|
Constructor(MediaStream stream),
|
|
Constructor(sequence<MediaStreamTrack> tracks)]
|
|
interface MediaStream : EventTarget {
|
|
readonly attribute DOMString id;
|
|
sequence<MediaStreamTrack> getAudioTracks();
|
|
sequence<MediaStreamTrack> getVideoTracks();
|
|
sequence<MediaStreamTrack> 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<void> applyConstraints(optional MediaTrackConstraints constraints);
|
|
attribute EventHandler onoverconstrained;
|
|
};
|
|
|
|
enum MediaStreamTrackState {
|
|
"live",
|
|
"ended"
|
|
};
|
|
|
|
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;
|
|
};
|
|
|
|
dictionary MediaTrackCapabilities {
|
|
LongRange width;
|
|
LongRange height;
|
|
DoubleRange aspectRatio;
|
|
DoubleRange frameRate;
|
|
sequence<DOMString> facingMode;
|
|
DoubleRange volume;
|
|
LongRange sampleRate;
|
|
LongRange sampleSize;
|
|
sequence<boolean> echoCancellation;
|
|
DoubleRange latency;
|
|
LongRange channelCount;
|
|
DOMString deviceId;
|
|
DOMString groupId;
|
|
};
|
|
|
|
dictionary MediaTrackConstraints : MediaTrackConstraintSet {
|
|
sequence<MediaTrackConstraintSet> 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;
|
|
};
|
|
|
|
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;
|
|
};
|
|
|
|
enum VideoFacingModeEnum {
|
|
"user",
|
|
"environment",
|
|
"left",
|
|
"right"
|
|
};
|
|
|
|
[Exposed=Window,
|
|
Constructor(DOMString type, MediaStreamTrackEventInit eventInitDict)]
|
|
interface MediaStreamTrackEvent : Event {
|
|
[SameObject]
|
|
readonly attribute MediaStreamTrack track;
|
|
};
|
|
|
|
dictionary MediaStreamTrackEventInit : EventInit {
|
|
required MediaStreamTrack track;
|
|
};
|
|
|
|
[Exposed=Window,
|
|
Constructor(DOMString type, OverconstrainedErrorEventInit eventInitDict)]
|
|
interface OverconstrainedErrorEvent : Event {
|
|
readonly attribute OverconstrainedError? error;
|
|
};
|
|
|
|
dictionary OverconstrainedErrorEventInit : EventInit {
|
|
OverconstrainedError? error = null;
|
|
};
|
|
|
|
[Exposed=Window,
|
|
NoInterfaceObject]
|
|
interface NavigatorUserMedia {
|
|
[SameObject]
|
|
readonly attribute MediaDevices mediaDevices;
|
|
};
|
|
|
|
Navigator implements NavigatorUserMedia;
|
|
|
|
[Exposed=Window]
|
|
interface MediaDevices : EventTarget {
|
|
attribute EventHandler ondevicechange;
|
|
Promise<sequence<MediaDeviceInfo>> enumerateDevices();
|
|
};
|
|
|
|
[Exposed=Window]
|
|
interface MediaDeviceInfo {
|
|
readonly attribute DOMString deviceId;
|
|
readonly attribute MediaDeviceKind kind;
|
|
readonly attribute DOMString label;
|
|
readonly attribute DOMString groupId;
|
|
[Default] object toJSON();
|
|
};
|
|
|
|
enum MediaDeviceKind {
|
|
"audioinput",
|
|
"audiooutput",
|
|
"videoinput"
|
|
};
|
|
|
|
[Exposed=Window]
|
|
interface InputDeviceInfo : MediaDeviceInfo {
|
|
MediaTrackCapabilities getCapabilities();
|
|
};
|
|
|
|
partial interface NavigatorUserMedia {
|
|
void getUserMedia(MediaStreamConstraints constraints,
|
|
NavigatorUserMediaSuccessCallback successCallback,
|
|
NavigatorUserMediaErrorCallback errorCallback);
|
|
};
|
|
|
|
partial interface MediaDevices {
|
|
MediaTrackSupportedConstraints getSupportedConstraints();
|
|
Promise<MediaStream> getUserMedia(optional MediaStreamConstraints constraints);
|
|
};
|
|
|
|
dictionary MediaStreamConstraints {
|
|
(boolean or MediaTrackConstraints) video = false;
|
|
(boolean or MediaTrackConstraints) audio = false;
|
|
};
|
|
|
|
callback NavigatorUserMediaSuccessCallback = void (MediaStream stream);
|
|
|
|
callback NavigatorUserMediaErrorCallback = void (MediaStreamError error);
|
|
|
|
typedef object MediaStreamError;
|
|
|
|
[NoInterfaceObject]
|
|
interface ConstrainablePattern {
|
|
Capabilities getCapabilities();
|
|
Constraints getConstraints();
|
|
Settings getSettings();
|
|
Promise<void> applyConstraints(optional Constraints constraints);
|
|
attribute EventHandler onoverconstrained;
|
|
};
|
|
|
|
dictionary DoubleRange {
|
|
double max;
|
|
double min;
|
|
};
|
|
|
|
dictionary ConstrainDoubleRange : DoubleRange {
|
|
double exact;
|
|
double ideal;
|
|
};
|
|
|
|
dictionary LongRange {
|
|
long max;
|
|
long min;
|
|
};
|
|
|
|
dictionary ConstrainLongRange : LongRange {
|
|
long exact;
|
|
long ideal;
|
|
};
|
|
|
|
dictionary ConstrainBooleanParameters {
|
|
boolean exact;
|
|
boolean ideal;
|
|
};
|
|
|
|
dictionary ConstrainDOMStringParameters {
|
|
(DOMString or sequence<DOMString>) exact;
|
|
(DOMString or sequence<DOMString>) ideal;
|
|
};
|
|
|
|
typedef (long or ConstrainLongRange) ConstrainLong;
|
|
|
|
typedef (double or ConstrainDoubleRange) ConstrainDouble;
|
|
|
|
typedef (boolean or ConstrainBooleanParameters) ConstrainBoolean;
|
|
|
|
typedef (DOMString or sequence<DOMString> or ConstrainDOMStringParameters) ConstrainDOMString;
|
|
|
|
dictionary Capabilities {
|
|
};
|
|
|
|
dictionary Settings {
|
|
};
|
|
|
|
dictionary ConstraintSet {
|
|
};
|
|
|
|
dictionary Constraints : ConstraintSet {
|
|
sequence<ConstraintSet> advanced;
|
|
};
|