<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.24 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-engelbart-avtcore-rtp-gpcc-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="RTP Payload Format for G-PCC">RTP Payload Format for Geometry-based Point Cloud Compression</title>
    <seriesInfo name="Internet-Draft" value="draft-engelbart-avtcore-rtp-gpcc-01"/>
    <author initials="M." surname="Engelbart" fullname="Mathis Engelbart">
      <organization>Technical University Munich</organization>
      <address>
        <email>mathis.engelbart@tum.de</email>
      </address>
    </author>
    <author initials="J." surname="Ott" fullname="Jörg Ott">
      <organization>Technical University Munich</organization>
      <address>
        <email>ott@in.tum.de</email>
      </address>
    </author>
    <author initials="L." surname="Kondrad" fullname="Lukasz Kondrad">
      <organization>Nokia Technologies</organization>
      <address>
        <email>lukasz.kondrad@nokia.com</email>
      </address>
    </author>
    <date/>
    <area>Applications and Real-Time Area</area>
    <workgroup>Audio/Video Transport Core Maintenance</workgroup>
    <keyword>RTP</keyword>
    <keyword>G-PCC</keyword>
    <keyword>Payload Format</keyword>
    <abstract>
      <?line 56?>

<t>This memo describes an RTP payload format for geometry-based point cloud
compression (G-PCC) (<xref target="ISO.IEC.23090-9"/>). The RTP payload format defined in
this document supports the packetization of one or more data units in an RTP
packet payload and the fragmentation of a single data unit into multiple RTP
packets. This memo also describes congestion control for a practical solution
for the real-time streaming of point clouds.
Finally, the document defines parameters that may be used to select
optional features of the payload format or signal properties of the RTP stream.
The parameters can be used with the Session Description Protocol (SDP).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://mengelbart.github.io/draft-engelbart-avtcore-rtp-gpcc/draft-engelbart-avtcore-rtp-gpcc.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-engelbart-avtcore-rtp-gpcc/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        avtcore Working Group mailing list (<eref target="mailto:avt@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/avt/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/avt/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mengelbart/draft-engelbart-avtcore-rtp-gpcc"/>.</t>
    </note>
  </front>
  <middle>
    <?line 68?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document describes the Real-time Transport Protocol (RTP) payload format
for Geometry-based point cloud compression as described in <xref target="ISO.IEC.23090-9"/>.
Point clouds are commonly used to represent three-dimensional scans of
environments or objects. The payload format enables the streaming of compressed
point clouds in real-time applications. It applies to various use cases, such as
autonomous vehicles and virtual reality.</t>
      <t>In addition to describing the payload format, this document also includes
examples of the payload format, provides guidance on how to negotiate the
parameters to be used with the format, and discusses congestion control and rate
adaptation of point cloud streaming applications.</t>
      <section anchor="background-on-point-clouds">
        <name>Background on Point Clouds</name>
        <t>A point cloud is a data structure used to represent three-dimensional scenes.
Point clouds consist of a list of points in three-dimensional space where each
point may optionally be associated with zero or more attributes, such as a color
or reflectance. Point clouds have diverse use cases. For example, a point cloud
can store a 3D representation of the vehicle's surrounding environment in
autonomous cars. Another example is object scanning for the archival of
historical objects or the creation of digital twins of real-world objects for
further analysis. Point clouds are either acquired passively using multiple
camera setups or actively, e.g., using a Lidar sensor to measure distances using
beams of light.</t>
      </section>
      <section anchor="overview-of-the-g-pcc-codec">
        <name>Overview of the G-PCC Codec</name>
        <t>Point clouds can contain large amounts of data, which requires efficient
compression to reduce storage and transmission costs. The Moving Picture Experts
Group (MPEG) has published a Geometry-based Point Cloud Compression (G-PCC)
standard in <xref target="ISO.IEC.23090-9"/>. The G-PCC codec takes as input an unordered
list of points, optional attributes, and metadata. All points have the same
number, type, and order of attributes. Attributes can, for example, be the
color, opacity, reflectance, or frame number of the associated point.
Compression is defined separately for geometry and attributes. The attribute
coding depends on the decoded geometry. Thus, geometry encoding and decoding
happen before attribute encoding and decoding.</t>
        <t>G-PCC users can choose between two methods for geometry coding and three for
attribute coding. The geometry coding method called <em>Octree Coding</em> is a general
compression method, while <em>Predictive tree</em> coding specifically targets low
latency applications. The methods for attribute coding are called Region
Adaptive Hierarchical Transform (RAHT) coding, Predicting Transform, and Lifting
Transform.</t>
        <t>The output of the encoding process is a sequence of Data Units (DUs). Each
DU has a type that describes its layout.
<xref target="_table-gpcc-unit-type-descriptions"/> lists the ten different types of DUs
defined in <xref target="ISO.IEC.23090-9"/>.</t>
        <table anchor="_table-gpcc-unit-type-descriptions">
          <name>G-PCC data unit types</name>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">Sequence parameter set data unit</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">Geometry parameter set data unit</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">Geometry data unit</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">Attribute parameter set data unit</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">Attribute data unit</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">Tile inventory data unit</td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">Frame boundary marker data unit</td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">Defaulted attribute data unit</td>
            </tr>
            <tr>
              <td align="left">8</td>
              <td align="left">Frame-specific attribute properties data unit</td>
            </tr>
            <tr>
              <td align="left">9</td>
              <td align="left">User data data unit</td>
            </tr>
          </tbody>
        </table>
        <t>Sequence Parameter Set (SPS), Geometry Parameter Set (GPS), and Attribute
Parameter Set (APS) hold the coding parameters of a point cloud sequence, the
geometry coding in use, and the attribute coding in use, respectively.</t>
        <t>Geometry and attribute data units contain the coded representation of points
geometry information and points attributes information. Geometry and attribute
data units hold references to their associated parameter sets, and each
referenced parameter set must be available before decoding of the data unit is
possible.</t>
        <t>Coded point clouds do not have dependencies between frames, i.e., decoding a
