mirror of
https://github.com/rustwasm/wasm-bindgen.git
synced 2024-12-28 20:43:23 +03:00
71255acf5d
* Try to enable all webidls * Separate out unavailable webidl files by reason. * Create record of fully tested WebIDL files * Update notes to reflect new situation with web-idl * Make a blank ident fail, disable the necessary widls. It turns out that all the blank idents came from blank enum variants, which is allowed in webidl apparently.
206 lines
6.4 KiB
Plaintext
Vendored
206 lines
6.4 KiB
Plaintext
Vendored
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* The origin of this IDL file is
|
|
* http://dev.w3.org/2011/webrtc/editor/webrtc.html#rtcstatsreport-object
|
|
* http://www.w3.org/2011/04/webrtc/wiki/Stats
|
|
*/
|
|
|
|
enum RTCStatsType {
|
|
"inbound-rtp",
|
|
"outbound-rtp",
|
|
"csrc",
|
|
"session",
|
|
"track",
|
|
"transport",
|
|
"candidate-pair",
|
|
"local-candidate",
|
|
"remote-candidate"
|
|
};
|
|
|
|
dictionary RTCStats {
|
|
DOMHighResTimeStamp timestamp;
|
|
RTCStatsType type;
|
|
DOMString id;
|
|
};
|
|
|
|
dictionary RTCRTPStreamStats : RTCStats {
|
|
DOMString ssrc;
|
|
DOMString mediaType;
|
|
DOMString remoteId;
|
|
boolean isRemote = false;
|
|
DOMString mediaTrackId;
|
|
DOMString transportId;
|
|
DOMString codecId;
|
|
|
|
// Video encoder/decoder measurements, not present in RTCP case
|
|
double bitrateMean;
|
|
double bitrateStdDev;
|
|
double framerateMean;
|
|
double framerateStdDev;
|
|
|
|
// Local only measurements, RTCP related but not communicated via RTCP. Not
|
|
// present in RTCP case.
|
|
unsigned long firCount;
|
|
unsigned long pliCount;
|
|
unsigned long nackCount;
|
|
};
|
|
|
|
dictionary RTCInboundRTPStreamStats : RTCRTPStreamStats {
|
|
unsigned long packetsReceived;
|
|
unsigned long long bytesReceived;
|
|
double jitter;
|
|
unsigned long packetsLost;
|
|
long mozAvSyncDelay;
|
|
long mozJitterBufferDelay;
|
|
long roundTripTime;
|
|
|
|
// Video decoder measurement, not present in RTCP case
|
|
unsigned long discardedPackets;
|
|
unsigned long framesDecoded;
|
|
};
|
|
|
|
dictionary RTCOutboundRTPStreamStats : RTCRTPStreamStats {
|
|
unsigned long packetsSent;
|
|
unsigned long long bytesSent;
|
|
double targetBitrate; // config encoder bitrate target of this SSRC in bits/s
|
|
|
|
// Video encoder measurements, not present in RTCP case
|
|
unsigned long droppedFrames;
|
|
unsigned long framesEncoded;
|
|
};
|
|
|
|
dictionary RTCMediaStreamTrackStats : RTCStats {
|
|
DOMString trackIdentifier; // track.id property
|
|
boolean remoteSource;
|
|
sequence<DOMString> ssrcIds;
|
|
// Stuff that makes sense for video
|
|
unsigned long frameWidth;
|
|
unsigned long frameHeight;
|
|
double framesPerSecond; // The nominal FPS value
|
|
unsigned long framesSent;
|
|
unsigned long framesReceived; // Only for remoteSource=true
|
|
unsigned long framesDecoded;
|
|
unsigned long framesDropped; // See VideoPlaybackQuality.droppedVideoFrames
|
|
unsigned long framesCorrupted; // as above.
|
|
// Stuff that makes sense for audio
|
|
double audioLevel; // linear, 1.0 = 0 dBov (from RFC 6464).
|
|
// AEC stuff on audio tracks sourced from a microphone where AEC is applied
|
|
double echoReturnLoss; // in decibels from G.168 (2012) section 3.14
|
|
double echoReturnLossEnhancement; // as above, section 3.15
|
|
};
|
|
|
|
dictionary RTCMediaStreamStats : RTCStats {
|
|
DOMString streamIdentifier; // stream.id property
|
|
sequence<DOMString> trackIds; // Note: stats object ids, not track.id
|
|
};
|
|
|
|
dictionary RTCRTPContributingSourceStats : RTCStats {
|
|
unsigned long contributorSsrc;
|
|
DOMString inboundRtpStreamId;
|
|
};
|
|
|
|
dictionary RTCTransportStats: RTCStats {
|
|
unsigned long bytesSent;
|
|
unsigned long bytesReceived;
|
|
};
|
|
|
|
dictionary RTCIceComponentStats : RTCStats {
|
|
DOMString transportId;
|
|
long component;
|
|
unsigned long bytesSent;
|
|
unsigned long bytesReceived;
|
|
boolean activeConnection;
|
|
};
|
|
|
|
enum RTCStatsIceCandidatePairState {
|
|
"frozen",
|
|
"waiting",
|
|
"inprogress",
|
|
"failed",
|
|
"succeeded",
|
|
"cancelled"
|
|
};
|
|
|
|
dictionary RTCIceCandidatePairStats : RTCStats {
|
|
DOMString transportId;
|
|
DOMString localCandidateId;
|
|
DOMString remoteCandidateId;
|
|
RTCStatsIceCandidatePairState state;
|
|
unsigned long long priority;
|
|
boolean nominated;
|
|
boolean writable;
|
|
boolean readable;
|
|
unsigned long long bytesSent;
|
|
unsigned long long bytesReceived;
|
|
DOMHighResTimeStamp lastPacketSentTimestamp;
|
|
DOMHighResTimeStamp lastPacketReceivedTimestamp;
|
|
boolean selected;
|
|
[ChromeOnly]
|
|
unsigned long componentId; // moz
|
|
};
|
|
|
|
enum RTCStatsIceCandidateType {
|
|
"host",
|
|
"serverreflexive",
|
|
"peerreflexive",
|
|
"relayed"
|
|
};
|
|
|
|
dictionary RTCIceCandidateStats : RTCStats {
|
|
DOMString componentId;
|
|
DOMString candidateId;
|
|
DOMString ipAddress;
|
|
DOMString transport;
|
|
DOMString mozLocalTransport; // needs standardization
|
|
long portNumber;
|
|
RTCStatsIceCandidateType candidateType;
|
|
};
|
|
|
|
dictionary RTCCodecStats : RTCStats {
|
|
unsigned long payloadType; // As used in RTP encoding.
|
|
DOMString codec; // video/vp8 or equivalent
|
|
unsigned long clockRate;
|
|
unsigned long channels; // 2=stereo, missing for most other cases.
|
|
DOMString parameters; // From SDP description line
|
|
};
|
|
|
|
// This is the internal representation of the report in this implementation
|
|
// to be received from c++
|
|
|
|
dictionary RTCStatsReportInternal {
|
|
DOMString pcid = "";
|
|
sequence<RTCInboundRTPStreamStats> inboundRTPStreamStats;
|
|
sequence<RTCOutboundRTPStreamStats> outboundRTPStreamStats;
|
|
sequence<RTCRTPContributingSourceStats> rtpContributingSourceStats;
|
|
sequence<RTCMediaStreamTrackStats> mediaStreamTrackStats;
|
|
sequence<RTCMediaStreamStats> mediaStreamStats;
|
|
sequence<RTCTransportStats> transportStats;
|
|
sequence<RTCIceComponentStats> iceComponentStats;
|
|
sequence<RTCIceCandidatePairStats> iceCandidatePairStats;
|
|
sequence<RTCIceCandidateStats> iceCandidateStats;
|
|
sequence<RTCCodecStats> codecStats;
|
|
DOMString localSdp;
|
|
DOMString remoteSdp;
|
|
DOMHighResTimeStamp timestamp;
|
|
unsigned long iceRestarts;
|
|
unsigned long iceRollbacks;
|
|
boolean offerer; // Is the PC the offerer
|
|
boolean closed; // Is the PC now closed
|
|
sequence<RTCIceCandidateStats> trickledIceCandidateStats;
|
|
sequence<DOMString> rawLocalCandidates;
|
|
sequence<DOMString> rawRemoteCandidates;
|
|
};
|
|
|
|
[Pref="media.peerconnection.enabled",
|
|
// TODO: Use MapClass here once it's available (Bug 928114)
|
|
// MapClass(DOMString, object)
|
|
JSImplementation="@mozilla.org/dom/rtcstatsreport;1"]
|
|
interface RTCStatsReport {
|
|
readonly maplike<DOMString, object>;
|
|
[ChromeOnly]
|
|
readonly attribute DOMString mozPcid;
|
|
};
|