mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
86 lines
2.8 KiB
Text
86 lines
2.8 KiB
Text
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
// https://w3c.github.io/mediacapture-main/#dom-mediadevices
|
|
|
|
[Exposed=Window,
|
|
SecureContext, Pref="dom_webrtc_enabled"]
|
|
interface MediaDevices : EventTarget {
|
|
// attribute EventHandler ondevicechange;
|
|
Promise<sequence<MediaDeviceInfo>> enumerateDevices();
|
|
};
|
|
|
|
partial interface Navigator {
|
|
// [SameObject, SecureContext]
|
|
[Pref="dom_webrtc_enabled"] readonly attribute MediaDevices mediaDevices;
|
|
};
|
|
|
|
partial interface MediaDevices {
|
|
// MediaTrackSupportedConstraints getSupportedConstraints();
|
|
Promise<MediaStream> getUserMedia(optional MediaStreamConstraints constraints = {});
|
|
};
|
|
|
|
|
|
dictionary MediaStreamConstraints {
|
|
(boolean or MediaTrackConstraints) video = false;
|
|
(boolean or MediaTrackConstraints) audio = false;
|
|
};
|
|
|
|
dictionary DoubleRange {
|
|
double max;
|
|
double min;
|
|
};
|
|
|
|
dictionary ConstrainDoubleRange : DoubleRange {
|
|
double exact;
|
|
double ideal;
|
|
};
|
|
|
|
dictionary ULongRange {
|
|
[Clamp] unsigned long max;
|
|
[Clamp] unsigned long min;
|
|
};
|
|
|
|
dictionary ConstrainULongRange : ULongRange {
|
|
[Clamp] unsigned long exact;
|
|
[Clamp] unsigned long ideal;
|
|
};
|
|
|
|
// dictionary ConstrainBooleanParameters {
|
|
// boolean exact;
|
|
// boolean ideal;
|
|
// };
|
|
|
|
// dictionary ConstrainDOMStringParameters {
|
|
// (DOMString or sequence<DOMString>) exact;
|
|
// (DOMString or sequence<DOMString>) ideal;
|
|
// };
|
|
|
|
dictionary MediaTrackConstraints : MediaTrackConstraintSet {
|
|
sequence<MediaTrackConstraintSet> advanced;
|
|
};
|
|
|
|
typedef ([Clamp] unsigned long or ConstrainULongRange) ConstrainULong;
|
|
typedef (double or ConstrainDoubleRange) ConstrainDouble;
|
|
// typedef (boolean or ConstrainBooleanParameters) ConstrainBoolean;
|
|
// typedef (DOMString or sequence<DOMString> or ConstrainDOMStringParameters) ConstrainDOMString;
|
|
|
|
dictionary MediaTrackConstraintSet {
|
|
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;
|
|
};
|