point cloud frame is always possible without depending on a previous or
following frame in a sequence. However, future versions of G-PCC might support
inter-frame prediction.</t>
        <t>Annex A of <xref target="ISO.IEC.23090-9"/> describes profiles and levels of the G-PCC codec.
Decoders can support different profiles and levels. Profiles are subsets of
algorithmic features of the codec specification. A decoder that supports a
specific profile must be able to decode a bitstream conforming to that profile.</t>
      </section>
    </section>
    <section anchor="conventions">
      <name>Conventions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="definitions-and-abbreviations">
      <name>Definitions and Abbreviations</name>
      <t>This document uses the definitions of <xref target="ISO.IEC.23090-9"/>. The following terms
and abbreviations, defined in <xref target="ISO.IEC.23090-9"/>, are repeated here for
convenience.</t>
      <section anchor="general-g-pcc-related-terms">
        <name>General G-PCC related terms</name>
        <dl newline="true">
          <dt><strong>Attribute</strong></dt>
          <dd>
            <t>Scalar or vector property associated with each <em>point</em> in a <em>point cloud</em>.</t>
          </dd>
          <dt><strong>Bitstream</strong></dt>
          <dd>
            <t>A sequence of bits.</t>
          </dd>
          <dt><strong>Bounding Box</strong></dt>
          <dd>
            <t>Axis-aligned cuboid defining a spatial region that bounds a set of
   <em>points</em>.</t>
          </dd>
          <dt><strong>Coded Point Cloud Frame</strong></dt>
          <dd>
            <t>Coded representation of a <em>point cloud frame</em>.</t>
          </dd>
          <dt><strong>Data unit</strong></dt>
          <dd>
            <t>Sequence of bytes conveying a single <em>syntax structure</em> of known length.</t>
          </dd>
          <dt><strong>Geometry</strong></dt>
          <dd>
            <t><em>Point positions</em> associated with a set of <em>points</em>.</t>
          </dd>
          <dt><strong>Point</strong></dt>
          <dd>
            <t>Fundamental element of a <em>point cloud</em> comprising a position specified as
   <em>Cartesian coordinates</em> and zero or more <em>attributes</em>.</t>
          </dd>
          <dt><strong>Point Cloud</strong></dt>
          <dd>
            <t>Unordered list of <em>points</em>.</t>
          </dd>
          <dt><strong>Point Cloud Frame</strong></dt>
          <dd>
            <t><em>Point cloud</em> in a <em>point cloud sequence</em>.</t>
          </dd>
          <dt><strong>Point Cloud Sequence</strong></dt>
          <dd>
            <t>Sequence of one or more <em>pont clouds</em>.</t>
          </dd>
          <dt><strong>Poisition</strong></dt>
          <dd>
            <t>Three dimensional coordinates of a <em>point</em>.</t>
          </dd>
          <dt><strong>Slice</strong></dt>
          <dd>
            <t><em>Geometry</em> and <em>attributes</em> for part of, or an entire, <em>coded point cloud
   frame</em>.</t>
          </dd>
          <dt><strong>Syntax element</strong></dt>
          <dd>
            <t>Element of data represented in the <em>bitstream</em>.</t>
          </dd>
          <dt><strong>Syntax structure</strong></dt>
          <dd>
            <t>Zero or more <em>syntax elements</em> present together in the <em>bitstream</em> in a
   specified order.</t>
          </dd>
          <dt><strong>Tile</strong></dt>
          <dd>
            <t>Set of <em>slices</em> identified by a common slice_tag <em>syntax element</em> value
   whose <em>geometry</em> should be contained within a <em>bounding box</em> specified in a
   tile inventory <em>data unit</em>.</t>
          </dd>
        </dl>
      </section>
      <section anchor="abbreviations">
        <name>Abbreviations</name>
        <dl newline="true">
          <dt><strong>ADU</strong></dt>
          <dd>
            <t>Attribute Data Unit</t>
          </dd>
          <dt><strong>APS</strong></dt>
          <dd>
            <t>Attribute Parameter Set</t>
          </dd>
          <dt><strong>DU</strong></dt>
          <dd>
            <t>Data Unit</t>
          </dd>
          <dt><strong>GDU</strong></dt>
          <dd>
            <t>Geometry Data Unit</t>
          </dd>
          <dt><strong>GPS</strong></dt>
          <dd>
            <t>Geometry Parameter Set</t>
          </dd>
          <dt><strong>SPS</strong></dt>
          <dd>
            <t>Sequence Parameter Set</t>
          </dd>
          <dt><strong>TLV</strong></dt>
          <dd>
            <t>Type-Length-Value</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="payload-format">
      <name>Payload Format</name>
      <t>This section describes the details of the RTP payload format. <xref target="rtp-header"/>
describes the usage of the standard RTP header fields, <xref target="payload-header"/>
describes the details of the payload header following the RTP header, and
<xref target="payload-structures"/> gives details about available packetization modes and the
specifics of their respective formats.</t>
      <section anchor="transmission-modes">
        <name>Transmission Modes</name>
        <ul empty="true">
          <li>
            <t><strong>TODO</strong>: Do we need this section on transmission modes similar to other payload formats to define SRST, MRST, and MRMT?</t>
          </li>
        </ul>
      </section>
      <section anchor="rtp-header">
        <name>RTP Header Usage</name>
        <t>The format of the RTP header is specified in <xref target="RFC3550"/> and replicated in <xref target="fig-header"/> for convenience. This payload format uses the fields of the header in a manner consistent with that specification.</t>
        <figure anchor="fig-header">
          <name>RTP Header format as specified in RFC 3550</name>
          <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X|  CC   |M|     PT      |       sequence number         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           timestamp                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           synchronization source (SSRC) identifier            |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|            contributing source (CSRC) identifiers             |
|                             ....                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <ul empty="true">
          <li>
            <t><strong>TODO</strong>: if we add a dedicated subsection on SRST/SRMT/MRMT, add the
