chromium/third_party/blink/renderer/modules/mediastream/media_track_constraint_set.idl

// 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;
};