summaryrefslogtreecommitdiffstats
path: root/vendor/web-sys/webidls/enabled/RTCStatsReport.webidl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:50 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:50 +0000
commit9835e2ae736235810b4ea1c162ca5e65c547e770 (patch)
tree3fcebf40ed70e581d776a8a4c65923e8ec20e026 /vendor/web-sys/webidls/enabled/RTCStatsReport.webidl
parentReleasing progress-linux version 1.70.0+dfsg2-1~progress7.99u1. (diff)
downloadrustc-9835e2ae736235810b4ea1c162ca5e65c547e770.tar.xz
rustc-9835e2ae736235810b4ea1c162ca5e65c547e770.zip
Merging upstream version 1.71.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/web-sys/webidls/enabled/RTCStatsReport.webidl')
-rw-r--r--vendor/web-sys/webidls/enabled/RTCStatsReport.webidl200
1 files changed, 200 insertions, 0 deletions
diff --git a/vendor/web-sys/webidls/enabled/RTCStatsReport.webidl b/vendor/web-sys/webidls/enabled/RTCStatsReport.webidl
new file mode 100644
index 000000000..a52a2a8f5
--- /dev/null
+++ b/vendor/web-sys/webidls/enabled/RTCStatsReport.webidl
@@ -0,0 +1,200 @@
+/* -*- 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 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;
+ 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>;
+};