- From: Bernard Aboba <Bernard.Aboba@microsoft.com>
- Date: Tue, 2 Dec 2014 06:02:29 +0000
- To: "public-ortc@w3.org" <public-ortc@w3.org>
Here are some proposed changes to Section 8 in order to sync with Martin's pull request: 8. The RTCRtpListener Object The RTCRtpListener listens to RTP packets received from the RTCDtlsTransport, determining whether an incoming RTP stream is configured to be processed by an existing RTCRtpReceiver object. If no match is found, the unhandledrtp event is fired. This can be due to packets having an unknown SSRC, payload type or any other error that makes it impossible to attribute an RTP packet to a specific RTCRtpReceiver object. The event is not fired once for each arriving packet; multiple discarded packets for the same SSRC should result in a single event. Note that application handling of the unhandledrtp event may not be sufficient to enable the unhandled RTP stream to be rendered. The amount of buffering to be provided for unhandled RTP streams is not mandated by this specification and is recommended to be strictly limited to protect against denial of service attacks. Therefore an application attempting to create additional RTCRtpReceiver objects to handle the incoming RTP stream may find that portions of the incoming RTP stream were lost due to insufficient buffers, and therefore could not be rendered. 8.1 Overview An RTCRtpListener instance is associated to an RTCDtlsTransport. 8.2 Operation An RTCRtpListener instance is constructed from an RTCDtlsTransport object. 8.3 Matching rules To determine whether an RTP stream is configured to be processed by an existing RTCRtpReceiver object, the RTCRtpListener attempts to match the values of an incoming RTP packet's Payload Type and SSRC fields as well as the value of the muxId (if present in the MID RTP header extension) against the RTCRtpReceiver.RTCRtpParameters.RTCRtpCodecParameters.payLoadType, RTCRtpReceiver.RTCRtpParameters.RTCRtpEncodingParameters.ssrc, and RTCRtpReceiver.RTCRtpParameters.muxId attributes of configured RTCRtpReceiver objects. TODO: provide details of matching behavior, along with examples. 8.4 Interface Definition [Constructor(RTCDtlsTransport transport)] interface RTCRtpListener { readonly attribute RTCDtlsTransport transport; attribute EventHandler? onunhandledrtp; }; 8.4.1 Attributes onunhandledrtp of type EventHandler, , nullable The event handler which handles the RTCRtpUnhandledRtpEvent, which is fired when the RTCRtpListener detects an RTP stream that is not configured to be processed by an existing RTCRtpReceiver object. transport of type RTCDtlsTransport, readonly The RTP RTCDtlsTransport instance. 8.5 RTCRtpUnhandledEvent The unhandledrtp event of the RTCRtpListener object uses the RTCRtpUnhandledEvent interface. Firing an RTCRtpUnhandledEvent event named e means that an event with the name e, which does not bubble (except where otherwise stated) and is not cancelable (except where otherwise stated), and which uses the RTCRtpUnhandledEvent interface must be created and dispatched at the given target. dictionary RTCRtpUnhandledEventInit : EventInit { unsigned long ssrc; payloadtype payloadType; DOMString mid; }; [Constructor(DOMString type, RTCRtpUnhandledEventInit eventInitDict)] interface RTCRtpUnhandledEvent : Event { readonly attribute unsigned long ssrc; readonly attribute payloadtype payloadType; readonly attribute DOMString mid; }; 8.5.1 Attributes mid of type DOMString, readonly The value of the MID RTP header extension [BUNDLE] in the RTP stream triggering the unhandledrtp event. payloadType of type payloadtype, readonly The Payload Type value in the RTP stream triggering the unhandledrtp event. ssrc of type unsigned long, readonly The SSRC in the RTP stream triggering the unhandledrtp event. 8.5.2 Dictionary RTCRtpUnhandledEventInit Members mid of type DOMString If present, the value of the MID RTP header extension [BUNDLE] in the RTP stream triggering the unhandledrtp event. payloadType of type payloadtype The Payload Type value in the RTP stream triggering the unhandledrtp event. ssrc of type unsigned long The SSRC in the RTP stream triggering the unhandledrtp event. ________________________________________ From: Bernard Aboba Sent: Monday, December 01, 2014 10:01 AM To: public-ortc@w3.org Subject: Issue 163: WebRTC 1.0: Unhandled RTP streams The WebRTC 1.0 API now has a pull request relating to unhandled RTP media streams: https://github.com/w3c/webrtc-pc/pull/29 This involves definition of an RTCMediaDiscardedEvent. 1932 + 1933 + <dl class="idl" data-merge="RTCMediaDiscardedEventInit" 1934 + title="interface RTCMediaDiscardedEvent : Event"> 1935 + <dt>Constructor(DOMString type, RTCMediaDiscardedEventInit 1936 + eventInitDict)</dt> 1937 + 1938 + <dt>readonly attribute unsigned long ssrc</dt> 1939 + <dd>The Synchronization source (SSRC) number of the packet.</dd> 1940 + 1941 + <dt>readonly attribute unsigned byte payloadType</dt> 1942 + <dd>The RTP payload type of the packet.</dd> 1943 + 1944 + <dt>readonly attribute DOMString? mid</dt> 1945 + <dd>The value of any mid header extension on the discarded media 1946 + packet, if that header is present.</dd>
Received on Tuesday, 2 December 2014 06:02:59 UTC