<?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.35 (Ruby 2.5.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-avtcore-rtp-haptics-latest" category="std" consensus="true" submissionType="IETF" xml:lang="en" number="9993" updates="9695" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <link href="https://datatracker.ietf.org/doc/draft-ietf-avtcore-rtp-haptics-latest" rel="prev"/>
  <front>
    <title abbrev="RTP Payload Format for Haptics">RTP Payload Format for Haptics</title>
    <seriesInfo name="RFC" value="9993"/>
    <author initials="" surname="HS Yang" fullname="Hyunsik Yang">
      <organization>InterDigital</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>hyunsik.yang@interdigital.com</email>
      </address>
    </author>
    <author initials="X." surname="de Foy" fullname="Xavier de Foy">
      <organization>InterDigital</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>xavier.defoy@interdigital.com</email>
      </address>
    </author>
    <date year="2026" month="May"/>
    <area>WIT</area>
    <workgroup>avtcore</workgroup>
    <abstract>
      <?line 66?>

<t>This memo specifies an RTP payload format for MPEG-I haptic data. A haptic media stream is composed of MPEG-I Haptic Stream (MIHS) units including a MIHS unit header and zero or more MIHS packets. The RTP payload header format allows for packetization of a MIHS unit in an RTP packet payload as well as fragmentation of a MIHS unit into multiple RTP packets. The original subtype registration for 'haptics/hmpg' (RFC 9695) did not include any required or optional parameters. This memo updates RFC 9695 and the 'haptics/hmpg' registration to add optional parameters. It also provides Session Description Protocol (SDP) usage information for the 'haptics' media type.</t>
    </abstract>
  </front>
  <middle>
    <?line 70?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Haptics provides users with tactile effects in addition to audio and video, allowing them to experience sensory immersion. Haptic data is mainly transmitted to devices that act as actuators, providing them with information to operate according to the values defined in haptic effects. The IETF registered 'haptics' as a primary media type, akin to 'audio' and 'video' <xref target="RFC9695"/>.</t>
      <t>The MPEG Haptics Coding standard <xref target="ISO.IEC.23090-31"/> defines the data formats, metadata, and codec architecture to encode, decode, synthesize, and transmit haptic signals. Within this MPEG standard, a haptic media stream is composed of MIHS units including a MIHS unit header and zero or more MIHS packets. The MIHS unit is a unit of packetization suitable for streaming and is similar in essence to the Network Abstraction Layer (NAL) unit defined in some video specifications. This document specifies how haptic data (MIHS units) can be transmitted using the RTP protocol. This document follows recommendations in <xref target="RFC8088"/> and <xref target="RFC2736"/> for RTP payload format writers. This document does not specify synchronization (lip sync) mechanisms between haptics and audio/video components.  In addition, this document specifies the associated SDP parameters and SDP offer/answer considerations for the 'haptics' media type.</t>
    </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">
      <name>Definitions</name>
      <t>This document uses the definitions of the MPEG Haptics Coding standard <xref target="ISO.IEC.23090-31"/>. Some of these terms are provided here for convenience.</t>
      <dl>
        <dt>Actuator:</dt>
        <dd>
          <t>Component of a device for rendering haptic sensations.</t>
        </dd>
        <dt>Avatar:</dt>
        <dd>
          <t>Body (or part of body) representation.</t>
        </dd>
        <dt>Band:</dt>
        <dd>
          <t>Component in a channel for containing effects for a specific range of frequencies.</t>
        </dd>
        <dt>Channel:</dt>
        <dd>
          <t>Component in a perception containing one or more bands rendered on a device at a specific body location.</t>
        </dd>
        <dt>Device:</dt>
        <dd>
          <t>Physical system having one or more actuators configured to render a haptic sensation corresponding with a given signal.</t>
        </dd>
        <dt>Effect:</dt>
        <dd>
          <t>Component of a band for defining a signal, consisting of a haptic waveform or one or more haptic keyframes.</t>
        </dd>
        <dt>Experience:</dt>
        <dd>
          <t>Top-level haptic component containing perceptions and metadata.</t>
        </dd>
        <dt>Haptics:</dt>
        <dd>
          <t>Tactile sensations.</t>
        </dd>
        <dt>Keyframe:</dt>
        <dd>
          <t>Component of an effect mapping a position in time or space to an effect parameter such as amplitude or frequency.</t>
        </dd>
        <dt>Metadata:</dt>
        <dd>
          <t>Global information about an experience, perception, channel, or band.</t>
        </dd>
        <dt>MIHS unit:</dt>
        <dd>
          <t>Unit of packetization of the MPEG-I Haptic Stream format, which is used as unit of payload in the format described in this memo. See <xref target="haptic-format-description"/> for details.</t>
        </dd>
        <dt>Modality:</dt>
        <dd>
          <t>Type of haptics, such as vibration, force, pressure, position, velocity, or temperature.</t>
        </dd>
        <dt>Perception:</dt>
        <dd>
          <t>Haptic perception containing channels of a specific modality.</t>
        </dd>
        <dt>Signal:</dt>
        <dd>
          <t>Representation of the haptics associated with a specific modality to be rendered on a device.</t>
        </dd>
        <dt>Hmpg format:</dt>
        <dd>
          <t>A binary compressed format for haptics data. Information is stored in a binary form, and data compression is applied on data at the band level. The 'haptics/hmpg' media subtype is registered in <xref target="RFC9695"/> and updated by this memo.</t>
        </dd>
        <dt>Independent unit:</dt>
        <dd>
          <t>A MIHS unit is independent if it can be decoded independently from earlier units. Independent units contain timing information and are also called "sync units" in <xref target="ISO.IEC.23090-31"/>.</t>
        </dd>
        <dt>Dependent unit:</dt>
        <dd>
          <t>A MIHS unit is dependent if it requires earlier units for decoding. Dependent units do not contain timing information and are also called "non-sync units" in <xref target="ISO.IEC.23090-31"/>.</t>
        </dd>
        <dt>Time-independent effect:</dt>
        <dd>
          <t>A haptic effect that occurs regardless of time. The tactile feedback of a texture is a representative example. Time-independent effects are encoded in spatial MIHS units, as defined in <xref target="MIHS-format"/>.</t>
        </dd>
        <dt>Time-dependent effect:</dt>
        <dd>
          <t>A haptic effect that varies over time. For example, tactile feedback for vibration and force are time-dependent effects and are encoded in temporal MIHS units, as defined in <xref target="MIHS-format"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="haptic-format-description">
      <name>Haptic Format Description</name>
      <section anchor="overview-of-haptic-coding">
        <name>Overview of Haptic Coding</name>
        <t>The MPEG Haptics Coding standard specifies methods for efficient transmission and the rendering of haptic signals, to enable immersive experiences. It supports multiple types of perceptions, including the most common vibrotactile (sense of touch that perceives vibrations) and kinesthetic perceptions (tactile resistance or force), and also other less common perceptions, such as the sense of temperature or texture, for example. It also supports two approaches for encoding haptic signals: a "quantized" approach based on samples of measured data and a "descriptive" approach where the signal is synthesized using a combination of functions. Both quantized and descriptive data can be encoded in a text-based exchange format based on JSON (.hjif) or in a binary packetized format for distribution and streaming (.hmpg). This last format is referred to as the MIHS format and is a base for the RTP payload format described in this document.</t>
      </section>
      <section anchor="MIHS-format">
        <name>MIHS Format</name>
        <t>MIHS is a stream format used to transport haptic data. Haptic data, including haptic effects, is packetized according to the MIHS format and delivered to actuators, which operate according to the provided effects. The MIHS format has two levels of packetization: MIHS units and MIHS packets.</t>
        <t>MIHS units are composed of a MIHS unit header and zero or more MIHS packets. Four types of MIHS units are defined. An initialization MIHS unit contains MIHS packets carrying metadata necessary to reset and initialize a haptic decoder, including a timestamp. A temporal MIHS unit contains one or more MIHS packets defining time-dependent effects and provides modalities such as pressure, velocity, and acceleration. The duration of a temporal unit is a positive number. A spatial MIHS unit contains one or more MIHS packets providing time-independent effects, such as vibrotactile texture, stiffness, and friction. The duration of a spatial unit is always zero.
A silent MIHS unit indicates that there is no effect during a time interval, and its duration is a positive number.</t>
        <t>A MIHS unit can be marked as independent or dependent. When a decoder processes an independent unit, it resets the previous effects and therefore provides a haptic experience independent from any previous MIHS unit.  A dependent unit is the continuation of previous MIHS units and cannot be independently decoded and rendered without having decoded a previous MIHS unit(s). Initialization and spatial MIHS units are always independent units. Temporal and silent MIHS units can be dependent or independent units.</t>
        <t><xref target="_figure-stream"/> illustrates a succession of MIHS units in a MIHS stream.</t>
        <figure anchor="_figure-stream">
          <name>Example of MIHS Stream</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="536" viewBox="0 0 536 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
                <path d="M 80,32 L 80,80" fill="none" stroke="black"/>
                <path d="M 96,32 L 96,80" fill="none" stroke="black"/>
                <path d="M 160,32 L 160,80" fill="none" stroke="black"/>
                <path d="M 176,32 L 176,80" fill="none" stroke="black"/>
                <path d="M 288,32 L 288,80" fill="none" stroke="black"/>
                <path d="M 304,32 L 304,80" fill="none" stroke="black"/>
                <path d="M 416,32 L 416,80" fill="none" stroke="black"/>
                <path d="M 432,32 L 432,80" fill="none" stroke="black"/>
                <path d="M 528,32 L 528,80" fill="none" stroke="black"/>
                <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
                <path d="M 96,32 L 160,32" fill="none" stroke="black"/>
                <path d="M 176,32 L 288,32" fill="none" stroke="black"/>
                <path d="M 304,32 L 416,32" fill="none" stroke="black"/>
                <path d="M 432,32 L 528,32" fill="none" stroke="black"/>
                <path d="M 8,80 L 80,80" fill="none" stroke="black"/>
                <path d="M 96,80 L 160,80" fill="none" stroke="black"/>
                <path d="M 176,80 L 288,80" fill="none" stroke="black"/>
                <path d="M 304,80 L 416,80" fill="none" stroke="black"/>
                <path d="M 432,80 L 528,80" fill="none" stroke="black"/>
                <g class="text">
                  <text x="44" y="52">Initial*</text>
                  <text x="128" y="52">Spatial</text>
                  <text x="212" y="52">Temporal</text>
                  <text x="268" y="52">Unit</text>
                  <text x="340" y="52">Temporal</text>
                  <text x="396" y="52">Unit</text>
                  <text x="460" y="52">Silent</text>
                  <text x="508" y="52">Unit</text>
                  <text x="36" y="68">Unit</text>
                  <text x="88" y="68">-</text>
                  <text x="124" y="68">Unit</text>
                  <text x="168" y="68">-</text>
                  <text x="236" y="68">(indep.)</text>
                  <text x="296" y="68">-</text>
                  <text x="360" y="68">(dependent)</text>
                  <text x="424" y="68">-</text>
                  <text x="476" y="68">(indep.)</text>
                  <text x="72" y="100">*Initialization</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+--------+ +-------+ +-------------+ +-------------+ +-----------+
|Initial*| |Spatial| |Temporal Unit| |Temporal Unit| |Silent Unit|
| Unit   |-| Unit  |-|   (indep.)  |-| (dependent) |-| (indep.)  |
+--------+ +-------+ +-------------+ +-------------+ +-----------+
 *Initialization
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="payload-format-for-haptics">
      <name>Payload Format for Haptics</name>
      <section anchor="rtp-usage">
        <name>RTP Header Usage</name>
        <t>The RTP header is defined in <xref target="RFC3550"/> and represented in <xref target="_figure-rtpheader"/>. Unless contextualized below, the meaning of the fields depicted in  <xref target="_figure-rtpheader"/> is the same as in <xref section="5.1" sectionFormat="of" target="RFC3550"/>.</t>
        <figure anchor="_figure-rtpheader">
          <name>RTP Header for Haptics</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="528" viewBox="0 0 528 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,208" fill="none" stroke="black"/>
                <path d="M 40,64 L 40,96" fill="none" stroke="black"/>
                <path d="M 56,64 L 56,96" fill="none" stroke="black"/>
                <path d="M 72,64 L 72,96" fill="none" stroke="black"/>
                <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                <path d="M 152,64 L 152,96" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 312,96 L 312,104" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,208" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                <path d="M 8,208 L 520,208" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="24" y="84">V=2</text>
                  <text x="48" y="84">P</text>
                  <text x="64" y="84">X</text>
                  <text x="100" y="84">CC</text>
                  <text x="144" y="84">M</text>
                  <text x="204" y="84">PT</text>
                  <text x="356" y="84">Sequence</text>
                  <text x="420" y="84">Number</text>
                  <text x="240" y="116">Timestamp</text>
                  <text x="300" y="116">(TS)</text>
                  <text x="160" y="148">Synchronization</text>
                  <text x="252" y="148">Source</text>
                  <text x="308" y="148">(SSRC)</text>
                  <text x="380" y="148">Identifier</text>
                  <text x="156" y="180">Contributing</text>
                  <text x="236" y="180">Source</text>
                  <text x="292" y="180">(CSRC)</text>
                  <text x="368" y="180">Identifiers</text>
                  <text x="260" y="196">....</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![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 (TS)                         |
+---------------------------------------------------------------+
|           Synchronization Source (SSRC) Identifier            |
+---------------------------------------------------------------+
|            Contributing Source (CSRC) Identifiers             |
|                             ....                              |
+---------------------------------------------------------------+
]]></artwork>
          </artset>
        </figure>
        <dl>
          <dt>Marker bit (M):</dt>
          <dd>
            <t>1 bit. The marker bit <bcp14>SHOULD</bcp14> be set to one in the first non-silent RTP packet after a period of haptic silence. This enables jitter buffer adaptation and haptics device washout (i.e., reset to a neutral position) prior to the beginning of the burst with minimal impact on the quality of experience for the end user. The marker bit in all other packets <bcp14>MUST</bcp14> be set to zero.</t>
          </dd>
          <dt>Timestamp (TS):</dt>
          <dd>
            <t>32 bits. A timestamp representing the sampling time of the first sample of the MIHS unit in the RTP payload. The clock frequency <bcp14>MUST</bcp14> be set to the sample rate of the encoded haptic data and is conveyed out of band (e.g., as an SDP parameter).</t>
          </dd>
        </dl>
      </section>
      <section anchor="payload-header">
        <name>Payload Header</name>
        <t>The RTP payload header follows the RTP header. <xref target="_figure-payloadheader"/> describes the RTP payload header for haptics.</t>
        <figure anchor="_figure-payloadheader">
          <name>RTP Payload Header for Haptics</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="144" viewBox="0 0 144 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 24,32 L 24,96" fill="none" stroke="black"/>
                <path d="M 40,32 L 40,64" fill="none" stroke="black"/>
                <path d="M 56,32 L 56,64" fill="none" stroke="black"/>
                <path d="M 72,32 L 72,96" fill="none" stroke="black"/>
                <path d="M 88,32 L 88,64" fill="none" stroke="black"/>
                <path d="M 104,32 L 104,64" fill="none" stroke="black"/>
                <path d="M 120,32 L 120,64" fill="none" stroke="black"/>
                <path d="M 136,32 L 136,96" fill="none" stroke="black"/>
                <path d="M 8,32 L 136,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 136,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 136,96" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="16" y="84">D</text>
                  <text x="44" y="84">UT</text>
                  <text x="104" y="84">L</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-+-+-+-+-+-+-+-+