following statement:</t>
            <t>When MRST or MRMT is in use, if an access unit appears in multiple RTP
streams, the marker bit is set on each RTP stream's last packet of the access
unit.</t>
          </li>
        </ul>
        <dl newline="true">
          <dt><strong>Marker bit (M): 1 bit</strong></dt>
          <dd>
            <t>Set to 1 for the last packet of a point cloud frame carried in the current RTP stream.</t>
          </dd>
          <dt><strong>Payload Type (PT): 7 bits</strong></dt>
          <dd>
            <t>The assignment of an RTP payload type for this new packet format is outside
   the scope of this document and will not be specified here. The assignment of
   a payload type has to be performed either through the profile used or in a
   dynamic way.</t>
          </dd>
          <dt><strong>Sequence Number (SN): 16 bits</strong></dt>
          <dd>
            <t>Set and used in accordance with <xref target="RFC3550"/>.</t>
          </dd>
          <dt><strong>Timestamp: 32 bits</strong></dt>
          <dd>
            <t>The RTP timestamp is set to the sampling timestamp of the content. A 90 kHz
   clock rate <bcp14>MUST</bcp14> be used. The sampling timestamp of the content is the
   reconstruction time. It denotes the earliest sampling time of all points in the
   point cloud frame to which the data unit transmitted in the packet belongs.
   If the data unit has no timing properties (e.g., parameter sets), the RTP
   timestamp is set to the RTP timestamp of the first data unit that references
   the parameter set. If the packet is an aggregation unit packet, all data
   units <bcp14>MUST</bcp14> have the same timestamp.</t>
          </dd>
          <dt><strong>Synchronization source (SSRC): 32 bits</strong></dt>
          <dd>
            <t>Used to identify the source of the RTP packets.</t>
          </dd>
        </dl>
      </section>
      <section anchor="payload-header">
        <name>Payload Header Usage</name>
        <t>The first bytes of the payload of an RTP packet are referred to as the payload
