rfc8851xml2.original.xml   rfc8851.xml 
<?xml version="1.0" encoding="UTF-8"?> <?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" conse
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.7 --> nsus="true" docName="draft-ietf-mmusic-rid-15" indexInclude="true" ipr="trust200
902" number="8851" prepTime="2021-01-16T23:55:17" scripts="Common,Latin" sortRef
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ s="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" upd
]> ates="4855" xml:lang="en">
<link href="https://datatracker.ietf.org/doc/draft-ietf-mmusic-rid-15" rel="pr
<?rfc toc="yes"?> ev"/>
<?rfc sortrefs="yes"?> <link href="https://dx.doi.org/10.17487/rfc8851" rel="alternate"/>
<?rfc symrefs="yes"?> <link href="urn:issn:2070-1721" rel="alternate"/>
<rfc ipr="trust200902" docName="draft-ietf-mmusic-rid-15" category="std" updates
="4855">
<front> <front>
<title abbrev="RTP Restrictions">RTP Payload Format Restrictions</title> <title abbrev="RTP Restrictions">RTP Payload Format Restrictions</title>
<seriesInfo name="RFC" value="8851" stream="IETF"/>
<author initials="A.B." surname="Roach (Editor)" fullname="Adam Roach"> <author initials="A.B." surname="Roach" fullname="Adam Roach" role="editor">
<organization>Mozilla</organization> <organization showOnFrontPage="true">Mozilla</organization>
<address> <address>
<email>adam@nostrum.com</email> <email>adam@nostrum.com</email>
</address> </address>
</author> </author>
<date month="01" year="2021"/>
<date year="2018" month="May" day="15"/> <keyword>WebRTC</keyword>
<keyword>Multiplexing</keyword>
<abstract> <abstract pn="section-abstract">
<t indent="0" pn="section-abstract-1">In this specification, we define a f
<t>In this specification, we define a framework for specifying restrictions ramework for specifying restrictions
on RTP streams in the Session Description Protocol. on RTP streams in the Session Description Protocol (SDP).
This framework defines a new “rid” (“restriction identifier”) SDP attribute to u This framework defines a new "rid" ("restriction identifier") SDP attribute to
nambiguously unambiguously identify the RTP streams within an RTP session and restrict the
identify the RTP Streams within an RTP Session and restrict the streams’ payload streams' payload format parameters in a codec-agnostic way beyond what is
format parameters in a codec-agnostic way beyond what is provided with the provided with the regular payload types.</t>
regular Payload Types.</t> <t indent="0" pn="section-abstract-2">This specification updates RFC 4855
to give additional guidance on choice of
<t>This specification updates RFC4855 to give additional guidance on choice of Format Parameter (fmtp) names and their relation to the restrictions
Format Parameter (fmtp) names, and on their relation to the restrictions
defined by this document.</t> defined by this document.</t>
</abstract> </abstract>
<boilerplate>
<section anchor="status-of-memo" numbered="false" removeInRFC="false" toc=
"exclude" pn="section-boilerplate.1">
<name slugifiedName="name-status-of-this-memo">Status of This Memo</name
>
<t indent="0" pn="section-boilerplate.1-1">
This is an Internet Standards Track document.
</t>
<t indent="0" pn="section-boilerplate.1-2">
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by
the Internet Engineering Steering Group (IESG). Further
information on Internet Standards is available in Section 2 of
RFC 7841.
</t>
<t indent="0" pn="section-boilerplate.1-3">
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
<eref target="https://www.rfc-editor.org/info/rfc8851" brackets="non
e"/>.
</t>
</section>
<section anchor="copyright" numbered="false" removeInRFC="false" toc="excl
ude" pn="section-boilerplate.2">
<name slugifiedName="name-copyright-notice">Copyright Notice</name>
<t indent="0" pn="section-boilerplate.2-1">
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
</t>
<t indent="0" pn="section-boilerplate.2-2">
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(<eref target="https://trustee.ietf.org/license-info" brackets="none
"/>) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.
</t>
</section>
</boilerplate>
<toc>
<section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" p
n="section-toc.1">
<name slugifiedName="name-table-of-contents">Table of Contents</name>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-to
c.1-1">
<li pn="section-toc.1-1.1">
<t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref der
ivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref
derivedContent="" format="title" sectionFormat="of" target="name-terminology">T
erminology</xref></t>
</li>
<li pn="section-toc.1-1.2">
<t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref der
ivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref
derivedContent="" format="title" sectionFormat="of" target="name-introduction">
Introduction</xref></t>
</li>
<li pn="section-toc.1-1.3">
<t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref der
ivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref
derivedContent="" format="title" sectionFormat="of" target="name-key-words-for-
requirements">Key Words for Requirements</xref></t>
</li>
<li pn="section-toc.1-1.4">
<t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" form
at="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-sdp-arid-media-level-attrib">SDP "
a=rid" Media Level Attribute</xref></t>
</li>
<li pn="section-toc.1-1.5">
<t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" form
at="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-arid-restrictions">"a=rid" Restric
tions</xref></t>
</li>
<li pn="section-toc.1-1.6">
<t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" form
at="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-sdp-offer-answer-procedures">SDP O
ffer/Answer Procedures</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.6.2">
<li pn="section-toc.1-1.6.2.1">
<t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent=
"6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-generating-the-initial
-sdp-">Generating the Initial SDP Offer</xref></t>
</li>
<li pn="section-toc.1-1.6.2.2">
<t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent=
"6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-answerer-processing-th
e-sdp">Answerer Processing the SDP Offer</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se
ction-toc.1-1.6.2.2.2">
<li pn="section-toc.1-1.6.2.2.2.1">
<t indent="0" pn="section-toc.1-1.6.2.2.2.1.1"><xref derived
Content="6.2.1" format="counter" sectionFormat="of" target="section-6.2.1"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-arid-unawa
re-answerer">"a=rid"-Unaware Answerer</xref></t>
</li>
<li pn="section-toc.1-1.6.2.2.2.2">
<t indent="0" pn="section-toc.1-1.6.2.2.2.2.1"><xref derived
Content="6.2.2" format="counter" sectionFormat="of" target="section-6.2.2"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-arid-aware
-answerer">"a=rid"-Aware Answerer</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.6.2.3">
<t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent=
"6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-generating-the-sdp-ans
wer">Generating the SDP Answer</xref></t>
</li>
<li pn="section-toc.1-1.6.2.4">
<t indent="0" pn="section-toc.1-1.6.2.4.1"><xref derivedContent=
"6.4" format="counter" sectionFormat="of" target="section-6.4"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-offerer-processing-of-
the-s">Offerer Processing of the SDP Answer</xref></t>
</li>
<li pn="section-toc.1-1.6.2.5">
<t indent="0" pn="section-toc.1-1.6.2.5.1"><xref derivedContent=
"6.5" format="counter" sectionFormat="of" target="section-6.5"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-modifying-the-session"
>Modifying the Session</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.7">
<t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" form
at="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-use-with-declarative-sdp">Use with
Declarative SDP</xref></t>
</li>
<li pn="section-toc.1-1.8">
<t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" form
at="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-interaction-with-other-tech">Inter
action with Other Techniques</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.8.2">
<li pn="section-toc.1-1.8.2.1">
<t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent=
"8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-interaction-with-vp8-f
ormat">Interaction with VP8 Format Parameters</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se
ction-toc.1-1.8.2.1.2">
<li pn="section-toc.1-1.8.2.1.2.1">
<t indent="0" pn="section-toc.1-1.8.2.1.2.1.1"><xref derived
Content="8.1.1" format="counter" sectionFormat="of" target="section-8.1.1"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-max-fr-max
imum-frame-rate">max-fr - Maximum Frame Rate</xref></t>
</li>
<li pn="section-toc.1-1.8.2.1.2.2">
<t indent="0" pn="section-toc.1-1.8.2.1.2.2.1"><xref derived
Content="8.1.2" format="counter" sectionFormat="of" target="section-8.1.2"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-max-fs-max
imum-frame-size-i">max-fs - Maximum Frame Size, in VP8 Macroblocks</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.8.2.2">
<t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent=
"8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-interaction-with-h264-
forma">Interaction with H.264 Format Parameters</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se
ction-toc.1-1.8.2.2.2">
<li pn="section-toc.1-1.8.2.2.2.1">
<t indent="0" pn="section-toc.1-1.8.2.2.2.1.1"><xref derived
Content="8.2.1" format="counter" sectionFormat="of" target="section-8.2.1"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-profile-le
vel-id-and-max-re">profile-level-id and max-recv-level - Negotiated Subprofile</
xref></t>
</li>
<li pn="section-toc.1-1.8.2.2.2.2">
<t indent="0" pn="section-toc.1-1.8.2.2.2.2.1"><xref derived
Content="8.2.2" format="counter" sectionFormat="of" target="section-8.2.2"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-max-br-max
br-maximum-video-">max-br / MaxBR - Maximum Video Bitrate</xref></t>
</li>
<li pn="section-toc.1-1.8.2.2.2.3">
<t indent="0" pn="section-toc.1-1.8.2.2.2.3.1"><xref derived
Content="8.2.3" format="counter" sectionFormat="of" target="section-8.2.3"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-max-fs-max
fs-maximum-frame-">max-fs / MaxFS - Maximum Frame Size, in H.264 Macroblocks</xr
ef></t>
</li>
<li pn="section-toc.1-1.8.2.2.2.4">
<t indent="0" pn="section-toc.1-1.8.2.2.2.4.1"><xref derived
Content="8.2.4" format="counter" sectionFormat="of" target="section-8.2.4"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-max-mbps-m
axmbps-maximum-ma">max-mbps / MaxMBPS - Maximum Macroblock Processing Rate</xref
></t>
</li>
<li pn="section-toc.1-1.8.2.2.2.5">
<t indent="0" pn="section-toc.1-1.8.2.2.2.5.1"><xref derived
Content="8.2.5" format="counter" sectionFormat="of" target="section-8.2.5"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-max-smbps-
maximum-decoded-p">max-smbps - Maximum Decoded Picture Buffer</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.8.2.3">
<t indent="0" pn="section-toc.1-1.8.2.3.1"><xref derivedContent=
"8.3" format="counter" sectionFormat="of" target="section-8.3"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-redundancy-formats-and
-payl">Redundancy Formats and Payload Type Restrictions</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.9">
<t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" form
at="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-format-parameters-for-futur">Forma
t Parameters for Future Payloads</xref></t>
</li>
<li pn="section-toc.1-1.10">
<t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" fo
rmat="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-formal-grammar">Formal Grammar</
xref></t>
</li>
<li pn="section-toc.1-1.11">
<t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" fo
rmat="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-sdp-examples">SDP Examples</xref
></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.11.2">
<li pn="section-toc.1-1.11.2.1">
<t indent="0" pn="section-toc.1-1.11.2.1.1"><xref derivedContent
="11.1" format="counter" sectionFormat="of" target="section-11.1"/>.  <xref deri
vedContent="" format="title" sectionFormat="of" target="name-many-bundled-stream
s-using-">Many Bundled Streams Using Many Codecs</xref></t>
</li>
<li pn="section-toc.1-1.11.2.2">
<t indent="0" pn="section-toc.1-1.11.2.2.1"><xref derivedContent
="11.2" format="counter" sectionFormat="of" target="section-11.2"/>.  <xref deri
vedContent="" format="title" sectionFormat="of" target="name-scalable-layers">Sc
alable Layers</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.12">
<t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="12" fo
rmat="counter" sectionFormat="of" target="section-12"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-iana-considerations">IANA Consid
erations</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.12.2">
<li pn="section-toc.1-1.12.2.1">
<t indent="0" pn="section-toc.1-1.12.2.1.1"><xref derivedContent
="12.1" format="counter" sectionFormat="of" target="section-12.1"/>.  <xref deri
vedContent="" format="title" sectionFormat="of" target="name-new-sdp-media-level
-attribu">New SDP Media-Level Attribute</xref></t>
</li>
<li pn="section-toc.1-1.12.2.2">
<t indent="0" pn="section-toc.1-1.12.2.2.1"><xref derivedContent
="12.2" format="counter" sectionFormat="of" target="section-12.2"/>.  <xref deri
vedContent="" format="title" sectionFormat="of" target="name-registry-for-rid-le
vel-para">Registry for RID-Level Parameters</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.13">
<t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="13" fo
rmat="counter" sectionFormat="of" target="section-13"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-security-considerations">Securit
y Considerations</xref></t>
</li>
<li pn="section-toc.1-1.14">
<t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="14" fo
rmat="counter" sectionFormat="of" target="section-14"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-references">References</xref></t
>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.14.2">
<li pn="section-toc.1-1.14.2.1">
<t indent="0" pn="section-toc.1-1.14.2.1.1"><xref derivedContent
="14.1" format="counter" sectionFormat="of" target="section-14.1"/>.  <xref deri
vedContent="" format="title" sectionFormat="of" target="name-normative-reference
s">Normative References</xref></t>
</li>
<li pn="section-toc.1-1.14.2.2">
<t indent="0" pn="section-toc.1-1.14.2.2.1"><xref derivedContent
="14.2" format="counter" sectionFormat="of" target="section-14.2"/>.  <xref deri
vedContent="" format="title" sectionFormat="of" target="name-informative-referen
ces">Informative References</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.15">
<t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="" form
at="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="
" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgeme
nts</xref></t>
</li>
<li pn="section-toc.1-1.16">
<t indent="0" pn="section-toc.1-1.16.1"><xref derivedContent="" form
at="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="
" format="title" sectionFormat="of" target="name-contributors">Contributors</xre
f></t>
</li>
<li pn="section-toc.1-1.17">
<t indent="0" pn="section-toc.1-1.17.1"><xref derivedContent="" form
at="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="
" format="title" sectionFormat="of" target="name-authors-address">Author's Addre
ss</xref></t>
</li>
</ul>
</section>
</toc>
</front> </front>
<middle> <middle>
<section anchor="terminology" numbered="true" toc="include" removeInRFC="fal
<section anchor="terminology" title="Terminology"> se" pn="section-1">
<name slugifiedName="name-terminology">Terminology</name>
<t>The terms “Source RTP Stream”, “Endpoint”, “RTP Session”, and “RTP Stream” <t indent="0" pn="section-1-1">The terms "source RTP stream", "endpoint",
are used as defined in <xref target="RFC7656"/>.</t> "RTP session", and "RTP stream"
are used as defined in <xref target="RFC7656" format="default" sectionFormat="of
<t><xref target="RFC4566"/> and <xref target="RFC3264"/> terminology is also use " derivedContent="RFC7656"/>.</t>
d where appropriate.</t> <t indent="0" pn="section-1-2"><xref target="RFC4566" format="default" sec
tionFormat="of" derivedContent="RFC4566"/> and <xref target="RFC3264" format="de
</section> fault" sectionFormat="of" derivedContent="RFC3264"/> terminology is also used wh
<section anchor="sec-intro" title="Introduction"> ere appropriate.</t>
</section>
<t>The Payload Type (PT) field in RTP provides a mapping between the RTP payload <section anchor="sec-intro" numbered="true" toc="include" removeInRFC="false
format and the associated SDP media description. The SDP rtpmap and/or fmtp " pn="section-2">
attributes are used, for a given PT, to describe the properties of <name slugifiedName="name-introduction">Introduction</name>
<t indent="0" pn="section-2-1">The payload type (PT) field in RTP provides
a mapping between the RTP payload
format and the associated SDP media description. For a given PT, the SDP
rtpmap and/or fmtp attributes are used to describe the properties of
the media that is carried in the RTP payload.</t> the media that is carried in the RTP payload.</t>
<t indent="0" pn="section-2-2">Recent advances in standards have given ris
<t>Recent advances in standards have given rise to rich e to rich
multimedia applications requiring support for multiple RTP Streams within an multimedia applications requiring support for either multiple RTP streams within
RTP session <xref target="I-D.ietf-mmusic-sdp-bundle-negotiation"/>, an
<xref target="I-D.ietf-mmusic-sdp-simulcast"/> or having to support a large numb RTP session <xref target="RFC8843" format="default" sectionFormat="of" derivedCo
er of codecs. ntent="RFC8843"/> <xref target="RFC8853" format="default" sectionFormat="of" der
ivedContent="RFC8853"/> or a
large number of codecs.
These demands have unearthed challenges inherent with:</t> These demands have unearthed challenges inherent with:</t>
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2-3
<t><list style="symbols"> ">
<t>The restricted RTP PT space in specifying the various payload <li pn="section-2-3.1">The restricted RTP PT space in specifying the var
configurations,</t> ious payload
<t>The codec-specific constructs for the payload formats in SDP,</t> configurations</li>
<t>Missing or underspecified payload format parameters,</t> <li pn="section-2-3.2">The codec-specific constructs for the payload for
<t>Overloading of PTs to indicate not just codec configurations, but mats in SDP</li>
individual streams within an RTP session.</t> <li pn="section-2-3.3">Missing or underspecified payload format paramete
</list></t> rs</li>
<li pn="section-2-3.4">Overloading of PTs to indicate not just codec con
<t>To expand on these points: <xref target="RFC3550"/> assigns 7 bits for the PT figurations, but
in the RTP individual streams within an RTP session</li>
header. However, the assignment of static mapping of RTP payload type numbers </ul>
to payload formats and multiplexing of RTP with other protocols (such as RTCP) <t indent="0" pn="section-2-4">To expand on these points: <xref target="RF
could result in a limited number of payload type numbers available for C3550" format="default" sectionFormat="of" derivedContent="RFC3550"/>
application usage. In scenarios where the number of possible RTP payload assigns 7 bits for the PT in the RTP header. However, the assignment of
configurations exceeds the available PT space within an RTP Session, there is static mapping of RTP payload type numbers to payload formats and
a need for a way to represent the additional restrictions on payload configurati multiplexing of RTP with other protocols (such as the RTP Control
ons Protocol (RTCP)) could result in a limited number of payload type
and to effectively map an RTP Stream to its corresponding restrictions. This numbers available for application usage. In scenarios where the number
issue is exacerbated by the increase in techniques such as simulcast and of possible RTP payload configurations exceeds the available PT space
layered codecs – which introduce additional streams into RTP Sessions.</t> within an RTP session, there is a need for a way to represent the
additional restrictions on payload configurations and effectively map an
<t>This specification defines a new SDP framework for restricting Source RTP RTP stream to its corresponding restrictions. This issue is exacerbated
Streams (Section 2.1.10 <xref target="RFC7656"/>), along with by the increase in techniques -- such as simulcast and layered codecs --
that introduce additional streams into RTP sessions.</t>
<t indent="0" pn="section-2-5">This specification defines a new SDP framew
ork for restricting source RTP
streams (Section 2.1.10 of <xref target="RFC7656" format="default" sectionFormat
="of" derivedContent="RFC7656"/>), along with
the SDP attributes to restrict payload formats in a codec-agnostic way. the SDP attributes to restrict payload formats in a codec-agnostic way.
This framework can be thought of as a complementary extension to the way This framework can be thought of as a complementary extension to the way
the media format parameters are specified in SDP today, via the “a=fmtp” the media format parameters are specified in SDP today, via the "a=fmtp"
attribute.</t> attribute.</t>
<t indent="0" pn="section-2-6">The additional restrictions on individual s
<t>The additional restrictions on individual streams are indicated with a new treams are indicated with a new
“a=rid” (“restriction identifier”) SDP attribute. Note that the restrictions com "a=rid" ("restriction identifier") SDP attribute. Note that the restrictions com
municated via this municated via this
attribute only serve to further restrict the parameters that are established attribute only serve to further restrict the parameters that are established
on a PT format. They do not relax any restrictions imposed by other mechanisms.< /t> on a PT format. They do not relax any restrictions imposed by other mechanisms.< /t>
<t indent="0" pn="section-2-7">This specification makes use of the RTP Str
<t>This specification makes use of the RTP Stream Identifier Source Description eam Identifier Source Description
(SDES) RTCP item defined in <xref target="I-D.ietf-avtext-rid"/> to provide cor (SDES) RTCP item defined in <xref target="RFC8852" format="default" sectionForma
relation t="of" derivedContent="RFC8852"/> to provide correlation
between the RTP Packets and their format specification in the SDP.</t> between the RTP packets and their format specification in the SDP.</t>
<t indent="0" pn="section-2-8">As described in <xref target="sec-rid_unawa
<t>As described in <xref target="sec-rid_unaware"/>, this mechanism achieves bac re" format="default" sectionFormat="of" derivedContent="Section 6.2.1"/>, this m
kwards echanism achieves backwards
compatibility via the normal SDP processing rules, which require unknown a= compatibility via the normal SDP processing rules, which require unknown "a="
lines to be ignored. This means that implementations need to be prepared lines to be ignored. This means that implementations need to be prepared
to handle successful offers and answers from other implementations that to handle successful offers and answers from other implementations that
neither indicate nor honor the restrictions requested by this mechanism.</t> neither indicate nor honor the restrictions requested by this mechanism.</t>
<t indent="0" pn="section-2-9">Further, as described in <xref target="sec-
<t>Further, as described in <xref target="sec-sdp_o_a"/> and its subsections, th sdp_o_a" format="default" sectionFormat="of" derivedContent="Section 6"/> and it
is mechanism s subsections, this mechanism
achieves extensibility by: (a) having offerers include all supported achieves extensibility by: (a) having offerers include all supported
restrictions in their offer, and (b) having answerers ignore “a=rid” lines that restrictions in their offer, and (b) having answerers ignore "a=rid" lines that
specify unknown restrictions.</t> specify unknown restrictions.</t>
</section>
</section> <section anchor="key-words-for-requirements" numbered="true" toc="include" r
<section anchor="key-words-for-requirements" title="Key Words for Requirements"> emoveInRFC="false" pn="section-3">
<name slugifiedName="name-key-words-for-requirements">Key Words for Requir
<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL ements</name>
NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, <t indent="0" pn="section-3-1">
“MAY”, and “OPTIONAL” in this document are to be interpreted as The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOUL
only when, they D</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>N
appear in all capitals, as shown here.</t> OT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to
</section> be interpreted as
<section anchor="sec-rid_attribute" title="SDP “a=rid” Media Level Attribute"> described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="o
f" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFor
<t>This section defines new SDP media-level attribute <xref target="RFC4566"/>, mat="of" derivedContent="RFC8174"/>
“a=rid”, when, and only when, they appear in all capitals, as shown here.
</t>
</section>
<section anchor="sec-rid_attribute" numbered="true" toc="include" removeInRF
C="false" pn="section-4">
<name slugifiedName="name-sdp-arid-media-level-attrib">SDP "a=rid" Media L
evel Attribute</name>
<t indent="0" pn="section-4-1">This section defines new SDP media-level at
tribute <xref target="RFC4566" format="default" sectionFormat="of" derivedConten
t="RFC4566"/>, "a=rid",
used to communicate a set of restrictions to be used to communicate a set of restrictions to be
applied to an identified RTP Stream. Roughly speaking, this attribute takes the applied to an identified RTP stream. Roughly speaking, this attribute takes
following form (see <xref target="sec-abnf"/> for a formal definition).</t> the following form (see <xref target="sec-abnf" format="default" sectionFormat="
of" derivedContent="Section 10"/> for a
<figure><artwork><![CDATA[ formal definition):</t>
a=rid:<rid-id> <direction> [pt=<fmt-list>;]<restriction>=<value>... <sourcecode type="sdp" markers="false" pn="section-4-2">
a=rid:&lt;rid-id&gt; &lt;direction&gt; [pt=&lt;fmt-list&gt;;]&lt;restriction&gt;
]]></artwork></figure> =&lt;value&gt;...
</sourcecode>
<t>An “a=rid” SDP media attribute specifies restrictions defining a unique <t indent="0" pn="section-4-3">An "a=rid" SDP media attribute specifies re
RTP payload configuration identified via the “rid-id” field. This strictions defining a unique
value binds the restriction to the RTP Stream identified by its RTP RTP payload configuration identified via the "rid-id" field. This
Stream Identifier Source Description (SDES) item <xref target="I-D.ietf-avtext-r value binds the restriction to the RTP stream identified by its RTP
id"/>. Stream Identifier Source Description (SDES) item <xref target="RFC8852" format="
Implementations that use the “a=rid” parameter in SDP MUST support default" sectionFormat="of" derivedContent="RFC8852"/>.
the RtpStreamId SDES item described in <xref target="I-D.ietf-avtext-rid"/>. Suc Implementations that use the "a=rid" parameter in SDP <bcp14>MUST</bcp14> suppor
h t
implementations MUST send that SDES item for all streams in an SDP media descrip the RtpStreamId SDES item described in <xref target="RFC8852" format="default" s
tion ectionFormat="of" derivedContent="RFC8852"/>. Such
(“m=”) that have “a=rid” lines remaining after applying the rules in implementations <bcp14>MUST</bcp14> send that SDES item for all streams in an SD
<xref target="sec-sdp_o_a"/> and its subsections.</t> P media description
("m=") that have "a=rid" lines remaining after applying the rules in
<t>Implementations that use the “a=rid” parameter in SDP and that <xref target="sec-sdp_o_a" format="default" sectionFormat="of" derivedContent="S
make use of redundancy RTP streams <xref target="RFC7656"/>, e.g. RTP RTX ection 6"/> and its subsections.</t>
<xref target="RFC4588"/> or FEC <xref target="RFC5109"/>, <t indent="0" pn="section-4-4">Implementations that use the "a=rid" parame
for any of the source RTP streams that have “a=rid” lines remaining ter in SDP and make use of
after applying the rules in <xref target="sec-sdp_o_a"/> and its subsections, MU redundancy RTP streams <xref target="RFC7656" format="default" sectionFormat="of
ST " derivedContent="RFC7656"/> -- e.g., RTP RTX
<xref target="RFC4588" format="default" sectionFormat="of" derivedContent="RFC45
88"/> or Forward Error Correction (FEC) <xref target="RFC5109" format="default"
sectionFormat="of" derivedContent="RFC5109"/> -- for any of the
source RTP streams that have "a=rid" lines remaining
after applying the rules in <xref target="sec-sdp_o_a" format="default" sectionF
ormat="of" derivedContent="Section 6"/> and its subsections <bcp14>MUST</bcp14>
support the RepairedRtpStreamId SDES item described in support the RepairedRtpStreamId SDES item described in
<xref target="I-D.ietf-avtext-rid"/> for those redundancy RTP streams. RepairedR <xref target="RFC8852" format="default" sectionFormat="of" derivedContent="RFC88
tpStreamId 52"/> for those redundancy RTP streams. RepairedRtpStreamId
MUST be used for redundancy RTP streams to which it can be applied. <bcp14>MUST</bcp14> be used for redundancy RTP streams to which it can be applie
d.
Use of RepairedRtpStreamId is not applicable for Use of RepairedRtpStreamId is not applicable for
redundancy formats that directly associate RTP streams redundancy formats that directly associate RTP streams
through shared SSRCs (for example <xref target="I-D.ietf-payload-flexible-fec-sc heme"/>) through shared synchronization sources (SSRCs) -- for example, <xref target="RFC 8627" format="default" sectionFormat="of" derivedContent="RFC8627"/> --
or other cases that RepairedRtpStreamId cannot support, such as referencing or other cases that RepairedRtpStreamId cannot support, such as referencing
multiple source streams.</t> multiple source streams.</t>
<t indent="0" pn="section-4-5">RepairedRtpStreamId is used to provide the
<t>RepairedRtpStreamId is used to provide the binding between the redundancy RTP binding between the redundancy RTP
stream and its source RTP stream, by setting the RepairedRtpStreamId value for stream and its source RTP stream by setting the RepairedRtpStreamId value for
the redundancy RTP stream to the RtpStreamId value of the source RTP stream. the redundancy RTP stream to the RtpStreamId value of the source RTP stream.
The redundancy RTP stream MAY (but need not) have an “a=rid” line of its own, The redundancy RTP stream <bcp14>MAY</bcp14> (but need not) have an "a=rid" line of its own,
in which case the RtpStreamId SDES item value will be different from the in which case the RtpStreamId SDES item value will be different from the
corresponding source RTP stream.</t> corresponding source RTP stream.</t>
<t indent="0" pn="section-4-6">It is important to note that this indirecti
<t>It is important to note that this indirection may result in the temporary on may result in the temporary
inability to correctly associate source and redundancy data when the SSRC inability to correctly associate source and redundancy data when the SSRC
associated with the RtpStreamId or RepairedRtpStreamId is dynamically changed associated with the RtpStreamId or RepairedRtpStreamId is dynamically changed
during the RTP session. This can be avoided if all RTP packets, source and during the RTP session. This can be avoided if all RTP packets, source and
repair, after the change include their RtpStreamId or RepairedRtpStreamId, repair, include their RtpStreamId or RepairedRtpStreamId,
respectively. To maximize the probability of reception and utility of respectively, after the change. To maximize the probability of reception and ut
ility of
redundancy information after such a change, all the source packets referenced redundancy information after such a change, all the source packets referenced
by the first several repair packets SHOULD include such information. It is by the first several repair packets <bcp14>SHOULD</bcp14> include such informati
RECOMMENDED that the number of such packets is large enough to give a high on. It is
probability of actual updated association. Section 4.1.1 of <xref target="RFC828 <bcp14>RECOMMENDED</bcp14> that the number of such packets is large enough to gi
5"/> ve a high
probability of actual updated association. Section 4.1.1 of <xref target="RFC828
5" format="default" sectionFormat="of" derivedContent="RFC8285"/>
provides relevant guidance for RTP header extension transmission provides relevant guidance for RTP header extension transmission
considerations. Alternatively, to avoid this issue, redundancy mechanisms considerations. Alternatively, to avoid this issue, redundancy mechanisms
that directly reference its source data may be used, such as that directly reference its source data may be used, such as
<xref target="I-D.ietf-payload-flexible-fec-scheme"/>.</t> <xref target="RFC8627" format="default" sectionFormat="of" derivedContent="RFC86
27"/>.</t>
<t>The “direction” field identifies the direction of the RTP Stream packets to <t indent="0" pn="section-4-7">The "direction" field identifies the direct
which the indicated restrictions are applied. It may be either “send” or ion of the RTP stream packets to
“recv”. Note that these restriction directions are expressed independently of which the indicated restrictions are applied. It may be either "send" or
any “inactive”, “sendonly”, “recvonly”, or “sendrecv” attributes associated "recv". Note that these restriction directions are expressed independently of
with the media section. It is, for example, valid to indicate “recv” any "inactive", "sendonly", "recvonly", or "sendrecv" attributes associated
restrictions on a “sendonly” stream; those restrictions would apply if, at a with the media section. It is, for example, valid to indicate "recv"
future point in time, the stream were changed to “sendrecv” or “recvonly”.</t> restrictions on a "sendonly" stream; those restrictions would apply if, at a
future point in time, the stream were changed to "sendrecv" or "recvonly".</t>
<t>The optional “pt=&lt;fmt-list&gt;” lists one or more PT values that can be us <t indent="0" pn="section-4-8">The optional "pt=&lt;fmt-list&gt;" lists on
ed e or more PT values that can be used
in the associated RTP Stream. If the “a=rid” attribute contains in the associated RTP stream. If the "a=rid" attribute contains
no “pt”, then any of the PT values specified in the corresponding “m=” no "pt", then any of the PT values specified in the corresponding "m="
line may be used.</t> line may be used.</t>
<t indent="0" pn="section-4-9">The list of zero or more codec-agnostic res
<t>The list of zero or more codec-agnostic restrictions trictions
(<xref target="sec-rid_level_restrictions"/>) describe the restrictions that the (<xref target="sec-rid_level_restrictions" format="default" sectionFormat="of" d
corresponding RTP Stream will conform to.</t> erivedContent="Section 5"/>) describes the restrictions that the
corresponding RTP stream will conform to.</t>
<t>This framework MAY be used in combination with the “a=fmtp” SDP attribute <t indent="0" pn="section-4-10">This framework <bcp14>MAY</bcp14> be used
for describing the media format parameters for a given RTP Payload Type. In in combination with the "a=fmtp" SDP attribute
such scenarios, the “a=rid” restrictions (<xref target="sec-rid_level_restrictio for describing the media format parameters for a given RTP payload type. In
ns"/>) such scenarios, the "a=rid" restrictions (<xref target="sec-rid_level_restrictio
further restrict the equivalent “a=fmtp” attributes.</t> ns" format="default" sectionFormat="of" derivedContent="Section 5"/>)
further restrict the equivalent "a=fmtp" attributes.</t>
<t>A given SDP media description MAY have zero or more “a=rid” lines describing <t indent="0" pn="section-4-11">A given SDP media description <bcp14>MAY</
various possible RTP payload configurations. A given “rid-id” MUST NOT bcp14> have zero or more "a=rid" lines describing
be repeated in a given media description (“m=” section).</t> various possible RTP payload configurations. A given "rid-id" <bcp14>MUST NOT</b
cp14>
<t>The “a=rid” media attribute MAY be used for any RTP-based media transport. I be repeated in a given media description ("m=" section).</t>
t <t indent="0" pn="section-4-12">The "a=rid" media attribute <bcp14>MAY</bc
p14> be used for any RTP-based media transport. It
is not defined for other transports, although other documents may extend its is not defined for other transports, although other documents may extend its
semantics for such transports.</t> semantics for such transports.</t>
<t indent="0" pn="section-4-13">Though the restrictions specified by the "
<t>Though the restrictions specified by the “rid” restrictions follow a rid" restrictions follow a
syntax similar to session-level and media-level parameters, they are defined syntax similar to session-level and media-level parameters, they are defined
independently. All “rid” restrictions MUST be registered with IANA, using independently. All "rid" restrictions <bcp14>MUST</bcp14> be registered with IA
the registry defined in <xref target="sec-iana"/>.</t> NA, using
the registry defined in <xref target="sec-iana" format="default" sectionFormat="
<t><xref target="sec-abnf"/> gives a formal Augmented Backus-Naur Form (ABNF) <x of" derivedContent="Section 12"/>.</t>
ref target="RFC5234"/> <t indent="0" pn="section-4-14"><xref target="sec-abnf" format="default" s
grammar for the “rid” attribute. The “a=rid” media attribute is not dependent ectionFormat="of" derivedContent="Section 10"/> gives a formal Augmented Backus-
Naur Form (ABNF) <xref target="RFC5234" format="default" sectionFormat="of" deri
vedContent="RFC5234"/>
grammar for the "rid" attribute. The "a=rid" media attribute is not dependent
on charset.</t> on charset.</t>
</section>
</section> <section anchor="sec-rid_level_restrictions" numbered="true" toc="include" r
<section anchor="sec-rid_level_restrictions" title="“a=rid” restrictions"> emoveInRFC="false" pn="section-5">
<name slugifiedName="name-arid-restrictions">"a=rid" Restrictions</name>
<t>This section defines the “a=rid” restrictions that can be used to restrict <t indent="0" pn="section-5-1">
the RTP payload encoding format in a codec-agnostic way.</t> This section defines the "a=rid" restrictions that can be used to restrict the
RTP payload encoding format in a codec-agnostic way. Please also see
<t>The following restrictions are intended to apply to video codecs in a the preceding section for a description of how the "pt" parameter is used.
</t>
<t indent="0" pn="section-5-2">The following restrictions are intended to
apply to video codecs in a
codec-independent fashion.</t> codec-independent fashion.</t>
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5-3
<t><list style="symbols"> ">
<t>max-width, for spatial resolution in pixels. In the case that stream <li pn="section-5-3.1">
orientation signaling is used to modify the intended display orientation, <strong>max-width</strong>, for spatial resolution in pixels. In the
this attribute refers to the width of the stream when a rotation of zero case that
degrees is encoded.</t> stream-orientation signaling is used to modify the intended display
<t>max-height, for spatial resolution in pixels. In the case that stream orientation, this attribute refers to the width of the stream when a
orientation signaling is used to modify the intended display orientation, rotation of zero degrees is encoded.</li>
<li pn="section-5-3.2">
<strong>max-height</strong>, for spatial resolution in pixels. In the
case that
stream-orientation signaling is used to modify the intended display
orientation,
this attribute refers to the height of the stream when a rotation of zero this attribute refers to the height of the stream when a rotation of zero
degrees is encoded.</t> degrees is encoded.</li>
<t>max-fps, for frame rate in frames per second. For encoders that do not use <li pn="section-5-3.3">
a fixed framerate for encoding, this value is used to restrict the minimum <strong>max-fps</strong>, for frame rate in frames per second. For en
coders that do not use
a fixed frame rate for encoding, this value is used to restrict the minimum
amount of time between frames: the time between any two consecutive frames amount of time between frames: the time between any two consecutive frames
SHOULD NOT be less than 1/max-fps seconds.</t> <bcp14>SHOULD NOT</bcp14> be less than 1/max-fps seconds.</li>
<t>max-fs, for frame size in pixels per frame. This is the product of frame <li pn="section-5-3.4">
width and frame height, in pixels, for rectangular frames.</t> <strong>max-fs</strong>, for frame size in pixels per frame. This is t
<t>max-br, for bit rate in bits per second. The restriction applies to the he product of frame
media payload only, and does not include overhead introduced by other layers width and frame height, in pixels, for rectangular frames.</li>
<li pn="section-5-3.5">
<strong>max-br</strong>, for bitrate in bits per second. The restrict
ion applies to the
media payload only and does not include overhead introduced by other layers
(e.g., RTP, UDP, IP, or Ethernet). The exact means of keeping within this (e.g., RTP, UDP, IP, or Ethernet). The exact means of keeping within this
limit are left up to the implementation, and instantaneous excursions limit are left up to the implementation, and instantaneous excursions
outside the limit are permissible. For any given one-second sliding window, outside the limit are permissible. For any given one-second sliding window,
however, the total number of bits in the payload portion of RTP SHOULD NOT however, the total number of bits in the payload portion of RTP <bcp14>SHOULD NO
exceed the value specified in “max-br.”</t> T</bcp14>
<t>max-pps, for pixel rate in pixels per second. This value SHOULD be handled exceed the value specified in "max-br."</li>
<li pn="section-5-3.6">
<strong>max-pps</strong>, for pixel rate in pixels per second. This v
alue <bcp14>SHOULD</bcp14> be handled
identically to max-fps, after performing the following conversion: max-fps = identically to max-fps, after performing the following conversion: max-fps =
max-pps / (width * height). If the stream resolution changes, this value is max-pps / (width * height). If the stream resolution changes, this value is
recalculated. Due to this recalculation, excursions outside the specified recalculated. Due to this recalculation, excursions outside the specified
maximum are possible near resolution change boundaries.</t> maximum are possible near resolution-change boundaries.</li>
<t>max-bpp, for maximum number of bits per pixel, calculated as an average of <li pn="section-5-3.7">
<strong>max-bpp</strong>, for maximum number of bits per pixel, calcul
ated as an average of
all samples of any given coded picture. This is expressed as all samples of any given coded picture. This is expressed as
a floating point value, with an allowed range of 0.0001 to 48.0. These a floating point value, with an allowed range of 0.0001 to 48.0. These
values MUST NOT be encoded with more than four digits to the right of the values <bcp14>MUST NOT</bcp14> be encoded with more than four digits to the righ
decimal point.</t> t of the
<t>depend, to identify other streams that the stream depends on. The value decimal point.</li>
<li pn="section-5-3.8">
<strong>depend</strong>, to identify other streams that the stream dep
ends on. The value
is a comma-separated list of rid-ids. These rid-ids identify RTP streams is a comma-separated list of rid-ids. These rid-ids identify RTP streams
that this stream depends on in order to allow for proper interpretation. that this stream depends on in order to allow for proper interpretation.
The mechanism defined in this document allows for such dependencies The mechanism defined in this document allows for such dependencies
to be expressed only when the streams are in the same media section.</t> to be expressed only when the streams are in the same media section.</li>
</list></t> </ul>
<t indent="0" pn="section-5-4">All the restrictions are optional and subje
<t>All the restrictions are optional and are subject to negotiation based on the ct to negotiation based on the
SDP Offer/Answer rules described in <xref target="sec-sdp_o_a"/>.</t> SDP offer/answer rules described in <xref target="sec-sdp_o_a" format="default"
sectionFormat="of" derivedContent="Section 6"/>.</t>
<t>This list is intended to be an initial set of restrictions. Future documents <t indent="0" pn="section-5-5">This list is intended to be an initial set
may define additional restrictions; see <xref target="sec-iana_rid"/>. While th of restrictions. Future documents
is document may define additional restrictions; see <xref target="sec-iana_rid" format="defa
ult" sectionFormat="of" derivedContent="Section 12.2"/>. While this document
does not define restrictions for audio codecs or any media types other than does not define restrictions for audio codecs or any media types other than
video, there is no reason such video, there is no reason such
restrictions should be precluded from definition and registration by other restrictions should be precluded from definition and registration by other
documents.</t> documents.</t>
<t indent="0" pn="section-5-6"><xref target="sec-abnf" format="default" se
<t><xref target="sec-abnf"/> provides formal Augmented Backus-Naur Form (ABNF) < ctionFormat="of" derivedContent="Section 10"/> provides formal Augmented Backus-
xref target="RFC5234"/> Naur Form (ABNF) <xref target="RFC5234" format="default" sectionFormat="of" deri
grammar for each of the “a=rid” restrictions defined in this section.</t> vedContent="RFC5234"/>
grammar for each of the "a=rid" restrictions defined in this section.</t>
</section> </section>
<section anchor="sec-sdp_o_a" title="SDP Offer/Answer Procedures"> <section anchor="sec-sdp_o_a" numbered="true" toc="include" removeInRFC="fal
se" pn="section-6">
<t>This section describes the SDP Offer/Answer <xref target="RFC3264"/> procedur <name slugifiedName="name-sdp-offer-answer-procedures">SDP Offer/Answer Pr
es when ocedures</name>
<t indent="0" pn="section-6-1">This section describes the SDP offer/answer
procedures <xref target="RFC3264" format="default" sectionFormat="of" derivedCo
ntent="RFC3264"/> when
using this framework.</t> using this framework.</t>
<t indent="0" pn="section-6-2">Note that "rid-id" values are only required
<t>Note that “rid-id” values are only required to be unique within a to be unique within a
media section (“m-line”); they do not necessarily need to be unique within an media section ("m=" line); they do not necessarily need to be unique within an
entire RTP session. In traditional usage, each media section is sent on its entire RTP session. In traditional usage, each media section is sent on its
own unique 5-tuple (that is: combination of sending address, sending port, own unique 5-tuple (that is: combination of sending address, sending port,
receiving address, receiving port, and transport protocol), which provides an receiving address, receiving port, and transport protocol), which provides an
unambiguous scope. Similarly, when using BUNDLE unambiguous scope.
<xref target="I-D.ietf-mmusic-sdp-bundle-negotiation"/>, MID values associate RT
P streams
uniquely to a single media description. When RID is used with the BUNDLE
mechanism, streams will be associated with both MID and RID SDES items.</t>
<section anchor="sec-gen_offer" title="Generating the Initial SDP Offer">
<t>For each RTP media description in the offer, the offerer MAY choose to includ Similarly, when using BUNDLE <xref target="RFC8843" format="default" sectionForm
e one at="of" derivedContent="RFC8843"/>,
or more “a=rid” lines to specify a configuration profile for the given set of Media Identification (MID) values associate RTP streams
RTP Payload Types.</t> uniquely to a single media description.
<t>In order to construct a given “a=rid” line, the offerer must follow these When restriction identifier (RID) is used with the BUNDLE
mechanism, streams will be associated with both MID and RID SDES items.</t>
<section anchor="sec-gen_offer" numbered="true" toc="include" removeInRFC=
"false" pn="section-6.1">
<name slugifiedName="name-generating-the-initial-sdp-">Generating the In
itial SDP Offer</name>
<t indent="0" pn="section-6.1-1">For each RTP media description in the o
ffer, the offerer <bcp14>MAY</bcp14> choose to include one
or more "a=rid" lines to specify a configuration profile for the given set of
RTP payload types.</t>
<t indent="0" pn="section-6.1-2">In order to construct a given "a=rid" l
ine, the offerer must follow these
steps:</t> steps:</t>
<ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-6.
<t><list style="numbers"> 1-3">
<t>It MUST generate a “rid-id” that is unique within a media <li pn="section-6.1-3.1" derivedCounter="1.">It <bcp14>MUST</bcp14> ge
description</t> nerate a "rid-id" that is unique within a media
<t>It MUST set the direction for the “rid-id” to one of description.</li>
“send” or “recv”</t> <li pn="section-6.1-3.2" derivedCounter="2.">It <bcp14>MUST</bcp14> se
<t>It MAY include a listing of SDP media formats (usually corresponding to RTP t the direction for the "rid-id" to one of
payload types) allowed to appear in the RTP Stream. Any Payload Types "send" or "recv".</li>
chosen MUST be a valid payload type for the media section (that is, it must <li pn="section-6.1-3.3" derivedCounter="3.">It <bcp14>MAY</bcp14> inc
be listed on the “m=” line). The order of the listed formats is lude a listing of SDP media formats (usually corresponding to RTP
payload types) allowed to appear in the RTP stream. Any payload type
chosen <bcp14>MUST</bcp14> be a valid payload type for the media section (that i
s, it must
be listed on the "m=" line). The order of the listed formats is
significant; the alternatives are listed from (left) most preferred to significant; the alternatives are listed from (left) most preferred to
(right) least preferred. When using RID, this preference overrides the (right) least preferred. When using RID, this preference overrides the
normal codec preference as expressed by format type ordering on the normal codec preference as expressed by format type ordering on the
“m=”-line, using regular SDP rules.</t> "m=" line, using regular SDP rules.</li>
<t>The Offerer then chooses zero or more “a=rid” restrictions <li pn="section-6.1-3.4" derivedCounter="4.">The offerer then chooses
(<xref target="sec-rid_level_restrictions"/>) to be applied to the RTP Stream, a zero or more "a=rid" restrictions
nd (<xref target="sec-rid_level_restrictions" format="default" sectionFormat="of" d
adds them to the “a=rid” line.</t> erivedContent="Section 5"/>) to be applied to the RTP stream and
<t>If the offerer wishes the answerer to have the ability to specify a adds them to the "a=rid" line.</li>
restriction, but does not wish to set a value itself, it includes the <li pn="section-6.1-3.5" derivedCounter="5.">If the offerer wishes the
name of the restriction in the “a=rid” line, but without any indicated answerer to have the ability to specify a
value.</t> restriction but does not wish to set a value itself, it includes the
</list></t> name of the restriction in the "a=rid" line, but without any indicated
value.</li>
<t>Note: If an “a=fmtp” attribute is also used to provide media-format-specific </ol>
parameters, then the “a=rid” restrictions will further restrict the <t indent="0" pn="section-6.1-4">Note: If an "a=fmtp" attribute is also
equivalent “a=fmtp” parameters for the given Payload Type for the specified used to provide media-format-specific
RTP Stream.</t> parameters, then the "a=rid" restrictions will further restrict the
equivalent "a=fmtp" parameters for the given payload type for the specified
<t>If a given codec would require an “a=fmtp” line when used without “a=rid” the RTP stream.</t>
n <t indent="0" pn="section-6.1-5">If a given codec would require an "a=fm
the offer MUST include a valid corresponding “a=fmtp” line even when using tp" line when used without "a=rid", then
“a=rid”.</t> the offer <bcp14>MUST</bcp14> include a valid corresponding "a=fmtp" line even w
hen using
</section> "a=rid".</t>
<section anchor="answerer-processing-the-sdp-offer" title="Answerer processing t </section>
he SDP Offer"> <section anchor="answerer-processing-the-sdp-offer" numbered="true" toc="i
nclude" removeInRFC="false" pn="section-6.2">
<section anchor="sec-rid_unaware" title="“a=rid”-unaware Answerer"> <name slugifiedName="name-answerer-processing-the-sdp">Answerer Processi
ng the SDP Offer</name>
<t>If the receiver doesn’t support the framework defined in this <section anchor="sec-rid_unaware" numbered="true" toc="include" removeIn
specification, the entire “a=rid” line is ignored following the standard RFC="false" pn="section-6.2.1">
<xref target="RFC3264"/> Offer/Answer rules.</t> <name slugifiedName="name-arid-unaware-answerer">"a=rid"-Unaware Answe
rer</name>
<t><xref target="sec-gen_offer"/> requires the offer to include a valid “a=fmtp” <t indent="0" pn="section-6.2.1-1">If the receiver doesn't support the
line framework defined in this
for any media formats that otherwise require it (in other words, the “a=rid” specification, the entire "a=rid" line is ignored following the standard
line cannot be used to replace “a=fmtp” configuration). As a result, offer/answer rules <xref target="RFC3264" format="default" sectionFormat="of" de
ignoring the “a=rid” line is always guaranteed to result in a valid rivedContent="RFC3264"/>.</t>
<t indent="0" pn="section-6.2.1-2"><xref target="sec-gen_offer" format
="default" sectionFormat="of" derivedContent="Section 6.1"/> requires the offer
to include a valid "a=fmtp" line
for any media formats that otherwise require it (in other words, the "a=rid"
line cannot be used to replace "a=fmtp" configuration). As a result,
ignoring the "a=rid" line is always guaranteed to result in a valid
session description.</t> session description.</t>
</section>
</section> <section anchor="sec-rid_offer_recv" numbered="true" toc="include" remov
<section anchor="sec-rid_offer_recv" title="“a=rid”-aware Answerer"> eInRFC="false" pn="section-6.2.2">
<name slugifiedName="name-arid-aware-answerer">"a=rid"-Aware Answerer<
<t>If the answerer supports the “a=rid” attribute, the following verification /name>
steps are executed, in order, for each “a=rid” line in a received offer:</t> <t indent="0" pn="section-6.2.2-1">If the answerer supports the "a=rid
" attribute, the following verification
<t><list style="numbers"> steps are executed, in order, for each "a=rid" line in a received offer:</t>
<t>The answerer ensures that the “a=rid” line is syntactically well <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-
formed. In the case of a syntax error, the “a=rid” line is discarded.</t> 6.2.2-2">
<t>The answerer extracts the rid-id from the “a=rid” line and verifies its <li pn="section-6.2.2-2.1" derivedCounter="1.">The answerer ensures
that the "a=rid" line is syntactically well
formed. In the case of a syntax error, the "a=rid" line is discarded.</li>
<li pn="section-6.2.2-2.2" derivedCounter="2.">The answerer extracts
the rid-id from the "a=rid" line and verifies its
uniqueness within a media section. In the case of a duplicate, the entire uniqueness within a media section. In the case of a duplicate, the entire
“a=rid” line, and all “a=rid” lines with rid-ids that duplicate this line, "a=rid" line, and all "a=rid" lines with rid-ids that duplicate this line,
are discarded and MUST NOT be included in the SDP Answer.</t> are discarded and <bcp14>MUST NOT</bcp14> be included in the SDP answer.</li>
<t>If the “a=rid” line contains a “pt=”, the list of payload types <li pn="section-6.2.2-2.3" derivedCounter="3.">If the "a=rid" line c
ontains a "pt=", the list of payload types
is verified against the list of valid payload types for the media section is verified against the list of valid payload types for the media section
(that is, those listed on the “m=” line). Any PT missing from the “m=” line (that is, those listed on the "m=" line). Any PT missing from the "m=" line
is discarded from the set of values in the “pt=”. If no values are left is discarded from the set of values in the "pt=". If no values are left
in the “pt=” parameter after this processing, then the “a=rid” line is discarded in the "pt=" parameter after this processing, then the "a=rid" line is discarded
.</t> .</li>
<t>If the “direction” field is “recv”, the answerer ensures that the specified <li pn="section-6.2.2-2.4" derivedCounter="4.">If the "direction" fi
“a=rid” restrictions are supported. In the case of an unsupported eld is "recv", the answerer ensures that the specified
restriction, the “a=rid” line is discarded.</t> "a=rid" restrictions are supported. In the case of an unsupported
<t>If the “depend” restriction is included, the answerer MUST make restriction, the "a=rid" line is discarded.</li>
<li pn="section-6.2.2-2.5" derivedCounter="5.">If the "depend" restr
iction is included, the answerer <bcp14>MUST</bcp14> make
sure that the listed rid-ids unambiguously match the sure that the listed rid-ids unambiguously match the
rid-ids in the media description. Any “depend” “a=rid” lines that do not are rid-ids in the media description. Any "depend" "a=rid" lines that do not are
discarded.</t> discarded.</li>
<t>The answerer verifies that the restrictions are consistent <li pn="section-6.2.2-2.6" derivedCounter="6.">The answerer verifies
with at least one of the codecs to be used with the RTP Stream. If the that the restrictions are consistent
“a=rid” line contains a “pt=”, it contains the list of such with at least one of the codecs to be used with the RTP stream. If the
"a=rid" line contains a "pt=", it contains the list of such
codecs; otherwise, the list of such codecs is taken from the associated codecs; otherwise, the list of such codecs is taken from the associated
“m=” line. See <xref target="sec-feature_interactions"/> for more detail. If th "m=" line. See <xref target="sec-feature_interactions" format="default" section
e Format="of" derivedContent="Section 8"/> for more detail. If the
“a=rid” restrictions are incompatible with the other codec properties "a=rid" restrictions are incompatible with the other codec properties
for all codecs, then the “a=rid” line is discarded.</t> for all codecs, then the "a=rid" line is discarded.</li>
</list></t> </ol>
<t indent="0" pn="section-6.2.2-3">Note that the answerer does not nee
<t>Note that the answerer does not need to understand every restriction present d to understand every restriction present
in a “send” line: if a stream sender restricts the stream in a way that the in a "send" line: if a stream sender restricts the stream in a way that the
receiver does not understand, this causes no issues with interoperability.</t> receiver does not understand, this causes no issues with interoperability.</t>
</section>
</section> </section>
</section> <section anchor="sec-rid_answer_send" numbered="true" toc="include" remove
<section anchor="sec-rid_answer_send" title="Generating the SDP Answer"> InRFC="false" pn="section-6.3">
<name slugifiedName="name-generating-the-sdp-answer">Generating the SDP
<t>Having performed verification of the SDP offer as described in Answer</name>
<xref target="sec-rid_offer_recv"/>, the answerer shall perform the following st <t indent="0" pn="section-6.3-1">Having performed verification of the SD
eps to P offer as described in
<xref target="sec-rid_offer_recv" format="default" sectionFormat="of" derivedCon
tent="Section 6.2.2"/>, the answerer shall perform the following steps to
generate the SDP answer.</t> generate the SDP answer.</t>
<t indent="0" pn="section-6.3-2">For each "a=rid" line that has not been
<t>For each “a=rid” line that has not been discarded by previous processing:</t> discarded by previous processing:</t>
<ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-6.
<t><list style="numbers"> 3-3">
<t>The value of the “direction” field is reversed: “send” is changed <li pn="section-6.3-3.1" derivedCounter="1.">The value of the "directi
to “recv”, and “recv” is changed to “send”.</t> on" field is reversed: "send" is changed
<t>The answerer MAY choose to modify specific “a=rid” restriction values in to "recv", and "recv" is changed to "send".</li>
the answer SDP. In such a case, the modified value MUST be more restrictive <li pn="section-6.3-3.2" derivedCounter="2.">The answerer <bcp14>MAY</
than the ones specified in the offer. The answer MUST NOT include any bcp14> choose to modify specific "a=rid" restriction values in
restrictions that were not present in the offer.</t> the answer SDP. In such a case, the modified value <bcp14>MUST</bcp14> be more r
<t>The answerer MUST NOT modify the “rid-id” present in the offer.</t> estrictive
<t>If the “a=rid” line contains a “pt=”, the answerer is allowed to than the ones specified in the offer. The answer <bcp14>MUST NOT</bcp14> includ
discard one or more media formats from a given “a=rid” line. If the answerer e any
chooses to discard all the media formats from an “a=rid” line, the restrictions that were not present in the offer.</li>
answerer MUST discard the entire “a=rid” line. If the offer did not contain <li pn="section-6.3-3.3" derivedCounter="3.">The answerer <bcp14>MUST
a “pt=” for a given “a=rid” line, then the answer MUST NOT NOT</bcp14> modify the "rid-id" present in the offer.</li>
contain a “pt=” in the corresponding line.</t> <li pn="section-6.3-3.4" derivedCounter="4.">If the "a=rid" line conta
<t>In cases where the answerer is unable to support the payload configuration ins a "pt=", the answerer is allowed to
specified in a given “a=rid” line with a direction of “recv” in the offer, discard one or more media formats from a given "a=rid" line. If the answerer
the answerer MUST discard the corresponding “a=rid” line. This includes chooses to discard all the media formats from an "a=rid" line, the
answerer <bcp14>MUST</bcp14> discard the entire "a=rid" line. If the offer did n
ot contain
a "pt=" for a given "a=rid" line, then the answer <bcp14>MUST NOT</bcp14>
contain a "pt=" in the corresponding line.</li>
<li pn="section-6.3-3.5" derivedCounter="5.">In cases where the answer
er is unable to support the payload configuration
specified in a given "a=rid" line with a direction of "recv" in the offer,
the answerer <bcp14>MUST</bcp14> discard the corresponding "a=rid" line. This i
ncludes
situations in which the answerer does not understand one or more of the situations in which the answerer does not understand one or more of the
restrictions in an “a=rid” line with a direction of “recv”.</t> restrictions in an "a=rid" line with a direction of "recv".</li>
</list></t> </ol>
<t indent="0" pn="section-6.3-4">Note: In the case that the answerer use
<t>Note: in the case that the answerer uses different PT values to represent a s different PT values to represent a
codec than the offerer did, the “a=rid” values in the answer use the PT values codec than the offerer did, the "a=rid" values in the answer use the PT values
that are present in its answer.</t> that are present in its answer.</t>
</section>
</section> <section anchor="sec-rid_answer_recv" numbered="true" toc="include" remove
<section anchor="sec-rid_answer_recv" title="Offerer Processing of the SDP Answe InRFC="false" pn="section-6.4">
r"> <name slugifiedName="name-offerer-processing-of-the-s">Offerer Processin
g of the SDP Answer</name>
<t>The offerer SHALL follow these steps when processing the answer:</t> <t indent="0" pn="section-6.4-1">The offerer <bcp14>SHALL</bcp14> follow
these steps when processing the answer:</t>
<t><list style="numbers"> <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-6.
<t>The offerer matches the “a=rid” line in the answer to the “a=rid” line 4-2">
in the offer using the “rid-id”. If no matching line can be located <li pn="section-6.4-2.1" derivedCounter="1.">The offerer matches the "
in the offer, the “a=rid” line is ignored.</t> a=rid" line in the answer to the "a=rid" line
<t>If the answer contains any restrictions that were not present in the offer, in the offer using the "rid-id". If no matching line can be located
then the offerer SHALL discard the “a=rid” line.</t> in the offer, the "a=rid" line is ignored.</li>
<t>If the restrictions have been changed between the offer and the <li pn="section-6.4-2.2" derivedCounter="2.">If the answer contains an
answer, the offerer MUST ensure that the modifications are more restrictive y restrictions that were not present in the offer,
than they were in the original offer, and that they can be supported; if then the offerer <bcp14>SHALL</bcp14> discard the "a=rid" line.</li>
not, the offerer SHALL discard the “a=rid” line.</t> <li pn="section-6.4-2.3" derivedCounter="3.">If the restrictions have
<t>If the “a=rid” line in the answer contains a “pt=” but the been changed between the offer and the
offer did not, the offerer SHALL discard the “a=rid” line.</t> answer, the offerer <bcp14>MUST</bcp14> ensure that the modifications are more r
<t>If the “a=rid” line in the answer contains a “pt=” and the estrictive
than they were in the original offer and that they can be supported; if
not, the offerer <bcp14>SHALL</bcp14> discard the "a=rid" line.</li>
<li pn="section-6.4-2.4" derivedCounter="4.">If the "a=rid" line in th
e answer contains a "pt=" but the
offer did not, the offerer <bcp14>SHALL</bcp14> discard the "a=rid" line.</li>
<li pn="section-6.4-2.5" derivedCounter="5.">If the "a=rid" line in th
e answer contains a "pt=" and the
offer did as well, the offerer verifies that the list of payload types is a offer did as well, the offerer verifies that the list of payload types is a
subset of those sent in the corresponding “a=rid” line in the offer. Note subset of those sent in the corresponding "a=rid" line in the offer. Note
that this matching must be performed semantically rather than on literal PT that this matching must be performed semantically rather than on literal PT
values, as the remote end may not be using symmetric PTs. For the purpose values, as the remote end may not be using symmetric PTs. For the purpose
of this comparison: for each PT listed on the “a=rid” line in the answer, of this comparison: for each PT listed on the "a=rid" line in the answer,
the offerer looks up the corresponding “a=rtpmap” and “a=fmtp” lines in the the offerer looks up the corresponding "a=rtpmap" and "a=fmtp" lines in the
answer. It then searches the list of “pt=” values indicated in the offer, answer. It then searches the list of "pt=" values indicated in the offer
and attempts to find one with an equivalent set of “a=rtpmap” and “a=fmtp” and attempts to find one with an equivalent set of "a=rtpmap" and "a=fmtp"
lines in the offer. If all PTs in the answer can be matched, then the “pt=” lines in the offer. If all PTs in the answer can be matched, then the "pt="
values pass validation; otherwise, it fails. If this validation fails, the values pass validation; otherwise, it fails. If this validation fails, the
offerer SHALL discard the “a=rid” line. Note that this semantic comparison offerer <bcp14>SHALL</bcp14> discard the "a=rid" line. Note that this semantic c omparison
necessarily requires an understanding of the meaning of codec parameters, necessarily requires an understanding of the meaning of codec parameters,
rather than a rote byte-wise comparison of their values.</t> rather than a rote byte-wise comparison of their values.</li>
<t>If the “a=rid” line contains a “pt=”, the offerer verifies that <li pn="section-6.4-2.6" derivedCounter="6.">If the "a=rid" line conta
the attribute values provided in the “a=rid” attributes are consistent ins a "pt=", the offerer verifies that
the attribute values provided in the "a=rid" attributes are consistent
with the corresponding codecs and their other parameters. See with the corresponding codecs and their other parameters. See
<xref target="sec-feature_interactions"/> for more detail. If the “a=rid” restri ctions <xref target="sec-feature_interactions" format="default" sectionFormat="of" deri vedContent="Section 8"/> for more detail. If the "a=rid" restrictions
are incompatible with the other codec properties, then the offerer are incompatible with the other codec properties, then the offerer
SHALL discard the “a=rid” line.</t> <bcp14>SHALL</bcp14> discard the "a=rid" line.</li>
<t>The offerer verifies that the restrictions are consistent <li pn="section-6.4-2.7" derivedCounter="7.">The offerer verifies that
with at least one of the codecs to be used with the RTP Stream. If the the restrictions are consistent
“a=rid” line contains a “pt=”, it contains the list of such with at least one of the codecs to be used with the RTP stream. If the
"a=rid" line contains a "pt=", it contains the list of such
codecs; otherwise, the list of such codecs is taken from the associated codecs; otherwise, the list of such codecs is taken from the associated
“m=” line. See <xref target="sec-feature_interactions"/> for more detail. If th "m=" line. See <xref target="sec-feature_interactions" format="default" section
e Format="of" derivedContent="Section 8"/> for more detail. If the
“a=rid” restrictions are incompatible with the other codec properties "a=rid" restrictions are incompatible with the other codec properties
for all codecs, then the offerer SHALL discard the “a=rid” line.</t> for all codecs, then the offerer <bcp14>SHALL</bcp14> discard the "a=rid" line.<
</list></t> /li>
</ol>
<t>Any “a=rid” line present in the offer that was not matched by step 1 above <t indent="0" pn="section-6.4-3">Any "a=rid" line present in the offer t
has been discarded by the answerer, and does not form part of the negotiated hat was not matched by step 1 above
restrictions on an RTP Stream. The offerer MAY still apply any restrictions has been discarded by the answerer and does not form part of the negotiated
it indicated in an “a=rid” line with a direction field of “send”, but restrictions on an RTP stream. The offerer <bcp14>MAY</bcp14> still apply any re
strictions
it indicated in an "a=rid" line with a direction field of "send", but
it is not required to do so.</t> it is not required to do so.</t>
<t indent="0" pn="section-6.4-4">It is important to note that there are
<t>It is important to note that there are several ways in which an offer can several ways in which an offer can
contain a media section with “a=rid” lines, but the corresponding media contain a media section with "a=rid" lines, although the corresponding media
section in the response does not. This includes situations in which the section in the response does not. This includes situations in which the
answerer does not support “a=rid” at all, or does not support the indicated answerer does not support "a=rid" at all or does not support the indicated
restrictions. Under such circumstances, the offerer MUST be prepared to restrictions. Under such circumstances, the offerer <bcp14>MUST</bcp14> be prepa
red to
receive a media stream to which no restrictions have been applied.</t> receive a media stream to which no restrictions have been applied.</t>
</section>
</section> <section anchor="modifying-the-session" numbered="true" toc="include" remo
<section anchor="modifying-the-session" title="Modifying the Session"> veInRFC="false" pn="section-6.5">
<name slugifiedName="name-modifying-the-session">Modifying the Session</
<t>Offers and answers inside an existing session follow the rules for initial name>
session negotiation. Such an offer MAY propose a change in the number of RIDs <t indent="0" pn="section-6.5-1">Offers and answers inside an existing s
ession follow the rules for initial
session negotiation. Such an offer <bcp14>MAY</bcp14> propose a change in the n
umber of RIDs
in use. To avoid race conditions with media, any RIDs with proposed changes in use. To avoid race conditions with media, any RIDs with proposed changes
SHOULD use a new ID, rather than re-using one from the previous offer/answer <bcp14>SHOULD</bcp14> use a new ID rather than reusing one from the previous off
exchange. RIDs without proposed changes SHOULD re-use the ID from the previous er/answer
exchange. RIDs without proposed changes <bcp14>SHOULD</bcp14> reuse the ID from
the previous
exchange.</t> exchange.</t>
</section>
</section> </section>
</section> <section anchor="sec-declarative_sdp" numbered="true" toc="include" removeIn
<section anchor="sec-declarative_sdp" title="Use with Declarative SDP"> RFC="false" pn="section-7">
<name slugifiedName="name-use-with-declarative-sdp">Use with Declarative S
<t>This document does not define the use of RID in declarative SDP. If DP</name>
<t indent="0" pn="section-7-1">This document does not define the use of a
RID in declarative SDP. If
concrete use cases for RID in declarative SDP use are identified concrete use cases for RID in declarative SDP use are identified
in the future, we expect that additional specifications will address in the future, we expect that additional specifications will address
such use.</t> such use.</t>
</section>
</section> <section anchor="sec-feature_interactions" numbered="true" toc="include" rem
<section anchor="sec-feature_interactions" title="Interaction with Other Techniq oveInRFC="false" pn="section-8">
ues"> <name slugifiedName="name-interaction-with-other-tech">Interaction with Ot
her Techniques</name>
<t>Historically, a number of other approaches have been defined that allow <t indent="0" pn="section-8-1">Historically, a number of other approaches
have been defined that allow
restricting media streams via SDP. These include:</t> restricting media streams via SDP. These include:</t>
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-8-2
<t><list style="symbols"> ">
<t>Codec-specific configuration set via format parameters (“a=fmtp”); for <li pn="section-8-2.1">Codec-specific configuration set via format param
example, the H.264 “max-fs” format parameter <xref target="RFC6184"/></t> eters ("a=fmtp") -- for
<t>Size restrictions imposed by image attribute attributes (“a=imageattr”) example, the H.264 "max-fs" format parameter <xref target="RFC6184" format="defa
<xref target="RFC6236"/></t> ult" sectionFormat="of" derivedContent="RFC6184"/></li>
</list></t> <li pn="section-8-2.2">Size restrictions imposed by the "a=imageattr" at
tribute
<t>When the mechanism described in this document is used in conjunction with <xref target="RFC6236" format="default" sectionFormat="of" derivedContent="RFC62
36"/></li>
</ul>
<t indent="0" pn="section-8-3">When the mechanism described in this docume
nt is used in conjunction with
these other restricting mechanisms, it is intended to impose additional these other restricting mechanisms, it is intended to impose additional
restrictions beyond those communicated in other techniques.</t> restrictions beyond those communicated in other techniques.</t>
<t indent="0" pn="section-8-4">In an offer, this means that "a=rid" lines,
<t>In an offer, this means that “a=rid” lines, when combined with other when combined with other
restrictions on the media stream, are expected to result in a non-empty intersec tion. restrictions on the media stream, are expected to result in a non-empty intersec tion.
For example, if image attributes are used to indicate that a PT has a minimum For example, if image attributes are used to indicate that a PT has a minimum
width of 640, then specification of “max-width=320” in an “a=rid” line that is width of 640, then specification of "max-width=320" in an "a=rid" line that is
then applied to that PT is nonsensical. According to the rules of then applied to that PT is nonsensical. According to the rules of
<xref target="sec-rid_offer_recv"/>, this will result in the corresponding “a=ri d” line <xref target="sec-rid_offer_recv" format="default" sectionFormat="of" derivedCon tent="Section 6.2.2"/>, this will result in the corresponding "a=rid" line
being ignored by the recipient.</t> being ignored by the recipient.</t>
<t indent="0" pn="section-8-5">In an answer, the "a=rid" lines, when combi
<t>In an answer, the “a=rid” lines, when combined with the other ned with the other
restrictions on the media stream, are also expected to result in a non-empty restrictions on the media stream, are also expected to result in a non-empty
intersection. If the implementation generating an answer wishes to restrict a intersection. If the implementation generating an answer wishes to restrict a
property of the stream below that which would be allowed by other parameters property of the stream below that which would be allowed by other parameters
(e.g., those specified in “a=fmtp” or “a=imageattr”), its only recourse is to (e.g., those specified in "a=fmtp" or "a=imageattr"), its only recourse is to
discard the “a=rid” line altogether, as described in <xref target="sec-rid_answe discard the "a=rid" line altogether, as described in <xref target="sec-rid_answe
r_send"/>. r_send" format="default" sectionFormat="of" derivedContent="Section 6.3"/>.
If it instead attempts to restrict the stream beyond what is allowed by other If it instead attempts to restrict the stream beyond what is allowed by other
mechanisms, then the offerer will ignore the corresponding “a=rid” line, as mechanisms, then the offerer will ignore the corresponding "a=rid" line, as
described in <xref target="sec-rid_answer_recv"/>.</t> described in <xref target="sec-rid_answer_recv" format="default" sectionFormat="
of" derivedContent="Section 6.4"/>.</t>
<t>The following subsections demonstrate these interactions using commonly-used <t indent="0" pn="section-8-6">The following subsections demonstrate these
interactions using commonly used
video codecs. These descriptions are illustrative of the interaction principles video codecs. These descriptions are illustrative of the interaction principles
outlined above, and are not normative.</t> outlined above and are not normative.</t>
<section anchor="interaction-with-vp8-format-parameters" numbered="true" t
<section anchor="interaction-with-vp8-format-parameters" title="Interaction with oc="include" removeInRFC="false" pn="section-8.1">
VP8 Format Parameters"> <name slugifiedName="name-interaction-with-vp8-format">Interaction with
VP8 Format Parameters</name>
<t><xref target="RFC7741"/> defines two format parameters for the VP8 codec. <t indent="0" pn="section-8.1-1"><xref target="RFC7741" format="default"
Both correspond to restrictions on receiver capabilities, and never sectionFormat="of" derivedContent="RFC7741"/> defines two format parameters for
the VP8 codec.
Both correspond to restrictions on receiver capabilities and never
indicate sending restrictions.</t> indicate sending restrictions.</t>
<section anchor="max-fr-maximum-framerate" numbered="true" toc="include"
<section anchor="max-fr-maximum-framerate" title="max-fr - Maximum Framerate"> removeInRFC="false" pn="section-8.1.1">
<name slugifiedName="name-max-fr-maximum-frame-rate">max-fr - Maximum
<t>The VP8 “max-fr” format parameter corresponds to the “max-fps” restriction Frame Rate</name>
<t indent="0" pn="section-8.1.1-1">The VP8 "max-fr" format parameter c
orresponds to the "max-fps" restriction
defined in this specification. If an RTP sender is generating a stream using defined in this specification. If an RTP sender is generating a stream using
a format defined with this format parameter, and the sending restrictions a format defined with this format parameter, and the sending restrictions
defined via “a=rid” include a “max-fps” parameter, then the sent stream defined via "a=rid" include a "max-fps" parameter, then the sent stream
will conform to the smaller of the two values.</t> will conform to the smaller of the two values.</t>
</section>
</section> <section anchor="max-fs-maximum-framesize-in-vp8-macroblocks" numbered="
<section anchor="max-fs-maximum-framesize-in-vp8-macroblocks" title="max-fs - Ma true" toc="include" removeInRFC="false" pn="section-8.1.2">
ximum Framesize, in VP8 Macroblocks"> <name slugifiedName="name-max-fs-maximum-frame-size-i">max-fs - Maximu
m Frame Size, in VP8 Macroblocks</name>
<t>The VP8 “max-fs” format parameter corresponds to the “max-fs” <t indent="0" pn="section-8.1.2-1">The VP8 "max-fs" format parameter c
orresponds to the "max-fs"
restriction defined in this document, by way of a conversion factor of the restriction defined in this document, by way of a conversion factor of the
number of pixels per macroblock (typically 256). If an RTP sender is number of pixels per macroblock (typically 256). If an RTP sender is
generating a stream using a format defined with this format parameter, and generating a stream using a format defined with this format parameter, and
the sending restrictions defined via “a=rid” include a “max-fs” parameter, the sending restrictions defined via "a=rid" include a "max-fs" parameter,
then the sent stream will conform to the smaller of the two values; then the sent stream will conform to the smaller of the two values;
that is, the number of pixels per frame will not exceed:</t> that is, the number of pixels per frame will not exceed:</t>
<sourcecode markers="false" pn="section-8.1.2-2">
<figure><artwork><![CDATA[
min(rid_max_fs, fmtp_max_fs * macroblock_size) min(rid_max_fs, fmtp_max_fs * macroblock_size)
]]></artwork></figure> </sourcecode>
<t indent="0" pn="section-8.1.2-3">This fmtp parameter also has bearin
g on the
max-height and max-width parameters.
<t>This fmtp parameter also has bearing on the <xref section="6.1" sectionFormat="of" target="RFC7741" format="default" derived
max-height and max-width parameters. Section 6.1 of Link="https://rfc-editor.org/rfc/rfc7741#section-6.1" derivedContent="RFC7741"/>
<xref target="RFC7741"/> requires that the width and height of the frame in requires that the width and height of the frame in
macroblocks are also required to be less than int(sqrt(fmtp_max_fs * 8)). macroblocks be less than int(sqrt(fmtp_max_fs * 8)).
Accordingly, the maximum width of a transmitted stream will be limited to:</t> Accordingly, the maximum width of a transmitted stream will be limited to:</t>
<sourcecode markers="false" pn="section-8.1.2-4">
<figure><artwork><![CDATA[
min(rid_max_width, int(sqrt(fmtp_max_fs * 8)) * macroblock_width) min(rid_max_width, int(sqrt(fmtp_max_fs * 8)) * macroblock_width)
]]></artwork></figure> </sourcecode>
<t indent="0" pn="section-8.1.2-5">Similarly, the stream's height will
<t>Similarly, the stream’s height will be limited to:</t> be limited to:</t>
<sourcecode markers="false" pn="section-8.1.2-6">
<figure><artwork><![CDATA[
min(rid_max_height, int(sqrt(fmtp_max_fs * 8)) * macroblock_height) min(rid_max_height, int(sqrt(fmtp_max_fs * 8)) * macroblock_height)
]]></artwork></figure> </sourcecode>
</section>
</section> </section>
</section> <section anchor="interaction-with-h264-format-parameters" numbered="true"
<section anchor="interaction-with-h264-format-parameters" title="Interaction wit toc="include" removeInRFC="false" pn="section-8.2">
h H.264 Format Parameters"> <name slugifiedName="name-interaction-with-h264-forma">Interaction with
H.264 Format Parameters</name>
<t><xref target="RFC6184"/> defines format parameters for the H.264 video codec. <t indent="0" pn="section-8.2-1"><xref target="RFC6184" format="default"
The majority sectionFormat="of" derivedContent="RFC6184"/> defines format parameters for the
H.264 video codec. The majority
of these parameters do not correspond to codec-independent restrictions:</t> of these parameters do not correspond to codec-independent restrictions:</t>
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-8
<t><list style="symbols"> .2-2">
<t>deint-buf-cap</t> <li pn="section-8.2-2.1">deint-buf-cap</li>
<t>in-band-parameter-sets</t> <li pn="section-8.2-2.2">in-band-parameter-sets</li>
<t>level-asymmetry-allowed</t> <li pn="section-8.2-2.3">level-asymmetry-allowed</li>
<t>max-rcmd-nalu-size</t> <li pn="section-8.2-2.4">max-rcmd-nalu-size</li>
<t>max-cpb</t> <li pn="section-8.2-2.5">max-cpb</li>
<t>max-dpb</t> <li pn="section-8.2-2.6">max-dpb</li>
<t>packetization-mode</t> <li pn="section-8.2-2.7">packetization-mode</li>
<t>redundant-pic-cap</t> <li pn="section-8.2-2.8">redundant-pic-cap</li>
<t>sar-supported</t> <li pn="section-8.2-2.9">sar-supported</li>
<t>sar-understood</t> <li pn="section-8.2-2.10">sar-understood</li>
<t>sprop-deint-buf-req</t> <li pn="section-8.2-2.11">sprop-deint-buf-req</li>
<t>sprop-init-buf-time</t> <li pn="section-8.2-2.12">sprop-init-buf-time</li>
<t>sprop-interleaving-depth</t> <li pn="section-8.2-2.13">sprop-interleaving-depth</li>
<t>sprop-level-parameter-sets</t> <li pn="section-8.2-2.14">sprop-level-parameter-sets</li>
<t>sprop-max-don-diff</t> <li pn="section-8.2-2.15">sprop-max-don-diff</li>
<t>sprop-parameter-sets</t> <li pn="section-8.2-2.16">sprop-parameter-sets</li>
<t>use-level-src-parameter-sets</t> <li pn="section-8.2-2.17">use-level-src-parameter-sets</li>
</list></t> </ul>
<t indent="0" pn="section-8.2-3">Note that the max-cpb and max-dpb forma
<t>Note that the max-cpb and max-dpb format parameters for H.264 correspond to t parameters for H.264 correspond to
restrictions on the stream, but they are specific to the way the H.264 codec restrictions on the stream, but they are specific to the way the H.264 codec
operates, and do not have codec-independent equivalents.</t> operates, and do not have codec-independent equivalents.</t>
<t indent="0" pn="section-8.2-4">The <xref target="RFC6184" format="defa
<t>The <xref target="RFC6184"/> codec format parameters covered in the following ult" sectionFormat="of" derivedContent="RFC6184"/> codec format parameters cover
sections ed in the following sections
correspond to restrictions on receiver capabilities, and never indicate correspond to restrictions on receiver capabilities and never indicate
sending restrictions.</t> sending restrictions.</t>
<section anchor="profile-level-id-and-max-recv-level-negotiated-sub-prof
<section anchor="profile-level-id-and-max-recv-level-negotiated-sub-profile" tit ile" numbered="true" toc="include" removeInRFC="false" pn="section-8.2.1">
le="profile-level-id and max-recv-level - Negotiated Sub-Profile"> <name slugifiedName="name-profile-level-id-and-max-re">profile-level-i
d and max-recv-level - Negotiated Subprofile</name>
<t>These parameters include a “level” indicator, which acts as an index <t indent="0" pn="section-8.2.1-1">These parameters include a "level"
into Table A-1 of <xref target="H264"/>. This table contains a number of paramet indicator, which acts as an index
ers, into Table A-1 of <xref target="H264" format="default" sectionFormat="of" derive
dContent="H264"/>. This table contains a number of parameters,
several of which correspond to the restrictions defined in this several of which correspond to the restrictions defined in this
document. <xref target="RFC6184"/> also defines format parameters for the H.264 document. <xref target="RFC6184" format="default" sectionFormat="of" derivedCont ent="RFC6184"/> also defines format parameters for the H.264
codec that may increase the maximum values indicated by the negotiated codec that may increase the maximum values indicated by the negotiated
level. The following sections describe the interaction between these level. The following sections describe the interaction between these
parameters and the restrictions defined by this document. In all cases, parameters and the restrictions defined by this document. In all cases,
the H.264 parameters being discussed are the maximum of those indicated the H.264 parameters being discussed are the maximum of those indicated
by <xref target="H264"></xref> Table A-1 and those indicated in the correspondin by <xref target="H264" format="default" sectionFormat="of" derivedContent="H264"
g “a=fmtp” line.</t> /> Table A-1 and those indicated in the corresponding "a=fmtp" line.</t>
</section>
</section> <section anchor="max-br-maxbr-maximum-video-bitrate" numbered="true" toc
<section anchor="max-br-maxbr-maximum-video-bitrate" title="max-br / MaxBR - Max ="include" removeInRFC="false" pn="section-8.2.2">
imum Video Bitrate"> <name slugifiedName="name-max-br-maxbr-maximum-video-">max-br / MaxBR
- Maximum Video Bitrate</name>
<t>The H.264 “MaxBR” parameter (and its equivalent “max-br” format <t indent="0" pn="section-8.2.2-1">The H.264 "MaxBR" parameter (and it
parameter) corresponds to the “max-bps” restriction s equivalent "max-br" format
parameter) corresponds to the "max-bps" restriction
defined in this specification, by way of a conversion factor of 1000 defined in this specification, by way of a conversion factor of 1000
or 1200; see <xref target="RFC6184"/> for details regarding which factor gets or 1200; see <xref target="RFC6184" format="default" sectionFormat="of" derivedC ontent="RFC6184"/> for details regarding which factor gets
used under differing circumstances.</t> used under differing circumstances.</t>
<t indent="0" pn="section-8.2.2-2">If an RTP sender is generating a st
<t>If an RTP sender is generating a stream using ream using
a format defined with this format parameter, and the sending restrictions a format defined with this format parameter, and the sending restrictions
defined via “a=rid” include a “max-fps” parameter, then the sent stream defined via "a=rid" include a "max-fps" parameter, then the sent stream
will conform to the smaller of the two values that is:</t> will conform to the smaller of the two values -- that is:</t>
<sourcecode markers="false" pn="section-8.2.2-3">
<figure><artwork><![CDATA[
min(rid_max_br, h264_MaxBR * conversion_factor) min(rid_max_br, h264_MaxBR * conversion_factor)
]]></artwork></figure> </sourcecode>
</section>
</section> <section anchor="max-fs-maxfs-maximum-framesize-in-h264-macroblocks" num
<section anchor="max-fs-maxfs-maximum-framesize-in-h264-macroblocks" title="max- bered="true" toc="include" removeInRFC="false" pn="section-8.2.3">
fs / MaxFS - Maximum Framesize, in H.264 Macroblocks"> <name slugifiedName="name-max-fs-maxfs-maximum-frame-">max-fs / MaxFS
- Maximum Frame Size, in H.264 Macroblocks</name>
<t>The H.264 “MaxFs” parameter (and its equivalent “max-fs” <t indent="0" pn="section-8.2.3-1">The H.264 "MaxFs" parameter (and it
format parameter) corresponds roughly to the “max-fs” restriction s equivalent "max-fs"
format parameter) corresponds roughly to the "max-fs" restriction
defined in this document, by way of a conversion factor of 256 defined in this document, by way of a conversion factor of 256
(the number of pixels per macroblock).</t> (the number of pixels per macroblock).</t>
<t indent="0" pn="section-8.2.3-2">If an RTP sender is generating a st
<t>If an RTP sender is generating a stream using ream using
a format defined with this format parameter, and the sending restrictions a format defined with this format parameter, and the sending restrictions
defined via “a=rid” include a “max-fs” parameter, then the sent stream defined via "a=rid" include a "max-fs" parameter, then the sent stream
will conform to the smaller of the two values that is:</t> will conform to the smaller of the two values -- that is:</t>
<sourcecode markers="false" pn="section-8.2.3-3">
<figure><artwork><![CDATA[
min(rid_max_fs, h264_MaxFs * 256) min(rid_max_fs, h264_MaxFs * 256)
]]></artwork></figure> </sourcecode>
</section>
</section> <section anchor="sec-h264_max_mbps" numbered="true" toc="include" remove
<section anchor="sec-h264_max_mbps" title="max-mbps / MaxMBPS - Maximum Macroblo InRFC="false" pn="section-8.2.4">
ck Processing Rate"> <name slugifiedName="name-max-mbps-maxmbps-maximum-ma">max-mbps / MaxM
BPS - Maximum Macroblock Processing Rate</name>
<t>The H.264 “MaxMBPS” parameter (and its equivalent “max-mbps” <t indent="0" pn="section-8.2.4-1">The H.264 "MaxMBPS" parameter (and
format parameter) corresponds roughly to the “max-pps” restriction its equivalent "max-mbps"
format parameter) corresponds roughly to the "max-pps" restriction
defined in this document, by way of a conversion factor of 256 defined in this document, by way of a conversion factor of 256
(the number of pixels per macroblock).</t> (the number of pixels per macroblock).</t>
<t indent="0" pn="section-8.2.4-2">If an RTP sender is generating a st
<t>If an RTP sender is generating a stream using ream using
a format defined with this format parameter, and the sending restrictions a format defined with this format parameter, and the sending restrictions
defined via “a=rid” include a “max-pps” parameter, then the sent stream defined via "a=rid" include a "max-pps" parameter, then the sent stream
will conform to the smaller of the two values that is:</t> will conform to the smaller of the two values -- that is:</t>
<sourcecode markers="false" pn="section-8.2.4-3">
<figure><artwork><![CDATA[
min(rid_max_pps, h264_MaxMBPS * 256) min(rid_max_pps, h264_MaxMBPS * 256)
]]></artwork></figure> </sourcecode>
</section>
</section> <section anchor="max-smbps-maximum-decoded-picture-buffer" numbered="tru
<section anchor="max-smbps-maximum-decoded-picture-buffer" title="max-smbps - Ma e" toc="include" removeInRFC="false" pn="section-8.2.5">
ximum Decoded Picture Buffer"> <name slugifiedName="name-max-smbps-maximum-decoded-p">max-smbps - Max
imum Decoded Picture Buffer</name>
<t>The H.264 “max-smbps” format parameter operates the same way as the <t indent="0" pn="section-8.2.5-1">The H.264 "max-smbps" format parame
“max-mpbs” format parameter, under the hypothetical assumption that all ter operates the same way as the
"max-mbps" format parameter, under the hypothetical assumption that all
macroblocks are static macroblocks. It is handled by applying the macroblocks are static macroblocks. It is handled by applying the
conversion factor described in Section 8.1 of <xref target="RFC6184"/>, and the conversion factor described in Section 8.1 of <xref target="RFC6184" format="def ault" sectionFormat="of" derivedContent="RFC6184"/>, and the
result of this conversion is applied as described in result of this conversion is applied as described in
<xref target="sec-h264_max_mbps"/>.</t> <xref target="sec-h264_max_mbps" format="default" sectionFormat="of" derivedCont
ent="Section 8.2.4"/>.</t>
</section> </section>
</section> </section>
<section anchor="redundancy-formats-and-payload-type-restrictions" title="Redund <section anchor="redundancy-formats-and-payload-type-restrictions" numbere
ancy Formats and Payload Type Restrictions"> d="true" toc="include" removeInRFC="false" pn="section-8.3">
<name slugifiedName="name-redundancy-formats-and-payl">Redundancy Format
<t><xref target="sec-rid_attribute"/> specifies that redundancy formats using re s and Payload Type Restrictions</name>
dundancy RTP streams bind <t indent="0" pn="section-8.3-1"><xref target="sec-rid_attribute" format
="default" sectionFormat="of" derivedContent="Section 4"/> specifies that redund
ancy formats using redundancy RTP streams bind
the redundancy RTP stream to the source RTP stream with either the the redundancy RTP stream to the source RTP stream with either the
RepairedRtpStreamId SDES item, or other mechanisms. However, there exist RepairedRtpStreamId SDES item or other mechanisms. However, there exist
redundancy RTP payload formats that result in the redundancy being included in redundancy RTP payload formats that result in the redundancy being included in
the source RTP stream. An example of this is “RTP Payload for Redundant Audio the source RTP stream. An example of this is "RTP Payload for Redundant Audio
Data” <xref target="RFC2198"/>, which encapsulates one source stream with one or Data" <xref target="RFC2198" format="default" sectionFormat="of" derivedContent=
more "RFC2198"/>, which encapsulates one source stream with one or more
redundancy streams in the same RTP payload. Formats defining the source and redundancy streams in the same RTP payload. Formats defining the source and
redundancy encodings as regular RTP payload types require some consideration redundancy encodings as regular RTP payload types require some consideration
for how the “a=rid” restrictions are defined. The “a=rid” line “pt=” parameter for how the "a=rid" restrictions are defined. The "a=rid" line "pt=" parameter
can be used to indicate whether the redundancy RTP payload type and/or the can be used to indicate whether the redundancy RTP payload type and/or the
individual source RTP payload type(s) are part of the restriction.</t> individual source RTP payload type(s) are part of the restriction.</t>
<t indent="0" pn="section-8.3-2">Example (SDP excerpt):</t>
<t>Example (SDP Excerpt):</t> <sourcecode type="sdp" markers="false" pn="section-8.3-3">
<figure><artwork><![CDATA[
m=audio 49200 RTP/AVP 97 98 99 100 101 102 m=audio 49200 RTP/AVP 97 98 99 100 101 102
a=mid:foo a=mid:foo
a=rtpmap:97 G711/8000 a=rtpmap:97 G711/8000
a=rtpmap:98 LPC/8000 a=rtpmap:98 LPC/8000
a=rtpmap:99 OPUS/48000/1 a=rtpmap:99 OPUS/48000/1
a=rtpmap:100 RED/8000/1 a=rtpmap:100 RED/8000/1
a=rtpmap:101 CN/8000 a=rtpmap:101 CN/8000
a=rtpmap:102 telephone-event/8000 a=rtpmap:102 telephone-event/8000
a=fmtp:99 useinbandfec=1; usedtx=0 a=fmtp:99 useinbandfec=1; usedtx=0
a=fmtp:100 97/98 a=fmtp:100 97/98
a=fmtp:102 0-15 a=fmtp:102 0-15
a=ptime:20 a=ptime:20
a=maxptime:40 a=maxptime:40
a=rid:5 send pt=99,102;max-br=64000 a=rid:5 send pt=99,102;max-br=64000
a=rid:6 send pt=100,97,101,102 a=rid:6 send pt=100,97,101,102
</sourcecode>
]]></artwork></figure> <t indent="0" pn="section-8.3-4">The RID with ID=6 restricts the payload
types for this RID to 100
<t>The RID with ID=6 restricts the payload types for this RID to 100 (the redund (the redundancy format), 97 (G.711), 101 (Comfort Noise), and 102
ancy (dual-tone multi-frequency (DTMF) tones). This means that RID 6 can
format), 97 (G.711), 101 (Comfort Noise) and 102 (DTMF tones). This means that either contain the Redundant Audio Data (RED) format, encapsulating
RID 6 can either contain the RED format, encapsulating encodings of the source encodings of the source media stream using payload type 97 and 98, 97
media stream using payload type 97 and 98, 97 without RED encapsulation, without RED encapsulation, Comfort noise, or DTMF tones. Payload type
Comfort noise, or DTMF tones. Payload type 98 is not included in the RID, and 98 is not included in the RID, and can thus not be sent except as
can thus not be sent except as redundancy information in RED encapsulation. If redundancy information in RED encapsulation. If 97 were to be excluded
97 were to be excluded from the pt parameter, it would instead mean that from the pt parameter, it would instead mean that payload types 97 and
payload types 97 and 98 are only allowed via RED encapsulation.</t> 98 are only allowed via RED encapsulation.</t>
</section>
</section> </section>
</section> <section anchor="format-parameters-for-future-payloads" numbered="true" toc=
<section anchor="format-parameters-for-future-payloads" title="Format Parameters "include" removeInRFC="false" pn="section-9">
for Future Payloads"> <name slugifiedName="name-format-parameters-for-futur">Format Parameters f
or Future Payloads</name>
<t>Registrations of future RTP payload format specifications that define media <t indent="0" pn="section-9-1">Registrations of future RTP payload format
specifications that define media
types that have parameters matching the RID restrictions specified in this memo types that have parameters matching the RID restrictions specified in this memo
SHOULD name those parameters in a manner that matches the names of those RID <bcp14>SHOULD</bcp14> name those parameters in a manner that matches the names o
restrictions, and SHOULD explicitly state what media type parameters are f those RID
restrictions and <bcp14>SHOULD</bcp14> explicitly state what media-type paramete
rs are
restricted by what RID restrictions.</t> restricted by what RID restrictions.</t>
</section>
</section> <section anchor="sec-abnf" numbered="true" toc="include" removeInRFC="false"
<section anchor="sec-abnf" title="Formal Grammar"> pn="section-10">
<name slugifiedName="name-formal-grammar">Formal Grammar</name>
<t>This section gives a formal Augmented Backus-Naur Form (ABNF) <xref target="R <t indent="0" pn="section-10-1">This section gives a formal Augmented Back
FC5234"/> us-Naur Form (ABNF) <xref target="RFC5234" format="default" sectionFormat="of" d
grammar, with the case-sensitive extensions described in <xref target="RFC7405"/ erivedContent="RFC5234"/>
>, for each grammar, with the case-sensitive extensions described in <xref target="RFC7405"
of the new media and “a=rid” attributes defined in this document.</t> format="default" sectionFormat="of" derivedContent="RFC7405"/>, for each
of the new media and "a=rid" attributes defined in this document.</t>
<figure><artwork><![CDATA[ <sourcecode type="abnf" markers="false" pn="section-10-2">
rid-syntax = %s"a=rid:" rid-id SP rid-dir rid-syntax = %s"a=rid:" rid-id SP rid-dir
[ rid-pt-param-list / rid-param-list ] [ rid-pt-param-list / rid-param-list ]
rid-id = 1*(alpha-numeric / "-" / "_") rid-id = 1*(alpha-numeric / "-" / "_")
alpha-numeric = < as defined in {{RFC4566}} &gt; alpha-numeric = < as defined in [RFC4566] &gt;
rid-dir = %s"send" / %s"recv" rid-dir = %s"send" / %s"recv"
rid-pt-param-list = SP rid-fmt-list *(";" rid-param) rid-pt-param-list = SP rid-fmt-list *(";" rid-param)
rid-param-list = SP rid-param *(";" rid-param) rid-param-list = SP rid-param *(";" rid-param)
rid-fmt-list = %s"pt=" fmt *( "," fmt ) rid-fmt-list = %s"pt=" fmt *( "," fmt )
fmt = < as defined in {{RFC4566}} &gt; fmt = < as defined in [RFC4566] &gt;
rid-param = rid-width-param rid-param = rid-width-param
/ rid-height-param / rid-height-param
/ rid-fps-param / rid-fps-param
/ rid-fs-param / rid-fs-param
/ rid-br-param / rid-br-param
/ rid-pps-param / rid-pps-param
/ rid-bpp-param / rid-bpp-param
/ rid-depend-param / rid-depend-param
/ rid-param-other / rid-param-other
skipping to change at line 811 skipping to change at line 912
rid-depend-param = %s"depend=" rid-list rid-depend-param = %s"depend=" rid-list
rid-param-other = 1*(alpha-numeric / "-") [ "=" param-val ] rid-param-other = 1*(alpha-numeric / "-") [ "=" param-val ]
rid-list = rid-id *( "," rid-id ) rid-list = rid-id *( "," rid-id )
int-param-val = 1*DIGIT int-param-val = 1*DIGIT
float-param-val = 1*DIGIT "." 1*DIGIT float-param-val = 1*DIGIT "." 1*DIGIT
param-val = *( %x20-58 / %x60-7E ) param-val = *(%x20-3A / %x3C-7E)
; Any printable character except semicolon ; Any printable character except semicolon
</sourcecode>
]]></artwork></figure> </section>
<section anchor="sdp-examples" numbered="true" toc="include" removeInRFC="fa
</section> lse" pn="section-11">
<section anchor="sdp-examples" title="SDP Examples"> <name slugifiedName="name-sdp-examples">SDP Examples</name>
<t indent="0" pn="section-11-1">Note: See <xref target="RFC8853" format="d
<t>Note: see <xref target="I-D.ietf-mmusic-sdp-simulcast"/> for examples of RID efault" sectionFormat="of" derivedContent="RFC8853"/> for examples of RID used
used
in simulcast scenarios.</t> in simulcast scenarios.</t>
<section anchor="many-bundled-streams-using-many-codecs" numbered="true" t
<section anchor="many-bundled-streams-using-many-codecs" title="Many Bundled Str oc="include" removeInRFC="false" pn="section-11.1">
eams using Many Codecs"> <name slugifiedName="name-many-bundled-streams-using-">Many Bundled Stre
ams Using Many Codecs</name>
<t>In this scenario, the offerer supports the Opus, G.722, G.711 and DTMF audio <t indent="0" pn="section-11.1-1">In this scenario, the offerer supports
codecs, and VP8, VP9, H.264 (CBP/CHP, mode 0/1), H.264-SVC (SCBP/SCHP) and the Opus, G.722, G.711, and DTMF audio
codecs and VP8, VP9, H.264 (CBP/CHP, mode 0/1), H.264-SVC (SCBP/SCHP), and
H.265 (MP/M10P) for video. An 8-way video call (to a mixer) is supported (send H.265 (MP/M10P) for video. An 8-way video call (to a mixer) is supported (send
1 and receive 7 video streams) by offering 7 video media sections (1 sendrecv 1 and receive 7 video streams) by offering 7 video media sections (1 sendrecv
at max resolution and 6 recvonly at smaller resolutions), all bundled on the at max resolution and 6 recvonly at smaller resolutions), all bundled on the
same port, using 3 different resolutions. The resolutions include:</t> same port, using 3 different resolutions. The resolutions include:</t>
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1
<t><list style="symbols"> 1.1-2">
<t>1 receive stream of 720p resolution is offered for the active speaker.</t> <li pn="section-11.1-2.1">1 receive stream of 720p resolution is offer
<t>2 receive streams of 360p resolution are offered for the prior 2 active ed for the active speaker.</li>
speakers.</t> <li pn="section-11.1-2.2">2 receive streams of 360p resolution are off
<t>4 receive streams of 180p resolution are offered for others in the call.</t ered for the prior 2 active
> speakers.</li>
</list></t> <li pn="section-11.1-2.3">4 receive streams of 180p resolution are off
ered for others in the call.</li>
<t>NOTE: The SDP given below skips a few lines to keep the example short and </ul>
focused, as indicated by either the “…” or the comments inserted.</t> <t indent="0" pn="section-11.1-3">NOTE: The SDP given below skips a few
lines to
<t>The offer for this scenario is shown below.</t> keep the example short and focused, as indicated by either the "..."
or the comments inserted.</t>
<figure><artwork><![CDATA[ <t indent="0" pn="section-11.1-4">The offer for this scenario is shown
below.</t>
<sourcecode type="sdp" markers="false" pn="section-11.1-5">
... ...
m=audio 10000 RTP/SAVPF 96 9 8 0 123 m=audio 10000 RTP/SAVPF 96 9 8 0 123
a=rtpmap:96 OPUS/48000 a=rtpmap:96 OPUS/48000
a=rtpmap:9 G722/8000 a=rtpmap:9 G722/8000
a=rtpmap:8 PCMA/8000 a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
a=rtpmap:123 telephone-event/8000 a=rtpmap:123 telephone-event/8000
a=mid:a1 a=mid:a1
... ...
m=video 10000 RTP/SAVPF 98 99 100 101 102 103 104 105 106 107 m=video 10000 RTP/SAVPF 98 99 100 101 102 103 104 105 106 107
skipping to change at line 906 skipping to change at line 1002
...same rtpmap/fmtp as above... ...same rtpmap/fmtp as above...
a=recvonly a=recvonly
a=mid:v4 (small resolution) a=mid:v4 (small resolution)
a=rid:4 recv max-width=320;max-height=180;max-fps=15 a=rid:4 recv max-width=320;max-height=180;max-fps=15
... ...
m=video 10000 RTP/SAVPF 98 99 100 101 102 103 104 105 106 107 m=video 10000 RTP/SAVPF 98 99 100 101 102 103 104 105 106 107
a=extmap 1 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id a=extmap 1 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
...same rtpmap/fmtp as above... ...same rtpmap/fmtp as above...
...same rid:4 as above for mid:v5,v6,v7 (small resolution)... ...same rid:4 as above for mid:v5,v6,v7 (small resolution)...
... ...
</sourcecode>
]]></artwork></figure> </section>
<section anchor="scalable-layers" numbered="true" toc="include" removeInRF
</section> C="false" pn="section-11.2">
<section anchor="scalable-layers" title="Scalable Layers"> <name slugifiedName="name-scalable-layers">Scalable Layers</name>
<t indent="0" pn="section-11.2-1">Adding scalable layers to a session wi
<t>Adding scalable layers to a session within a multiparty conference gives a thin a multiparty conference gives a
selective forwarding unit (SFU) further flexibility to selectively forward selective forwarding unit (SFU) further flexibility to selectively forward
packets from a source that best match the bandwidth and capabilities of packets from a source that best match the bandwidth and capabilities of
diverse receivers. Scalable encodings have dependencies between layers, unlike diverse receivers. Scalable encodings have dependencies between layers, unlike
independent simulcast streams. RIDs can be used to express these dependencies independent simulcast streams. RIDs can be used to express these dependencies
using the “depend” restriction. In the example below, the highest resolution is using the "depend" restriction. In the example below, the highest resolution is
offered to be sent as 2 scalable temporal layers (using MRST). offered to be sent as 2 scalable temporal layers (using
See <xref target="I-D.ietf-mmusic-sdp-simulcast"/> for additional detail about s Multiple RTP Streams on a Single Media Transport (MRST)).
imulcast usage.</t> See <xref target="RFC8853" format="default" sectionFormat="of" derivedContent="R
FC8853"/> for additional detail about simulcast usage.</t>
<figure><artwork><![CDATA[ <sourcecode type="sdp" markers="false" pn="section-11.2-2">
Offer: Offer:
... ...
m=audio ...same as previous example ... m=audio ...same as previous example ...
... ...
m=video ...same as previous example ... m=video ...same as previous example ...
...same rtpmap/fmtp as previous example ... ...same rtpmap/fmtp as previous example ...
a=sendrecv a=sendrecv
a=mid:v1 (max resolution) a=mid:v1 (max resolution)
a=rid:0 send max-width=1280;max-height=720;max-fps=15 a=rid:0 send max-width=1280;max-height=720;max-fps=15
a=rid:1 send max-width=1280;max-height=720;max-fps=30;depend=0 a=rid:1 send max-width=1280;max-height=720;max-fps=30;depend=0
a=rid:2 recv max-width=1280;max-height=720;max-fps=30 a=rid:2 recv max-width=1280;max-height=720;max-fps=30
a=rid:5 send max-width=640;max-height=360;max-fps=15 a=rid:5 send max-width=640;max-height=360;max-fps=15
a=rid:6 send max-width=320;max-height=180;max-fps=15 a=rid:6 send max-width=320;max-height=180;max-fps=15
a=simulcast: send rid=0;1;5;6 recv rid=2 a=simulcast: send rid=0;1;5;6 recv rid=2
... ...
...same m=video sections as previous example for mid:v2-v7... ...same m=video sections as previous example for mid:v2-v7...
... ...
</sourcecode>
]]></artwork></figure> </section>
</section>
</section> <section anchor="sec-iana" numbered="true" toc="include" removeInRFC="false"
</section> pn="section-12">
<section anchor="sec-iana" title="IANA Considerations"> <name slugifiedName="name-iana-considerations">IANA Considerations</name>
<t indent="0" pn="section-12-1">This specification updates <xref target="R
<t>This specification updates <xref target="RFC4855"/> to give additional guidan FC4855" format="default" sectionFormat="of" derivedContent="RFC4855"/>
ce on choice to give additional guidance on choice of Format Parameter (fmtp) names
of Format Parameter (fmtp) names, and on their relation to RID restrictions.</t> and their relation to RID restrictions.</t>
<section anchor="new-sdp-media-level-attribute" numbered="true" toc="inclu
<section anchor="new-sdp-media-level-attribute" title="New SDP Media-Level attri de" removeInRFC="false" pn="section-12.1">
bute"> <name slugifiedName="name-new-sdp-media-level-attribu">New SDP Media-Lev
el Attribute</name>
<t>This document defines “rid” as SDP media-level attribute. This attribute must <t indent="0" pn="section-12.1-1">This document defines "rid" as an SDP
be registered by IANA under “Session Description Protocol (SDP) Parameters” media-level attribute. This
under “att-field (media level only)”.</t> attribute has been registered by IANA under "Session Description Protocol
(SDP) Parameters" under "att-field (media level only)".</t>
<t>The “rid” attribute is used to identify properties of RTP stream with in <t indent="0" pn="section-12.1-2">The "rid" attribute is used to identif
an RTP Session. Its format is defined in <xref target="sec-abnf"/>.</t> y the properties of an RTP
stream within an RTP session. Its format is defined in <xref target="sec-
<t>The formal registration information for this attribute follows.</t> abnf" format="default" sectionFormat="of" derivedContent="Section 10"/>.</t>
<t indent="0" pn="section-12.1-3">The formal registration information fo
<figure><artwork><![CDATA[ r this attribute follows.</t>
Contact name, email address, and telephone number <dl newline="true" indent="3" spacing="normal" pn="section-12.1-4">
<dt pn="section-12.1-4.1">
IETF MMUSIC Working Group Contact name, email address, and telephone number
mmusic@ietf.org </dt>
+1 510 492 4080 <dd pn="section-12.1-4.2">
<artwork align="left" pn="section-12.1-4.2.1">
Attribute name (as it will appear in SDP) IETF MMUSIC Working Group
mmusic@ietf.org
rid +1 510 492 4080
</artwork>
Long-form attribute name in English </dd>
<dt pn="section-12.1-4.3">
Restriction Identifier Attribute name (as it will appear in SDP)
</dt>
Type of attribute (session level, media level, or both) <dd pn="section-12.1-4.4">
rid
Media Level </dd>
<dt pn="section-12.1-4.5">
Whether the attribute value is subject to the charset attribute Long-form attribute name in English
</dt>
The attribute is not dependent on charset. <dd pn="section-12.1-4.6">
Restriction Identifier
A one-paragraph explanation of the purpose of the attribute </dd>
<dt pn="section-12.1-4.7">
The "rid" SDP attribute is used to to unambiguously identify Type of attribute (session level, media level, or both)
the RTP Streams within an RTP Session and restrict the </dt>
streams' payload format parameters in a codec-agnostic way <dd pn="section-12.1-4.8">
beyond what is provided with the regular Payload Types. Media Level
</dd>
A specification of appropriate attribute values for this attribute <dt pn="section-12.1-4.9">
Whether the attribute value is subject to the charset attribute
Valid values are defined by the ABNF in [RFCXXXXX] </dt>
<dd pn="section-12.1-4.10">
Multiplexing (Mux) Category The attribute is not dependent on charset.
</dd>
SPECIAL <dt pn="section-12.1-4.11">
]]></artwork></figure> A one-paragraph explanation of the purpose of the attribute
</dt>
</section> <dd pn="section-12.1-4.12">
<section anchor="sec-iana_rid" title="Registry for RID-Level Parameters"> The "rid" SDP attribute is used to unambiguously identify
the RTP streams within an RTP session and restrict the
<t>This specification creates a new IANA registry named “rid attribute parameter streams' payload format parameters in a codec-agnostic way
s” beyond what is provided with the regular payload types.
within the SDP parameters registry. The “a=rid” restrictions MUST be </dd>
<dt pn="section-12.1-4.13">
A specification of appropriate attribute values for this attribute
</dt>
<dd pn="section-12.1-4.14">
Valid values are defined by the ABNF in RFC 8851
</dd>
<dt pn="section-12.1-4.15">
Multiplexing (Mux) Category
</dt>
<dd pn="section-12.1-4.16">
SPECIAL
</dd>
</dl>
</section>
<section anchor="sec-iana_rid" numbered="true" toc="include" removeInRFC="
false" pn="section-12.2">
<name slugifiedName="name-registry-for-rid-level-para">Registry for RID-
Level Parameters</name>
<t indent="0" pn="section-12.2-1">This specification creates a new IANA
registry named "RID Attribute Parameters"
within the SDP parameters registry. The "a=rid" restrictions <bcp14>MUST</bcp14
> be
registered with IANA and documented under the same rules as for SDP registered with IANA and documented under the same rules as for SDP
session-level and media-level attributes as specified in <xref target="RFC4566"/ session-level and media-level attributes as specified in <xref target="RFC4566"
>.</t> format="default" sectionFormat="of" derivedContent="RFC4566"/>.</t>
<t indent="0" pn="section-12.2-2">Parameters for "a=rid" lines that modi
<t>Parameters for “a=rid” lines that modify the nature of encoded media MUST be fy the nature of encoded media <bcp14>MUST</bcp14> be
of the form that the result of applying the modification to the stream results of the form that the result of applying the modification to the stream results
in a stream that still complies with the other parameters that affect the in a stream that still complies with the other parameters that affect the
media. In other words, restrictions always have to restrict the definition to be media. In other words, restrictions always have to restrict the definition to be
a subset of what is otherwise allowable, and never expand it.</t> a subset of what is otherwise allowable, and never expand it.</t>
<t indent="0" pn="section-12.2-3">New restriction registrations are acce
<t>New restriction registrations are accepted according to the “Specification pted according to the "Specification
Required” policy of <xref target="RFC5226"/>. The registration MUST contain the Required" policy of <xref target="RFC8126" format="default" sectionFormat="of" d
RID erivedContent="RFC8126"/>. The registration <bcp14>MUST</bcp14> contain the RID
parameter name and a reference to the corresponding specification. The parameter name and a reference to the corresponding specification. The
specification itself must contain the following information (not all of which specification itself must contain the following information (not all of which
appears in the registry):</t> appears in the registry):</t>
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1
<t><list style="symbols"> 2.2-4">
<t>restriction name (as it will appear in SDP)</t> <li pn="section-12.2-4.1">restriction name (as it will appear in SDP)<
<t>an explanation of the purpose of the restriction</t> /li>
<t>a specification of appropriate attribute values for this restriction</t> <li pn="section-12.2-4.2">an explanation of the purpose of the restric
<t>an ABNF definition of the restriction</t> tion</li>
</list></t> <li pn="section-12.2-4.3">a specification of appropriate attribute val
ues for this restriction</li>
<t>The initial set of “a=rid” restriction names, with definitions in <li pn="section-12.2-4.4">an ABNF definition of the restriction</li>
<xref target="sec-rid_level_restrictions"/> of this document, is given below:</t </ul>
> <t indent="0" pn="section-12.2-5">The initial set of "a=rid" restriction
names, with definitions in
<figure><artwork><![CDATA[ <xref target="sec-rid_level_restrictions" format="default" sectionFormat="of" de
RID Parameter Name Reference rivedContent="Section 5"/> of this document,
------------------ --------- is given below:</t>
max-width [RFCXXXX] <table anchor="RID-params" align="center" pn="table-1">
max-height [RFCXXXX] <name slugifiedName="name-arid-restriction-names">"a=rid" restriction
max-fps [RFCXXXX] names</name>
max-fs [RFCXXXX] <thead>
max-br [RFCXXXX] <tr>
max-pps [RFCXXXX] <th align="left" colspan="1" rowspan="1">RID Parameter Name</th>
max-bpp [RFCXXXX] <th align="left" colspan="1" rowspan="1">Reference</th>
depend [RFCXXXX] </tr>
</thead>
]]></artwork></figure> <tbody>
<tr>
<t>It is conceivable that a future document wants to define a RID-level <td align="left" colspan="1" rowspan="1">pt</td>
<td align="left" colspan="1" rowspan="1">RFC 8851</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">max-width</td>
<td align="left" colspan="1" rowspan="1">RFC 8851</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">max-height</td>
<td align="left" colspan="1" rowspan="1">RFC 8851</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">max-fps</td>
<td align="left" colspan="1" rowspan="1">RFC 8851</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">max-fs</td>
<td align="left" colspan="1" rowspan="1">RFC 8851</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">max-br</td>
<td align="left" colspan="1" rowspan="1">RFC 8851</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">max-pps</td>
<td align="left" colspan="1" rowspan="1">RFC 8851</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">max-bpp</td>
<td align="left" colspan="1" rowspan="1">RFC 8851</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">depend</td>
<td align="left" colspan="1" rowspan="1">RFC 8851</td>
</tr>
</tbody>
</table>
<t indent="0" pn="section-12.2-7">It is conceivable that a future docume
nt will want to define RID-level
restrictions that contain string values. These extensions need to take care to restrictions that contain string values. These extensions need to take care to
conform to the ABNF defined for rid-param-other. In particular, this means conform to the ABNF defined for rid-param-other. In particular, this means
that such extensions will need to define escaping mechanisms if they that such extensions will need to define escaping mechanisms if they
want to allow semicolons, unprintable characters, or byte values want to allow semicolons, unprintable characters, or byte values
greater than 127 in the string.</t> greater than 127 in the string.</t>
</section>
</section> </section>
</section> <section anchor="security-considerations" numbered="true" toc="include" remo
<section anchor="security-considerations" title="Security Considerations"> veInRFC="false" pn="section-13">
<name slugifiedName="name-security-considerations">Security Considerations
<t>As with most SDP parameters, a failure to provide integrity protection over </name>
the “a=rid” attributes provides attackers a way to modify the session in <t indent="0" pn="section-13-1">As with most SDP parameters, a failure to
provide integrity protection over
the "a=rid" attributes gives attackers a way to modify the session in
potentially unwanted ways. This could result in an implementation sending potentially unwanted ways. This could result in an implementation sending
greater amounts of data than a recipient wishes to receive. In general, greater amounts of data than a recipient wishes to receive. In general,
however, since the “a=rid” attribute can only restrict a stream to be a subset however, since the "a=rid" attribute can only restrict a stream to be a subset
of what is otherwise allowable, modification of the value cannot result in a of what is otherwise allowable, modification of the value cannot result in a
stream that is of higher bandwidth than would be sent to an implementation stream that is of higher bandwidth than would be sent to an implementation
that does not support this mechanism.</t> that does not support this mechanism.</t>
<t indent="0" pn="section-13-2">The actual identifiers used for RIDs are e
<t>The actual identifiers used for RIDs are expected to be opaque. As such, they xpected to be opaque. As such, they
are not expected to contain information that would be sensitive, were it are not expected to contain information that would be sensitive, were it
observed by third-parties.</t> observed by third parties.</t>
</section>
</section>
<section anchor="acknowledgements" title="Acknowledgements">
<t>Many thanks to review from Cullen Jennings, Magnus Westerlund, and Paul
Kyzivat. Thanks to Colin Perkins for input on future payload type handing.</t>
</section>
</middle> </middle>
<back> <back>
<references pn="section-14">
<references title='Normative References'> <name slugifiedName="name-references">References</name>
<references pn="section-14.1">
<reference anchor="I-D.ietf-avtext-rid"> <name slugifiedName="name-normative-references">Normative References</na
<front> me>
<title>RTP Stream Identifier Source Description (SDES)</title> <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2
119" quoteTitle="true" derivedAnchor="RFC2119">
<author initials='A' surname='Roach' fullname='Adam Roach'> <front>
<organization /> <title>Key words for use in RFCs to Indicate Requirement Levels</tit
</author> le>
<author initials="S." surname="Bradner" fullname="S. Bradner">
<author initials='S' surname='Nandakumar' fullname='Suhas Nandakumar'> <organization showOnFrontPage="true"/>
<organization /> </author>
</author> <date year="1997" month="March"/>
<abstract>
<author initials='P' surname='Thatcher' fullname='Peter Thatcher'> <t indent="0">In many standards track documents several words are
<organization /> used to signify the requirements in the specification. These words are often ca
</author> pitalized. This document defines these words as they should be interpreted in IE
TF documents. This document specifies an Internet Best Current Practices for th
<date month='October' day='6' year='2016' /> e Internet Community, and requests discussion and suggestions for improvements.<
/t>
<abstract><t>This document defines and registers two new RTCP Stream Identifier </abstract>
Source Description (SDES) items. One, named RtpStreamId, is used for unique ide </front>
ntification of RTP streams. The other, RepairedRtpStreamId, can be used to iden <seriesInfo name="BCP" value="14"/>
tify which stream a redundancy RTP stream is to be used to repair.</t></abstract <seriesInfo name="RFC" value="2119"/>
> <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
</front> <reference anchor="RFC3264" target="https://www.rfc-editor.org/info/rfc3
264" quoteTitle="true" derivedAnchor="RFC3264">
<seriesInfo name='Internet-Draft' value='draft-ietf-avtext-rid-09' /> <front>
<format type='TXT' <title>An Offer/Answer Model with Session Description Protocol (SDP)
target='http://www.ietf.org/internet-drafts/draft-ietf-avtext-rid-09.txt </title>
' /> <author initials="J." surname="Rosenberg" fullname="J. Rosenberg">
</reference> <organization showOnFrontPage="true"/>
</author>
<reference anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'> <author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne
<front> ">
<title>Key words for use in RFCs to Indicate Requirement Levels</title> <organization showOnFrontPage="true"/>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></ </author>
author> <date year="2002" month="June"/>
<date year='1997' month='March' /> <abstract>
<abstract><t>In many standards track documents several words are used to signify <t indent="0">This document defines a mechanism by which two entit
the requirements in the specification. These words are often capitalized. This ies can make use of the Session Description Protocol (SDP) to arrive at a common
document defines these words as they should be interpreted in IETF documents. view of a multimedia session between them. In the model, one participant offer
This document specifies an Internet Best Current Practices for the Internet Comm s the other a description of the desired session from their perspective, and the
unity, and requests discussion and suggestions for improvements.</t></abstract> other participant answers with the desired session from their perspective. Thi
</front> s offer/answer model is most useful in unicast sessions where information from b
<seriesInfo name='BCP' value='14'/> oth participants is needed for the complete view of the session. The offer/answ
<seriesInfo name='RFC' value='2119'/> er model is used by protocols like the Session Initiation Protocol (SIP). [STAN
<seriesInfo name='DOI' value='10.17487/RFC2119'/> DARDS-TRACK]</t>
</reference> </abstract>
</front>
<reference anchor="RFC3264" target='https://www.rfc-editor.org/info/rfc3264'> <seriesInfo name="RFC" value="3264"/>
<front> <seriesInfo name="DOI" value="10.17487/RFC3264"/>
<title>An Offer/Answer Model with Session Description Protocol (SDP)</title> </reference>
<author initials='J.' surname='Rosenberg' fullname='J. Rosenberg'><organization <reference anchor="RFC3550" target="https://www.rfc-editor.org/info/rfc3
/></author> 550" quoteTitle="true" derivedAnchor="RFC3550">
<author initials='H.' surname='Schulzrinne' fullname='H. Schulzrinne'><organizat <front>
ion /></author> <title>RTP: A Transport Protocol for Real-Time Applications</title>
<date year='2002' month='June' /> <author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne
<abstract><t>This document defines a mechanism by which two entities can make us ">
e of the Session Description Protocol (SDP) to arrive at a common view of a mult <organization showOnFrontPage="true"/>
imedia session between them. In the model, one participant offers the other a d </author>
escription of the desired session from their perspective, and the other particip <author initials="S." surname="Casner" fullname="S. Casner">
ant answers with the desired session from their perspective. This offer/answer <organization showOnFrontPage="true"/>
model is most useful in unicast sessions where information from both participant </author>
s is needed for the complete view of the session. The offer/answer model is use <author initials="R." surname="Frederick" fullname="R. Frederick">
d by protocols like the Session Initiation Protocol (SIP). [STANDARDS-TRACK]</t <organization showOnFrontPage="true"/>
></abstract> </author>
</front> <author initials="V." surname="Jacobson" fullname="V. Jacobson">
<seriesInfo name='RFC' value='3264'/> <organization showOnFrontPage="true"/>
<seriesInfo name='DOI' value='10.17487/RFC3264'/> </author>
</reference> <date year="2003" month="July"/>
<abstract>
<reference anchor="RFC3550" target='https://www.rfc-editor.org/info/rfc3550'> <t indent="0">This memorandum describes RTP, the real-time transpo
<front> rt protocol. RTP provides end-to-end network transport functions suitable for a
<title>RTP: A Transport Protocol for Real-Time Applications</title> pplications transmitting real-time data, such as audio, video or simulation data
<author initials='H.' surname='Schulzrinne' fullname='H. Schulzrinne'><organizat , over multicast or unicast network services. RTP does not address resource res
ion /></author> ervation and does not guarantee quality-of- service for real-time services. The
<author initials='S.' surname='Casner' fullname='S. Casner'><organization /></au data transport is augmented by a control protocol (RTCP) to allow monitoring of
thor> the data delivery in a manner scalable to large multicast networks, and to prov
<author initials='R.' surname='Frederick' fullname='R. Frederick'><organization ide minimal control and identification functionality. RTP and RTCP are designed
/></author> to be independent of the underlying transport and network layers. The protocol
<author initials='V.' surname='Jacobson' fullname='V. Jacobson'><organization /> supports the use of RTP-level translators and mixers. Most of the text in this
</author> memorandum is identical to RFC 1889 which it obsoletes. There are no changes in
<date year='2003' month='July' /> the packet formats on the wire, only changes to the rules and algorithms govern
<abstract><t>This memorandum describes RTP, the real-time transport protocol. R ing how the protocol is used. The biggest change is an enhancement to the scalab
TP provides end-to-end network transport functions suitable for applications tra le timer algorithm for calculating when to send RTCP packets in order to minimiz
nsmitting real-time data, such as audio, video or simulation data, over multicas e transmission in excess of the intended rate when many participants join a sess
t or unicast network services. RTP does not address resource reservation and do ion simultaneously. [STANDARDS-TRACK]</t>
es not guarantee quality-of- service for real-time services. The data transport </abstract>
is augmented by a control protocol (RTCP) to allow monitoring of the data deliv </front>
ery in a manner scalable to large multicast networks, and to provide minimal con <seriesInfo name="STD" value="64"/>
trol and identification functionality. RTP and RTCP are designed to be independ <seriesInfo name="RFC" value="3550"/>
ent of the underlying transport and network layers. The protocol supports the u <seriesInfo name="DOI" value="10.17487/RFC3550"/>
se of RTP-level translators and mixers. Most of the text in this memorandum is i </reference>
dentical to RFC 1889 which it obsoletes. There are no changes in the packet for <reference anchor="RFC4566" target="https://www.rfc-editor.org/info/rfc4
mats on the wire, only changes to the rules and algorithms governing how the pro 566" quoteTitle="true" derivedAnchor="RFC4566">
tocol is used. The biggest change is an enhancement to the scalable timer algori <front>
thm for calculating when to send RTCP packets in order to minimize transmission <title>SDP: Session Description Protocol</title>
in excess of the intended rate when many participants join a session simultaneou <author initials="M." surname="Handley" fullname="M. Handley">
sly. [STANDARDS-TRACK]</t></abstract> <organization showOnFrontPage="true"/>
</front> </author>
<seriesInfo name='STD' value='64'/> <author initials="V." surname="Jacobson" fullname="V. Jacobson">
<seriesInfo name='RFC' value='3550'/> <organization showOnFrontPage="true"/>
<seriesInfo name='DOI' value='10.17487/RFC3550'/> </author>
</reference> <author initials="C." surname="Perkins" fullname="C. Perkins">
<organization showOnFrontPage="true"/>
<reference anchor="RFC4566" target='https://www.rfc-editor.org/info/rfc4566'> </author>
<front> <date year="2006" month="July"/>
<title>SDP: Session Description Protocol</title> <abstract>
<author initials='M.' surname='Handley' fullname='M. Handley'><organization /></ <t indent="0">This memo defines the Session Description Protocol (
author> SDP). SDP is intended for describing multimedia sessions for the purposes of se
<author initials='V.' surname='Jacobson' fullname='V. Jacobson'><organization /> ssion announcement, session invitation, and other forms of multimedia session in
</author> itiation. [STANDARDS-TRACK]</t>
<author initials='C.' surname='Perkins' fullname='C. Perkins'><organization /></ </abstract>
author> </front>
<date year='2006' month='July' /> <seriesInfo name="RFC" value="4566"/>
<abstract><t>This memo defines the Session Description Protocol (SDP). SDP is i <seriesInfo name="DOI" value="10.17487/RFC4566"/>
ntended for describing multimedia sessions for the purposes of session announcem </reference>
ent, session invitation, and other forms of multimedia session initiation. [STA <reference anchor="RFC4855" target="https://www.rfc-editor.org/info/rfc4
NDARDS-TRACK]</t></abstract> 855" quoteTitle="true" derivedAnchor="RFC4855">
</front> <front>
<seriesInfo name='RFC' value='4566'/> <title>Media Type Registration of RTP Payload Formats</title>
<seriesInfo name='DOI' value='10.17487/RFC4566'/> <author initials="S." surname="Casner" fullname="S. Casner">
</reference> <organization showOnFrontPage="true"/>
</author>
<reference anchor="RFC4855" target='https://www.rfc-editor.org/info/rfc4855'> <date year="2007" month="February"/>
<front> <abstract>
<title>Media Type Registration of RTP Payload Formats</title> <t indent="0">This document specifies the procedure to register RT
<author initials='S.' surname='Casner' fullname='S. Casner'><organization /></au P payload formats as audio, video, or other media subtype names. This is useful
thor> in a text-based format description or control protocol to identify the type of
<date year='2007' month='February' /> an RTP transmission. [STANDARDS-TRACK]</t>
<abstract><t>This document specifies the procedure to register RTP payload forma </abstract>
ts as audio, video, or other media subtype names. This is useful in a text-base </front>
d format description or control protocol to identify the type of an RTP transmis <seriesInfo name="RFC" value="4855"/>
sion. [STANDARDS-TRACK]</t></abstract> <seriesInfo name="DOI" value="10.17487/RFC4855"/>
</front> </reference>
<seriesInfo name='RFC' value='4855'/> <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5
<seriesInfo name='DOI' value='10.17487/RFC4855'/> 234" quoteTitle="true" derivedAnchor="RFC5234">
</reference> <front>
<title>Augmented BNF for Syntax Specifications: ABNF</title>
<reference anchor="RFC5234" target='https://www.rfc-editor.org/info/rfc5234'> <author initials="D." surname="Crocker" fullname="D. Crocker" role="
<front> editor">
<title>Augmented BNF for Syntax Specifications: ABNF</title> <organization showOnFrontPage="true"/>
<author initials='D.' surname='Crocker' fullname='D. Crocker' role='editor'><org </author>
anization /></author> <author initials="P." surname="Overell" fullname="P. Overell">
<author initials='P.' surname='Overell' fullname='P. Overell'><organization /></ <organization showOnFrontPage="true"/>
author> </author>
<date year='2008' month='January' /> <date year="2008" month="January"/>
<abstract><t>Internet technical specifications often need to define a formal syn <abstract>
tax. Over the years, a modified version of Backus-Naur Form (BNF), called Augme <t indent="0">Internet technical specifications often need to defi
nted BNF (ABNF), has been popular among many Internet specifications. The curre ne a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF
nt specification documents ABNF. It balances compactness and simplicity with rea ), called Augmented BNF (ABNF), has been popular among many Internet specificati
sonable representational power. The differences between standard BNF and ABNF i ons. The current specification documents ABNF. It balances compactness and simp
nvolve naming rules, repetition, alternatives, order-independence, and value ran licity with reasonable representational power. The differences between standard
ges. This specification also supplies additional rule definitions and encoding BNF and ABNF involve naming rules, repetition, alternatives, order-independence
for a core lexical analyzer of the type common to several Internet specification , and value ranges. This specification also supplies additional rule definition
s. [STANDARDS-TRACK]</t></abstract> s and encoding for a core lexical analyzer of the type common to several Interne
</front> t specifications. [STANDARDS-TRACK]</t>
<seriesInfo name='STD' value='68'/> </abstract>
<seriesInfo name='RFC' value='5234'/> </front>
<seriesInfo name='DOI' value='10.17487/RFC5234'/> <seriesInfo name="STD" value="68"/>
</reference> <seriesInfo name="RFC" value="5234"/>
<seriesInfo name="DOI" value="10.17487/RFC5234"/>
<reference anchor="RFC7405" target='https://www.rfc-editor.org/info/rfc7405'> </reference>
<front> <reference anchor="RFC7405" target="https://www.rfc-editor.org/info/rfc7
<title>Case-Sensitive String Support in ABNF</title> 405" quoteTitle="true" derivedAnchor="RFC7405">
<author initials='P.' surname='Kyzivat' fullname='P. Kyzivat'><organization /></ <front>
author> <title>Case-Sensitive String Support in ABNF</title>
<date year='2014' month='December' /> <author initials="P." surname="Kyzivat" fullname="P. Kyzivat">
<abstract><t>This document extends the base definition of ABNF (Augmented Backus <organization showOnFrontPage="true"/>
-Naur Form) to include a way to specify US-ASCII string literals that are matche </author>
d in a case-sensitive manner.</t></abstract> <date year="2014" month="December"/>
</front> <abstract>
<seriesInfo name='RFC' value='7405'/> <t indent="0">This document extends the base definition of ABNF (A
<seriesInfo name='DOI' value='10.17487/RFC7405'/> ugmented Backus-Naur Form) to include a way to specify US-ASCII string literals
</reference> that are matched in a case-sensitive manner.</t>
</abstract>
<reference anchor="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'> </front>
<front> <seriesInfo name="RFC" value="7405"/>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title> <seriesInfo name="DOI" value="10.17487/RFC7405"/>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></auth </reference>
or> <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8
<date year='2017' month='May' /> 174" quoteTitle="true" derivedAnchor="RFC8174">
<abstract><t>RFC 2119 specifies common key words that may be used in protocol s <front>
pecifications. This document aims to reduce the ambiguity by clarifying that on <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti
ly UPPERCASE usage of the key words have the defined special meanings.</t></abs tle>
tract> <author initials="B." surname="Leiba" fullname="B. Leiba">
</front> <organization showOnFrontPage="true"/>
<seriesInfo name='BCP' value='14'/> </author>
<seriesInfo name='RFC' value='8174'/> <date year="2017" month="May"/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/> <abstract>
</reference> <t indent="0">RFC 2119 specifies common key words that may be used
in protocol specifications. This document aims to reduce the ambiguity by cla
</references> rifying that only UPPERCASE usage of the key words have the defined special mea
nings.</t>
<references title='Informative References'> </abstract>
</front>
<reference anchor="I-D.ietf-mmusic-sdp-bundle-negotiation"> <seriesInfo name="BCP" value="14"/>
<front> <seriesInfo name="RFC" value="8174"/>
<title>Negotiating Media Multiplexing Using the Session Description Protocol (SD <seriesInfo name="DOI" value="10.17487/RFC8174"/>
P)</title> </reference>
<reference anchor="RFC8852" target="https://www.rfc-editor.org/info/rfc8
<author initials='C' surname='Holmberg' fullname='Christer Holmberg'> 852" quoteTitle="true" derivedAnchor="RFC8852">
<organization /> <front>
</author> <title>RTP Stream Identifier Source Description (SDES)</title>
<author initials="A.B." surname="Roach" fullname="Adam Roach"/>
<author initials='H' surname='Alvestrand' fullname='Harald Alvestrand'> <author initials="S" surname="Nandakumar" fullname="Suhas Nandakumar
<organization /> "/>
</author> <author initials="P" surname="Thatcher" fullname="Peter Thatcher"/>
<date month="January" year="2021"/>
<author initials='C' surname='Jennings' fullname='Cullen Jennings'> </front>
<organization /> <seriesInfo name="RFC" value="8852"/>
</author> <seriesInfo name="DOI" value="10.17487/RFC8852"/>
</reference>
<date month='December' day='14' year='2018' /> </references>
<references pn="section-14.2">
<abstract><t>This specification defines a new Session Description Protocol (SDP) <name slugifiedName="name-informative-references">Informative References
Grouping Framework extension, 'BUNDLE'. The extension can be used with the SDP </name>
Offer/Answer mechanism to negotiate the usage of a single transport (5-tuple) f <reference anchor="H264" target="https://www.itu.int/rec/T-REC-H.264" qu
or sending and receiving media described by multiple SDP media descriptions ("m= oteTitle="true" derivedAnchor="H264">
" sections). Such transport is referred to as a BUNDLE transport, and the media <front>
is referred to as bundled media. The "m=" sections that use the BUNDLE transpo <title>Advanced video coding for generic audiovisual services</title
rt form a BUNDLE group. This specification updates RFC 3264, to also allow assi >
gning a zero port value to a "m=" section in cases where the media described by <seriesInfo name="ITU-T Recommendation" value="H.264"/>
the "m=" section is not disabled or rejected. This specification updates RFC 58 <author>
88, to also allow an SDP 'group' attribute to contain an identification-tag that <organization showOnFrontPage="true">International Telecommunicati
identifies a "m=" section with the port set to zero. This specification define on Union</organization>
s a new RTP Control Protocol (RTCP) source description (SDES) item and a new RTP </author>
header extension that can be used to correlate bundled RTP/RTCP packets with th <date year="2019" month="June"/>
eir appropriate "m=" section. This specification updates RFC 7941, by adding an </front>
exception, for the MID RTP header extension, to the requirement regarding prote </reference>
ction of an SDES RTP header extension carrying an SDES item for the MID RTP head <reference anchor="RFC2198" target="https://www.rfc-editor.org/info/rfc2
er extension.</t></abstract> 198" quoteTitle="true" derivedAnchor="RFC2198">
<front>
</front> <title>RTP Payload for Redundant Audio Data</title>
<author initials="C." surname="Perkins" fullname="C. Perkins">
<seriesInfo name='Internet-Draft' value='draft-ietf-mmusic-sdp-bundle-negotiatio <organization showOnFrontPage="true"/>
n-54' /> </author>
<format type='TXT' <author initials="I." surname="Kouvelas" fullname="I. Kouvelas">
target='http://www.ietf.org/internet-drafts/draft-ietf-mmusic-sdp-bundle <organization showOnFrontPage="true"/>
-negotiation-54.txt' /> </author>
</reference> <author initials="O." surname="Hodson" fullname="O. Hodson">
<organization showOnFrontPage="true"/>
<reference anchor="I-D.ietf-mmusic-sdp-simulcast"> </author>
<front> <author initials="V." surname="Hardman" fullname="V. Hardman">
<title>Using Simulcast in SDP and RTP Sessions</title> <organization showOnFrontPage="true"/>
</author>
<author initials='B' surname='Burman' fullname='Bo Burman'> <author initials="M." surname="Handley" fullname="M. Handley">
<organization /> <organization showOnFrontPage="true"/>
</author> </author>
<author initials="J.C." surname="Bolot" fullname="J.C. Bolot">
<author initials='M' surname='Westerlund' fullname='Magnus Westerlund'> <organization showOnFrontPage="true"/>
<organization /> </author>
</author> <author initials="A." surname="Vega-Garcia" fullname="A. Vega-Garcia
">
<author initials='S' surname='Nandakumar' fullname='Suhas Nandakumar'> <organization showOnFrontPage="true"/>
<organization /> </author>
</author> <author initials="S." surname="Fosse-Parisis" fullname="S. Fosse-Par
isis">
<author initials='M' surname='Zanaty' fullname='Mo Zanaty'> <organization showOnFrontPage="true"/>
<organization /> </author>
</author> <date year="1997" month="September"/>
<abstract>
<date month='June' day='27' year='2018' /> <t indent="0">This document describes a payload format for use wit
h the real-time transport protocol (RTP), version 2, for encoding redundant audi
<abstract><t>In some application scenarios it may be desirable to send multiple o data. [STANDARDS-TRACK]</t>
differently encoded versions of the same media source in different RTP streams. </abstract>
This is called simulcast. This document describes how to accomplish simulcast </front>
in RTP and how to signal it in SDP. The described solution uses an RTP/RTCP ide <seriesInfo name="RFC" value="2198"/>
ntification method to identify RTP streams belonging to the same media source, a <seriesInfo name="DOI" value="10.17487/RFC2198"/>
nd makes an extension to SDP to relate those RTP streams as being different simu </reference>
lcast formats of that media source. The SDP extension consists of a new media l <reference anchor="RFC4588" target="https://www.rfc-editor.org/info/rfc4
evel SDP attribute that expresses capability to send and/or receive simulcast RT 588" quoteTitle="true" derivedAnchor="RFC4588">
P streams.</t></abstract> <front>
<title>RTP Retransmission Payload Format</title>
</front> <author initials="J." surname="Rey" fullname="J. Rey">
<organization showOnFrontPage="true"/>
<seriesInfo name='Internet-Draft' value='draft-ietf-mmusic-sdp-simulcast-13' /> </author>
<format type='TXT' <author initials="D." surname="Leon" fullname="D. Leon">
target='http://www.ietf.org/internet-drafts/draft-ietf-mmusic-sdp-simulc <organization showOnFrontPage="true"/>
ast-13.txt' /> </author>
</reference> <author initials="A." surname="Miyazaki" fullname="A. Miyazaki">
<organization showOnFrontPage="true"/>
<reference anchor="I-D.ietf-payload-flexible-fec-scheme"> </author>
<front> <author initials="V." surname="Varsa" fullname="V. Varsa">
<title>RTP Payload Format for Flexible Forward Error Correction (FEC)</title> <organization showOnFrontPage="true"/>
</author>
<author initials='M' surname='Zanaty' fullname='Mo Zanaty'> <author initials="R." surname="Hakenberg" fullname="R. Hakenberg">
<organization /> <organization showOnFrontPage="true"/>
</author> </author>
<date year="2006" month="July"/>
<author initials='V' surname='Singh' fullname='Varun Singh'> <abstract>
<organization /> <t indent="0">RTP retransmission is an effective packet loss recov
</author> ery technique for real-time applications with relaxed delay bounds. This docume
nt describes an RTP payload format for performing retransmissions. Retransmitted
<author initials='A' surname='Begen' fullname='Ali Begen'> RTP packets are sent in a separate stream from the original RTP stream. It is
<organization /> assumed that feedback from receivers to senders is available. In particular, it
</author> is assumed that Real-time Transport Control Protocol (RTCP) feedback as defined
in the extended RTP profile for RTCP-based feedback (denoted RTP/AVPF) is avail
<author initials='G' surname='Mandyam' fullname='Giridhar Mandyam'> able in this memo. [STANDARDS-TRACK]</t>
<organization /> </abstract>
</author> </front>
<seriesInfo name="RFC" value="4588"/>
<date month='December' day='11' year='2018' /> <seriesInfo name="DOI" value="10.17487/RFC4588"/>
</reference>
<abstract><t>This document defines new RTP payload formats for the Forward Error <reference anchor="RFC5109" target="https://www.rfc-editor.org/info/rfc5
Correction (FEC) packets that are generated by the non-interleaved and interlea 109" quoteTitle="true" derivedAnchor="RFC5109">
ved parity codes from source media encapsulated in RTP. These parity codes are s <front>
ystematic codes, where a number of FEC repair packets are generated from a set o <title>RTP Payload Format for Generic Forward Error Correction</titl
f source packets from one or more source RTP streams. These FEC repair packets e>
are sent in a redundancy RTP stream separate from the source RTP stream(s) that <author initials="A." surname="Li" fullname="A. Li" role="editor">
carries the source packets. RTP source packets that were lost in transmission c <organization showOnFrontPage="true"/>
an be reconstructed using the source and repair packets that were received. The </author>
non-interleaved and interleaved parity codes which are defined in this specific <date year="2007" month="December"/>
ation offer a good protection against random and bursty packet losses, respectiv <abstract>
ely, at a cost of decent complexity. The RTP payload formats that are defined i <t indent="0">This document specifies a payload format for generic
n this document address scalability issues experienced with the earlier specific Forward Error Correction (FEC) for media data encapsulated in RTP. It is based
ations, and offer several improvements. Due to these changes, the new payload f on the exclusive-or (parity) operation. The payload format described in this d
ormats are not backward compatible with earlier specifications, but endpoints th ocument allows end systems to apply protection using various protection lengths
at do not implement this specification can still work by simply ignoring the FEC and levels, in addition to using various protection group sizes to adapt to diff
repair packets.</t></abstract> erent media and channel characteristics. It enables complete recovery of the pro
tected packets or partial recovery of the critical parts of the payload dependin
</front> g on the packet loss situation. This scheme is completely compatible with non-F
EC-capable hosts, so the receivers in a multicast group that do not implement FE
<seriesInfo name='Internet-Draft' value='draft-ietf-payload-flexible-fec-scheme- C can still work by simply ignoring the protection data. This specification obs
13' /> oletes RFC 2733 and RFC 3009. The FEC specified in this document is not backwar
<format type='TXT' d compatible with RFC 2733 and RFC 3009. [STANDARDS-TRACK]</t>
target='http://www.ietf.org/internet-drafts/draft-ietf-payload-flexible- </abstract>
fec-scheme-13.txt' /> </front>
<format type='PDF' <seriesInfo name="RFC" value="5109"/>
target='http://www.ietf.org/internet-drafts/draft-ietf-payload-flexible- <seriesInfo name="DOI" value="10.17487/RFC5109"/>
fec-scheme-13.pdf' /> </reference>
</reference> <reference anchor="RFC6184" target="https://www.rfc-editor.org/info/rfc6
184" quoteTitle="true" derivedAnchor="RFC6184">
<reference anchor="RFC2198" target='https://www.rfc-editor.org/info/rfc2198'> <front>
<front> <title>RTP Payload Format for H.264 Video</title>
<title>RTP Payload for Redundant Audio Data</title> <author initials="Y.-K." surname="Wang" fullname="Y.-K. Wang">
<author initials='C.' surname='Perkins' fullname='C. Perkins'><organization /></ <organization showOnFrontPage="true"/>
author> </author>
<author initials='I.' surname='Kouvelas' fullname='I. Kouvelas'><organization /> <author initials="R." surname="Even" fullname="R. Even">
</author> <organization showOnFrontPage="true"/>
<author initials='O.' surname='Hodson' fullname='O. Hodson'><organization /></au </author>
thor> <author initials="T." surname="Kristensen" fullname="T. Kristensen">
<author initials='V.' surname='Hardman' fullname='V. Hardman'><organization /></ <organization showOnFrontPage="true"/>
author> </author>
<author initials='M.' surname='Handley' fullname='M. Handley'><organization /></ <author initials="R." surname="Jesup" fullname="R. Jesup">
author> <organization showOnFrontPage="true"/>
<author initials='J.C.' surname='Bolot' fullname='J.C. Bolot'><organization /></ </author>
author> <date year="2011" month="May"/>
<author initials='A.' surname='Vega-Garcia' fullname='A. Vega-Garcia'><organizat <abstract>
ion /></author> <t indent="0">This memo describes an RTP Payload format for the IT
<author initials='S.' surname='Fosse-Parisis' fullname='S. Fosse-Parisis'><organ U-T Recommendation H.264 video codec and the technically identical ISO/IEC Inter
ization /></author> national Standard 14496-10 video codec, excluding the Scalable Video Coding (SVC
<date year='1997' month='September' /> ) extension and the Multiview Video Coding extension, for which the RTP payload
<abstract><t>This document describes a payload format for use with the real-time formats are defined elsewhere. The RTP payload format allows for packetization o
transport protocol (RTP), version 2, for encoding redundant audio data. [STANDA f one or more Network Abstraction Layer Units (NALUs), produced by an H.264 vide
RDS-TRACK]</t></abstract> o encoder, in each RTP payload. The payload format has wide applicability, as i
</front> t supports applications from simple low bitrate conversational usage, to Interne
<seriesInfo name='RFC' value='2198'/> t video streaming with interleaved transmission, to high bitrate video-on-demand
<seriesInfo name='DOI' value='10.17487/RFC2198'/> .</t>
</reference> <t indent="0">This memo obsoletes RFC 3984. Changes from RFC 3984
are summarized in Section 14. Issues on backward compatibility to RFC 3984 are
<reference anchor="RFC4588" target='https://www.rfc-editor.org/info/rfc4588'> discussed in Section 15. [STANDARDS-TRACK]</t>
<front> </abstract>
<title>RTP Retransmission Payload Format</title> </front>
<author initials='J.' surname='Rey' fullname='J. Rey'><organization /></author> <seriesInfo name="RFC" value="6184"/>
<author initials='D.' surname='Leon' fullname='D. Leon'><organization /></author <seriesInfo name="DOI" value="10.17487/RFC6184"/>
> </reference>
<author initials='A.' surname='Miyazaki' fullname='A. Miyazaki'><organization /> <reference anchor="RFC6236" target="https://www.rfc-editor.org/info/rfc6
</author> 236" quoteTitle="true" derivedAnchor="RFC6236">
<author initials='V.' surname='Varsa' fullname='V. Varsa'><organization /></auth <front>
or> <title>Negotiation of Generic Image Attributes in the Session Descri
<author initials='R.' surname='Hakenberg' fullname='R. Hakenberg'><organization ption Protocol (SDP)</title>
/></author> <author initials="I." surname="Johansson" fullname="I. Johansson">
<date year='2006' month='July' /> <organization showOnFrontPage="true"/>
<abstract><t>RTP retransmission is an effective packet loss recovery technique f </author>
or real-time applications with relaxed delay bounds. This document describes an <author initials="K." surname="Jung" fullname="K. Jung">
RTP payload format for performing retransmissions. Retransmitted RTP packets ar <organization showOnFrontPage="true"/>
e sent in a separate stream from the original RTP stream. It is assumed that fe </author>
edback from receivers to senders is available. In particular, it is assumed tha <date year="2011" month="May"/>
t Real-time Transport Control Protocol (RTCP) feedback as defined in the extende <abstract>
d RTP profile for RTCP-based feedback (denoted RTP/AVPF) is available in this me <t indent="0">This document proposes a new generic session setup a
mo. [STANDARDS-TRACK]</t></abstract> ttribute to make it possible to negotiate different image attributes such as ima
</front> ge size. A possible use case is to make it possible for a \%low-end \%hand- hel
<seriesInfo name='RFC' value='4588'/> d terminal to display video without the need to rescale the image, something tha
<seriesInfo name='DOI' value='10.17487/RFC4588'/> t may consume large amounts of memory and processing power. The document also h
</reference> elps to maintain an optimal bitrate for video as only the image size that is des
ired by the receiver is transmitted. [STANDARDS-TRACK]</t>
<reference anchor="RFC5109" target='https://www.rfc-editor.org/info/rfc5109'> </abstract>
<front> </front>
<title>RTP Payload Format for Generic Forward Error Correction</title> <seriesInfo name="RFC" value="6236"/>
<author initials='A.' surname='Li' fullname='A. Li' role='editor'><organization <seriesInfo name="DOI" value="10.17487/RFC6236"/>
/></author> </reference>
<date year='2007' month='December' /> <reference anchor="RFC7656" target="https://www.rfc-editor.org/info/rfc7
<abstract><t>This document specifies a payload format for generic Forward Error 656" quoteTitle="true" derivedAnchor="RFC7656">
Correction (FEC) for media data encapsulated in RTP. It is based on the exclusi <front>
ve-or (parity) operation. The payload format described in this document allows <title>A Taxonomy of Semantics and Mechanisms for Real-Time Transpor
end systems to apply protection using various protection lengths and levels, in t Protocol (RTP) Sources</title>
addition to using various protection group sizes to adapt to different media and <author initials="J." surname="Lennox" fullname="J. Lennox">
channel characteristics. It enables complete recovery of the protected packets <organization showOnFrontPage="true"/>
or partial recovery of the critical parts of the payload depending on the packet </author>
loss situation. This scheme is completely compatible with non-FEC-capable host <author initials="K." surname="Gross" fullname="K. Gross">
s, so the receivers in a multicast group that do not implement FEC can still wor <organization showOnFrontPage="true"/>
k by simply ignoring the protection data. This specification obsoletes RFC 2733 </author>
and RFC 3009. The FEC specified in this document is not backward compatible wi <author initials="S." surname="Nandakumar" fullname="S. Nandakumar">
th RFC 2733 and RFC 3009. [STANDARDS-TRACK]</t></abstract> <organization showOnFrontPage="true"/>
</front> </author>
<seriesInfo name='RFC' value='5109'/> <author initials="G." surname="Salgueiro" fullname="G. Salgueiro">
<seriesInfo name='DOI' value='10.17487/RFC5109'/> <organization showOnFrontPage="true"/>
</reference> </author>
<author initials="B." surname="Burman" fullname="B. Burman" role="ed
<reference anchor="RFC5226" target='https://www.rfc-editor.org/info/rfc5226'> itor">
<front> <organization showOnFrontPage="true"/>
<title>Guidelines for Writing an IANA Considerations Section in RFCs</title> </author>
<author initials='T.' surname='Narten' fullname='T. Narten'><organization /></au <date year="2015" month="November"/>
thor> <abstract>
<author initials='H.' surname='Alvestrand' fullname='H. Alvestrand'><organizatio <t indent="0">The terminology about, and associations among, Real-
n /></author> time Transport Protocol (RTP) sources can be complex and somewhat opaque. This
<date year='2008' month='May' /> document describes a number of existing and proposed properties and relationship
<abstract><t>Many protocols make use of identifiers consisting of constants and s among RTP sources and defines common terminology for discussing protocol entit
other well-known values. Even after a protocol has been defined and deployment ies and their relationships.</t>
has begun, new values may need to be assigned (e.g., for a new option type in DH </abstract>
CP, or a new encryption or authentication transform for IPsec). To ensure that </front>
such quantities have consistent values and interpretations across all implementa <seriesInfo name="RFC" value="7656"/>
tions, their assignment must be administered by a central authority. For IETF p <seriesInfo name="DOI" value="10.17487/RFC7656"/>
rotocols, that role is provided by the Internet Assigned Numbers Authority (IANA </reference>
).</t><t>In order for IANA to manage a given namespace prudently, it needs guide <reference anchor="RFC7741" target="https://www.rfc-editor.org/info/rfc7
lines describing the conditions under which new values can be assigned or when m 741" quoteTitle="true" derivedAnchor="RFC7741">
odifications to existing values can be made. If IANA is expected to play a role <front>
in the management of a namespace, IANA must be given clear and concise instruct <title>RTP Payload Format for VP8 Video</title>
ions describing that role. This document discusses issues that should be consid <author initials="P." surname="Westin" fullname="P. Westin">
ered in formulating a policy for assigning values to a namespace and provides gu <organization showOnFrontPage="true"/>
idelines for authors on the specific text that must be included in documents tha </author>
t place demands on IANA.</t><t>This document obsoletes RFC 2434. This document <author initials="H." surname="Lundin" fullname="H. Lundin">
specifies an Internet Best Current Practices for the Internet Community, and re <organization showOnFrontPage="true"/>
quests discussion and suggestions for improvements.</t></abstract> </author>
</front> <author initials="M." surname="Glover" fullname="M. Glover">
<seriesInfo name='RFC' value='5226'/> <organization showOnFrontPage="true"/>
<seriesInfo name='DOI' value='10.17487/RFC5226'/> </author>
</reference> <author initials="J." surname="Uberti" fullname="J. Uberti">
<organization showOnFrontPage="true"/>
<reference anchor="RFC6184" target='https://www.rfc-editor.org/info/rfc6184'> </author>
<front> <author initials="F." surname="Galligan" fullname="F. Galligan">
<title>RTP Payload Format for H.264 Video</title> <organization showOnFrontPage="true"/>
<author initials='Y.-K.' surname='Wang' fullname='Y.-K. Wang'><organization /></ </author>
author> <date year="2016" month="March"/>
<author initials='R.' surname='Even' fullname='R. Even'><organization /></author <abstract>
> <t indent="0">This memo describes an RTP payload format for the VP
<author initials='T.' surname='Kristensen' fullname='T. Kristensen'><organizatio 8 video codec. The payload format has wide applicability, as it supports applica
n /></author> tions from low-bitrate peer-to-peer usage to high-bitrate video conferences.</t>
<author initials='R.' surname='Jesup' fullname='R. Jesup'><organization /></auth </abstract>
or> </front>
<date year='2011' month='May' /> <seriesInfo name="RFC" value="7741"/>
<abstract><t>This memo describes an RTP Payload format for the ITU-T Recommendat <seriesInfo name="DOI" value="10.17487/RFC7741"/>
ion H.264 video codec and the technically identical ISO/IEC International Standa </reference>
rd 14496-10 video codec, excluding the Scalable Video Coding (SVC) extension and <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8
the Multiview Video Coding extension, for which the RTP payload formats are def 126" quoteTitle="true" derivedAnchor="RFC8126">
ined elsewhere. The RTP payload format allows for packetization of one or more N <front>
etwork Abstraction Layer Units (NALUs), produced by an H.264 video encoder, in e <title>Guidelines for Writing an IANA Considerations Section in RFCs
ach RTP payload. The payload format has wide applicability, as it supports appl </title>
ications from simple low bitrate conversational usage, to Internet video streami <author initials="M." surname="Cotton" fullname="M. Cotton">
ng with interleaved transmission, to high bitrate video-on-demand.</t><t>This me <organization showOnFrontPage="true"/>
mo obsoletes RFC 3984. Changes from RFC 3984 are summarized in Section 14. Iss </author>
ues on backward compatibility to RFC 3984 are discussed in Section 15. [STANDAR <author initials="B." surname="Leiba" fullname="B. Leiba">
DS-TRACK]</t></abstract> <organization showOnFrontPage="true"/>
</front> </author>
<seriesInfo name='RFC' value='6184'/> <author initials="T." surname="Narten" fullname="T. Narten">
<seriesInfo name='DOI' value='10.17487/RFC6184'/> <organization showOnFrontPage="true"/>
</reference> </author>
<date year="2017" month="June"/>
<reference anchor="RFC6236" target='https://www.rfc-editor.org/info/rfc6236'> <abstract>
<front> <t indent="0">Many protocols make use of points of extensibility t
<title>Negotiation of Generic Image Attributes in the Session Description Protoc hat use constants to identify various protocol parameters. To ensure that the v
ol (SDP)</title> alues in these fields do not have conflicting uses and to promote interoperabili
<author initials='I.' surname='Johansson' fullname='I. Johansson'><organization ty, their allocations are often coordinated by a central record keeper. For IET
/></author> F protocols, that role is filled by the Internet Assigned Numbers Authority (IAN
<author initials='K.' surname='Jung' fullname='K. Jung'><organization /></author A).</t>
> <t indent="0">To make assignments in a given registry prudently, g
<date year='2011' month='May' /> uidance describing the conditions under which new values should be assigned, as
<abstract><t>This document proposes a new generic session setup attribute to mak well as when and how modifications to existing values can be made, is needed. T
e it possible to negotiate different image attributes such as image size. A pos his document defines a framework for the documentation of these guidelines by sp
sible use case is to make it possible for a \%low-end \%hand- held terminal to d ecification authors, in order to assure that the provided guidance for the IANA
isplay video without the need to rescale the image, something that may consume l Considerations is clear and addresses the various issues that are likely in the
arge amounts of memory and processing power. The document also helps to maintai operation of a registry.</t>
n an optimal bitrate for video as only the image size that is desired by the rec <t indent="0">This is the third edition of this document; it obsol
eiver is transmitted. [STANDARDS-TRACK]</t></abstract> etes RFC 5226.</t>
</front> </abstract>
<seriesInfo name='RFC' value='6236'/> </front>
<seriesInfo name='DOI' value='10.17487/RFC6236'/> <seriesInfo name="BCP" value="26"/>
</reference> <seriesInfo name="RFC" value="8126"/>
<seriesInfo name="DOI" value="10.17487/RFC8126"/>
<reference anchor="RFC7656" target='https://www.rfc-editor.org/info/rfc7656'> </reference>
<front> <reference anchor="RFC8285" target="https://www.rfc-editor.org/info/rfc8
<title>A Taxonomy of Semantics and Mechanisms for Real-Time Transport Protocol ( 285" quoteTitle="true" derivedAnchor="RFC8285">
RTP) Sources</title> <front>
<author initials='J.' surname='Lennox' fullname='J. Lennox'><organization /></au <title>A General Mechanism for RTP Header Extensions</title>
thor> <author initials="D." surname="Singer" fullname="D. Singer">
<author initials='K.' surname='Gross' fullname='K. Gross'><organization /></auth <organization showOnFrontPage="true"/>
or> </author>
<author initials='S.' surname='Nandakumar' fullname='S. Nandakumar'><organizatio <author initials="H." surname="Desineni" fullname="H. Desineni">
n /></author> <organization showOnFrontPage="true"/>
<author initials='G.' surname='Salgueiro' fullname='G. Salgueiro'><organization </author>
/></author> <author initials="R." surname="Even" fullname="R. Even" role="editor
<author initials='B.' surname='Burman' fullname='B. Burman' role='editor'><organ ">
ization /></author> <organization showOnFrontPage="true"/>
<date year='2015' month='November' /> </author>
<abstract><t>The terminology about, and associations among, Real-time Transport <date year="2017" month="October"/>
Protocol (RTP) sources can be complex and somewhat opaque. This document descri <abstract>
bes a number of existing and proposed properties and relationships among RTP sou <t indent="0">This document provides a general mechanism to use th
rces and defines common terminology for discussing protocol entities and their r e header extension feature of RTP (the Real-time Transport Protocol). It provid
elationships.</t></abstract> es the option to use a small number of small extensions in each RTP packet, wher
</front> e the universe of possible extensions is large and registration is decentralized
<seriesInfo name='RFC' value='7656'/> . The actual extensions in use in a session are signaled in the setup informati
<seriesInfo name='DOI' value='10.17487/RFC7656'/> on for that session. This document obsoletes RFC 5285.</t>
</reference> </abstract>
</front>
<reference anchor="RFC7741" target='https://www.rfc-editor.org/info/rfc7741'> <seriesInfo name="RFC" value="8285"/>
<front> <seriesInfo name="DOI" value="10.17487/RFC8285"/>
<title>RTP Payload Format for VP8 Video</title> </reference>
<author initials='P.' surname='Westin' fullname='P. Westin'><organization /></au <reference anchor="RFC8627" target="https://www.rfc-editor.org/info/rfc8
thor> 627" quoteTitle="true" derivedAnchor="RFC8627">
<author initials='H.' surname='Lundin' fullname='H. Lundin'><organization /></au <front>
thor> <title>RTP Payload Format for Flexible Forward Error Correction (FEC
<author initials='M.' surname='Glover' fullname='M. Glover'><organization /></au )</title>
thor> <author initials="M." surname="Zanaty" fullname="M. Zanaty">
<author initials='J.' surname='Uberti' fullname='J. Uberti'><organization /></au <organization showOnFrontPage="true"/>
thor> </author>
<author initials='F.' surname='Galligan' fullname='F. Galligan'><organization /> <author initials="V." surname="Singh" fullname="V. Singh">
</author> <organization showOnFrontPage="true"/>
<date year='2016' month='March' /> </author>
<abstract><t>This memo describes an RTP payload format for the VP8 video codec. <author initials="A." surname="Begen" fullname="A. Begen">
The payload format has wide applicability, as it supports applications from low- <organization showOnFrontPage="true"/>
bitrate peer-to-peer usage to high-bitrate video conferences.</t></abstract> </author>
</front> <author initials="G." surname="Mandyam" fullname="G. Mandyam">
<seriesInfo name='RFC' value='7741'/> <organization showOnFrontPage="true"/>
<seriesInfo name='DOI' value='10.17487/RFC7741'/> </author>
</reference> <date year="2019" month="July"/>
<abstract>
<reference anchor="RFC8285" target='https://www.rfc-editor.org/info/rfc8285'> <t indent="0">This document defines new RTP payload formats for th
<front> e Forward Error Correction (FEC) packets that are generated by the non-interleav
<title>A General Mechanism for RTP Header Extensions</title> ed and interleaved parity codes from source media encapsulated in RTP. These par
<author initials='D.' surname='Singer' fullname='D. Singer'><organization /></au ity codes are systematic codes (Flexible FEC, or "FLEX F
thor> EC"), where a number of FEC repair packets are generated from a set of source pa
<author initials='H.' surname='Desineni' fullname='H. Desineni'><organization /> ckets from one or more source RTP streams. These FEC repair packets are sent in
</author> a redundancy RTP stream separate from the source RTP stream(s) that carries the
<author initials='R.' surname='Even' fullname='R. Even' role='editor'><organizat source packets. RTP source packets that were lost in transmission can be recon
ion /></author> structed using the source and repair packets that were received. The non-interl
<date year='2017' month='October' /> eaved and interleaved parity codes that are defined in this specification offer
<abstract><t>This document provides a general mechanism to use the header extens a good protection against random and bursty packet losses, respectively, at a co
ion feature of RTP (the Real-time Transport Protocol). It provides the option t st of complexity. The RTP payload formats that are defined in this document add
o use a small number of small extensions in each RTP packet, where the universe ress scalability issues experienced with the earlier specifications and offer se
of possible extensions is large and registration is decentralized. The actual e veral improvements. Due to these changes, the new payload formats are not backw
xtensions in use in a session are signaled in the setup information for that ses ard compatible with earlier specifications; however, endpoints that do not imple
sion. This document obsoletes RFC 5285.</t></abstract> ment this specification can still work by simply ignoring the FEC repair packets
</front> .</t>
<seriesInfo name='RFC' value='8285'/> </abstract>
<seriesInfo name='DOI' value='10.17487/RFC8285'/> </front>
</reference> <seriesInfo name="RFC" value="8627"/>
<seriesInfo name="DOI" value="10.17487/RFC8627"/>
<reference anchor="H264" target="http://www.itu.int/rec/T-REC-H.264-201304-I"> </reference>
<front> <reference anchor="RFC8843" target="https://www.rfc-editor.org/info/rfc8
<title>Advanced video coding for generic audiovisual services (V9)</title> 843" quoteTitle="true" derivedAnchor="RFC8843">
<author > <front>
<organization>ITU-T Recommendation H.264</organization> <title>Negotiating Media Multiplexing Using the Session Description
</author> Protocol (SDP)</title>
<date year="2014" month="February"/> <author initials="C" surname="Holmberg" fullname="Christer Holmberg"
</front> >
</reference> <organization showOnFrontPage="true"/>
</author>
<author initials="H" surname="Alvestrand" fullname="Harald Alvestran
d">
<organization showOnFrontPage="true"/>
</author>
<author initials="C" surname="Jennings" fullname="Cullen Jennings">
<organization showOnFrontPage="true"/>
</author>
<date month="January" year="2021"/>
</front>
<seriesInfo name="RFC" value="8843"/>
<seriesInfo name="DOI" value="10.17487/RFC8843"/>
</reference>
<reference anchor="RFC8853" target="https://www.rfc-editor.org/info/rfc8
853" quoteTitle="true" derivedAnchor="RFC8853">
<front>
<title>Using Simulcast in Session Description Protocol (SDP) and RTP
Sessions</title>
<author initials="B" surname="Burman" fullname="Bo Burman">
<organization showOnFrontPage="true"/>
</author>
<author initials="M" surname="Westerlund" fullname="Magnus Westerlun
d">
<organization showOnFrontPage="true"/>
</author>
<author initials="S" surname="Nandakumar" fullname="Suhas Nandakumar
">
<organization showOnFrontPage="true"/>
</author>
<author initials="M" surname="Zanaty" fullname="Mo Zanaty">
<organization showOnFrontPage="true"/>
</author>
<date month="January" year="2021"/>
</front>
<seriesInfo name="RFC" value="8853"/>
<seriesInfo name="DOI" value="10.17487/RFC8853"/>
</reference>
</references>
</references> </references>
<section anchor="acknowledgements" numbered="false" toc="include" removeInRF
<section anchor="contributors" title="Contributors"> C="false" pn="section-appendix.a">
<name slugifiedName="name-acknowledgements">Acknowledgements</name>
<t>The following individuals have contributed significant text to this document. <t indent="0" pn="section-appendix.a-1">Many thanks to <contact fullname="
</t> Cullen Jennings"/>, <contact fullname="Magnus Westerlund"/>, and <contact fullna
me="Paul Kyzivat"/>
<figure><artwork><![CDATA[ for reviewing. Thanks to <contact fullname="Colin Perkins"/> for input
Peter Thatcher on future payload type handling.</t>
Google </section>
Email: pthatcher@google.com <section anchor="contributors" numbered="false" toc="include" removeInRFC="f
alse" pn="section-appendix.b">
Mo Zanaty <name slugifiedName="name-contributors">Contributors</name>
Cisco Systems <t indent="0" pn="section-appendix.b-1">The following individuals have con
Email: mzanaty@cisco.com tributed significant text to this document.</t>
<contact fullname="Peter Thatcher">
Suhas Nandakumar <organization showOnFrontPage="true">Google</organization>
Cisco Systems <address>
Email: snandaku@cisco.com <email>pthatcher@google.com</email>
</address>
Bo Burman </contact>
Ericsson <contact fullname="Mo Zanaty">
Email: bo.burman@ericsson.com <organization showOnFrontPage="true">Cisco Systems</organization>
<address>
Byron Campen <email>mzanaty@cisco.com</email>
Mozilla </address>
Email: bcampen@mozilla.com </contact>
]]></artwork></figure> <contact fullname="Suhas Nandakumar">
<organization showOnFrontPage="true">Cisco Systems</organization>
</section> <address>
<email>snandaku@cisco.com</email>
</address>
</contact>
<contact fullname="Bo Burman">
<organization showOnFrontPage="true">Ericsson</organization>
<address>
<email>bo.burman@ericsson.com</email>
</address>
</contact>
<contact fullname="Byron Campen">
<organization showOnFrontPage="true">Mozilla</organization>
<address>
<email>bcampen@mozilla.com</email>
</address>
</contact>
</section>
<section anchor="authors-addresses" numbered="false" removeInRFC="false" toc
="include" pn="section-appendix.c">
<name slugifiedName="name-authors-address">Author's Address</name>
<author initials="A.B." surname="Roach" fullname="Adam Roach" role="editor
">
<organization showOnFrontPage="true">Mozilla</organization>
<address>
<email>adam@nostrum.com</email>
</address>
</author>
</section>
</back> </back>
<!-- ##markdown-source:
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
3+yMonc44vtXL3c6X43si7fr3cHkbJ3O0+UNFs7F8i918BHaWDgi7EqWo69r
lk5OR89ol+r70/ArHPv46c7xUfRsz+4ORgf8aIlOppM9aQRsjh/s64QAOgd8
zx2gxvFxH1o/Y9Pr9HDfzxs+O3Sfwaj946fw6Qg/N5E/OqU8Gq58//L0sHVS
uatwAxA2NgH0w9VsxSgnis92H3d468ch7Br8RrhuvSgWM8xLfFtkVbpN7BmX
vvXy6s1r6C1Pq+21+2INjnRIGV/CHTVHE4eFXRRG1g84BpK0J9zoNi4T5Swy
J4/oAyaN8zo+ovlrLh2OE/SPRcp1MXlBac0AGL8MYMUXUadHmr7aLshB1b04
hQofNHp8mRUcjDwsa2Y9nfc3QS9rU6OMKZx76u47hX6Cypy0rZHukNUSgdcA
NsKfwR/vv4OOLzqpwWvU4tbngqlSa85rQiMpiCpwqjCDzVcIpV2TC23WhVY7
S4vrOHBCGeff8mz9FYWBC8adDhLwb7q0QpXuRbooNF+Tinex4yVy3mEeS5Ln
mqwdHhbMqZS88+vAgJG/lfUh6T69xxovGWZGokqWcoKAL9LaumDcdcQKGn3c
XpDfgLn9UaqisrFDhVZbVUv/K26u6AdHNpIKi4yDNKQYv7ssay2pAiNW+7sH
KP31WJRxael3es0FHw5qHxnZZCStX+lK/A6PXEotIfl3av+t4n5Pelob6PKC
fk0zOq+x9u+v9HZZs1ueLkUCi5Oe+Qe/8WDQW/Dv1I6+3Urmy5tkAJZZiofG
dmxv0MP//djbNiZ+x02+Yz04uHzE3elrv+dRYKbRKLAkrlOwgz+lzuP6pE91
pXq3k/12q/es55eyLa18E+peWtHjDU1cj35GfNZ8gYPYXp9/wtf4f/G/Ry2Z
B/dN8BkF+PhN58bxJnHo7cHPZsvq4W8e/mRcPvjJ8hEjjZfLB7/h0MrDw9Fu
cqqRaYHNyl65YHMPsL1Hp/sVc8CQVuQOIRk05MdfbOmAS/NyLcl1+aVmYaug
2Zdb6Ra0WqGz+gutlt1TXD4wRbdRrcGWS21GNe7XG4a7Jw350SlTF1JTSI5s
AG7mKdsy3NpAnix5hsKmhCrlLyDMeHlWhnp5/uP5FVBtaxHBS9sb9vyHcQ/c
Cwz1b/d7u4ODI2RQ94e7g6ev7HYnyj6jCk6YDCbxrJsEAzdU1I20oypdZJNi
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
Aajy8WcqtwAA
</rfc> </rfc>
 End of changes. 126 change blocks. 
1747 lines changed or deleted 1979 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/