|0|1|2|3|4|5|6|7|
+-+-+-+-+-+-+-+-+
|D| UT  |   L   |
+-+-----+-------+
]]></artwork>
          </artset>
        </figure>
        <dl>
          <dt>D (Dependency):</dt>
          <dd>
            <t>1 bit. This field indicates whether the MIHS unit included in the RTP payload is dependent (when its value is one) or independent (when its value is zero).</t>
          </dd>
          <dt>UT (Unit Type):</dt>
          <dd>
            <t>3 bits. This field indicates the type of the MIHS unit included in the RTP payload. UT field values are listed in <xref target="_figure-transmission-type"/>.</t>
          </dd>
          <dt>L (MIHS Layer):</dt>
          <dd>
            <t>4 bits. This field is an integer value that indicates the priority order of the MIHS unit included in the RTP payload, as determined by the haptic sender (e.g., by the haptic codec), based on application-specific needs. For example, the sender may use the MIHS layer to prioritize perceptions with the largest impact on the end-user experience. Zero corresponds to the highest priority. The semantic of individual MIHS layers are not specified and are left for the application to assign. In cases where the sender does not use the L field to indicate the priority order of the MIHS unit, the L value is '0'.</t>
          </dd>
        </dl>
      </section>
      <section anchor="payload-structures">
        <name>Payload Structures</name>
        <t>Three different types of RTP packet payload structures are specified. A single unit packet contains a single MIHS unit in the payload.  A fragmentation unit contains a subset of a MIHS unit. An aggregation packet contains multiple MIHS units in the payload. The unit type (UT) field of the RTP payload header, as shown in  <xref target="_figure-transmission-type"/>, identifies both the payload structure and, in the case of a single-unit structure, the type of MIHS unit present in the payload.</t>
        <table anchor="_figure-transmission-type">
          <name>Payload Structure Type for Haptics</name>
          <thead>
            <tr>
              <th align="center">Unit Type</th>
              <th align="left">Payload Structure</th>
              <th align="left">Packet Type Name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">0</td>
              <td align="left">N/A</td>
              <td align="left">Unassigned</td>
            </tr>
            <tr>
              <td align="center">1</td>
              <td align="left">Single</td>
              <td align="left">Initialization MIHS Unit</td>
            </tr>
            <tr>
              <td align="center">2</td>
              <td align="left">Single</td>
              <td align="left">Temporal MIHS Unit</td>
            </tr>
            <tr>
              <td align="center">3</td>
              <td align="left">Single</td>
              <td align="left">Spatial MIHS Unit</td>
            </tr>
            <tr>
              <td align="center">4</td>
              <td align="left">Single</td>
              <td align="left">Silent MIHS Unit</td>
            </tr>
            <tr>
              <td align="center">5</td>
              <td align="left">Aggr</td>
              <td align="left">Single-Time Aggregation Packet (STAP)</td>
            </tr>
            <tr>
              <td align="center">6</td>
              <td align="left">Aggr</td>
              <td align="left">Multi-Time Aggregation Packet (MTAP)</td>
            </tr>
            <tr>
              <td align="center">7</td>
              <td align="left">Frag</td>
              <td align="left">Fragmentation Unit</td>
            </tr>
          </tbody>
        </table>
        <t>The payload structures are represented in <xref target="_figure-transmission-style"/>.  The single unit payload structure is specified in <xref target="single"/>. The fragmented unit payload structure is specified in <xref target="fragmented"/>. The aggregation packet payload structure is specified in <xref target="aggregated"/>.  The padding in the figures of these sections refers to the RTP padding defined in <xref target="RFC3550"/>.</t>
        <figure anchor="_figure-transmission-style">
          <name>RTP Transmission Modes</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="528" viewBox="0 0 528 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,128 L 8,240" fill="none" stroke="black"/>
                <path d="M 168,128 L 168,240" fill="none" stroke="black"/>
                <path d="M 184,96 L 184,240" fill="none" stroke="black"/>
                <path d="M 344,96 L 344,240" fill="none" stroke="black"/>
                <path d="M 360,32 L 360,240" fill="none" stroke="black"/>
                <path d="M 520,32 L 520,240" fill="none" stroke="black"/>
                <path d="M 360,32 L 520,32" fill="none" stroke="black"/>
                <path d="M 360,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 184,96 L 344,96" fill="none" stroke="black"/>
                <path d="M 360,112 L 520,112" fill="none" stroke="black"/>
                <path d="M 8,128 L 168,128" fill="none" stroke="black"/>
                <path d="M 184,128 L 344,128" fill="none" stroke="black"/>
                <path d="M 360,144 L 520,144" fill="none" stroke="black"/>
                <path d="M 8,160 L 168,160" fill="none" stroke="black"/>
                <path d="M 184,176 L 344,176" fill="none" stroke="black"/>
                <path d="M 360,176 L 520,176" fill="none" stroke="black"/>
                <path d="M 8,192 L 168,192" fill="none" stroke="black"/>
                <path d="M 184,208 L 344,208" fill="none" stroke="black"/>
                <path d="M 360,208 L 520,208" fill="none" stroke="black"/>
                <path d="M 8,240 L 168,240" fill="none" stroke="black"/>
                <path d="M 184,240 L 344,240" fill="none" stroke="black"/>
                <path d="M 360,240 L 520,240" fill="none" stroke="black"/>
                <g class="text">
                  <text x="416" y="52">RTP</text>
                  <text x="460" y="52">Header</text>
                  <text x="384" y="84">RTP</text>
                  <text x="432" y="84">Payload</text>
                  <text x="492" y="84">Header</text>
                  <text x="400" y="100">(UT</text>
                  <text x="424" y="100">=</text>
                  <text x="456" y="100">Aggr)</text>
                  <text x="240" y="116">RTP</text>
                  <text x="284" y="116">Header</text>
                  <text x="396" y="132">MIHS</text>
                  <text x="436" y="132">Unit</text>
                  <text x="464" y="132">1</text>
                  <text x="492" y="132">Size</text>
                  <text x="64" y="148">RTP</text>
                  <text x="108" y="148">Header</text>
                  <text x="208" y="148">RTP</text>
                  <text x="256" y="148">Payload</text>
                  <text x="316" y="148">Header</text>
                  <text x="224" y="164">(UT</text>
                  <text x="248" y="164">=</text>
                  <text x="280" y="164">Frag)</text>
                  <text x="412" y="164">MIHS</text>
                  <text x="452" y="164">Unit</text>
                  <text x="480" y="164">1</text>
                  <text x="32" y="180">RTP</text>
                  <text x="80" y="180">Payload</text>
                  <text x="140" y="180">Header</text>
                  <text x="236" y="196">FU</text>
                  <text x="276" y="196">Header</text>
                  <text x="396" y="196">MIHS</text>
                  <text x="436" y="196">Unit</text>
                  <text x="464" y="196">2</text>
                  <text x="492" y="196">Size</text>
                  <text x="56" y="212">RTP</text>
                  <text x="104" y="212">Payload</text>
                  <text x="48" y="228">(Single</text>
                  <text x="100" y="228">MIHS</text>
                  <text x="144" y="228">unit)</text>
                  <text x="232" y="228">RTP</text>
                  <text x="280" y="228">Payload</text>
                  <text x="432" y="228">...</text>
                  <text x="16" y="276">(a)</text>
                  <text x="60" y="276">single</text>
                  <text x="108" y="276">unit</text>
                  <text x="236" y="276">(b)fragmentation</text>
                  <text x="324" y="276">unit</text>
                  <text x="360" y="276">(c)</text>
                  <text x="424" y="276">aggregation</text>
                  <text x="500" y="276">packet</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                                            +-------------------+
                                            |     RTP Header    |
                                            +-------------------+
                                            | RTP Payload Header|
                      +-------------------+ |   (UT = Aggr)     |
                      |     RTP Header    | +-------------------+
