diff --git a/index.html b/index.html index 9aed9cf..61391c8 100644 --- a/index.html +++ b/index.html @@ -89,9 +89,9 @@

Terminology

(SFM) is defined in Section 3.7 of [[RFC7667]].

- referenceScaling + spatialScalability is a proposed addition to {{VideoConfiguration}} in - discussion in the + in the Media Capabilities API.

@@ -182,9 +182,10 @@

Negotiation

a codec supporting temporal scalability is negotiated.

- There are situations where an SFM may only support reception of a subset - of codecs and scalability modes. For example, an SFM that parses codec - payloads may only support the H.264/AVC codec without scalability and + There are situations where an SFM + may only support reception of a subset of codecs and scalability modes. + For example, an SFM that parses + codec payloads may only support the H.264/AVC codec without scalability and the VP8 codec with temporal scalability. On the other hand, the browser may be able to encode VP8 with temporal scalability, VP9 with temporal and spatial scalability and or H.264/AVC with temporal scalability. @@ -194,33 +195,39 @@

Negotiation

To determine what codecs and scalability modes an application can send, the {{RTCRtpSender}}'s getCapabilities method can be used to determine the codecs and scalability modes supported by the - {{RTCRtpSender}}. The SFM can provide information on the codecs and - scalability modes it can decode by providing its receiver capabilities. - After exchanging capabilities, the application can compute the intersection - of codecs and {{RTCRtpEncodingParameters/scalabilityMode}} values supported - by both the browser's {{RTCRtpSender}} and the SFM's receiver. This can be - used to determine the arguments passed to the browser's - {{RTCPeerConnection/addTransceiver()}} and {{RTCRtpSender/setParameters()}} methods. + {{RTCRtpSender}}. The SFM + can provide information on the codecs and scalability modes it can + decode by providing its receiver capabilities. After exchanging + capabilities, the application can compute the intersection of codecs + and {{RTCRtpEncodingParameters/scalabilityMode}} values supported + by both the browser's {{RTCRtpSender}} and the + SFM's receiver. This + can be used to determine the arguments passed to the browser's + {{RTCPeerConnection/addTransceiver()}} and {{RTCRtpSender/setParameters()}} + methods.

Since sending simulcast encodings on a single stream is not negotiated within Offer/Answer, an application using SDP signaling needs to determine whether single stream simulcast transport is supported prior to the Offer/Answer negotiation. - This can be handled by having the SFM send it's receiver capabilities to the - application prior to Offer/Answer. This allows the application to determine - whether single stream simulcast is supported, and if so, what scalability - modes the SFM can handle. For example, an SFM that can only support reception - of a maximum of 2 simulcast encodings on a single SSRC with the AV1 codec would - only indicate support for the "S2T1" and "S2T1h" scalability modes in its - receiver capabilities. + This can be handled by having the SFM + send it's receiver capabilities to the application prior to Offer/Answer. + This allows the application to determine whether single stream simulcast is + supported, and if so, what scalability modes the + SFM can handle. For example, + an SFM that can only support + reception of a maximum of 2 simulcast encodings on a single SSRC with the + AV1 codec would only indicate support for the "S2T1" and "S2T1h" scalability + modes in its receiver capabilities.

- To determine what codecs and scalability modes an SFM can send to the + To determine what codecs and scalability modes an + SFM can send to the application, the application can utilize the [[?Media-Capabilities]] API. - If {{VideoConfiguration/referenceScaling}} is set to `false` or is absent, the decoder cannot decode - spatial scalability modes, but can decode all other + If {{VideoConfiguration/spatialScalability}} is set to `false` or is absent, + the decoder cannot decode spatial scalability modes, but can decode all other {{RTCRtpEncodingParameters/scalabilityMode}} values supported by the - encoder. If {{VideoConfiguration/referenceScaling}} is set to `true` the + encoder. If {{VideoConfiguration/spatialScalability}} is set to `true` the decoder can decode any {{RTCRtpEncodingParameters/scalabilityMode}} value supported by the encoder.

@@ -285,13 +292,15 @@

Dictionary {{RTCRtpCodecCapability}} Members

The {{scalabilityModes}} sequence represents the scalability modes supported - by a peer. For an SFM the supported {{scalabilityModes}} may depend on the - negotiated RTP header extensions. For example, if the SFM cannot parse codec - payloads (either because it is not designed to do so, or because the payloads - are encrypted), then negotiation of an RTP header extension (such as the - AV1 Dependency Descriptor defined in Appendix A of [[AV1-RTP]]) could be - a prerequisite for the SFM to forward {{scalabilityModes}}. As a result, the - {{scalabilityModes}} supported by an SFM may not be determined until + by a peer. For an SFM the supported + {{scalabilityModes}} may depend on the negotiated RTP header extensions. For example, + if the SFM cannot parse codec payloads + (either because it is not designed to do so, or because the payloads are encrypted), + then negotiation of an RTP header extension (such as the AV1 Dependency Descriptor + defined in Appendix A of [[AV1-RTP]]) could be a prerequisite for the + SFM to forward {{scalabilityModes}}. + As a result, the {{scalabilityModes}} supported by an + SFM may not be determined until completion of the Offer/Answer negotiation.