diff options
Diffstat (limited to '')
-rw-r--r-- | dom/webidl/RTCRtpSender.webidl | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/dom/webidl/RTCRtpSender.webidl b/dom/webidl/RTCRtpSender.webidl new file mode 100644 index 0000000000..99df1f2260 --- /dev/null +++ b/dom/webidl/RTCRtpSender.webidl @@ -0,0 +1,90 @@ +/* -*- 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://w3c.github.io/webrtc-pc/#rtcrtpsender-interface + */ + +enum RTCPriorityType { + "very-low", + "low", + "medium", + "high" +}; + +enum RTCDegradationPreference { + "maintain-framerate", + "maintain-resolution", + "balanced" +}; + +dictionary RTCRtxParameters { + unsigned long ssrc; +}; + +dictionary RTCFecParameters { + unsigned long ssrc; +}; + +dictionary RTCRtpEncodingParameters { + unsigned long ssrc; + RTCRtxParameters rtx; + RTCFecParameters fec; + boolean active; + RTCPriorityType priority; + unsigned long maxBitrate; + RTCDegradationPreference degradationPreference = "balanced"; + DOMString rid; + float scaleResolutionDownBy = 1.0; +}; + +dictionary RTCRtpHeaderExtensionParameters { + DOMString uri; + unsigned short id; + boolean encrypted; +}; + +dictionary RTCRtcpParameters { + DOMString cname; + boolean reducedSize; +}; + +dictionary RTCRtpCodecParameters { + unsigned short payloadType; + DOMString mimeType; + unsigned long clockRate; + unsigned short channels = 1; + DOMString sdpFmtpLine; +}; + +dictionary RTCRtpParameters { + sequence<RTCRtpEncodingParameters> encodings; + sequence<RTCRtpHeaderExtensionParameters> headerExtensions; + RTCRtcpParameters rtcp; + sequence<RTCRtpCodecParameters> codecs; +}; + +[Pref="media.peerconnection.enabled", + JSImplementation="@mozilla.org/dom/rtpsender;1", + Exposed=Window] +interface RTCRtpSender { + readonly attribute MediaStreamTrack? track; + readonly attribute RTCDtlsTransport? transport; + Promise<void> setParameters (optional RTCRtpParameters parameters = {}); + RTCRtpParameters getParameters(); + Promise<void> replaceTrack(MediaStreamTrack? withTrack); + Promise<RTCStatsReport> getStats(); + [Pref="media.peerconnection.dtmf.enabled"] + readonly attribute RTCDTMFSender? dtmf; + // Ugh, can't use a ChromeOnly attibute sequence<MediaStream>... + [ChromeOnly] + sequence<MediaStream> getStreams(); + [ChromeOnly] + void setStreams(sequence<MediaStream> streams); + [ChromeOnly] + void setTrack(MediaStreamTrack? track); + [ChromeOnly] + void checkWasCreatedByPc(RTCPeerConnection pc); +}; |