+-------------------+ +-------------------+ |  MIHS Unit 1 Size |
|     RTP Header    | | RTP Payload Header| +-------------------+
+-------------------+ |   (UT = Frag)     | |    MIHS Unit 1    |
| RTP Payload Header| +-------------------+ +-------------------+
+-------------------+ |     FU Header     | |  MIHS Unit 2 Size |
|    RTP Payload    | +-------------------+ +-------------------+
| (Single MIHS unit)| |    RTP Payload    | |       ...         |
+-------------------+ +-------------------+ +-------------------+

(a) single unit      (b)fragmentation unit (c) aggregation packet

]]></artwork>
          </artset>
        </figure>
        <section anchor="single">
          <name>Single Unit Payload Structure</name>
          <t>In a single unit payload structure, as described in <xref target="_figure-transmission-single"/>, the RTP packet contains the RTP header, followed by the payload header and one single MIHS unit. The payload header follows the structure described in <xref target="payload-header"/>. The  payload contains a MIHS unit as defined in <xref target="ISO.IEC.23090-31"/>.</t>
          <figure anchor="_figure-transmission-single">
            <name>Single Unit Payload Structure</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
                  <path d="M 136,96 L 136,128" fill="none" stroke="black"/>
                  <path d="M 264,160 L 264,192" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,192" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 136,128" fill="none" stroke="black"/>
                  <path d="M 264,160 L 520,160" fill="none" stroke="black"/>
                  <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="232" y="84">RTP</text>
                    <text x="276" y="84">Header</text>
                    <text x="40" y="116">Payload</text>
                    <text x="100" y="116">Header</text>
                    <text x="220" y="148">MIHS</text>
                    <text x="260" y="148">Unit</text>
                    <text x="300" y="148">Data</text>
                    <text x="312" y="180">...OPTIONAL</text>
                    <text x="376" y="180">RTP</text>
                    <text x="424" y="180">Padding</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          RTP Header                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Payload Header |                                               |
