// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// https://w3c.github.io/mediacapture-main/#idl-def-mediatrackconstraintset
typedef (long or ConstrainLongRange) ConstrainLong;
typedef (double or ConstrainDoubleRange) ConstrainDouble;
typedef (boolean or ConstrainBooleanParameters) ConstrainBoolean;
typedef (DOMString or sequence<DOMString> or ConstrainDOMStringParameters) ConstrainDOMString;
typedef (sequence<Point2D> or ConstrainPoint2DParameters) ConstrainPoint2D;
dictionary MediaTrackConstraintSet {
ConstrainLong width;
ConstrainLong height;
ConstrainDouble aspectRatio;
ConstrainDouble frameRate;
ConstrainDOMString facingMode;
ConstrainDOMString resizeMode;
ConstrainLong sampleRate;
ConstrainLong sampleSize;
ConstrainBoolean echoCancellation;
ConstrainBoolean autoGainControl;
ConstrainBoolean noiseSuppression;
ConstrainBoolean voiceIsolation;
ConstrainDouble latency;
ConstrainLong channelCount;
ConstrainDOMString deviceId;
ConstrainDOMString groupId;
// W3C Image Capture API
// https://w3c.github.io/mediacapture-image/#mediatrackconstraintset-section
// TODO(mcasas) move out when partial dictionaries are supported
// http://crbug.com/579896.
ConstrainDOMString whiteBalanceMode;
ConstrainDOMString exposureMode;
ConstrainDOMString focusMode;
ConstrainPoint2D pointsOfInterest;
ConstrainDouble exposureCompensation;
ConstrainDouble exposureTime;
ConstrainDouble colorTemperature;
ConstrainDouble iso;
ConstrainDouble brightness;
ConstrainDouble contrast;
ConstrainDouble saturation;
ConstrainDouble sharpness;
ConstrainDouble focusDistance;
(boolean or ConstrainDouble) pan;
(boolean or ConstrainDouble) tilt;
(boolean or ConstrainDouble) zoom;
ConstrainBoolean torch;
// W3C Media Capture Extensions
[RuntimeEnabled=MediaCaptureBackgroundBlur] ConstrainBoolean backgroundBlur;
[RuntimeEnabled=MediaCaptureCameraControls] ConstrainBoolean backgroundSegmentationMask;
[RuntimeEnabled=MediaCaptureCameraControls] ConstrainBoolean eyeGazeCorrection;
[RuntimeEnabled=MediaCaptureCameraControls] ConstrainBoolean faceFraming;
// Screen Capture API
// https://w3c.github.io/mediacapture-screen-share/#extensions-to-mediatrackconstraintset
ConstrainDOMString displaySurface;
ConstrainBoolean suppressLocalAudioPlayback;
// The "mandatory" and "_optional" members are retained for conformance
// with https://www.w3.org/TR/2013/WD-mediacapture-streams-20130903/
object mandatory;
sequence<object> _optional;
};