MediaTrackConstraints.h [plain text]
#pragma once
#if ENABLE(MEDIA_STREAM)
#include "DoubleRange.h"
#include "LongRange.h"
#include <wtf/Variant.h>
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
struct MediaConstraints;
struct ConstrainBooleanParameters {
std::optional<bool> exact;
std::optional<bool> ideal;
};
struct ConstrainDOMStringParameters {
std::optional<Variant<String, Vector<String>>> exact;
std::optional<Variant<String, Vector<String>>> ideal;
};
struct ConstrainDoubleRange : DoubleRange {
std::optional<double> exact;
std::optional<double> ideal;
};
struct ConstrainLongRange : LongRange {
std::optional<int> exact;
std::optional<int> ideal;
};
using ConstrainBoolean = Variant<bool, ConstrainBooleanParameters>;
using ConstrainDOMString = Variant<String, Vector<String>, ConstrainDOMStringParameters>;
using ConstrainDouble = Variant<double, ConstrainDoubleRange>;
using ConstrainLong = Variant<int, ConstrainLongRange>;
struct MediaTrackConstraintSet {
std::optional<ConstrainLong> width;
std::optional<ConstrainLong> height;
std::optional<ConstrainDouble> aspectRatio;
std::optional<ConstrainDouble> frameRate;
std::optional<ConstrainDOMString> facingMode;
std::optional<ConstrainDouble> volume;
std::optional<ConstrainLong> sampleRate;
std::optional<ConstrainLong> sampleSize;
std::optional<ConstrainBoolean> echoCancellation;
std::optional<ConstrainDOMString> deviceId;
std::optional<ConstrainDOMString> groupId;
};
struct MediaTrackConstraints : MediaTrackConstraintSet {
std::optional<Vector<MediaTrackConstraintSet>> advanced;
};
MediaConstraints createMediaConstraints(const MediaTrackConstraints&);
}
#endif