diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /dom/webidl/RTCRtpSender.webidl | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/webidl/RTCRtpSender.webidl')
-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); +}; |