header. The payload header consists of a packet type and unit type field.</t>
        <figure anchor="fig-payload-header">
          <name>General Payload Header</name>
          <artwork><![CDATA[
 0
 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
| Typ |Unit-Type|
+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <dl newline="true">
          <dt><strong>Typ: 3 bits</strong></dt>
          <dd>
            <t>Type of the packet. This field indicates if the packet is a single unit
  packet, an aggregation unit packet, or a fragmentation unit packet. See
  <xref target="payload-structures"/> for details.</t>
          </dd>
          <dt><strong>Unit-Type: 5 bits</strong></dt>
          <dd>
            <t>The type of the following data unit. This field specifies the type field
  from the type-length-value encapsulation defined in Annex-B of G-PCC
  <xref target="ISO.IEC.23090-9"/> and shown in <xref target="_table-gpcc-unit-type-descriptions"/>.</t>
          </dd>
        </dl>
      </section>
      <section anchor="payload-structures">
        <name>Payload Structures</name>
        <t>Three different RTP packet payload structures are specified: Single Unit
Packets, Aggregation Unit Packets, and Fragmentation Unit Packets. A receiver
can identify the payload structure by the type field of
the payload header. The type field indicates whether the unit is a single unit,
an aggregation unit, or the first, last, or middle part of a fragmentation unit
packet. The type field <bcp14>MUST</bcp14> be set according to <xref target="_table-type-field"/>.</t>
        <table anchor="_table-type-field">
          <name>Type field values</name>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">000</td>
              <td align="left">Single Unit Packet <xref target="single-unit"/></td>
            </tr>
            <tr>
              <td align="left">001</td>
              <td align="left">Aggregation Unit Packet <xref target="aggregation-packet"/></td>
            </tr>
            <tr>
              <td align="left">010</td>
              <td align="left">First packet of an fragmentation unit packet <xref target="fragmentation-unit"/></td>
            </tr>
            <tr>
              <td align="left">011</td>
              <td align="left">Fragmentation unit packet <xref target="fragmentation-unit"/></td>
            </tr>
            <tr>
              <td align="left">100</td>
              <td align="left">Last packet of an fragmentation unit packet <xref target="fragmentation-unit"/></td>
            </tr>
            <tr>
              <td align="left">101</td>
              <td align="left">Reserved</td>
            </tr>
            <tr>
              <td align="left">110</td>
              <td align="left">Reserved</td>
            </tr>
            <tr>
              <td align="left">111</td>
              <td align="left">Reserved</td>
            </tr>
          </tbody>
        </table>
        <t>The following sections explain the details and variations from this format for
the three packet types.</t>
        <section anchor="single-unit">
          <name>Single Unit</name>
          <t>A Single Unit packet contains only one data unit. The first byte in the packet
is the payload header, followed by the payload data. The data unit extends until
the end of the packet. The packet type field of a single unit packet <bcp14>MUST</bcp14> be set
to zero (binary <tt>000</tt>).</t>
          <t><xref target="fig-single-unit-payload"/> shows an example of a single unit packet.</t>
          <figure anchor="fig-single-unit-payload">
            <name>Single unit packet payload</name>
            <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PayloadHeader |                                               |
+-+-+-+-+-+-+-+-+                                               |
|                           Data Unit                           |
|                                                               |
|                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               :...OPTIONAL RTP padding        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
        </section>
        <section anchor="aggregation-packet">
          <name>Aggregation Packet</name>
          <t>An aggregation packet contains two or more DUs. Aggregation packets can reduce
packetization and header overhead for small DUs such as parameter sets. Each DU
is prefixed with a separate payload header and an additional length field. The
length field is 16-bit unsigned integer indicating the length of the following
DU in bytes.</t>
          <t>An aggregation packet <bcp14>MUST</bcp14> carry at least two DUs. Aggregation
packets <bcp14>MAY</bcp14> carry more than two DUs. The total amount of data in
an aggregation packet <bcp14>MUST</bcp14> fit into an IP packet, and the size <bcp14>SHOULD</bcp14> be chosen
so that the resulting IP packet is smaller than the MTU size in order to avoid
IP layer fragmentation. An aggregation packet <bcp14>MUST NOT</bcp14> contain any fragmentation
units.</t>
          <t>An aggregation packet <bcp14>MUST NOT</bcp14> carry DUs of different point cloud
frames, i.e., all DUs included in an aggregation packet <bcp14>MUST</bcp14> have
the same timestamp.</t>
          <t>The packet type field of every DU in an aggregation packet <bcp14>MUST</bcp14> be
set to the value one (binary <tt>001</tt>).</t>
          <t><xref target="fig-aggregation-header"/> shows the extended payload header format of syntax
structures in aggregation packets.</t>
          <figure anchor="fig-aggregation-header">
            <name>Aggregation Unit Payload</name>
            <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Typ=1|Unit-Type|            Size               |   Data Unit  ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>An example of an aggregation unit packet with two data unit payloads is shown in
<xref target="fig-aggregation-format"/>.</t>
          <figure anchor="fig-aggregation-format">
            <name>Packet Payload</name>
            <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PayloadHeader |            Size               |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +
|                                                               |
|                           Data Unit                           |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PayloadHeader |           Size                |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +
|                                                               |
|                           Data Unit                           |
|                                                               |
|                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               :...OPTIONAL RTP padding        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
        </section>
        <section anchor="fragmentation-unit">
          <name>Fragmentation Unit</name>
          <t>Fragmentation units allow fragmentation of single DUs into
multiple RTP packets without cooperation from the G-PCC encoder. Fragments of
the same DU <bcp14>MUST</bcp14> be sent in consecutive order with ascending RTP
sequence numbers (with no other RTP packets within the same RTP stream being
sent between the first and last fragment).</t>
          <t>Aggregation packets <bcp14>MUST NOT</bcp14> be fragmented. Fragmentation units <bcp14>MUST NOT</bcp14> be
nested, i.e., a fragmentation unit cannot contain a subset of another
fragmentation unit.</t>
          <t>The timestamp of all fragmentation units <bcp14>MUST</bcp14> be set to the same value: the
timestamp of the DU that is carried in the fragmentation unit
packets.</t>
          <t>The type field of the first packet of a series of fragmentation units <bcp14>MUST</bcp14> be
set to 2 (binary <tt>010</tt>), the type field of the last packet in the series <bcp14>MUST</bcp14> be
set to four (binary <tt>100</tt>), and the type field of all packets between the first
and last packet of the fragmented unit <bcp14>MUST</bcp14> have the value three (binary <tt>011</tt>).</t>
        </section>
      </section>
    </section>
    <section anchor="packetization-rules-and-depacketization-rules">
      <name>Packetization Rules and Depacketization Rules</name>
      <ul spacing="normal">
        <li>
          <t>A DU of a small size <bcp14>SHOULD</bcp14> be encapsulated in an aggregation
packet together with one or more other DUs in order to avoid the
unnecessary packetization overhead for small DUs. For example,
parameter sets are typically small and can often be aggregated with without
violating MTU size constraints.</t>
        </li>
        <li>
          <t>For carrying exactly one DU in an RTP packet, a single unit
packet <bcp14>MUST</bcp14> be used.</t>
        </li>
      </ul>
      <t>The de-packetization process is implementation dependent. Therefore, the
following de-packetization rules <bcp14>SHOULD</bcp14> be taken as an example.</t>
      <ul spacing="normal">
        <li>
          <t>All normal RTP mechanisms related to buffer management apply. In particular,
duplicated or outdated RTP packets (as indicated by the RTP sequence number
and the RTP timestamp) are removed. To determine the exact time for decoding,
factors such as a possible intentional delay to allow for proper inter-stream
synchronization must be factored in.</t>
        </li>
      </ul>
    </section>
    <section anchor="payload-format-parameters">
      <name>Payload Format Parameters</name>
      <t>This section defines the media type to use with the payload format and the
optional parameters that can be used with it.</t>
      <section anchor="media-type">
        <name>Media Type Definition</name>
        <ul empty="true">
          <li>
            <t><strong>Note</strong>: Template from <xref section="10" sectionFormat="of" target="RFC4288"/></t>
          </li>
        </ul>
        <dl newline="true">
          <dt><strong>Type name</strong>:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt><strong>Subtype name</strong>:</dt>
          <dd>
            <t>GPCC</t>
          </dd>
          <dt><strong>Required Parameters</strong>:</dt>
          <dd>
            <t>None</t>
          </dd>
          <dt><strong>Optional Parameters</strong>:</dt>
          <dd>
            <t>profile-level-id <strong>TODO</strong>: add list from section <xref target="optional-parameters-definition"/></t>
          </dd>
          <dt><strong>Encoding considerations</strong>:</dt>
          <dd>
            <t>This type is only defined for transfer via RTP <xref target="RFC3550"/>.</t>
          </dd>
          <dt><strong>Security considerations</strong>:</dt>
          <dd>
            <t>See <xref target="security-considerations"/>.</t>
          </dd>
          <dt><strong>Interoperability considerations</strong>:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt><strong>Published specification</strong>:</dt>
          <dd>
            <t>Please refer to &lt;<strong>TODO</strong>: Reference this document&gt; and
  <xref target="ISO.IEC.23090-9"/>.</t>
          </dd>
          <dt><strong>Applications that use this media type</strong>:</dt>
          <dd>
            <t>Any application that relies on GPCC-based point cloud transmission over RTP</t>
          </dd>
          <dt><strong>Fragment identifier considerations</strong>:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt><strong>Additional information</strong>:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt><strong>Person &amp; email address to contact for further information</strong>:</dt>
          <dd>
            <t>Mathis Engelbart (mathis.engelbart@gmail.com)</t>
          </dd>
          <dt><strong>Intended usage</strong>:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt><strong>Restrictions on usage</strong>:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt><strong>Author</strong>:</dt>
          <dd>
            <t>See Authors' Addresses section of &lt;<strong>TODO</strong>: Reference this document&gt;</t>
          </dd>
          <dt><strong>Change controller</strong>:</dt>
          <dd>
            <t>IETF <eref target="mailto:avtcore@ietf.org">avtcore@ietf.org</eref></t>
          </dd>
        </dl>
      </section>
      <section anchor="optional-parameters-definition">
        <name>Optional Parameters Definition</name>
        <dl>
          <dt><strong>profile-level-id</strong>:</dt>
          <dd>
            <t>The profile-level-id is a base16 <xref target="RFC4648"/> (hexadecimal) representation
  of one byte containing the flags indicating support or conformance to the
  G-PCC profiles and levels. The first four bits are flags indicating support
  for the profiles <em>Simple</em>, <em>Predictive</em>, <em>Dense</em> and <em>Main</em>, while the last
  four bits indicate the highest level that the decoder supports or a bitstream
  conforms to.</t>
          </dd>
          <dt><strong>pcc-resolution</strong>:</dt>
          <dd>
            <t>Describes the resolution of the point cloud as number of lines, number of
points per line and depth resolution.</t>
          </dd>
        </dl>
        <ul empty="true">
          <li>
            <t>&lt;#lines&gt; &lt;#points-per-line&gt; &lt;#depth-resolution&gt;</t>
          </li>
        </ul>
        <dl>
          <dt><strong>pcc-coverage</strong>:</dt>
          <dd>
            <t>The field of view coverage of the sensor described by the horizontal and
vertical angles.</t>
          </dd>
        </dl>
        <ul empty="true">
          <li>
            <t>&lt;h-angle&gt; &lt;v-angle&gt;</t>
          </li>
        </ul>
        <dl>
          <dt><strong>pcc-anchor</strong>:</dt>
          <dd>
            <t>An anchor reference point for the point cloud, relative to which coordinates
are given. This can be useful to relate multiple point clouds to each other.</t>
          </dd>
        </dl>
        <ul empty="true">
          <li>
            <t>&lt;x&gt; &lt;y&gt; &lt;z&gt;</t>
          </li>
        </ul>
        <dl>
          <dt><strong>pcc-orientation</strong>:</dt>
          <dd>
            <t>The orientation of the point cloud sensor.</t>
          </dd>
        </dl>
        <ul empty="true">
          <li>
            <t>&lt;tilt&gt; &lt;pan&gt;</t>
          </li>
        </ul>
        <dl>
          <dt><strong>pcc-position</strong>:</dt>
          <dd>
            <t>The location of the LiDAR or point cloud sensor relative to <em>pcc-anchor</em> and
<em>pcc-orientation</em>:</t>
          </dd>
        </dl>
        <ul empty="true">
          <li>
            <t>&lt;delta-x&gt; &lt;delta-y&gt; &lt;delta-z&gt; &lt;delta-tilt&gt; &lt;delta-pan&gt;</t>
          </li>
        </ul>
        <dl>
          <dt><strong>pcc-point-attr</strong>:</dt>
          <dd>
            <t>A list of attributes associated with each point. Example: color,
reflectivity.</t>
          </dd>
        </dl>
      </section>
      <section anchor="sdp-parameters">
        <name>SDP Parameters</name>
        <section anchor="mapping-of-payload-type-parameters-to-sdp">
          <name>Mapping of Payload Type Parameters to SDP</name>
          <t>The media type application/GPCC string is mapped to fields in the Session
Description Protocol (SDP) <xref target="RFC8866"/> as follows:</t>
          <ul empty="true">
            <li>
              <t><strong>TODO</strong>: Add all parameters from above</t>
            </li>
          </ul>
          <ul spacing="normal">
            <li>
              <t>The media name in the "m=" line of SDP <bcp14>MUST</bcp14> be application.</t>
            </li>
            <li>
              <t>The encoding name in the "a=rtpmap" line of SDP <bcp14>MUST</bcp14> be GPCC (the media
subtype).</t>
            </li>
            <li>
              <t>The clock rate in the "a=rtpmap" line <bcp14>MUST</bcp14> be 90000.</t>
            </li>
            <li>
              <t>The optional parameters <em>profile-level-id</em>, ... when present, <bcp14>MUST</bcp14> be included
in the "a=fmtp" line of SDP. The fmtp line is expressed as a media type
string, in the form of a semicolon-separated list of parameter=value pairs.</t>
            </li>
          </ul>
        </section>
        <section anchor="example">
          <name>Example</name>
          <artwork><![CDATA[
m=application 54321 RTP/AVPF 95
a=rtpmap:95 GPCC/90000
a=fmtp:95 profile-level-id=84; // 0x84 => 0b10000100 => simple profile, level 4
          --
          -- point cloud resolution
          pcc-resolution: #lines #points-per-line #depth-resolution;
          --
          -- field of view
          pcc-coverage: h-angle v-angle;
          --
          -- optional anchor point 
          pcc-anchor: <type> <type-specific format> "mm" x y z | "gps" lat lon alt;
          pcc-orientation: tilt pan;
          --
          -- where is this lidar located (relative to possible others)
          pcc-position: delta-x, delta-y, delta-z delta-tilt delta-pan;
          --
          -- which attributes are encoded per point: list of properties | profile
          pcc-point-attr: "attr" color, reflectance;
]]></artwork>
        </section>
        <section anchor="offeranswer-considerations">
          <name>Offer/Answer Considerations</name>
          <ul empty="true">
            <li>
              <t><strong>TODO</strong>: Are theses rules correct for G-PCC and do we need considerations for
other parameters?</t>
            </li>
          </ul>
          <t>When the payload format is offered over RTP using SDP in an Offer/Answer model
as described in <xref target="RFC3264"/> for negotiation for unicast usage, the following
limitations and rules apply:</t>
          <ul spacing="normal">
            <li>
              <t>The parameter identifying a media format configuration for G-PCC is
profile-levle-id. This media format configuration parameter <bcp14>MUST</bcp14> be used
symmetrically; that is, the answerer <bcp14>MUST</bcp14> either maintain this configuration
parameter or remove the media format (payload type) completely if it is not
supported.</t>
            </li>
            <li>
              <t>The G-PCC stream sent by either the offerer or the answerer <bcp14>MUST</bcp14> be encoded
with a profile and level, lesser or equal to the values of the level and
profile declared in the SDP by the receiving agent.</t>
            </li>
          </ul>
        </section>
        <section anchor="declarative-sdp-considerations">
          <name>Declarative SDP Considerations</name>
          <ul empty="true">
            <li>
              <t><strong>TODO</strong>: Are theses rules correct for G-PCC and do we need considerations for
other parameters?</t>
            </li>
          </ul>
          <t>When G-PCC over RTP is offered with SDP in a declarative style, as in Real Time
Streaming Protocol (RTSP) <xref target="RFC7826"/> or Session Announcement Protocol (SAP)
<xref target="RFC2974"/>, the following considerations are necessary.</t>
          <ul spacing="normal">
            <li>
              <t>All parameters capable of indicating both stream properties and receiver
capabilities are used to indicate only stream properties. In this case, the
parameters profile and level declare only the values used by the stream, not
the capabilities for receiving streams.</t>
            </li>
            <li>
              <t>A receiver of the SDP is required to support all parameters and values of the
parameters provided; otherwise, the receiver <bcp14>MUST</bcp14> reject (RTSP) or not
participate in (SAP) the session. It falls on the creator of the session to
use values that are expected to be supported by the receiving application.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="congestion-control">
      <name>Congestion Control</name>
      <t>Congestion control for RTP <bcp14>SHALL</bcp14> be used in accordance with <xref target="RFC3550"/>, and
with any applicable RTP profile: e.g., <xref target="RFC3551"/>.  An additional requirement
if best-effort service is being used is users of this payload format <bcp14>MUST</bcp14>
monitor packet loss to ensure that the packet loss rate is within acceptable
parameters. Circuit Breakers <xref target="RFC8083"/> is an update to RTP <xref target="RFC3550"/> that
defines criteria for when one is required to stop sending RTP Packet Streams.
The circuit breakers is to be implemented and followed.</t>
      <t>The bitrate can be dynamically adapted when real-time encoding is used. If the
packet payload is not encrypted and intermediate network elements have access to
the payload, they can select packets to drop based on the payload header.</t>
      <t>Attribute decoding depends on geometry decoding and ADUs can become obsolete,
when the corresponding geometry data is dropped. Thus, intermediates <bcp14>SHOULD</bcp14>
prefer dropping ADUs first. Similarly, fragmentation units can only be
reconstructed if all fragments arrive. Thus, it is reasonable to drop either all
or none of the packets that are part of the same fragmentation unit.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <ul empty="true">
        <li>
          <t><strong>TODO</strong>: Check if more registrations are necessary.</t>
        </li>
      </ul>
      <t>This memo requests that IANA registers a new media type as specified in
<xref target="media-type"/>. The media type is also requested to be added to the IANA
registry for "RTP Payload Format MIME types"
<eref target="http://www.iana.org/assignments/rtp-parameters">http://www.iana.org/assignments/rtp-parameters</eref>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>RTP packets using the payload format defined in this specification are subject
to the security considerations discussed in the RTP specification <xref target="RFC3550"/>,
and in any applicable RTP profile such as RTP/AVP <xref target="RFC3551"/>, RTP/AVPF <xref target="RFC4585"/>,
RTP/SAVP <xref target="RFC3711"/>, or RTP/ SAVPF <xref target="RFC5124"/>.  However, as "Securing the RTP
Protocol Framework: Why RTP Does Not Mandate a Single Media Security Solution"
<xref target="RFC7202"/> discusses, it is not an RTP payload format's responsibility to discuss
or mandate what solutions are used to meet the basic security goals like
confidentiality, integrity, and source authenticity for RTP in general.  This
responsibility lays on anyone using RTP in an application.  They can find
guidance on available security mechanisms and important considerations in
"Options for Securing RTP Sessions" <xref target="RFC7201"/>.  Applications <bcp14>SHOULD</bcp14> use one or
more appropriate strong security mechanisms.  The rest of this Security
Considerations section discusses the security impacting properties of the
payload format itself.</t>
      <t>This RTP payload format and its media decoder do not exhibit any significant
non-uniformity in the receiver-side computational complexity for packet
processing, and thus are unlikely to pose a denial-of-service threat due to the
receipt of pathological data. Nor does the RTP payload format contain any active
content.</t>
    </section>
    <section anchor="rfc-editor-considerations">
      <name>RFC Editor Considerations</name>
      <t>Note to RFC Editor: This section may be removed after carrying out all the
instructions of this section.</t>
      <t>TODO: Consider</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="ISO.IEC.23090-9" target="https://www.iso.org/standard/78990.html">
          <front>
            <title>Information technology — Coded representation of immersive media — Part 9: Geometry-based point cloud compression</title>
            <author>
              <organization>ISO/IEC</organization>
            </author>
            <date year="2023"/>
          </front>
          <seriesInfo name="ISO/IEC" value="23090-9"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC3550">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <author fullname="R. Frederick" initials="R." surname="Frederick"/>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This memorandum describes RTP, the real-time transport protocol. RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services. RTP does not address resource reservation and does not guarantee quality-of- service for real-time services. The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality. RTP and RTCP are designed to be independent of the underlying transport and network layers. The protocol supports the use of RTP-level translators and mixers. Most of the text in this memorandum is identical to RFC 1889 which it obsoletes. There are no changes in the packet formats on the wire, only changes to the rules and algorithms governing how the protocol is used. The biggest change is an enhancement to the scalable timer algorithm for calculating when to send RTCP packets in order to minimize transmission in excess of the intended rate when many participants join a session simultaneously. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="64"/>
          <seriesInfo name="RFC" value="3550"/>
          <seriesInfo name="DOI" value="10.17487/RFC3550"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC8866">
          <front>
            <title>SDP: Session Description Protocol</title>
            <author fullname="A. Begen" initials="A." surname="Begen"/>
            <author fullname="P. Kyzivat" initials="P." surname="Kyzivat"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>This memo defines the Session Description Protocol (SDP). SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. This document obsoletes RFC 4566.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8866"/>
          <seriesInfo name="DOI" value="10.17487/RFC8866"/>
        </reference>
        <reference anchor="RFC3264">
          <front>
            <title>An Offer/Answer Model with Session Description Protocol (SDP)</title>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <date month="June" year="2002"/>
            <abstract>
              <t>This document defines a mechanism by which two entities can make use of the Session Description Protocol (SDP) to arrive at a common view of a multimedia session between them. In the model, one participant offers the other a description of the desired session from their perspective, and the other participant answers with the desired session from their perspective. This offer/answer model is most useful in unicast sessions where information from both participants is needed for the complete view of the session. The offer/answer model is used by protocols like the Session Initiation Protocol (SIP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3264"/>
          <seriesInfo name="DOI" value="10.17487/RFC3264"/>
        </reference>
        <reference anchor="RFC7826">
          <front>
            <title>Real-Time Streaming Protocol Version 2.0</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="A. Rao" initials="A." surname="Rao"/>
            <author fullname="R. Lanphier" initials="R." surname="Lanphier"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="M. Stiemerling" initials="M." role="editor" surname="Stiemerling"/>
            <date month="December" year="2016"/>
            <abstract>
              <t>This memorandum defines the Real-Time Streaming Protocol (RTSP) version 2.0, which obsoletes RTSP version 1.0 defined in RFC 2326.</t>
              <t>RTSP is an application-layer protocol for the setup and control of the delivery of data with real-time properties. RTSP provides an extensible framework to enable controlled, on-demand delivery of real-time data, such as audio and video. Sources of data can include both live data feeds and stored clips. This protocol is intended to control multiple data delivery sessions; provide a means for choosing delivery channels such as UDP, multicast UDP, and TCP; and provide a means for choosing delivery mechanisms based upon RTP (RFC 3550).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7826"/>
          <seriesInfo name="DOI" value="10.17487/RFC7826"/>
        </reference>
        <reference anchor="RFC3551">
          <front>
            <title>RTP Profile for Audio and Video Conferences with Minimal Control</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This document describes a profile called "RTP/AVP" for the use of the real-time transport protocol (RTP), version 2, and the associated control protocol, RTCP, within audio and video multiparticipant conferences with minimal control. It provides interpretations of generic fields within the RTP specification suitable for audio and video conferences. In particular, this document defines a set of default mappings from payload type numbers to encodings. This document also describes how audio and video data may be carried within RTP. It defines a set of standard encodings and their names when used within RTP. The descriptions provide pointers to reference implementations and the detailed standards. This document is meant as an aid for implementors of audio, video and other real-time multimedia applications. This memorandum obsoletes RFC 1890. It is mostly backwards-compatible except for functions removed because two interoperable implementations were not found. The additions to RFC 1890 codify existing practice in the use of payload formats under this profile and include new payload formats defined since RFC 1890 was published. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="65"/>
          <seriesInfo name="RFC" value="3551"/>
          <seriesInfo name="DOI" value="10.17487/RFC3551"/>
        </reference>
        <reference anchor="RFC8083">
          <front>
            <title>Multimedia Congestion Control: Circuit Breakers for Unicast RTP Sessions</title>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="V. Singh" initials="V." surname="Singh"/>
            <date month="March" year="2017"/>
            <abstract>
              <t>The Real-time Transport Protocol (RTP) is widely used in telephony, video conferencing, and telepresence applications. Such applications are often run on best-effort UDP/IP networks. If congestion control is not implemented in these applications, then network congestion can lead to uncontrolled packet loss and a resulting deterioration of the user's multimedia experience. The congestion control algorithm acts as a safety measure by stopping RTP flows from using excessive resources and protecting the network from overload. At the time of this writing, however, while there are several proprietary solutions, there is no standard algorithm for congestion control of interactive RTP flows.</t>
              <t>This document does not propose a congestion control algorithm. It instead defines a minimal set of RTP circuit breakers: conditions under which an RTP sender needs to stop transmitting media data to protect the network from excessive congestion. It is expected that, in the absence of long-lived excessive congestion, RTP applications running on best-effort IP networks will be able to operate without triggering these circuit breakers. To avoid triggering the RTP circuit breaker, any Standards Track congestion control algorithms defined for RTP will need to operate within the envelope set by these RTP circuit breaker algorithms.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8083"/>
          <seriesInfo name="DOI" value="10.17487/RFC8083"/>
        </reference>
        <reference anchor="RFC4585">
          <front>
            <title>Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF)</title>
            <author fullname="J. Ott" initials="J." surname="Ott"/>
            <author fullname="S. Wenger" initials="S." surname="Wenger"/>
            <author fullname="N. Sato" initials="N." surname="Sato"/>
            <author fullname="C. Burmeister" initials="C." surname="Burmeister"/>
            <author fullname="J. Rey" initials="J." surname="Rey"/>
            <date month="July" year="2006"/>
            <abstract>
              <t>Real-time media streams that use RTP are, to some degree, resilient against packet losses. Receivers may use the base mechanisms of the Real-time Transport Control Protocol (RTCP) to report packet reception statistics and thus allow a sender to adapt its transmission behavior in the mid-term. This is the sole means for feedback and feedback-based error repair (besides a few codec-specific mechanisms). This document defines an extension to the Audio-visual Profile (AVP) that enables receivers to provide, statistically, more immediate feedback to the senders and thus allows for short-term adaptation and efficient feedback-based repair mechanisms to be implemented. This early feedback profile (AVPF) maintains the AVP bandwidth constraints for RTCP and preserves scalability to large groups. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4585"/>
          <seriesInfo name="DOI" value="10.17487/RFC4585"/>
        </reference>
        <reference anchor="RFC3711">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="M. Baugher" initials="M." surname="Baugher"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3711"/>
          <seriesInfo name="DOI" value="10.17487/RFC3711"/>
        </reference>
        <reference anchor="RFC5124">
          <front>
            <title>Extended Secure RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/SAVPF)</title>
            <author fullname="J. Ott" initials="J." surname="Ott"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <date month="February" year="2008"/>
            <abstract>
              <t>An RTP profile (SAVP) for secure real-time communications and another profile (AVPF) to provide timely feedback from the receivers to a sender are defined in RFC 3711 and RFC 4585, respectively. This memo specifies the combination of both profiles to enable secure RTP communications with feedback. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5124"/>
          <seriesInfo name="DOI" value="10.17487/RFC5124"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4288">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="December" year="2005"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in MIME and other Internet protocols. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4288"/>
          <seriesInfo name="DOI" value="10.17487/RFC4288"/>
        </reference>
        <reference anchor="RFC2974">
          <front>
            <title>Session Announcement Protocol</title>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="E. Whelan" initials="E." surname="Whelan"/>
            <date month="October" year="2000"/>
            <abstract>
              <t>This document describes version 2 of the multicast session directory announcement protocol, Session Announcement Protocol (SAP), and the related issues affecting security and scalability that should be taken into account by implementors. This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2974"/>
          <seriesInfo name="DOI" value="10.17487/RFC2974"/>
        </reference>
        <reference anchor="RFC7202">
          <front>
            <title>Securing the RTP Framework: Why RTP Does Not Mandate a Single Media Security Solution</title>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="April" year="2014"/>
            <abstract>
              <t>This memo discusses the problem of securing real-time multimedia sessions. It also explains why the Real-time Transport Protocol (RTP) and the associated RTP Control Protocol (RTCP) do not mandate a single media security mechanism. This is relevant for designers and reviewers of future RTP extensions to ensure that appropriate security mechanisms are mandated and that any such mechanisms are specified in a manner that conforms with the RTP architecture.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7202"/>
          <seriesInfo name="DOI" value="10.17487/RFC7202"/>
        </reference>
        <reference anchor="RFC7201">
          <front>
            <title>Options for Securing RTP Sessions</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <date month="April" year="2014"/>
            <abstract>
              <t>The Real-time Transport Protocol (RTP) is used in a large number of different application domains and environments. This heterogeneity implies that different security mechanisms are needed to provide services such as confidentiality, integrity, and source authentication of RTP and RTP Control Protocol (RTCP) packets suitable for the various environments. The range of solutions makes it difficult for RTP-based application developers to pick the most suitable mechanism. This document provides an overview of a number of security solutions for RTP and gives guidance for developers on how to choose the appropriate security mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7201"/>
          <seriesInfo name="DOI" value="10.17487/RFC7201"/>
        </reference>
      </references>
    </references>
    <?line 735?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+19a3IbSZLm/zhFLGW2TWIB8KFHSaiSqlGkVKVZUeKKVPX2
To9NJ4AAmKtEJiYfpCBKbXOIOcCcYg8we5M9yfrnHhEZkQApVVftw9qGZVYC
MuPh4eHh73AMBgNVp3VmRnrn7cWZPkvWWZHM9IuiXCa1nhel/tEUS1OX68Ek
qcxMnxVpXuvjrGhm+rhYrkpTVWmR76hkMinN1R3jDM6Oj3fUrJjmyZLmm5XJ
vB6YfGGySVLWg+SqnhalGZT1arBYTaeDg0M1TWqzKMr1SFf1TM3o20jfnIwv
nn9WKl2VI12XTVUfHRw8OThSSWkSmn68WmUpdSSgKp3kM/3WJNngIl0aPaYW
O+q6KN8vyqJZoXEzS4v9n9OZKfRFmeTVqihpdQSHPk1ooSZP8qnZUe/NmrrN
RkoPNK0P//B68CFeq1JVTbP+Y5IVOUG7NpVapSP993Ux7euKRi/NvKJP6yU+
/IOqmskyZRTW6xV1ePn84oXW93SSVQUBmOYzszL0v7ze6eudl+Mf6B/C5s7L
txcvdpS6MnljCCxtV2SxSA9kuD/QYtN8oX/Ea3q6TNKMW/0+NfV8WJQLepiU
08uRvqzrVTXa30cTPEmvzNA12seD/UlZXFdmn3rvY8a0vmwmI730e7j/pT2l
XhltYlUHs/nWQxlwSBvypXG+2GB4WS8zpZKmvixK7BrNrHWaVyN9OtTPXT9+
Om+yTEjyNKkv06rzmlaf5OlHJqiRvjDTy5zIK9PvckJQWaX1Wp829OiSWxtB
8JJHGnoAf183y+HMRID83VC/qbsg/N3//B/lwj//q+YuatrcfLhlxldD/Z+L
nHA368z6qnmfVB+jl/HUr4v3aSIAFFmxSImqgxkz7j58L91/n6PxcFoslVI5
HwqCFjSqX56/Gb58fjw8uk8ndvCEn9Gf40Av87k0L3Jdu7nW+n/987/QkZwR
8ykN+A2dBWlTzHW6XAIRV4bIcEYgou0ZIVw/GXU514o515Q51zTkXAKEpxX3
RxgATOdv9glk10p40NHB0X37oDIlYSMlyIOuthM1lIW6dSblwgS0f319PUyr
gg8Yc42knO1/8/jJkwNLv4PBQCeTqi6TKTGWCxDn0iwLPTPVtEwnBgwO/Eiv
LA+at/x2cevqVbB6vct8bE/v3tx0dufz572hvrg02yaYmXma06hprvjIEFdv
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
51qaofrfsAZrESxzAAA=

-->

</rfc>