+---------------+                                               |
|                        MIHS Unit Data                         |
|                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |...OPTIONAL RTP Padding        |
+-------------------------------+-------------------------------+
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="fragmented">
          <name>Fragmented Unit Payload Structure</name>
          <t>In a fragmented unit payload structure, as described in <xref target="_figure-fragment-structure"/>, the RTP packet contains the RTP header, followed by the payload header, a Fragmented Unit (FU) header, and a MIHS unit fragment. The payload header follows the structure described in <xref target="payload-header"/>. The value of the UT field of the payload header is 7. The FU header follows the structure described in <xref target="_figure-fragment-header"/>. In the case of fragmentation, all RTP payload header fields <bcp14>MUST</bcp14> remain unchanged across all fragments.</t>
          <figure anchor="_figure-fragment-structure">
            <name>Fragmentation Unit Payload Structure</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
                  <path d="M 136,96 L 136,128" fill="none" stroke="black"/>
                  <path d="M 264,96 L 264,128" fill="none" stroke="black"/>
                  <path d="M 264,160 L 264,192" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,192" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 264,128" fill="none" stroke="black"/>
                  <path d="M 264,160 L 520,160" fill="none" stroke="black"/>
                  <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="232" y="84">RTP</text>
                    <text x="276" y="84">Header</text>
                    <text x="40" y="116">Payload</text>
                    <text x="100" y="116">Header</text>
                    <text x="156" y="116">FU</text>
                    <text x="196" y="116">Header</text>
                    <text x="196" y="148">MIHS</text>
                    <text x="236" y="148">Unit</text>
                    <text x="292" y="148">Fragment</text>
                    <text x="312" y="180">...OPTIONAL</text>
                    <text x="376" y="180">RTP</text>
                    <text x="424" y="180">Padding</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          RTP Header                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Payload Header | FU Header     |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
|                     MIHS Unit Fragment                        |
|                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |...OPTIONAL RTP Padding        |
+-------------------------------+-------------------------------+
]]></artwork>
            </artset>
          </figure>
          <t>FU headers are used to enable fragmenting a single MIHS unit into multiple RTP packets. Fragments of the same MIHS unit <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). FUs <bcp14>MUST NOT</bcp14> be nested, i.e., an FU <bcp14>MUST NOT</bcp14> contain a subset of another FU.</t>
          <t><xref target="_figure-fragment-header"/> describes an FU header, including the following fields:</t>
          <figure anchor="_figure-fragment-header">
            <name>Fragmentation Unit Header</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="272" viewBox="0 0 272 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                  <path d="M 40,32 L 40,96" fill="none" stroke="black"/>
                  <path d="M 72,32 L 72,96" fill="none" stroke="black"/>
                  <path d="M 104,32 L 104,64" fill="none" stroke="black"/>
                  <path d="M 136,32 L 136,64" fill="none" stroke="black"/>
                  <path d="M 168,32 L 168,96" fill="none" stroke="black"/>
                  <path d="M 200,32 L 200,64" fill="none" stroke="black"/>
                  <path d="M 232,32 L 232,64" fill="none" stroke="black"/>
                  <path d="M 264,32 L 264,96" fill="none" stroke="black"/>
                  <path d="M 8,32 L 264,32" fill="none" stroke="black"/>
                  <path d="M 8,64 L 264,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 264,96" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="24" y="52">0</text>
                    <text x="56" y="52">1</text>
                    <text x="88" y="52">2</text>
                    <text x="120" y="52">3</text>
                    <text x="152" y="52">4</text>
                    <text x="184" y="52">5</text>
                    <text x="216" y="52">6</text>
                    <text x="248" y="52">7</text>
                    <text x="24" y="84">FUS</text>
                    <text x="56" y="84">FUE</text>
                    <text x="112" y="84">RSV</text>
                    <text x="220" y="84">UT</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+---+---+---+---+---+---+---+---+
