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/.
6 * The origin of this IDL file is
7 * http://w3c.github.io/webrtc-pc/#rtcrtpsender-interface
10 enum RTCPriorityType {
17 enum RTCDegradationPreference {
19 "maintain-resolution",
23 dictionary RTCRtxParameters {
27 dictionary RTCFecParameters {
31 dictionary RTCRtpEncodingParameters {
36 RTCPriorityType priority;
37 unsigned long maxBitrate;
38 RTCDegradationPreference degradationPreference = "balanced";
40 float scaleResolutionDownBy = 1.0;
43 dictionary RTCRtpHeaderExtensionParameters {
49 dictionary RTCRtcpParameters {
54 dictionary RTCRtpCodecParameters {
55 unsigned short payloadType;
57 unsigned long clockRate;
58 unsigned short channels = 1;
59 DOMString sdpFmtpLine;
62 dictionary RTCRtpParameters {
63 sequence<RTCRtpEncodingParameters> encodings;
64 sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
65 RTCRtcpParameters rtcp;
66 sequence<RTCRtpCodecParameters> codecs;
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>...
81 sequence<MediaStream> getStreams();
83 undefined setStreams(sequence<MediaStream> streams);
85 undefined setTrack(MediaStreamTrack? track);
87 undefined checkWasCreatedByPc(RTCPeerConnection pc);