// Copyright 2015 The Chromium Authors. All rights reserved.
// 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;

dictionary MediaTrackConstraintSet {
    [RuntimeEnabled=MediaConstraints] ConstrainLong width;
    [RuntimeEnabled=MediaConstraints] ConstrainLong height;
    [RuntimeEnabled=MediaConstraints] ConstrainDouble aspectRatio;
    [RuntimeEnabled=MediaConstraints] ConstrainDouble frameRate;
    [RuntimeEnabled=MediaConstraints] ConstrainDOMString facingMode;
    [RuntimeEnabled=MediaConstraints] ConstrainDouble volume;
    [RuntimeEnabled=MediaConstraints] ConstrainLong sampleRate;
    [RuntimeEnabled=MediaConstraints] ConstrainLong sampleSize;
    [RuntimeEnabled=MediaConstraints] ConstrainBoolean echoCancellation;
    [RuntimeEnabled=MediaConstraints] ConstrainDouble latency;
    [RuntimeEnabled=MediaConstraints] ConstrainLong channelCount;
    [RuntimeEnabled=MediaConstraints] ConstrainDOMString deviceId;
    [RuntimeEnabled=MediaConstraints] ConstrainDOMString groupId;
    // The "mandatory" and "_optional" members are retained for conformance
    // with https://www.w3.org/TR/2013/WD-mediacapture-streams-20130903/
    Dictionary mandatory;
    sequence<Dictionary> _optional;
};