|FUS|FUE|   RSV     |     UT    |
+---+---+-----------+-----------+
]]></artwork>
            </artset>
          </figure>
          <dl>
            <dt>FUS (Fragmented Unit Start):</dt>
            <dd>
              <t>1 bit. This field <bcp14>MUST</bcp14> be set to 1 for the first fragment and 0 for the other fragments.</t>
            </dd>
            <dt>FUE (Fragmented Unit End):</dt>
            <dd>
              <t>1 bit. This field <bcp14>MUST</bcp14> be set to 1 for the last fragment and 0 for the other fragments.</t>
            </dd>
          </dl>
          <t>The combination FUS=1 and FUE=1 <bcp14>MUST NOT</bcp14> occur; such packets are invalid.</t>
          <dl>
            <dt>RSV (Reserved):</dt>
            <dd>
              <t>3 bits. These bits <bcp14>MUST</bcp14> be set to 0 by the sender and ignored by the receiver.</t>
            </dd>
            <dt>UT (Unit Type):</dt>
            <dd>
              <t>3 bits. This field indicates the type of the MIHS unit this fragment belongs to, using values defined in <xref target="_figure-transmission-type"/>.</t>
            </dd>
          </dl>
          <t>The use of MIHS unit fragmentation in RTP means that a media receiver can receive some fragments, but not other fragments. The missing fragments will typically not be retransmitted by RTP. This results in partially received MIHS units, which can be either dropped or used by the decoding application, based on implementation. In cases where consecutive fragments with FUE and FUS are lost, the receiver may be able to detect that surrounding fragments belong to a different partially received MIHS unit (e.g., if the UT field holds a different value).</t>
        </section>
        <section anchor="aggregated">
          <name>Aggregation Packet Payload Structure</name>
          <t>In an aggregation packet, as described in <xref target="_figure-aggre-structure"/>, the RTP packet contains an RTP header, followed by a payload header, and (for each aggregated MIHS unit) a MIHS unit size followed by the MIHS unit. The payload header follows the structure described in <xref target="payload-header"/>.</t>
          <figure anchor="_figure-aggre-structure">
            <name>Single-Time Aggregation Packet</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="336" width="528" viewBox="0 0 528 336" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
                  <path d="M 8,192 L 8,304" fill="none" stroke="black"/>
                  <path d="M 248,192 L 248,224" fill="none" stroke="black"/>
                  <path d="M 264,96 L 264,128" fill="none" stroke="black"/>
                  <path d="M 264,272 L 264,304" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
                  <path d="M 520,192 L 520,304" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                  <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                  <path d="M 8,224 L 248,224" fill="none" stroke="black"/>
                  <path d="M 264,272 L 520,272" fill="none" stroke="black"/>
                  <path d="M 8,304 L 520,304" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="232" y="84">RTP</text>
                    <text x="276" y="84">Header</text>
                    <text x="88" y="116">RTP</text>
                    <text x="136" y="116">Payload</text>
                    <text x="196" y="116">Header</text>
                    <text x="340" y="116">MIHS</text>
                    <text x="380" y="116">Unit</text>
                    <text x="408" y="116">1</text>
                    <text x="436" y="116">Size</text>
                    <text x="244" y="148">MIHS</text>
                    <text x="284" y="148">Unit</text>
                    <text x="312" y="148">1</text>
                    <text x="8" y="180">:</text>
                    <text x="520" y="180">:</text>
                    <text x="92" y="212">MIHS</text>
                    <text x="132" y="212">Unit</text>
                    <text x="160" y="212">2</text>
                    <text x="188" y="212">Size</text>
                    <text x="244" y="244">MIHS</text>
                    <text x="284" y="244">Unit</text>
                    <text x="312" y="244">2</text>
                    <text x="312" y="292">...OPTIONAL</text>
                    <text x="376" y="292">RTP</text>
                    <text x="424" y="292">Padding</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          RTP Header                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        RTP Payload Header     |       MIHS Unit 1 Size        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           MIHS Unit 1                         |
    |                                                               |
    :                                                               :
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        MIHS Unit 2 Size     |                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                 |
    |                           MIHS Unit 2                         |
    |                                                               |
    |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               |...OPTIONAL RTP Padding        |
    +-------------------------------+-------------------------------+
]]></artwork>
            </artset>
          </figure>
          <t><xref target="_figure-aggre-structure"/> shows a Single-Time Aggregation Packet (STAP), which can be used to transmit multiple MIHS units that correspond to the same timestamp. For example, if two frequencies are used for the same content, they can be transmitted at once in a STAP. Multiple spatial units can also be sent together in a STAP, since this type of haptics data is time independent. The MIHS unit length field (16 bits) holds the length of the MIHS unit following it, in bytes. The value of the UT field of the payload header is 5.</t>
          <figure anchor="_figure-aggremtap-structure">
            <name>Multiple-Time Aggregation Packet</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="528" viewBox="0 0 528 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,336" fill="none" stroke="black"/>
                  <path d="M 136,240 L 136,272" fill="none" stroke="black"/>
                  <path d="M 264,96 L 264,128" fill="none" stroke="black"/>
                  <path d="M 264,208 L 264,240" fill="none" stroke="black"/>
                  <path d="M 264,304 L 264,336" fill="none" stroke="black"/>
                  <path d="M 392,128 L 392,160" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,336" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                  <path d="M 8,160 L 392,160" fill="none" stroke="black"/>
                  <path d="M 8,208 L 520,208" fill="none" stroke="black"/>
                  <path d="M 8,240 L 520,240" fill="none" stroke="black"/>
                  <path d="M 16,272 L 136,272" fill="none" stroke="black"/>
                  <path d="M 264,304 L 520,304" fill="none" stroke="black"/>
                  <path d="M 8,336 L 520,336" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="232" y="84">RTP</text>
                    <text x="276" y="84">Header</text>
                    <text x="88" y="116">RTP</text>
                    <text x="136" y="116">Payload</text>
                    <text x="196" y="116">Header</text>
                    <text x="340" y="116">MIHS</text>
                    <text x="380" y="116">Unit</text>
                    <text x="408" y="116">1</text>
                    <text x="436" y="116">Size</text>
                    <text x="236" y="148">TS</text>
                    <text x="276" y="148">Offset</text>
                    <text x="244" y="180">MIHS</text>
                    <text x="284" y="180">Unit</text>
                    <text x="312" y="180">1</text>
                    <text x="84" y="228">MIHS</text>
                    <text x="124" y="228">Unit</text>
                    <text x="152" y="228">2</text>
                    <text x="180" y="228">Size</text>
                    <text x="372" y="228">TS</text>
                    <text x="412" y="228">Offset</text>
                    <text x="44" y="260">TS</text>
                    <text x="84" y="260">Offset</text>
                    <text x="236" y="292">MIHS</text>
                    <text x="276" y="292">Unit</text>
                    <text x="304" y="292">2</text>
                    <text x="312" y="324">...OPTIONAL</text>
                    <text x="376" y="324">RTP</text>
                    <text x="424" y="324">Padding</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          RTP Header                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        RTP Payload Header     |       MIHS Unit 1 Size        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           TS Offset           |               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               |
    |                           MIHS Unit 1                         |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |       MIHS Unit 2 Size        |            TS Offset          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   TS Offset   |                                               |
    |-+-+-+-+-+-+-+-+                                               |
    |                          MIHS Unit 2                          |
    |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               |...OPTIONAL RTP Padding        |
    +-------------------------------+-------------------------------+
]]></artwork>
            </artset>
          </figure>
          <t><xref target="_figure-aggremtap-structure"/> shows a Multi-Time Aggregation Packet (MTAP). It is used to transmit multiple MIHS units with different timestamps, in one RTP packet. Multi-time aggregation can help reduce the number of packets in environments where some delay is acceptable. The value of the UT field of the payload header is 6. The MIHS unit length field (16 bits) holds the length of the MIHS unit following it, in bytes. The timestamp offset field (TS offset, 16 bits) is present in the MTAP case and <bcp14>MUST</bcp14> be set to the value of (time of the MIHS unit - RTP timestamp of the packet).  The timestamp offset of the earliest aggregation unit <bcp14>MUST</bcp14> always be zero. Therefore, the RTP timestamp of the MTAP is identical to the earliest MIHS unit time.</t>
        </section>
      </section>
      <section anchor="mihs-trans">
        <name>MIHS Units Transmission and Reception Considerations</name>
        <t>The following considerations apply for the streaming of MIHS units over RTP.</t>
        <t>The MIHS format enables variable duration units and uses initialization MIHS units to declare the duration of subsequent non-zero duration MIHS units, as well as the maximum variation of this duration. A sender <bcp14>SHOULD</bcp14> set constant or low-variability (e.g., lower than the playout buffer) durations in initialization MIHS units, for RTP streaming. This enables the receiver to determine early (e.g., using a timer) when a unit has been lost and to make the decoder more robust to RTP packet loss. If a sender sends MIHS units with high duration variations, the receiver <bcp14>MAY</bcp14> need to wait for a long period of time (e.g., the upper bound of the duration variation) to determine if a MIHS unit was lost in transmission. Whether this behavior is acceptable or not is application dependent, and the application can configure the encoder to generate MIHS unit of lengths with the appropriate variation.</t>
        <t>The MIHS format uses silent MIHS units to signal haptic silence. A sender <bcp14>MAY</bcp14> decide not to send silent units, to save network resources. Since, from a receiver standpoint, a missed MIHS unit may originate from a not-sent silent unit or a lost packet, a sender <bcp14>MAY</bcp14> send one, or a few, MIHS silent units at the beginning of a haptic silence. If a media receiver receives a MIHS silent unit, the receiver <bcp14>SHOULD</bcp14> assume that silence is intended until the reception of a non-silent MIHS unit. This can reduce the number of false detections of lost RTP packets by the decoder.</t>
        <t>In some multimedia conference scenarios using an RTP video mixer (e.g., when adding or selecting a new source), it is recommended to use Full Intra Request (FIR) feedback messages <xref target="RFC5104"/> with haptics. The purpose of the FIR message is to cause an encoder to send a decoder refresh point at the earliest opportunity. In the context of haptics, an appropriate decoder refresh point is an initialization MIHS unit. The initialization MIHS unit point enables a decoder to be reset to a known state and to decode all MIHS units following it.</t>
      </section>
    </section>
    <section anchor="payload-format-parameters">
      <name>Payload Format Parameters</name>
      <t>This section describes payload format parameters. <xref target="optional-param"/> specifies new optional parameters, and <xref target="sdp-registration"/> further registers a new token in the media subregistry of the "Session Description Protocol (SDP) Parameters" registry group.</t>
      <section anchor="optional-param">
        <name>Optional Parameters Definition</name>
        <t>It is optional to include the SDP parameters in this section. Some parameters have a default value that <bcp14>MUST</bcp14> be inferred if the parameter is not present in the SDP, unless an out-of-band agreement indicates a different value, as described in <xref target="sdp-cons"/>. The values of the SDP parameters indicated in this section are based on the current version of the MPEG Haptics Coding standard (ISO/IEC 23090-31:2025) and may be different in future versions of <xref target="ISO.IEC.23090-31"/>.</t>
        <t>ver:</t>
        <t>This parameter provides the year of the edition and amendment of ISO/IEC 23090-31 that this file conforms to, as defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics object.version is a string that may contain values such as XXXX or XXXX-Y where XXXX is the year of publication and Y is the amendment number, if any. For the initial (and current) version of the MPEG Haptics Coding standard (ISO/IEC 23090-31:2025), the value is "2025". When ver is not present, a default value of "2025" <bcp14>SHOULD</bcp14> be inferred.</t>
        <dl>
          <dt>profile:</dt>
          <dd>
            <t>This parameter indicates the profile used to generate the encoded stream, as defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics object.profile is a string that may contain the value "simple-parametric" or "main". When profile is not present, the default value "main" <bcp14>SHOULD</bcp14> be inferred.</t>
          </dd>
          <dt>lvl:</dt>
          <dd>
            <t>This parameter indicates the level used to generate the encoded stream, as defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics object.level is an integer that may contain the value 1 or 2. When lvl is not present, the default value 2 <bcp14>SHOULD</bcp14> be inferred.</t>
          </dd>
          <dt>maxlod:</dt>
          <dd>
            <t>This parameter indicates the maximum level of details (LODs) to use for the avatar(s). The avatar LOD is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.avatar object.lod is an integer that may contain the value 0 or a positive integer.</t>
          </dd>
          <dt>avtypes:</dt>
          <dd>
            <t>This parameter indicates, using a comma-separated list, the types of haptic perception represented by the avatar(s). The avatar type is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.avatar object.type is a string that may contain the value "Vibration", "Pressure", "Temperature", or "Custom".</t>
          </dd>
          <dt>modalities:</dt>
          <dd>
            <t>This parameter indicates, using a comma-separated list, haptic perception modalities (e.g., pressure, acceleration, velocity, position, temperature, etc.). The perception modality is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.perception object.perception_modality is a string that may contain the value "Pressure", "Acceleration", "Velocity", "Position", "Temperature", "Vibrotactile", "Water", "Wind", "Force", "Electrotactile", "Vibrotactile Texture", "Stiffness", "Friction", "Humidity", "User-defined Temporal", "User-defined Spatial", or "Other".</t>
          </dd>
          <dt>bodypartmask:</dt>
          <dd>
            <t>This parameter is an integer that indicates, using a bitmask, the location of the devices or actuators on the body. The body part mask is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.body_part_mask is a 32-bit integer that may hold a bit mask using bit positions defined in Table 7 of <xref target="ISO.IEC.23090-31"/>.</t>
          </dd>
          <dt>maxfreq:</dt>
          <dd>
            <t>This parameter is an integer that indicates the maximum frequency of haptic data for vibrotactile perceptions (Hz). Maximum frequency is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.maximum_frequency.</t>
          </dd>
          <dt>minfreq:</dt>
          <dd>
            <t>This parameter is an integer that indicates the minimum frequency of haptic data for vibrotactile perceptions (Hz). Minimum frequency is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.minimum_frequency.</t>
          </dd>
          <dt>dvctypes:</dt>
          <dd>
            <t>This parameter is an integer that indicates, using a comma-separated list, the types of actuators. The device type is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.type is a string that may contain the value "LRA", "VCA", "ERM", "Piezo", or "Unknown".</t>
          </dd>
          <dt>silencesupp:</dt>
          <dd>
            <t>This parameter is an integer that indicates whether silence suppression should be used (value 1) or not (value 0). When silencesupp is not present, the default value 0 <bcp14>SHOULD</bcp14> be inferred.</t>
          </dd>
        </dl>
      </section>
      <section anchor="sdp-registration">
        <name>SDP Parameter Registration</name>
        <t>This memo registers a 'haptics' token in the media subregistry of the "Session Description Protocol (SDP) Parameters" registry group. This registration contains the required information elements outlined in the SDP registration procedure defined in <xref section="8.2" sectionFormat="of" target="RFC8866"/>.</t>
        <dl>
          <dt>Contact name:</dt>
          <dd>
            <t>Hyunsik Yang</t>
          </dd>
          <dt>Contact email address:</dt>
          <dd>
            <t>hyunsik.yang@interdigital.com</t>
          </dd>
          <dt>Name being defined (as it will appear in SDP):</dt>
          <dd>
            <t>haptics</t>
          </dd>
          <dt>Type of name:</dt>
          <dd>
            <t>media</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>The 'haptics' media type for the Session Description Protocol
   is used to describe a media stream whose content can be rendered
   as touch-related sensations.  The media subtype further describes
   the specific format of the haptics stream.  The 'haptics' media
   type for SDP is used to establish haptics media streams.</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>RFC 9993</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="sdp-considerations">
      <name>SDP Considerations</name>
      <t>The mapping of the above-defined payload format media type to the corresponding fields in SDP is done according to <xref target="RFC8866"/>.</t>
      <t>The media name in the "m=" line of SDP <bcp14>MUST</bcp14> be haptics.</t>
      <t>The encoding name in the "a=rtpmap" line of SDP <bcp14>MUST</bcp14> be hmpg.</t>
      <t>The clock rate in the "a=rtpmap" line may be any sampling rate, typically 8000.</t>
      <t>The optional parameters (defined in <xref target="optional-param"/>), when present, <bcp14>MUST</bcp14> be included in the "a=fmtp" line of SDP. This is expressed as a media type string, in the form of a semicolon-separated list of parameter=value pairs. Parameter values, including string values, <bcp14>MUST</bcp14> be written without quotation marks ("") in SDP. Parameter values that are strings are not case sensitive and <bcp14>SHOULD</bcp14> be written in lowercase.</t>
      <t>An example of media representation corresponding to the hmpg RTP payload in SDP is as follows:</t>
      <sourcecode type="sdp"><![CDATA[
    m=haptics 43291 UDP/TLS/RTP/SAVPF 115
    a=rtpmap:115 hmpg/8000
    a=fmtp:115 profile=main;lvl=1;ver=2025
]]></sourcecode>
      <section anchor="sdp-cons">
        <name>SDP Offer/Answer Considerations</name>
        <t>When using the offer/answer procedure described in <xref target="RFC3264"/> to negotiate the use of haptic, the following considerations apply:</t>
        <t>When used for a unidirectional stream, the SDP parameters represent the properties of the sender (on the sending side) and of the receiver (on the receiving side). When used for a sendrecv stream, the SDP parameters represent the properties of the receiver.</t>
        <t>The receiver properties expressed using the SDP parameters 'ver', 'profile', and 'lvl' correspond to implementation capabilities. The ver, profile, and lvl parameters <bcp14>MUST</bcp14> be used symmetrically in SDP offer and answer. That is, their values in the answer <bcp14>MUST</bcp14> match those in the offer, either explicitly signaled or implicitly inferred. In the same session, ver, profile, and lvl <bcp14>MUST NOT</bcp14> be changed in subsequent offers or answers.</t>
        <t>The properties expressed using SDP parameters other than 'ver', 'profile', and 'lvl' are provided as recommendations for efficient data transmission and are not binding, meaning that a sender is encouraged but not required to conform to the parameters specified by the receiver. These properties <bcp14>MAY</bcp14> be set to different values in offers and answers. These properties <bcp14>MAY</bcp14> be updated in subsequent offers or answers.</t>
        <t>Any receiver compliant with <xref target="ISO.IEC.23090-31"/> <bcp14>MUST</bcp14> be capable of decoding any stream with a compatible version, profile, and level. A receiver supporting a more general profile will accept a stream corresponding to the same or a less general profile (e.g., "main" is more general than "simple-parametric"). A receiver supporting a given level will accept a stream corresponding to the same or a lower level. A receiver supporting a given version will accept a stream corresponding to the same version and <bcp14>MAY</bcp14> accept other versions. A receiver <bcp14>MAY</bcp14> ignore any part of a received stream, e.g., that it does not have support for rendering.</t>
        <t>The haptic signal can be sampled at different rates. The MPEG Haptics Coding standard does not mandate a specific frequency. A typical sample rate is 8000Hz.</t>
        <t>The parameter 'ver' indicates the version of the haptic standard specification. If it is not specified, the value "2025" indicating the MPEG Haptics Coding standard ISO/IEC 23090-31:2025 <xref target="ISO.IEC.23090-31"/>  <bcp14>SHOULD</bcp14> be inferred, although the sender and receiver <bcp14>MAY</bcp14> use a specific value based on an out-of-band agreement. The parameter 'profile' is used to restrict the number of tools used (e.g., the simple-parametric profile enables simpler implementations than the main profile). If it is not specified, the most general profile "main" <bcp14>SHOULD</bcp14> be inferred, although the sender and receiver <bcp14>MAY</bcp14> use a specific value based on an out-of-band agreement. The parameter 'lvl' is used to further characterize implementations within a given profile, e.g., according to the maximum supported number of channels, bands, and perceptions. If it is not specified, the most general level "2" <bcp14>SHOULD</bcp14> be inferred, although the sender and receiver <bcp14>MAY</bcp14> use a specific version based on an out-of-band agreement.</t>
        <t>Other parameters can be used to indicate bitstream properties as well as receiver capabilities. The parameters 'maxlod', 'avtypes', 'bodypartmask', 'maxfreq', 'minfreq', 'dvctypes', and 'modalities' can be sent by a sender to reflect the characteristics of bitstreams and can be set by a receiver to reflect the nature and capabilities of local actuator devices or a preferred set of bitstream properties. For example, different receivers <bcp14>MAY</bcp14> have different sets of local actuators, in which case these parameters can be used to select a stream adapted to the receiver. In some other cases, some receivers <bcp14>MAY</bcp14> indicate a preference for a set of bitstream properties such as perceptions, min/max frequency, or body part mask, which contribute the most to the user experience for a given application, in which case these parameters can be used to select a stream that includes and possibly prioritizes those properties. For example, if the haptic stream server provides more information than the body mask specified by the receiver, the additional information can be either integrated into a single effect or ignored by the receiver.</t>
        <t>The parameter 'silencesupp' can be used to indicate sender and receiver capabilities or preferences. This parameter indicates whether silence suppression should be used, as described in <xref target="mihs-trans"/>. If it is not specified, the value "0", indicating no silence suppression, <bcp14>SHOULD</bcp14> be inferred, although the sender and receiver <bcp14>MAY</bcp14> use silence suppression based on an out-of-band agreement.</t>
      </section>
      <section anchor="declarative-sdp-considerations">
        <name>Declarative SDP Considerations</name>
        <t>When haptic content over RTP is offered with SDP in a declarative style, the parameters capable of indicating both bitstream properties as well as receiver capabilities are used to indicate only bitstream properties.  For example, in this case, the parameters 'maxlod', 'bodypartmask', 'maxfreq', 'minfreq', 'dvctypes', and 'modalities' declare the values used by the bitstream, not the capabilities for receiving bitstreams. A receiver of the SDP is required to support all parameters and values of the parameters provided; otherwise, the receiver <bcp14>MUST</bcp14> reject or not participate in the session.  It falls on the creator of the session to use values that are expected to be supported by the receiving application.</t>
      </section>
    </section>
    <section anchor="congestion-control-considerations">
      <name>Congestion Control Considerations</name>
      <!--[rfced] We note only one instance of "HMPG" - is this correct, or
