]> git.proxmox.com Git - rustc.git/blob - vendor/web-sys/webidls/enabled/RTCRtpSender.webidl
New upstream version 1.72.1+dfsg1
[rustc.git] / vendor / web-sys / webidls / enabled / RTCRtpSender.webidl
1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/.
5 *
6 * The origin of this IDL file is
7 * http://w3c.github.io/webrtc-pc/#rtcrtpsender-interface
8 */
9
10 enum RTCPriorityType {
11 "very-low",
12 "low",
13 "medium",
14 "high"
15 };
16
17 enum RTCDegradationPreference {
18 "maintain-framerate",
19 "maintain-resolution",
20 "balanced"
21 };
22
23 dictionary RTCRtxParameters {
24 unsigned long ssrc;
25 };
26
27 dictionary RTCFecParameters {
28 unsigned long ssrc;
29 };
30
31 dictionary RTCRtpEncodingParameters {
32 unsigned long ssrc;
33 RTCRtxParameters rtx;
34 RTCFecParameters fec;
35 boolean active;
36 RTCPriorityType priority;
37 unsigned long maxBitrate;
38 RTCDegradationPreference degradationPreference = "balanced";
39 DOMString rid;
40 float scaleResolutionDownBy = 1.0;
41 };
42
43 dictionary RTCRtpHeaderExtensionParameters {
44 DOMString uri;
45 unsigned short id;
46 boolean encrypted;
47 };
48
49 dictionary RTCRtcpParameters {
50 DOMString cname;
51 boolean reducedSize;
52 };
53
54 dictionary RTCRtpCodecParameters {
55 unsigned short payloadType;
56 DOMString mimeType;
57 unsigned long clockRate;
58 unsigned short channels = 1;
59 DOMString sdpFmtpLine;
60 };
61
62 dictionary RTCRtpParameters {
63 sequence<RTCRtpEncodingParameters> encodings;
64 sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
65 RTCRtcpParameters rtcp;
66 sequence<RTCRtpCodecParameters> codecs;
67 };
68
69 [Pref="media.peerconnection.enabled",
70 JSImplementation="@mozilla.org/dom/rtpsender;1"]
71 interface RTCRtpSender {
72 readonly attribute MediaStreamTrack? track;
73 Promise<undefined> setParameters (optional RTCRtpParameters parameters);
74 RTCRtpParameters getParameters();
75 Promise<undefined> replaceTrack(MediaStreamTrack? withTrack);
76 Promise<RTCStatsReport> getStats();
77 [Pref="media.peerconnection.dtmf.enabled"]
78 readonly attribute RTCDTMFSender? dtmf;
79 // Ugh, can't use a ChromeOnly attribute sequence<MediaStream>...
80 [ChromeOnly]
81 sequence<MediaStream> getStreams();
82 [ChromeOnly]
83 undefined setStreams(sequence<MediaStream> streams);
84 [ChromeOnly]
85 undefined setTrack(MediaStreamTrack? track);
86 [ChromeOnly]
87 undefined checkWasCreatedByPc(RTCPeerConnection pc);
88 };