You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
interfaceRTCRtpPacket{constructor(requiredRTCRtpPacketInit);readonlyattributeboolmarker;readonlyattributeoctetpayloadType;readonlyattributeunsignedshortsequenceNumber;readonlyattributeunsignedlongtimestamp;readonlyattributeunsignedlongssrc;readonlyattributesequence<unsignedlong>csrcs;readonlyattributesequence<RTCRtpHeaderExtension>headerExtensions;readonlyattributeunsignedlongpaddingBytes;// The MID and RID are possibly inferred by the SSRC,// and do not necessarily represent header extension values.readonlyattributeDOMString? mid;readonlyattributeDOMString? rid;// Write payload to the specified (Shared-)ArrayBuffer/ArrayBufferView,// allowing for BYOB. Throws a TypeError if |destination| is smaller than// |payloadByteLength|.undefinedcopyPayloadTo(AllowSharedBufferSourcedestination);readonlyattributeunsignedlongpayloadByteLength;// OPTIONAL: Extra information that may be useful to knowreadonlyattributeDOMHighResTimeStampreceivedTime;readonlyattributeunsignedlongsequenceNumberRolloverCount;voidsetHeaderExtension(RTCRtpHeaderExtension);}interfaceRTCRtpHeaderExtension{constructor(requiredRTCRtpHeaderExtensionInit);readonlyattributeDOMStringuri;readonlyattributeunsignedlongvalueByteLength;// Write the extension's value to the specified (Shared-)ArrayBuffer/ArrayBufferView,// allowing for BYOB. Throws a TypeError if |destination| is smaller than// |valueByteLength|.undefinedcopyValueTo(AllowSharedBufferSourcedestination);}dictionaryRTCRtpPacketInit{boolmarker=false;requiredoctetpayloadType;requiredunsignedlongtimestamp;sequence<unsignedlong>csrcs=[];// Cannot be MID, RID, or congestion control sequence numbersequence<RTCRtpHeaderExtensionInit>headerExtensions=[];requiredAllowSharedBufferSourcepayload;// Causes padding bit to be set and padding added when serializing if > 0.unsignedlongpaddingBytes=0;// The RID here specifies which "layer" to send with, and what goes over// the wire maybe a specific SSRC, not necessarily a header extension.readonlyattributeDOMString? rid;}dictionaryRTCRtpHeaderExtensionInit{requiredDOMStringuri;requiredAllowSharedBufferSourcevalue;}
partialinterfaceRTCPeerConnection{// There may be an RtpTransport with no RtpSenders and no RtpReceivers.readonlyattributeRTCRtpTransport? rtpTransport;}// Add this to RTCConfigurationdictionaryRTCConfiguration{// Means "continue to encode and packetize packets, but don't send them.// Instead give them to me via onpacketizedrtpavailable/readPacketizedRtp// and I will send them."// TODO: Think of a better nameboolcustomPacer;}partialinterfaceRTCRtpSender{// shared between RTCRtpSenders in the same BUNDLE groupreadonlyattributeRTCRtpTransport? rtpTransport;Promise<RTCRtpPacketSender>replacePacketSender();}partialinterfaceRTCRtpReceiver{// shared between RTCRtpSenders in the same BUNDLE groupreadonlyattributeRTCRtpTransport? rtpTransport;Promise<RTCRtpPacketReceiver>replacePacketReceiver();}interfaceRTCRtpTransport{attributeEventHandleronpacketizedrtpavailable;// No payload. Call readPacketizedRtpsequence<RTCRtpPacket>readPacketizedRtp(maxNumberOfPackets);attributeEventHandleronsentrtp;// No payload. Use readSentRtp// Batch interface to read SentRtp notifications.sequence<SentRtp>readSentRtp(longmaxCount);attributeEventHandleronreceivedrtpacks;// No payload. Use readReceivedRtpAcks// Batch interface to read RtpAcks as an alternative to onrtpacksreceived.sequence<RtpAcks>readReceivedRtpAcks(longmaxCount);readonlyattributeunsignedlongbandwidthEstimate;// bpsreadonlyattributeunsignedlongallocatedBandwidth;// bpsattributeunsignedlongcustomAllocatedBandwidth;// writable// Means "when doing bitrate allocation and rate control, don't use more than this"attributeunsignedlongcustomMaxBandwidth;// Means "make each packet smaller by this much so I can put custom stuff in each packet"attributeunsignedlongcustomPerPacketOverhead;}// RFC 8888 or Transport-cc feedbackinterfaceRTCRtpAcks{readonlyattributesequence<RTCRtpAck>acks;readonlyattributeunsignedlonglongremoteSendTimestamp;readonlyattributeDOMHighResTimeStampreceivedTime;readonlyattributeRTCExplicitCongestionNotificationexplicitCongestionNotification;// AKA "ECN"}interfaceRTCRtpAck{// Correlated with RtpSent.ackIdreadonlyattributeunsignedlonglongackId;readonlyattributeunsignedlonglongremoteReceiveTimestamp;}// See RFC 3991 and RFC 3168enumRTCExplicitCongestionNotification{// ECT = ECN-Capable Transport"unset",// AKA "Not-ECT"; Bits: 00"scalable-congestion-not-experienced",// AKA "ECT(1)" or "Scalable" or "L4S" ; Bits: 01"classic-congestion-not-experienced",// AKA "ECT(0)" or "Classic" or "not L4S"; Bits: 10"congestion-experienced"// AKA "CE" or "ECN-marked" or "marked"; Bits: 11}[Exposed=(Window,Worker),Transferable]interfaceRTCRtpPacketSender{readonlyattributeDOMStringmid?;// The "layers" of an RtpPacketSender correspond to the "encodings" of an RTP transceiver// and are primarily used for simulcast.readonlysequence<RTCRtpPacketSenderLayer>layers;attributeEventHandleronpacketizedrtp;sequence<RTCRtpPacket>readPacketizedRtp(longmaxNumberOfPackets);// https://github.com/w3c/webrtc-rtptransport/issues/32voidsendRtp(RTCRtpPacketpacket);Promise<RTCRtpSendResult>sendRtp(RTCRtpPacketInitpacket,RTCRtpSendOptionsoptions);// Amount allocated by the browserreadonlyattributeunsignedlongallocatedBandwidth;}dictionaryRTCRtpPacketSenderLayer{readonlyattributeDOMStringrid?;readonlyattributeunsignedlongssrc;readonlyattributeunsignedlongrtxSsrc;}interfaceRTCRtpSendResult{readonlyattributeRTCRtpSentsent?;readonlyattributeRTCRtpUnsentReasonunsent?;}interfaceRTCRtpSent{readonlyattributeDOMHighResTimeStamptime;// Can be correlated with acksreadonlyattributeunsignedlonglongackId?;readonlyattributeunsignedlonglongsize;}enumRTCRtpUnsentReason{"overuse","transport-unavailable",};dictionaryRTCRtpSendOptions{
DOMHighResTimeStamp sendTime;}[Exposed=(Window,Worker),Transferable]interfaceRTCRtpPacketReceiver{readonlyattributeDOMStringmid?;readonlyattributesequence<unsignedlong>ssrcs;readonlyattributesequence<unsignedlong>rtxSsrcs;attributeEventHandleronreceivedrtp;sequence<RTCRtpPacket>readReceivedRtp(longmaxNumberOfPackets);voidreceiveRtp(RTCRtpPacketpacket)}