should it be lowercase? If it should remain as uppercase, how may we
expand it?

Original:
   The general congestion control considerations for transporting RTP
   data apply to HMPG haptics over RTP as well [RFC3550].


Action: AD approval needed:

Current:
The general congestion control
considerations for transporting RTP data apply to MPEG-I haptic data
over RTP as well [RFC3550].
-->

<t>The general congestion control considerations for transporting RTP data apply to MPEG-I haptic data over RTP as well <xref target="RFC3550"/>.</t>
      <t>It is possible to adapt network bandwidth usage by adjusting either the encoder bit rate or the stream content (e.g., the LOD, body parts, actuator frequency range, target device types, and modalities). The considerations in this section are applicable to best-effort networks and controlled environments.</t>
      <t>In case of congestion, a receiver or intermediate node <bcp14>MAY</bcp14> prioritize independent packets over dependent ones, since the non-reception of an independent MIHS unit can prevent the decoding of multiple subsequent dependent MIHS units. In case of congestion, a receiver or intermediate node <bcp14>MAY</bcp14> prioritize initialization MIHS units over other units, as these contain metadata that is used to reinitialize the decoder. Additionally, a receiver or intermediate node <bcp14>MAY</bcp14> drop silent units before other types, as a receiver <bcp14>MAY</bcp14> interpret a missing unit as silence. It is also possible, using the layer field of the RTP payload header, to allocate MIHS units to different layers based on their content to prioritize haptic data that contributes the most to the user experience. In case of congestion, intermediate nodes and receivers <bcp14>SHOULD</bcp14> use the MIHS layer value to determine the relative importance of haptic RTP packets.</t>
      <t>Receivers should monitor timestamps and treat gaps as loss of the corresponding MIHS units. MIHS units, as defined in <xref target="ISO.IEC.23090-31"/>, should be checked for structural integrity according to their type. When CRC16 or CRC32 information is present in MIHS units, receivers must validate data integrity, and units failing Cyclic Redundancy Checks (CRCs) should be treated as lost. Receivers should further monitor indicators of service degradation such as unexpected silent gaps, repeated decoder reinitializations, or decoding failures. Receivers should report packet loss to the sender using RTCP Receiver Reports <xref target="RFC3550"/> and, when available, may report detailed loss and jitter metrics using mechanisms described in <xref target="RFC4585"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The RTP payload format is subject to security threats commonly associated with RTP payload formats, as well as threats specific to the interaction of haptic devices with the physical world and threats associated with the use of compression by the codec.
