// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
dictionary MediaTrackCapabilities {
LongRange width;
LongRange height;
DoubleRange aspectRatio;
DoubleRange frameRate;
sequence<DOMString> facingMode;
sequence<DOMString> resizeMode;
sequence<boolean> echoCancellation;
sequence<boolean> autoGainControl;
sequence<boolean> noiseSuppression;
sequence<boolean> voiceIsolation;
LongRange sampleSize;
LongRange channelCount;
LongRange sampleRate;
DoubleRange latency;
DOMString deviceId;
DOMString groupId;
// W3C Image Capture API
// https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section
// TODO(mcasas) move out when partial dictionaries are supported
// http://crbug.com/579896.
sequence<DOMString> whiteBalanceMode;
sequence<DOMString> exposureMode;
sequence<DOMString> focusMode;
MediaSettingsRange exposureCompensation;
MediaSettingsRange exposureTime;
MediaSettingsRange colorTemperature;
MediaSettingsRange iso;
MediaSettingsRange brightness;
MediaSettingsRange contrast;
MediaSettingsRange saturation;
MediaSettingsRange sharpness;
MediaSettingsRange focusDistance;
MediaSettingsRange pan;
MediaSettingsRange tilt;
MediaSettingsRange zoom;
boolean torch;
// W3C Media Capture Extensions
[RuntimeEnabled=MediaCaptureBackgroundBlur] sequence<boolean> backgroundBlur;
[RuntimeEnabled=MediaCaptureCameraControls] sequence<boolean> backgroundSegmentationMask;
[RuntimeEnabled=MediaCaptureCameraControls] sequence<boolean> eyeGazeCorrection;
[RuntimeEnabled=MediaCaptureCameraControls] sequence<boolean> faceFraming;
// Screen Capture API
// https://w3c.github.io/mediacapture-screen-share
[RuntimeEnabled=GetDisplayMedia] DOMString displaySurface;
};