Security considerations for threats commonly associated with RTP payload formats are outlined in <xref target="RFC3550"/>, as well as in RTP profiles such as RTP/AVP <xref target="RFC3551"/>, RTP/AVPF <xref target="RFC4585"/>, RTP/SAVP <xref target="RFC3711"/>, and RTP/SAVPF <xref target="RFC5124"/>.</t>
      <t>Haptic sensors and actuators operate within the physical environment. This introduces the potential for information leakage through sensors or damage to actuators due to data tampering. Additionally, misusing the functionalities of actuators (such as force, position, temperature, vibration, electrotactile, etc.) may pose a risk of harm to the user, for example, by setting keyframe parameters (e.g., amplitude, position, and frequency) or channel gain to a value that surpasses a permissible range. While individual devices can implement security measures to reduce or eliminate those risks on a per-device basis, in some cases, harm can be inflicted by setting values that are permissible for the individual device. For example, causing contact with the physical environment or triggering unexpected force feedback can potentially harm the user. Each haptic system should therefore implement system-dependent security measures, which are more error prone. To limit the risk that attackers exploit weaknesses in haptic systems, it is important that haptic transmission be protected against malicious traffic injection or tampering.</t>
      <t>However, as "Securing the RTP 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. The responsibility for implementing security mechanisms lies with the application developer. They can find guidance on available security mechanisms and important considerations in "Options for Securing RTP Sessions" <xref target="RFC7201"/>, although <xref target="RFC7201"/> is now considered dated and several mechanisms described therein have since evolved.</t>
      <t>Applications <bcp14>SHOULD</bcp14> use appropriate and current strong security mechanisms. For modern best practices, applications can consider the following options:</t>
      <ul spacing="normal">
        <li>
          <t>(D)TLS-based protection:
For guidance on using TLS 1.3 and DTLS, applications should refer to <xref target="BCP195"/>, 
which provides up-to-date recommendations.</t>
        </li>
        <li>
          <t>IPsec-based protection:
Relevant and current protocol specifications include <xref target="RFC4303"/> ("IP Encapsulating Security Payload (ESP)") and <xref target="RFC7296"/> ("Internet Key Exchange Protocol Version 2 (IKEv2)").</t>
        </li>
      </ul>
      <t>This document does not mandate a specific security mechanism. Instead, applications are responsible for selecting mechanisms that follow current best practices for confidentiality, integrity, and source authentication and that reflect the evolving security landscape beyond what is covered in <xref target="RFC7201"/>.</t>
      <t>The haptic codec used with this payload format uses a compression algorithm (see Sections 8.2.8.5 and 8.3.3.2 in <xref target="ISO.IEC.23090-31"/>). An attacker may inject pathological datagrams into the stream that are complex to decode and cause the receiver to be overloaded, similarly to <xref target="RFC3551"/>.</t>
      <t>End-to-end security with authentication, integrity, or confidentiality protection will prevent a Media-Aware Network Element (MANE) from performing media-aware operations other than discarding complete packets. In the case of confidentiality protection, it will even be prevented from discarding packets in a media-aware way. To be allowed to perform such operations, a MANE is required to be a trusted entity that is included in the security context establishment.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="media-type-registration-update">
        <name>Media Type Registration Update</name>
        <t>This memo updates the 'hmpg' haptic subtype defined in <xref target="RFC9695"/> for use with the MPEG-I haptics streamable binary coding format described in ISO/IEC 23090-31: Haptics coding <xref target="ISO.IEC.23090-31"/>. This memo defines optional parameters for this type in <xref target="optional-param"/>. The original subtype registration for 'haptics/hmpg', registered with IANA in <xref target="RFC9695"/>, did not include any required or optional parameters. This document introduces optional parameters to enable extended functionality while maintaining backward compatibility.</t>
        <t>A mapping of the parameters into SDP <xref target="RFC8866"/> is also provided for applications that use SDP. Equivalent parameters could be defined elsewhere for use with control protocols that do not use SDP. The receiver <bcp14>MUST</bcp14> ignore any parameter unspecified in this memo.</t>
        <t>IANA has updated the registration for 'haptics', described in <xref target="sdp-registration"/>, in the "haptics" registry within the "Media Types" registry group and listed document as an additional reference.</t>
        <t>The following entries identify the updates to the 'media/haptics' registration:</t>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>haptics</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>hmpg</t>
          </dd>
        </dl>
        <t>The following entries are replaced by this memo:</t>
        <dl>
          <dt>Optional parameters:</dt>
          <dd>
            <t>See <xref target="sdp-registration"/> of RFC 9993</t>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t><contact fullname="Yeshwant Muthusamy"/> (yeshwant@yeshvik.com) and <contact fullname="Hyunsik Yang"/> (hyunsik.yang@interdigital.com)</t>
          </dd>
        </dl>
      </section>
      <section anchor="new-sdp-parameters-media-registration">
        <name>New SDP Parameters Media Registration</name>
        <t>IANA has registered the following in the "media" registry within the "Session Description Protocol (SDP) Parameters" registration group.</t>
        <table>
          <thead>
            <tr>
              <th align="center">Type</th>
              <th align="left">SDP Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">media</td>
              <td align="left">haptics</td>
              <td align="left">RFC 9993</td>
            </tr>
          </tbody>
        </table>
      </section>
    </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-31" target="https://www.iso.org/standard/86122.html">
          <front>
            <title>Information technology - Coded representation of immersive media - Part 31: Haptics coding</title>
            <author>
              <organization>ISO/IEC</organization>
            </author>
            <date year="2025"/>
          </front>
          <seriesInfo name="ISO/IEC" value="23090-31:2025"/>
        </reference>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3550.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9695.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8866.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3264.xml"/>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2736.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8088.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7201.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7202.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7296.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4303.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5124.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3711.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3551.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4585.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5104.xml"/>
        <referencegroup anchor="BCP195" target="https://www.rfc-editor.org/info/bcp195">
          <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8996.xml"/>
          <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9325.xml"/>
        </referencegroup>
      </references>
    </references>
    <?line 613?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to <contact fullname="Philippe Guillotel"/>, <contact fullname="Quentin Galvane"/>, <contact fullname="Jonathan Lennox"/>, <contact fullname="Marius Kleidl"/>, and <contact fullname="Stephan Wenger"/> for the comments and discussions about this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIADP8DWoAA+19aXMbyZHod/yKWiriEbABiKRu2rKXQ1IjrkWJK1Iznudw
TDSAAtGjRjfc1SCFIfV+y/st+8s2r7q6GzwkjeMdpmMsoNFVlZWVlVdlZg0G
g06VVpneVe/PTtRJssqKZKJeFeU8qdS0KNXrZFGlY9NJRqNSX9z62qQY58kc
upuUybQapLqaDpKLalyUelBWi8GM3xtkSaVN1cmX85Eud9WLFy8edSbwbFft
bO08HWw96ZjlaJ4akxZ5tVrA86PDs1edMbxyXpSrXWWqSWdc5EbnZml2VVUu
dSddlPTJVDtbWy+2djpJqZNd9ePRWeeyKD+el8VysasEnM5ygQNC2xdPXzzp
FCNTZBq/d2CWjzpZkp/vKp13Fumu+ltVjPvKFGVV6qmBT6s5fvh756NeQc+T
3U4nWVazotztKDWA/5RKc+j59elQ/QQd0RPGy+vVMjfpR/+4KGGco7zS5UF6
nlZJRk/1PEmzXTXjt4crePvfU3xpwi8Nx8WcXhwXy7xChHzI00pP1GmFk1LF
VO3NdZmOkxiivw7VRMPCrQKQ/ppcpLoMn98I0yd6fTjR02J1C0z7SZ5Mkk4n
J0JJLzTi5+j03fDocH+48wjWaPBoe5faCBVuHOVTfrnIVaXHs7zIivOVGqj9
YgLTK/Wi1LDoFb8B00znME8Dfau5nqQJvHmSlJWCfi1RAjyTND/foHH8OrmJ
bgBEDwEifsFR4RP6agCJ2qQAlW0jb8M7dgLu5Sopz3UFy1ZVC7P78OHl5eUw
NcUQhnloqiSfJOXk4fOn2zs7w1k1zzrQ6P2r/Z3t7Re7/PH59rPH8vHRkydb
8hEJ1L7w/OlT+8LOU3i300ktxhi92OGzR/al51vPn8vHZztb2/7jjvv4wr77
+NHWI/n4ZHvHwfFse9uDZD8+fvL8iXt3i979bv9kG+HsDAYDlYxMVSbjqtM5
m6UGlmZeKLPQ43QK2FRJTnxkIXxk6vnI8cnh94MjxWwC1yIZqj37lRcYOtbJ
XKW4rvNFYYAqgAykIS857AJ6p3t89Pq0p5awNQzQ/zhbIiGoROFzeqxmOpkA
8cPaqF91WQBFqDlwB35jkYw/6soM1dlMRxBLKwE8ybLi0hD83CL91ZFnOFaa
+5nja667xKhLnWX477RMzuchfccdVIWaL7MqXWQ66EggLErYiHmSKeCdyDRh
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
ddvyoSQ5sEtM/EeZyYFlGKVSFsZQU9tbq3P3X5z3t+G8dYXu5r87wHBrD+1j
eLZr99l9e/B//zdz3iYXs3y3xUvQyn7dZmd73gYpSmyw7d/mKzW8iGurAtjx
XTodBQ/4pv6Ail1mVFFlvKTYKHascrqHGWvOt8LejT1d5+gpo7r0Um6DfQMI
qLkY5TQ0tefQjpGm4Goc2ebA+pM3ys2gqFKZQQ8m80EYEqYmAtAYmKzRYUin
l0mO+8L9brMHIp9pzgC++hAG/DRYZnCoxZ1agRFHWDNbxm/MLHfXBP7c+B85
BtG7hy469LOhsww9Xui1QtfT9V36ePXhFP47xB3y/vQHpnb6/w9nnvLtf23U
fitlxwdmLWTNDIlp+RTkbE3wnlZJWa07OKsdk2674wOmBQsEEcWW+5HXMhRA
gILmyIf55N7jRpR367B08huEdAMCXm5TKwAIPjmapDySP3AYpd0guN3THFSE
FJ3UuHrd99ro8kJP6ud26MjCz3W4t6z+I2codHZ8nlOWlPxSagrvL7/p0SBF
ZDssYYBTfo6utb4EujfLSNxyIkhnEKbm0I8N95Trp2AIlS19IZladooU8Sdf
uAKBW6u+Gi0rOl2qLyLHHSA8uJ0d07xMQcUB8DCJNVspCYQsdViBADAMEAny
Sm2AD9PpCqb9ptRMgJlESS4c+m1j+VOCZ1IWiwWXWyEJIItnM6XC07Tg0DHF
I0WHocbhWsjSw5kBx8b9wmR6ykd3hZGDM4dMPJ0EAEkMUdGRymUMmWVZFksW
C75jJgOOIvHnaTchw56tpjUFeVagBhr2QgTVG7Kx0uK0b7NXAmcx2yttR2U3
WCj08t3ME6nt02adJE3bBAM5KEcFM0c8lIHvLDJOMIOkYfD8Fn6YdQ7vr9Tl
uYuv0+fvpCfeqkd66dj6d0e9/jeApSUMJfy94bv+LWFp+at5rW/Ay319Q+29
7H5lL7u/BV4ajvPo11tmdMtId+zlbmvUtg3v2std/u7Wy9dTHf1+q2XHY/02
1l1NAsQutXUHyKgIr5chFDaBsu1Oh9g1ZSHKYMNyVG3hHSShfcBPEH2ow/Sn
KCgJBfBlEZYQ8cao1X6pAwptz1lVWLVVZcKcaU5TwTnCHIZ83I5Ahrk/nJ5B
aZzWCK2Kc46dc237aPFinQpUsKq4roKrkSZpP0Fqzlmkq2Y6PweNhzWL7vZT
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

-->

</rfc>
