| rfc9993.original.xml | rfc9993.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <!DOCTYPE rfc [ | <!DOCTYPE rfc [ | |||
| <!ENTITY nbsp " "> | <!ENTITY nbsp " "> | |||
| <!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
| <!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
| <!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
| ]> | ]> | |||
| <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | |||
| <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 2.5. | <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.35 (Ruby 2.5. | |||
| 9) --> | 9) --> | |||
| <?rfc docmapping="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | |||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | -ietf-avtcore-rtp-haptics-latest" category="std" consensus="true" submissionType | |||
| -ietf-avtcore-rtp-haptics-latest" category="std" consensus="true" submissionType | ="IETF" xml:lang="en" number="9993" updates="9695" tocInclude="true" sortRefs="t | |||
| ="IETF" updates="9695" tocInclude="true" sortRefs="true" symRefs="true" version= | rue" symRefs="true" version="3"> | |||
| "3"> | <!-- xml2rfc v2v3 conversion 3.33.0 --> | |||
| <!-- xml2rfc v2v3 conversion 3.31.0 --> | <link href="https://datatracker.ietf.org/doc/draft-ietf-avtcore-rtp-haptics-la | |||
| test" rel="prev"/> | ||||
| <front> | <front> | |||
| <title abbrev="RTP-Payload-Haptic">RTP Payload Format for Haptics</title> | <title abbrev="RTP Payload Format for Haptics">RTP Payload Format for Haptic | |||
| <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-haptics-late | s</title> | |||
| st"/> | <seriesInfo name="RFC" value="9993"/> | |||
| <author initials="" surname="HS Yang" fullname="Hyunsik Yang"> | <author initials="" surname="HS Yang" fullname="Hyunsik Yang"> | |||
| <organization>InterDigital</organization> | <organization>InterDigital</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <country>USA</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>hyunsik.yang@interdigital.com</email> | <email>hyunsik.yang@interdigital.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="X." surname="de Foy" fullname="Xavier de Foy"> | <author initials="X." surname="de Foy" fullname="Xavier de Foy"> | |||
| <organization>InterDigital</organization> | <organization>InterDigital</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <country>Canada</country> | <country>Canada</country> | |||
| </postal> | </postal> | |||
| <email>xavier.defoy@interdigital.com</email> | <email>xavier.defoy@interdigital.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date/> | <date year="2026" month="May"/> | |||
| <area>Transport</area> | <area>WIT</area> | |||
| <workgroup>avtcore</workgroup> | <workgroup>avtcore</workgroup> | |||
| <abstract> | <abstract> | |||
| <?line 61?> | <?line 66?> | |||
| <t>This memo specifies an RTP payload format for the MPEG-I haptic data. A hapti | <!--[rfced] FYI: We updated the short title that spans the header of | |||
| c media stream is composed of MIHS units including a MIHS (MPEG-I Haptic Stream) | the PDF file as shown below (full title fits the space). | |||
| 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 fragmentat | Original: | |||
| ion of a MIHS unit into multiple RTP packets. The original subtype registration | RTP-Payload-Haptic | |||
| for haptics/hmpg, registered with IANA in RFC9695, did not include any required | ||||
| or optional parameters. This memo updates RFC9695 and the haptics/hmpg registrat | Current: | |||
| ion to add optional parameters. It also provides SDP usage information for the h | RTP Payload Format for Haptics | |||
| aptics media type.</t> | --> | |||
| <!-- [rfced] Please insert any keywords (beyond those that appear in | ||||
| the title) for use on https://www.rfc-editor.org/search. | ||||
| --> | ||||
| <t>This memo specifies an RTP payload format for MPEG-I haptic data. A haptic me | ||||
| dia stream is composed of MPEG-I Haptic Stream (MIHS) units including a MIHS uni | ||||
| t 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. T | ||||
| his memo updates RFC 9695 and the 'haptics/hmpg' registration to add optional pa | ||||
| rameters. It also provides Session Description Protocol (SDP) usage information | ||||
| for the 'haptics' media type.</t> | ||||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <?line 65?> | <?line 85?> | |||
| <section anchor="introduction"> | <section anchor="introduction"> | |||
| <name>Introduction</name> | <name>Introduction</name> | |||
| <t>Haptics provides users with tactile effects in addition to audio and vi | <t>Haptics provides users with tactile effects in addition to audio and vi | |||
| deo, allowing them to experience sensory immersion. Haptic data is mainly transm | deo, allowing them to experience sensory immersion. Haptic data is mainly transm | |||
| itted to devices that act as actuators and provides them with information to ope | itted to devices that act as actuators, providing them with information to opera | |||
| rate according to the values defined in haptic effects. The IETF registered hapt | te according to the values defined in haptic effects. The IETF registered 'hapti | |||
| ics as a primary media type akin to audio and video <xref target="RFC9695"/>.</t | cs' 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"/> defi | <t>The MPEG Haptics Coding standard <xref target="ISO.IEC.23090-31"/> defi | |||
| nes the data formats, metadata, and codec architecture to encode, decode, synthe | nes the data formats, metadata, and codec architecture to encode, decode, synthe | |||
| size and transmit haptic signals. Within this MPEG standard, a haptic media stre | size, and transmit haptic signals. Within this MPEG standard, a haptic media str | |||
| am is composed of MIHS units including a MIHS unit header and zero or more MIHS | eam 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 si | packets. The MIHS unit is a unit of packetization suitable for streaming and is | |||
| milar in essence to the NAL (Network Abstraction Layer) unit defined in some vid | similar in essence to the Network Abstraction Layer (NAL) unit defined in some | |||
| eo specifications. This document specifies how haptic data (MIHS units) can be t | video specifications. This document specifies how haptic data (MIHS units) can b | |||
| ransmitted using the RTP protocol. This document follows recommendations in <xre | e transmitted using the RTP protocol. This document follows recommendations in < | |||
| f target="RFC8088"/> and <xref target="RFC2736"/> for RTP payload format writers | xref target="RFC8088"/> and <xref target="RFC2736"/> for RTP payload format writ | |||
| . This document does not specify synchronization (lip sync) mechanisms between h | ers. This document does not specify synchronization (lip sync) mechanisms betwee | |||
| aptics and audio/video components. In addition, this document specifies the ass | n haptics and audio/video components. In addition, this document specifies the | |||
| ociated SDP parameters and SDP Offer/Answer considerations for the haptics media | associated SDP parameters and SDP offer/answer considerations for the 'haptics' | |||
| type.</t> | media type.</t> | |||
| </section> | </section> | |||
| <section anchor="conventions"> | <section anchor="conventions"> | |||
| <name>Conventions</name> | <name>Conventions</name> | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SH | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14 | |||
| OULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in | >REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| this document are to be interpreted as described in BCP 14 <xref target="RFC2119 | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECO | |||
| "/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, a | MMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| s shown here.</t> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be i | |||
| </section> | nterpreted as | |||
| <section anchor="definition"> | described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and | |||
| <name>Definition</name> | 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 con venience.</t> | <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 con venience.</t> | |||
| <t>Actuator: component of a device for rendering haptic sensations.</t> | <dl> | |||
| <t>Avatar: body (or part of body) representation.</t> | <dt>Actuator:</dt> | |||
| <t>Band: component in a channel for containing effects for a specific rang | <dd> | |||
| e of frequencies.</t> | <t>Component of a device for rendering haptic sensations.</t> | |||
| <t>Channel: component in a perception containing one or more bands rendere | </dd> | |||
| d on a device at a specific body location.</t> | <dt>Avatar:</dt> | |||
| <t>Device: physical system having one or more actuators configured to rend | <dd> | |||
| er a haptic sensation corresponding with a given signal.</t> | <t>Body (or part of body) representation.</t> | |||
| <t>Effect: component of a band for defining a signal, consisting of a hapt | </dd> | |||
| ic waveform or one or more haptic keyframes.</t> | <dt>Band:</dt> | |||
| <t>Experience: top level haptic component containing perceptions and metad | <dd> | |||
| ata.</t> | <t>Component in a channel for containing effects for a specific range | |||
| <t>Haptics: tactile sensations.</t> | of frequencies.</t> | |||
| <t>Keyframe: component of an effect mapping a position in time or space to | </dd> | |||
| an effect parameter such as amplitude or frequency.</t> | <dt>Channel:</dt> | |||
| <t>Metadata: global information about an experience, perception, channel, | <dd> | |||
| or band.</t> | <t>Component in a perception containing one or more bands rendered on | |||
| <t>MIHS unit: unit of packetization of the MPEG-I Haptic Stream format, wh | a device at a specific body location.</t> | |||
| ich is used as unit of payload in the format described in this memo. See <xref t | </dd> | |||
| arget="haptic-format-description"/> for details.</t> | <dt>Device:</dt> | |||
| <t>Modality: type of haptics, such as vibration, force, pressure, position | <dd> | |||
| , velocity, or temperature.</t> | <t>Physical system having one or more actuators configured to render a | |||
| <t>Perception: haptic perception containing channels of a specific modalit | haptic sensation corresponding with a given signal.</t> | |||
| y.</t> | </dd> | |||
| <t>Signal: representation of the haptics associated with a specific modali | <dt>Effect:</dt> | |||
| ty to be rendered on a device.</t> | <dd> | |||
| <t>Hmpg format: hmpg is a binary compressed format for haptics data. Infor | <t>Component of a band for defining a signal, consisting of a haptic w | |||
| mation is stored in a binary form and data compression is applied on data at the | aveform or one or more haptic keyframes.</t> | |||
| band level. The haptics/hmpg media subtype is registered in <xref target="RFC96 | </dd> | |||
| 95"/> and updated by this memo.</t> | <dt>Experience:</dt> | |||
| <t>Independent unit: a MIHS unit is independent if it can be decoded indep | <dd> | |||
| endently from earlier units. Independent units contain timing information and ar | <t>Top-level haptic component containing perceptions and metadata.</t> | |||
| e also called "sync units" in <xref target="ISO.IEC.23090-31"/>.</t> | </dd> | |||
| <t>Dependent unit: a MIHS unit is dependent if it requires earlier units f | <dt>Haptics:</dt> | |||
| or decoding. Dependent units do not contain timing information and are also call | <dd> | |||
| ed "non-sync units" in <xref target="ISO.IEC.23090-31"/>.</t> | <t>Tactile sensations.</t> | |||
| <t>Time-independent effect: a haptic effect that occurs regardless of time | </dd> | |||
| . The tactile feedback of a texture is a representative example. Time-independen | <dt>Keyframe:</dt> | |||
| t effects are encoded in spatial MIHS units, defined in <xref target="MIHS-forma | <dd> | |||
| t"/>.</t> | <t>Component of an effect mapping a position in time or space to an ef | |||
| <t>Time-dependent effect: a haptic effect that varies over time. For examp | fect parameter such as amplitude or frequency.</t> | |||
| le, tactile feedback for vibration and force are time-dependent effects, and ar | </dd> | |||
| e encoded in temporal MIHS units, defined in <xref target="MIHS-format"/>.</t> | <dt>Metadata:</dt> | |||
| <dd> | ||||
| <t>Global information about an experience, perception, channel, or ban | ||||
| d.</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, velo | ||||
| city, 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 t | ||||
| o 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 upda | ||||
| ted 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 feedbac | ||||
| k 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 feedbac | ||||
| k 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> | |||
| <section anchor="haptic-format-description"> | <section anchor="haptic-format-description"> | |||
| <name>Haptic Format Description</name> | <name>Haptic Format Description</name> | |||
| <section anchor="overview-of-haptic-coding"> | <section anchor="overview-of-haptic-coding"> | |||
| <name>Overview of Haptic Coding</name> | <name>Overview of Haptic Coding</name> | |||
| <t>The MPEG Haptics Coding standard specifies methods for efficient tran smission and rendering of haptic signals, to enable immersive experiences. It su pports multiple types of perceptions, including the most common vibrotactile (se nse of touch that perceives vibrations) and kinesthetic perceptions (tactile res istance or force), but also other, less common perceptions, including for exampl e the sense of temperature or texture. It also supports two approaches for encod ing haptic signals: a "quantized" approach based on samples of measured data, an d a "descriptive" approach where the signal is synthesized using a combination o f 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 dist ribution and streaming (.hmpg). This last format is referred to as the MIHS form at and is a base for the RTP payload format described in this document.</t> | <t>The MPEG Haptics Coding standard specifies methods for efficient tran smission and the rendering of haptic signals, to enable immersive experiences. I t 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 enc oding haptic signals: a "quantized" approach based on samples of measured data a nd 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 dist ribution and streaming (.hmpg). This last format is referred to as the MIHS form at and is a base for the RTP payload format described in this document.</t> | |||
| </section> | </section> | |||
| <section anchor="MIHS-format"> | <section anchor="MIHS-format"> | |||
| <name>MIHS format</name> | <name>MIHS Format</name> | |||
| <t>MIHS is a stream format used to transport haptic data. Haptic data in | <t>MIHS is a stream format used to transport haptic data. Haptic data, i | |||
| cluding haptic effects is packetized according to the MIHS format, and delivered | ncluding haptic effects, is packetized according to the MIHS format and delivere | |||
| to actuators, which operate according to the provided effects. The MIHS format | d to actuators, which operate according to the provided effects. The MIHS format | |||
| has two levels of packetization, MIHS units and MIHS packets.</t> | 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 p | <t>MIHS units are composed of a MIHS unit header and zero or more MIHS p | |||
| ackets. Four types of MIHS units are defined. An initialization MIHS unit contai | ackets. Four types of MIHS units are defined. An initialization MIHS unit contai | |||
| ns MIHS packets carrying metadata necessary to reset and initialize a haptic dec | ns MIHS packets carrying metadata necessary to reset and initialize a haptic dec | |||
| oder, including a timestamp. A temporal MIHS unit contains one or more MIHS pack | oder, including a timestamp. A temporal MIHS unit contains one or more MIHS pack | |||
| ets defining time-dependent effects and providing modalities such as pressure, v | ets defining time-dependent effects and provides modalities such as pressure, ve | |||
| elocity, and acceleration. The duration of a temporal unit is a positive number. | locity, and acceleration. The duration of a temporal unit is a positive number. | |||
| A spatial MIHS unit contains one or more MIHS packets providing time-independen | A spatial MIHS unit contains one or more MIHS packets providing time-independent | |||
| t effects, such as vibrotactile texture, stiffness, and friction. The duration o | effects, such as vibrotactile texture, stiffness, and friction. The duration of | |||
| f a spatial unit is always zero. | a spatial unit is always zero. | |||
| A silent MIHS unit indicates that there is no effect during a time interval and | A silent MIHS unit indicates that there is no effect during a time interval, and | |||
| its duration is a positive number.</t> | its duration is a positive number.</t> | |||
| <t>A MIHS unit can be marked as independent or dependent. When a decoder | <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 pro | processes an independent unit, it resets the previous effects and therefore pro | |||
| vides a haptic experience independent from any previous MIHS unit. A dependent | vides a haptic experience independent from any previous MIHS unit. A dependent | |||
| unit is the continuation of previous MIHS units and cannot be independently deco | unit is the continuation of previous MIHS units and cannot be independently deco | |||
| ded and rendered without having decoded previous MIHS unit(s). Initialization an | ded and rendered without having decoded a previous MIHS unit(s). Initialization | |||
| d spatial MIHS units are always independent units. Temporal and silent MIHS unit | and spatial MIHS units are always independent units. Temporal and silent MIHS un | |||
| s can be dependent or independent units.</t> | its can be dependent or independent units.</t> | |||
| <t><xref target="_figure-stream"/> illustrates a succession of MIHS unit | <!--[rfced] FYI: In Figure 1, we adjusted the spacing of the middle | |||
| s in a MIHS stream.</t> | box to include "Temporal Unit" on one line. Please let us know of | |||
| any objections. | ||||
| --> | ||||
| <t><xref target="_figure-stream"/> illustrates a succession of MIHS units in a M | ||||
| IHS stream.</t> | ||||
| <figure anchor="_figure-stream"> | <figure anchor="_figure-stream"> | |||
| <name>Example of MIHS stream</name> | <name>Example of MIHS Stream</name> | |||
| <artset> | <artset> | |||
| <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="112" width="528" viewBox="0 0 528 112" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <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 8,32 L 8,80" fill="none" stroke="black"/> | |||
| <path d="M 80,32 L 80,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 96,32 L 96,80" fill="none" stroke="black"/> | |||
| <path d="M 160,32 L 160,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 176,32 L 176,80" fill="none" stroke="black"/> | |||
| <path d="M 280,32 L 280,80" fill="none" stroke="black"/> | <path d="M 288,32 L 288,80" fill="none" stroke="black"/> | |||
| <path d="M 296,32 L 296,80" fill="none" stroke="black"/> | <path d="M 304,32 L 304,80" fill="none" stroke="black"/> | |||
| <path d="M 408,32 L 408,80" fill="none" stroke="black"/> | <path d="M 416,32 L 416,80" fill="none" stroke="black"/> | |||
| <path d="M 424,32 L 424,80" fill="none" stroke="black"/> | <path d="M 432,32 L 432,80" fill="none" stroke="black"/> | |||
| <path d="M 520,32 L 520,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 8,32 L 80,32" fill="none" stroke="black"/> | |||
| <path d="M 96,32 L 160,32" fill="none" stroke="black"/> | <path d="M 96,32 L 160,32" fill="none" stroke="black"/> | |||
| <path d="M 176,32 L 280,32" fill="none" stroke="black"/> | <path d="M 176,32 L 288,32" fill="none" stroke="black"/> | |||
| <path d="M 296,32 L 408,32" fill="none" stroke="black"/> | <path d="M 304,32 L 416,32" fill="none" stroke="black"/> | |||
| <path d="M 424,32 L 520,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 8,80 L 80,80" fill="none" stroke="black"/> | |||
| <path d="M 96,80 L 160,80" fill="none" stroke="black"/> | <path d="M 96,80 L 160,80" fill="none" stroke="black"/> | |||
| <path d="M 176,80 L 280,80" fill="none" stroke="black"/> | <path d="M 176,80 L 288,80" fill="none" stroke="black"/> | |||
| <path d="M 296,80 L 408,80" fill="none" stroke="black"/> | <path d="M 304,80 L 416,80" fill="none" stroke="black"/> | |||
| <path d="M 424,80 L 520,80" fill="none" stroke="black"/> | <path d="M 432,80 L 528,80" fill="none" stroke="black"/> | |||
| <g class="text"> | <g class="text"> | |||
| <text x="44" y="52">Initial*</text> | <text x="44" y="52">Initial*</text> | |||
| <text x="128" y="52">Spatial</text> | <text x="128" y="52">Spatial</text> | |||
| <text x="228" y="52">Temporal</text> | <text x="212" y="52">Temporal</text> | |||
| <text x="332" y="52">Temporal</text> | <text x="268" y="52">Unit</text> | |||
| <text x="388" y="52">Unit</text> | <text x="340" y="52">Temporal</text> | |||
| <text x="452" y="52">Silent</text> | <text x="396" y="52">Unit</text> | |||
| <text x="500" 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="36" y="68">Unit</text> | |||
| <text x="88" y="68">-</text> | <text x="88" y="68">-</text> | |||
| <text x="124" y="68">Unit</text> | <text x="124" y="68">Unit</text> | |||
| <text x="168" y="68">-</text> | <text x="168" y="68">-</text> | |||
| <text x="228" y="68">Unit(indep.)</text> | <text x="236" y="68">(indep.)</text> | |||
| <text x="288" y="68">-</text> | <text x="296" y="68">-</text> | |||
| <text x="352" y="68">(dependent)</text> | <text x="360" y="68">(dependent)</text> | |||
| <text x="416" y="68">-</text> | <text x="424" y="68">-</text> | |||
| <text x="468" y="68">(indep.)</text> | <text x="476" y="68">(indep.)</text> | |||
| <text x="72" y="100">*Initialization</text> | <text x="72" y="100">*Initialization</text> | |||
| </g> | </g> | |||
| </svg> | </svg> | |||
| </artwork> | </artwork> | |||
| <artwork type="ascii-art"><![CDATA[ | <artwork type="ascii-art"><![CDATA[ | |||
| +--------+ +-------+ +------------+ +-------------+ +-----------+ | +--------+ +-------+ +-------------+ +-------------+ +-----------+ | |||
| |Initial*| |Spatial| | Temporal | |Temporal Unit| |Silent Unit| | |Initial*| |Spatial| |Temporal Unit| |Temporal Unit| |Silent Unit| | |||
| | Unit |-| Unit |-|Unit(indep.)|-| (dependent) |-| (indep.) | | | Unit |-| Unit |-| (indep.) |-| (dependent) |-| (indep.) | | |||
| +--------+ +-------+ +------------+ +-------------+ +-----------+ | +--------+ +-------+ +-------------+ +-------------+ +-----------+ | |||
| *Initialization | *Initialization | |||
| --------+ +-------+ <span class="insert">+-------------+</span> +-------------+ +-----------+ | ||||
| ]]></artwork> | ]]></artwork> | |||
| </artset> | </artset> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="payload-format-for-haptics"> | <section anchor="payload-format-for-haptics"> | |||
| <name>Payload Format For Haptics</name> | <name>Payload Format for Haptics</name> | |||
| <section anchor="rtp-usage"> | <section anchor="rtp-usage"> | |||
| <name>RTP Header Usage</name> | <name>RTP Header Usage</name> | |||
| <t>The RTP header is defined in <xref target="RFC3550"/> and represented | <t>The RTP header is defined in <xref target="RFC3550"/> and represented | |||
| in <xref target="_figure-rtpheader"/>. Unless contextualized below, the meaning | in <xref target="_figure-rtpheader"/>. Unless contextualized below, the meaning | |||
| of the fields depicted in <xref target="_figure-rtpheader"/> is the same as in | of the fields depicted in <xref target="_figure-rtpheader"/> is the same as in | |||
| <xref target="rtp-usage"/> of <xref target="RFC3550"/>.</t> | <xref section="5.1" sectionFormat="of" target="RFC3550"/>.</t> | |||
| <figure anchor="_figure-rtpheader"> | <!--[rfced] In Figure 2, should "(TS)" be added after "Timestamp" to | |||
| <name>RTP header for Haptic.</name> | correspond with the entry for timestamp and for consistency with the | |||
| two terms that appear below it in the figure? | ||||
| Original: | ||||
| Timestamp | ||||
| Perhaps: | ||||
| Timestamp (TS) | ||||
| --> | ||||
| <figure anchor="_figure-rtpheader"> | ||||
| <name>RTP Header for Haptic</name> | ||||
| <artset> | <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"> | <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 8,64 L 8,208" fill="none" stroke="black"/> | |||
| <path d="M 40,64 L 40,96" 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 56,64 L 56,96" fill="none" stroke="black"/> | |||
| <path d="M 72,64 L 72,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 136,64 L 136,96" fill="none" stroke="black"/> | |||
| <path d="M 152,64 L 152,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 264,64 L 264,96" fill="none" stroke="black"/> | |||
| <path d="M 520,64 L 520,208" fill="none" stroke="black"/> | <path d="M 520,64 L 520,208" fill="none" stroke="black"/> | |||
| skipping to change at line 243 ¶ | skipping to change at line 339 ¶ | |||
| | Timestamp | | | Timestamp | | |||
| +---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
| | Synchronization Source (SSRC) Identifier | | | Synchronization Source (SSRC) Identifier | | |||
| +---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
| | Contributing Source (CSRC) Identifiers | | | Contributing Source (CSRC) Identifiers | | |||
| | .... | | | .... | | |||
| +---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </artset> | </artset> | |||
| </figure> | </figure> | |||
| <t>Marker bit (M): 1 bit. The marker bit SHOULD be set to one in the fir | <!--[rfced] We note different list styles in Sections 5.1, 5.2, and | |||
| st non-silent RTP packet after a period of haptic silence. This enables jitter b | 5.3.2. May we make these lists consistent by using the format shown | |||
| uffer adaptation and haptics device washout (i.e., reset to a neutral position) | below? (See the text for more examples.) | |||
| prior to the beginning of the burst with minimal impact on the quality of experi | ||||
| ence for the end user. The marker bit in all other packets MUST be set to zero.< | Original: | |||
| /t> | (Section 5.1) | |||
| <t>Timestamp (TS): 32 bits. A timestamp representing the sampling time o | Marker bit (M): 1 bit. The marker bit ... | |||
| f the first sample of the MIHS unit in the RTP payload. The clock frequency MUST | Timestamp (TS): 32 bits. A timestamp ... | |||
| be set to the sample rate of the encoded haptic data and is conveyed out-of-ban | ||||
| d (e.g., as an SDP parameter).</t> | (Section 5.2) | |||
| D (Dependency, 1 bit): This field indicates ... | ||||
| UT (Unit Type, 3 bits): This field indicates ... | ||||
| Perhaps: | ||||
| (Section 5.1) | ||||
| M (Marker bit): 1 bit. The marker bit ... | ||||
| TS (Timestamp): 32 bits. A timestamp ... | ||||
| (Section 5.2) | ||||
| D (Dependency): 1 bit. This field indicates ... | ||||
| UT (Unit Type): 3 bits. This field indicates ... | ||||
| --> | ||||
| <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 jitte | ||||
| r buffer adaptation and haptics device washout (i.e., reset to a neutral positio | ||||
| n) prior to the beginning of the burst with minimal impact on the quality of exp | ||||
| erience 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</bcp | ||||
| 14> 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> | |||
| <section anchor="payload-header"> | <section anchor="payload-header"> | |||
| <name>Payload Header</name> | <name>Payload Header</name> | |||
| <t>The RTP payload header follows the RTP header. <xref target="_figure- | <!--[rfced] We note two uppercase forms of "Haptic" in Sections 5.2 and | |||
| payloadheader"/> describes the RTP payload header for Haptic.</t> | 5.4. Are these correct as is, or should they be made lowercase for | |||
| consistency? | ||||
| Current: | ||||
| The RTP payload header follows the RTP header. Figure 3 describes | ||||
| the RTP payload header for Haptic. | ||||
| 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 [RFC5104] with Haptics. | ||||
| --> | ||||
| <t>The RTP payload header follows the RTP header. <xref target="_figure-payloadh | ||||
| eader"/> describes the RTP payload header for Haptic.</t> | ||||
| <figure anchor="_figure-payloadheader"> | <figure anchor="_figure-payloadheader"> | |||
| <name>RTP Payload Header for Haptic.</name> | <name>RTP Payload Header for Haptic</name> | |||
| <artset> | <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"> | <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 8,32 L 8,96" fill="none" stroke="black"/> | |||
| <path d="M 24,32 L 24,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 40,32 L 40,64" fill="none" stroke="black"/> | |||
| <path d="M 56,32 L 56,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 72,32 L 72,96" fill="none" stroke="black"/> | |||
| <path d="M 88,32 L 88,64" 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 104,32 L 104,64" fill="none" stroke="black"/> | |||
| <path d="M 120,32 L 120,64" fill="none" stroke="black"/> | <path d="M 120,32 L 120,64" fill="none" stroke="black"/> | |||
| skipping to change at line 289 ¶ | skipping to change at line 429 ¶ | |||
| </artwork> | </artwork> | |||
| <artwork type="ascii-art"><![CDATA[ | <artwork type="ascii-art"><![CDATA[ | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |0|1|2|3|4|5|6|7| | |0|1|2|3|4|5|6|7| | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |D| UT | L | | |D| UT | L | | |||
| +-+-----+-------+ | +-+-----+-------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </artset> | </artset> | |||
| </figure> | </figure> | |||
| <t>D (Dependency, 1 bit): this field is used to indicate whether the MIH | <dl> | |||
| S unit included in the RTP payload is, when its value is one, dependent or, when | <dt>D (Dependency, 1 bit):</dt> | |||
| its value is zero, independent.</t> | <dd> | |||
| <t>UT (Unit Type, 3 bits): this field indicates the type of the MIHS uni | <t>This field indicates whether the MIHS unit included in the RTP pa | |||
| t included in the RTP payload. UT field values are listed in <xref target="_figu | yload is dependent (when its value is one) or independent (when its value is zer | |||
| re-transmission-type"/>.</t> | o).</t> | |||
| <t>L (MIHS Layer, 4 bits): this field is an integer value which indicate | </dd> | |||
| s the priority order of the MIHS unit included in the RTP payload, as determined | <dt>UT (Unit Type, 3 bits):</dt> | |||
| by the haptic sender (e.g., by the haptic codec), based on application-specific | <dd> | |||
| needs. For example, the sender may use the MIHS layer to prioritize perceptions | <t>This field indicates the type of the MIHS unit included in the RT | |||
| with the largest impact on the end-user experience. Zero corresponds to the hig | P payload. UT field values are listed in <xref target="_figure-transmission-type | |||
| hest priority. The semantic of individual MIHS layers are not specified and left | "/>.</t> | |||
| for the application to assign. In cases where the sender does not use the L fie | </dd> | |||
| ld to indicate the priority order of the MIHS unit, L value is '0'.</t> | <dt>L (MIHS Layer, 4 bits):</dt> | |||
| <dd> | ||||
| <t>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 imp | ||||
| act on the end-user experience. Zero corresponds to the highest priority. The se | ||||
| mantic of individual MIHS layers are not specified and are left for the applicat | ||||
| ion to assign. In cases where the sender does not use the L field to indicate th | ||||
| e priority order of the MIHS unit, the L value is '0'.</t> | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | </section> | |||
| <section anchor="payload-structures"> | <section anchor="payload-structures"> | |||
| <name>Payload Structures</name> | <name>Payload Structures</name> | |||
| <t>Three different types of RTP packet payload structures are specified. | <t>Three different types of RTP packet payload structures are specified. | |||
| A single unit packet contains a single MIHS unit in the payload. A fragmentati | A single unit packet contains a single MIHS unit in the payload. A fragmentati | |||
| on unit contains a subset of a MIHS unit. An aggregation packet contains multipl | on unit contains a subset of a MIHS unit. An aggregation packet contains multipl | |||
| e MIHS units in the payload. The unit type (UT) field of the RTP payload header, | e 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 pa | as shown in <xref target="_figure-transmission-type"/>, identifies both the pa | |||
| yload structure and, in the case of a single-unit structure, also identifies the | yload structure and, in the case of a single-unit structure, the type of MIHS un | |||
| type of MIHS unit present in the payload.</t> | it present in the payload.</t> | |||
| <figure anchor="_figure-transmission-type"> | <table anchor="_figure-transmission-type"> | |||
| <name>Payload structure type for haptic</name> | <name>Payload Structure Type for Haptic</name> | |||
| <artset> | <thead> | |||
| <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= | <tr> | |||
| "1.1" height="208" width="456" viewBox="0 0 456 208" class="diagram" text-anchor | <th align="center">Unit Type</th> | |||
| ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <th align="left">Payload Structure</th> | |||
| <path d="M 8,64 L 440,64" fill="none" stroke="black"/> | <th align="left">Packet Type Name</th> | |||
| <g class="text"> | </tr> | |||
| <text x="20" y="36">Unit</text> | </thead> | |||
| <text x="104" y="36">Payload</text> | <tbody> | |||
| <text x="180" y="36">Packet</text> | <tr> | |||
| <text x="228" y="36">Type</text> | <td align="center">0</td> | |||
| <text x="268" y="36">Name</text> | <td align="left">N/A</td> | |||
| <text x="20" y="52">Type</text> | <td align="left">Unassigned</td> | |||
| <text x="112" y="52">Structure</text> | </tr> | |||
| <text x="8" y="84">0</text> | <tr> | |||
| <text x="88" y="84">N/A</text> | <td align="center">1</td> | |||
| <text x="196" y="84">Unassigned</text> | <td align="left">Single</td> | |||
| <text x="8" y="100">1</text> | <td align="left">Initialization MIHS Unit</td> | |||
| <text x="100" y="100">Single</text> | </tr> | |||
| <text x="212" y="100">Initialization</text> | <tr> | |||
| <text x="292" y="100">MIHS</text> | <td align="center">2</td> | |||
| <text x="332" y="100">Unit</text> | <td align="left">Single</td> | |||
| <text x="8" y="116">2</text> | <td align="left">Temporal MIHS Unit</td> | |||
| <text x="100" y="116">Single</text> | </tr> | |||
| <text x="188" y="116">Temporal</text> | <tr> | |||
| <text x="244" y="116">MIHS</text> | <td align="center">3</td> | |||
| <text x="284" y="116">Unit</text> | <td align="left">Single</td> | |||
| <text x="8" y="132">3</text> | <td align="left">Spatial MIHS Unit</td> | |||
| <text x="100" y="132">Single</text> | </tr> | |||
| <text x="184" y="132">Spatial</text> | <tr> | |||
| <text x="236" y="132">MIHS</text> | <td align="center">4</td> | |||
| <text x="276" y="132">Unit</text> | <td align="left">Single</td> | |||
| <text x="8" y="148">4</text> | <td align="left">Silent MIHS Unit</td> | |||
| <text x="100" y="148">Single</text> | </tr> | |||
| <text x="180" y="148">Silent</text> | <tr> | |||
| <text x="228" y="148">MIHS</text> | <td align="center">5</td> | |||
| <text x="268" y="148">Unit</text> | <td align="left">Aggr</td> | |||
| <text x="8" y="164">5</text> | <td align="left">Single-Time Aggregation Packet (STAP)</td> | |||
| <text x="92" y="164">Aggr</text> | </tr> | |||
| <text x="200" y="164">Single-Time</text> | <tr> | |||
| <text x="296" y="164">Aggregation</text> | <td align="center">6</td> | |||
| <text x="372" y="164">Packet</text> | <td align="left">Aggr</td> | |||
| <text x="428" y="164">(STAP)</text> | <td align="left">Multi-Time Aggregation Packet (MTAP)</td> | |||
| <text x="8" y="180">6</text> | </tr> | |||
| <text x="92" y="180">Aggr</text> | <tr> | |||
| <text x="196" y="180">Multi-Time</text> | <td align="center">7</td> | |||
| <text x="288" y="180">Aggregation</text> | <td align="left">Frag</td> | |||
| <text x="364" y="180">Packet</text> | <td align="left">Fragmentation Unit</td> | |||
| <text x="420" y="180">(MTAP)</text> | </tr> | |||
| <text x="8" y="196">7</text> | </tbody> | |||
| <text x="92" y="196">Frag</text> | </table> | |||
| <text x="208" y="196">Fragmentation</text> | <t>The payload structures are represented in <xref target="_figure-trans | |||
| <text x="284" y="196">Unit</text> | mission-style"/>. The single unit payload structure is specified in <xref targe | |||
| </g> | t="single"/>. The fragmented unit payload structure is specified in <xref target | |||
| </svg> | ="fragmented"/>. The aggregation packet payload structure is specified in <xref | |||
| </artwork> | target="aggregated"/>. The padding in the figures of these sections refers to t | |||
| <artwork type="ascii-art"><![CDATA[ | he RTP padding defined in <xref target="RFC3550"/>.</t> | |||
| Unit Payload Packet Type Name | ||||
| Type Structure | ||||
| 0 N/A Unassigned | ||||
| 1 Single Initialization MIHS Unit | ||||
| 2 Single Temporal MIHS Unit | ||||
| 3 Single Spatial MIHS Unit | ||||
| 4 Single Silent MIHS Unit | ||||
| 5 Aggr Single-Time Aggregation Packet (STAP) | ||||
| 6 Aggr Multi-Time Aggregation Packet (MTAP) | ||||
| 7 Frag Fragmentation Unit | ||||
| ]]></artwork> | ||||
| </artset> | ||||
| </figure> | ||||
| <t>The payload structures are represented in <xref target="_figure-trans | ||||
| mission-style"/>. The single unit payload structure is specified in <xref targe | ||||
| t="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 section refers to th | ||||
| e RTP padding defined in <xref target="RFC3550"/>.</t> | ||||
| <figure anchor="_figure-transmission-style"> | <figure anchor="_figure-transmission-style"> | |||
| <name>RTP Transmission modes</name> | <name>RTP Transmission Modes</name> | |||
| <artset> | <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"> | <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 8,128 L 8,240" fill="none" stroke="black"/> | |||
| <path d="M 168,128 L 168,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 184,96 L 184,240" fill="none" stroke="black"/> | |||
| <path d="M 344,96 L 344,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 360,32 L 360,240" fill="none" stroke="black"/> | |||
| <path d="M 520,32 L 520,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,32 L 520,32" fill="none" stroke="black"/> | |||
| <path d="M 360,64 L 520,64" fill="none" stroke="black"/> | <path d="M 360,64 L 520,64" fill="none" stroke="black"/> | |||
| skipping to change at line 405 ¶ | skipping to change at line 538 ¶ | |||
| <text x="460" y="52">Header</text> | <text x="460" y="52">Header</text> | |||
| <text x="384" y="84">RTP</text> | <text x="384" y="84">RTP</text> | |||
| <text x="432" y="84">Payload</text> | <text x="432" y="84">Payload</text> | |||
| <text x="492" y="84">Header</text> | <text x="492" y="84">Header</text> | |||
| <text x="400" y="100">(UT</text> | <text x="400" y="100">(UT</text> | |||
| <text x="424" y="100">=</text> | <text x="424" y="100">=</text> | |||
| <text x="456" y="100">Aggr)</text> | <text x="456" y="100">Aggr)</text> | |||
| <text x="240" y="116">RTP</text> | <text x="240" y="116">RTP</text> | |||
| <text x="284" y="116">Header</text> | <text x="284" y="116">Header</text> | |||
| <text x="396" y="132">MIHS</text> | <text x="396" y="132">MIHS</text> | |||
| <text x="436" y="132">unit</text> | <text x="436" y="132">Unit</text> | |||
| <text x="464" y="132">1</text> | <text x="464" y="132">1</text> | |||
| <text x="492" y="132">Size</text> | <text x="492" y="132">Size</text> | |||
| <text x="64" y="148">RTP</text> | <text x="64" y="148">RTP</text> | |||
| <text x="108" y="148">Header</text> | <text x="108" y="148">Header</text> | |||
| <text x="208" y="148">RTP</text> | <text x="208" y="148">RTP</text> | |||
| <text x="256" y="148">Payload</text> | <text x="256" y="148">Payload</text> | |||
| <text x="316" y="148">Header</text> | <text x="316" y="148">Header</text> | |||
| <text x="224" y="164">(UT</text> | <text x="224" y="164">(UT</text> | |||
| <text x="248" y="164">=</text> | <text x="248" y="164">=</text> | |||
| <text x="280" y="164">Frag)</text> | <text x="280" y="164">Frag)</text> | |||
| <text x="412" y="164">MIHS</text> | <text x="412" y="164">MIHS</text> | |||
| <text x="452" y="164">Unit</text> | <text x="452" y="164">Unit</text> | |||
| <text x="480" y="164">1</text> | <text x="480" y="164">1</text> | |||
| <text x="32" y="180">RTP</text> | <text x="32" y="180">RTP</text> | |||
| <text x="80" y="180">Payload</text> | <text x="80" y="180">Payload</text> | |||
| <text x="140" y="180">Header</text> | <text x="140" y="180">Header</text> | |||
| <text x="236" y="196">FU</text> | <text x="236" y="196">FU</text> | |||
| <text x="276" y="196">Header</text> | <text x="276" y="196">Header</text> | |||
| <text x="396" y="196">MIHS</text> | <text x="396" y="196">MIHS</text> | |||
| <text x="436" y="196">unit</text> | <text x="436" y="196">Unit</text> | |||
| <text x="464" y="196">2</text> | <text x="464" y="196">2</text> | |||
| <text x="492" y="196">Size</text> | <text x="492" y="196">Size</text> | |||
| <text x="56" y="212">RTP</text> | <text x="56" y="212">RTP</text> | |||
| <text x="104" y="212">Payload</text> | <text x="104" y="212">Payload</text> | |||
| <text x="48" y="228">(Single</text> | <text x="48" y="228">(Single</text> | |||
| <text x="100" y="228">MIHS</text> | <text x="100" y="228">MIHS</text> | |||
| <text x="144" y="228">unit)</text> | <text x="144" y="228">unit)</text> | |||
| <text x="232" y="228">RTP</text> | <text x="232" y="228">RTP</text> | |||
| <text x="280" y="228">Payload</text> | <text x="280" y="228">Payload</text> | |||
| <text x="432" y="228">...</text> | <text x="432" y="228">...</text> | |||
| skipping to change at line 454 ¶ | skipping to change at line 587 ¶ | |||
| </g> | </g> | |||
| </svg> | </svg> | |||
| </artwork> | </artwork> | |||
| <artwork type="ascii-art"><![CDATA[ | <artwork type="ascii-art"><![CDATA[ | |||
| +-------------------+ | +-------------------+ | |||
| | RTP Header | | | RTP Header | | |||
| +-------------------+ | +-------------------+ | |||
| | RTP Payload Header| | | RTP Payload Header| | |||
| +-------------------+ | (UT = Aggr) | | +-------------------+ | (UT = Aggr) | | |||
| | RTP Header | +-------------------+ | | RTP Header | +-------------------+ | |||
| +-------------------+ +-------------------+ | MIHS unit 1 Size | | +-------------------+ +-------------------+ | MIHS Unit 1 Size | | |||
| | RTP Header | | RTP Payload Header| +-------------------+ | | RTP Header | | RTP Payload Header| +-------------------+ | |||
| +-------------------+ | (UT = Frag) | | MIHS Unit 1 | | +-------------------+ | (UT = Frag) | | MIHS Unit 1 | | |||
| | RTP Payload Header| +-------------------+ +-------------------+ | | RTP Payload Header| +-------------------+ +-------------------+ | |||
| +-------------------+ | FU Header | | MIHS unit 2 Size | | +-------------------+ | FU Header | | MIHS Unit 2 Size | | |||
| | RTP Payload | +-------------------+ +-------------------+ | | RTP Payload | +-------------------+ +-------------------+ | |||
| | (Single MIHS unit)| | RTP Payload | | ... | | | (Single MIHS unit)| | RTP Payload | | ... | | |||
| +-------------------+ +-------------------+ +-------------------+ | +-------------------+ +-------------------+ +-------------------+ | |||
| (a) single unit (b)fragmentation unit (c) aggregation packet | (a) single unit (b)fragmentation unit (c) aggregation packet | |||
| ]]></artwork> | ]]></artwork> | |||
| </artset> | </artset> | |||
| </figure> | </figure> | |||
| <section anchor="single"> | <section anchor="single"> | |||
| skipping to change at line 530 ¶ | skipping to change at line 663 ¶ | |||
| <text x="512" y="52">1</text> | <text x="512" y="52">1</text> | |||
| <text x="232" y="84">RTP</text> | <text x="232" y="84">RTP</text> | |||
| <text x="276" y="84">Header</text> | <text x="276" y="84">Header</text> | |||
| <text x="40" y="116">Payload</text> | <text x="40" y="116">Payload</text> | |||
| <text x="100" y="116">Header</text> | <text x="100" y="116">Header</text> | |||
| <text x="220" y="148">MIHS</text> | <text x="220" y="148">MIHS</text> | |||
| <text x="260" y="148">Unit</text> | <text x="260" y="148">Unit</text> | |||
| <text x="300" y="148">Data</text> | <text x="300" y="148">Data</text> | |||
| <text x="312" y="180">...OPTIONAL</text> | <text x="312" y="180">...OPTIONAL</text> | |||
| <text x="376" y="180">RTP</text> | <text x="376" y="180">RTP</text> | |||
| <text x="424" y="180">padding</text> | <text x="424" y="180">Padding</text> | |||
| </g> | </g> | |||
| </svg> | </svg> | |||
| </artwork> | </artwork> | |||
| <artwork type="ascii-art"><![CDATA[ | <artwork type="ascii-art"><![CDATA[ | |||
| 0 1 2 3 | 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 | 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 Header | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| |Payload Header | | | |Payload Header | | | |||
| +---------------+ | | +---------------+ | | |||
| | MIHS Unit Data | | | MIHS Unit Data | | |||
| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | |...OPTIONAL RTP padding | | | |...OPTIONAL RTP Padding | | |||
| +-------------------------------+-------------------------------+ | +-------------------------------+-------------------------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </artset> | </artset> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="fragmented"> | <section anchor="fragmented"> | |||
| <name>Fragmented Unit Payload Structure</name> | <name>Fragmented Unit Payload Structure</name> | |||
| <t>In a fragmented unit payload structure, as described in <xref targe t="_figure-fragment-structure"/>, the RTP packet contains the RTP header, follow ed by the payload header, a Fragmented Unit (FU) header, and a MIHS unit fragmen t. The payload header follows the structure described in <xref target="payload-h eader"/>. The value of the UT field of the payload header is 7. The FU header fo llows the structure described in <xref target="_figure-fragment-header"/>. In th e case of fragmentation, all RTP payload header fields MUST remain unchanged acr oss all fragments.</t> | <t>In a fragmented unit payload structure, as described in <xref targe t="_figure-fragment-structure"/>, the RTP packet contains the RTP header, follow ed by the payload header, a Fragmented Unit (FU) header, and a MIHS unit fragmen t. The payload header follows the structure described in <xref target="payload-h eader"/>. The value of the UT field of the payload header is 7. The FU header fo llows the structure described in <xref target="_figure-fragment-header"/>. In th e case of fragmentation, all RTP payload header fields <bcp14>MUST</bcp14> remai n unchanged across all fragments.</t> | |||
| <figure anchor="_figure-fragment-structure"> | <figure anchor="_figure-fragment-structure"> | |||
| <name>Fragmentation Unit Payload Structure</name> | <name>Fragmentation Unit Payload Structure</name> | |||
| <artset> | <artset> | |||
| <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" versio n="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anch or="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" versio n="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anch or="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 8,64 L 8,192" fill="none" stroke="black"/> | |||
| <path d="M 136,96 L 136,128" 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,96 L 264,128" fill="none" stroke="black"/> | |||
| <path d="M 264,160 L 264,192" 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 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,64 L 520,64" fill="none" stroke="black"/> | |||
| skipping to change at line 634 ¶ | skipping to change at line 767 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| |Payload Header | FU Header | | | |Payload Header | FU Header | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| | MIHS Unit Fragment | | | MIHS Unit Fragment | | |||
| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | |...OPTIONAL RTP Padding | | | |...OPTIONAL RTP Padding | | |||
| +-------------------------------+-------------------------------+ | +-------------------------------+-------------------------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </artset> | </artset> | |||
| </figure> | </figure> | |||
| <t>FU headers are used to enable fragmenting a single MIHS unit into m | <t>FU headers are used to enable fragmenting a single MIHS unit into m | |||
| ultiple RTP packets. Fragments of the same MIHS unit MUST be sent in consecutive | ultiple RTP packets. Fragments of the same MIHS unit <bcp14>MUST</bcp14> be sent | |||
| order with ascending RTP sequence numbers (with no other RTP packets within the | in consecutive order with ascending RTP sequence numbers (with no other RTP pac | |||
| same RTP stream being sent between the first and last fragment). FUs MUST NOT b | kets within the same RTP stream being sent between the first and last fragment). | |||
| e nested, i.e., an FU MUST NOT contain a subset of another FU.</t> | FUs <bcp14>MUST NOT</bcp14> be nested, i.e., an FU <bcp14>MUST NOT</bcp14> cont | |||
| <t><xref target="_figure-fragment-header"/> describes a FU header, inc | ain a subset of another FU.</t> | |||
| luding the following fields:</t> | <t><xref target="_figure-fragment-header"/> describes an FU header, in | |||
| cluding the following fields:</t> | ||||
| <figure anchor="_figure-fragment-header"> | <figure anchor="_figure-fragment-header"> | |||
| <name>Fragmentation unit header</name> | <name>Fragmentation Unit Header</name> | |||
| <artset> | <artset> | |||
| <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" versio n="1.1" height="112" width="272" viewBox="0 0 272 112" class="diagram" text-anch or="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" versio n="1.1" height="112" width="272" viewBox="0 0 272 112" class="diagram" text-anch or="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 8,32 L 8,96" fill="none" stroke="black"/> | |||
| <path d="M 40,32 L 40,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 72,32 L 72,96" fill="none" stroke="black"/> | |||
| <path d="M 104,32 L 104,64" 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 136,32 L 136,64" fill="none" stroke="black"/> | |||
| <path d="M 168,32 L 168,96" 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 200,32 L 200,64" fill="none" stroke="black"/> | |||
| <path d="M 232,32 L 232,64" fill="none" stroke="black"/> | <path d="M 232,32 L 232,64" fill="none" stroke="black"/> | |||
| skipping to change at line 677 ¶ | skipping to change at line 810 ¶ | |||
| </artwork> | </artwork> | |||
| <artwork type="ascii-art"><![CDATA[ | <artwork type="ascii-art"><![CDATA[ | |||
| +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ | |||
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | | |||
| +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ | |||
| |FUS|FUE| RSV | UT | | |FUS|FUE| RSV | UT | | |||
| +---+---+-----------+-----------+ | +---+---+-----------+-----------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </artset> | </artset> | |||
| </figure> | </figure> | |||
| <t>FUS (Fragmented Unit Start, 1 bit): this field MUST be set to 1 for | <dl> | |||
| the first fragment, and 0 for the other fragments.</t> | <dt>FUS (Fragmented Unit Start, 1 bit):</dt> | |||
| <t>FUE (Fragmented Unit End, 1 bit): this field MUST be set to 1 for t | <dd> | |||
| he last fragment, and 0 for the other fragments.</t> | <t>This field <bcp14>MUST</bcp14> be set to 1 for the first fragme | |||
| <t>The combination FUS=1 and FUE=1 MUST NOT occur; such packets are in | nt and 0 for the other fragments.</t> | |||
| valid.</t> | </dd> | |||
| <t>RSV (Reserved, 3 bits): these bits MUST be set to 0 by the sender a | <dt>FUE (Fragmented Unit End, 1 bit):</dt> | |||
| nd ignored by the receiver.</t> | <dd> | |||
| <t>UT (Unit Type, 3 bits): this field indicates the type of the MIHS u | <t>This field <bcp14>MUST</bcp14> be set to 1 for the last fragmen | |||
| nit this fragment belongs to, using values defined in <xref target="_figure-tran | t and 0 for the other fragments.</t> | |||
| smission-type"/>.</t> | </dd> | |||
| <t>The use of MIHS unit fragmentation in RTP means that a media receiv | </dl> | |||
| er can receive some fragments, but not other fragments. The missing fragments wi | <t>The combination FUS=1 and FUE=1 <bcp14>MUST NOT</bcp14> occur; such | |||
| ll typically not be retransmitted by RTP. This results in partially received MIH | packets are invalid.</t> | |||
| S units, which can be either dropped or used by the decoding application, based | <dl> | |||
| on implementation. In cases where consecutive fragments with FUE and FUS are los | <dt>RSV (Reserved, 3 bits):</dt> | |||
| t, the receiver may in some cases be able to detect that surrounding fragments b | <dd> | |||
| elong to a different partially received MIHS unit (e.g., if the UT field holds a | <t>These bits <bcp14>MUST</bcp14> be set to 0 by the sender and ig | |||
| different value).</t> | nored by the receiver.</t> | |||
| </dd> | ||||
| <dt>UT (Unit Type, 3 bits):</dt> | ||||
| <dd> | ||||
| <t>This field indicates the type of the MIHS unit this fragment be | ||||
| longs 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 receiv | ||||
| er can receive some fragments, but not other fragments. The missing fragments wi | ||||
| ll typically not be retransmitted by RTP. This results in partially received MIH | ||||
| S 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 los | ||||
| t, the receiver may be able to detect that surrounding fragments belong to a dif | ||||
| ferent partially received MIHS unit (e.g., if the UT field holds a different val | ||||
| ue).</t> | ||||
| </section> | </section> | |||
| <section anchor="aggregated"> | <section anchor="aggregated"> | |||
| <name>Aggregation Packet Payload Structure</name> | <name>Aggregation Packet Payload Structure</name> | |||
| <t>In an aggregation packet, as described in <xref target="_figure-agg re-structure"/>, the RTP packet contains an RTP header, followed by a payload he ader, 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="payloa d-header"/>.</t> | <t>In an aggregation packet, as described in <xref target="_figure-agg re-structure"/>, the RTP packet contains an RTP header, followed by a payload he ader, 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="payloa d-header"/>.</t> | |||
| <figure anchor="_figure-aggre-structure"> | <figure anchor="_figure-aggre-structure"> | |||
| <name>Single-Time Aggregation Packet</name> | <name>Single-Time Aggregation Packet</name> | |||
| <artset> | <artset> | |||
| <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" versio n="1.1" height="336" width="528" viewBox="0 0 528 336" class="diagram" text-anch or="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" versio n="1.1" height="336" width="528" viewBox="0 0 528 336" class="diagram" text-anch or="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,64 L 8,160" fill="none" stroke="black"/> | |||
| <path d="M 8,192 L 8,304" 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 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,96 L 264,128" fill="none" stroke="black"/> | |||
| <path d="M 264,272 L 264,304" 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,64 L 520,160" fill="none" stroke="black"/> | |||
| skipping to change at line 765 ¶ | skipping to change at line 914 ¶ | |||
| <text x="520" y="180">:</text> | <text x="520" y="180">:</text> | |||
| <text x="92" y="212">MIHS</text> | <text x="92" y="212">MIHS</text> | |||
| <text x="132" y="212">Unit</text> | <text x="132" y="212">Unit</text> | |||
| <text x="160" y="212">2</text> | <text x="160" y="212">2</text> | |||
| <text x="188" y="212">Size</text> | <text x="188" y="212">Size</text> | |||
| <text x="244" y="244">MIHS</text> | <text x="244" y="244">MIHS</text> | |||
| <text x="284" y="244">Unit</text> | <text x="284" y="244">Unit</text> | |||
| <text x="312" y="244">2</text> | <text x="312" y="244">2</text> | |||
| <text x="312" y="292">...OPTIONAL</text> | <text x="312" y="292">...OPTIONAL</text> | |||
| <text x="376" y="292">RTP</text> | <text x="376" y="292">RTP</text> | |||
| <text x="424" y="292">padding</text> | <text x="424" y="292">Padding</text> | |||
| </g> | </g> | |||
| </svg> | </svg> | |||
| </artwork> | </artwork> | |||
| <artwork type="ascii-art"><![CDATA[ | <artwork type="ascii-art"><![CDATA[ | |||
| 0 1 2 3 | 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 | 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 Header | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | RTP Payload Header | MIHS Unit 1 Size | | | RTP Payload Header | MIHS Unit 1 Size | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | MIHS Unit 1 | | | MIHS Unit 1 | | |||
| | | | | | | |||
| : : | : : | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | MIHS Unit 2 Size | | | | MIHS Unit 2 Size | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| | MIHS Unit 2 | | | MIHS Unit 2 | | |||
| | | | | | | |||
| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | |...OPTIONAL RTP padding | | | |...OPTIONAL RTP Padding | | |||
| +-------------------------------+-------------------------------+ | +-------------------------------+-------------------------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </artset> | </artset> | |||
| </figure> | </figure> | |||
| <t><xref target="_figure-aggre-structure"/> shows a Single-Time Aggreg ation Packet (STAP), which can be used to transmit multiple MIHS units that corr espond to the same timestamp. For example, if two frequencies are used for the s ame content, they can be transmitted at once in a STAP. Multiple spatial units c an also be sent together in a STAP, since this type of haptics data is time inde pendent. 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 > | <t><xref target="_figure-aggre-structure"/> shows a Single-Time Aggreg ation Packet (STAP), which can be used to transmit multiple MIHS units that corr espond to the same timestamp. For example, if two frequencies are used for the s ame content, they can be transmitted at once in a STAP. Multiple spatial units c an also be sent together in a STAP, since this type of haptics data is time inde pendent. 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"> | <!--[rfced] FYI: In Figure 9, we moved the bit ruler over one space | |||
| <name>Multiple-time aggregation packet</name> | to the right to get the correct alignment (this is consistent with | |||
| the other figures that contain bit rulers). Please let us know of | ||||
| any objections. | ||||
| --> | ||||
| <figure anchor="_figure-aggremtap-structure"> | ||||
| <name>Multiple-Time Aggregation Packet</name> | ||||
| <artset> | <artset> | |||
| <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" versio n="1.1" height="368" width="528" viewBox="0 0 528 368" class="diagram" text-anch or="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" versio n="1.1" height="368" width="528" viewBox="0 0 528 368" class="diagram" text-anch or="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 8,64 L 8,336" fill="none" stroke="black"/> | |||
| <path d="M 136,240 L 136,272" 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,96 L 264,128" fill="none" stroke="black"/> | |||
| <path d="M 264,208 L 264,240" 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 264,304 L 264,336" fill="none" stroke="black"/> | |||
| <path d="M 392,128 L 392,160" 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 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,64 L 520,64" fill="none" stroke="black"/> | |||
| <path d="M 8,96 L 520,96" 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,128 L 520,128" fill="none" stroke="black"/> | |||
| <path d="M 8,160 L 392,160" 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,208 L 520,208" fill="none" stroke="black"/> | |||
| <path d="M 8,240 L 520,240" 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 16,272 L 136,272" fill="none" stroke="black"/> | |||
| <path d="M 264,304 L 520,304" 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"/> | <path d="M 8,336 L 520,336" fill="none" stroke="black"/> | |||
| <g class="text"> | <g class="text"> | |||
| <text x="8" y="36">0</text> | <text x="16" y="36">0</text> | |||
| <text x="168" y="36">1</text> | <text x="176" y="36">1</text> | |||
| <text x="328" y="36">2</text> | <text x="336" y="36">2</text> | |||
| <text x="488" y="36">3</text> | <text x="496" y="36">3</text> | |||
| <text x="8" y="52">0</text> | <text x="16" y="52">0</text> | |||
| <text x="24" y="52">1</text> | <text x="32" y="52">1</text> | |||
| <text x="40" y="52">2</text> | <text x="48" y="52">2</text> | |||
| <text x="56" y="52">3</text> | <text x="64" y="52">3</text> | |||
| <text x="72" y="52">4</text> | <text x="80" y="52">4</text> | |||
| <text x="88" y="52">5</text> | <text x="96" y="52">5</text> | |||
| <text x="104" y="52">6</text> | <text x="112" y="52">6</text> | |||
| <text x="120" y="52">7</text> | <text x="128" y="52">7</text> | |||
| <text x="136" y="52">8</text> | <text x="144" y="52">8</text> | |||
| <text x="152" y="52">9</text> | <text x="160" y="52">9</text> | |||
| <text x="168" y="52">0</text> | <text x="176" y="52">0</text> | |||
| <text x="184" y="52">1</text> | <text x="192" y="52">1</text> | |||
| <text x="200" y="52">2</text> | <text x="208" y="52">2</text> | |||
| <text x="216" y="52">3</text> | <text x="224" y="52">3</text> | |||
| <text x="232" y="52">4</text> | <text x="240" y="52">4</text> | |||
| <text x="248" y="52">5</text> | <text x="256" y="52">5</text> | |||
| <text x="264" y="52">6</text> | <text x="272" y="52">6</text> | |||
| <text x="280" y="52">7</text> | <text x="288" y="52">7</text> | |||
| <text x="296" y="52">8</text> | <text x="304" y="52">8</text> | |||
| <text x="312" y="52">9</text> | <text x="320" y="52">9</text> | |||
| <text x="328" y="52">0</text> | <text x="336" y="52">0</text> | |||
| <text x="344" y="52">1</text> | <text x="352" y="52">1</text> | |||
| <text x="360" y="52">2</text> | <text x="368" y="52">2</text> | |||
| <text x="376" y="52">3</text> | <text x="384" y="52">3</text> | |||
| <text x="392" y="52">4</text> | <text x="400" y="52">4</text> | |||
| <text x="408" y="52">5</text> | <text x="416" y="52">5</text> | |||
| <text x="424" y="52">6</text> | <text x="432" y="52">6</text> | |||
| <text x="440" y="52">7</text> | <text x="448" y="52">7</text> | |||
| <text x="456" y="52">8</text> | <text x="464" y="52">8</text> | |||
| <text x="472" y="52">9</text> | <text x="480" y="52">9</text> | |||
| <text x="488" y="52">0</text> | <text x="496" y="52">0</text> | |||
| <text x="504" y="52">1</text> | <text x="512" y="52">1</text> | |||
| <text x="232" y="84">RTP</text> | <text x="232" y="84">RTP</text> | |||
| <text x="276" y="84">Header</text> | <text x="276" y="84">Header</text> | |||
| <text x="88" y="116">RTP</text> | <text x="88" y="116">RTP</text> | |||
| <text x="136" y="116">Payload</text> | <text x="136" y="116">Payload</text> | |||
| <text x="196" y="116">Header</text> | <text x="196" y="116">Header</text> | |||
| <text x="340" y="116">MIHS</text> | <text x="340" y="116">MIHS</text> | |||
| <text x="380" y="116">Unit</text> | <text x="380" y="116">Unit</text> | |||
| <text x="408" y="116">1</text> | <text x="408" y="116">1</text> | |||
| <text x="436" y="116">Size</text> | <text x="436" y="116">Size</text> | |||
| <text x="236" y="148">TS</text> | <text x="236" y="148">TS</text> | |||
| skipping to change at line 870 ¶ | skipping to change at line 1025 ¶ | |||
| <text x="244" y="180">MIHS</text> | <text x="244" y="180">MIHS</text> | |||
| <text x="284" y="180">Unit</text> | <text x="284" y="180">Unit</text> | |||
| <text x="312" y="180">1</text> | <text x="312" y="180">1</text> | |||
| <text x="84" y="228">MIHS</text> | <text x="84" y="228">MIHS</text> | |||
| <text x="124" y="228">Unit</text> | <text x="124" y="228">Unit</text> | |||
| <text x="152" y="228">2</text> | <text x="152" y="228">2</text> | |||
| <text x="180" y="228">Size</text> | <text x="180" y="228">Size</text> | |||
| <text x="372" y="228">TS</text> | <text x="372" y="228">TS</text> | |||
| <text x="412" y="228">Offset</text> | <text x="412" y="228">Offset</text> | |||
| <text x="44" y="260">TS</text> | <text x="44" y="260">TS</text> | |||
| <text x="84" y="260">offset</text> | <text x="84" y="260">Offset</text> | |||
| <text x="236" y="292">MIHS</text> | <text x="236" y="292">MIHS</text> | |||
| <text x="276" y="292">Unit</text> | <text x="276" y="292">Unit</text> | |||
| <text x="304" y="292">2</text> | <text x="304" y="292">2</text> | |||
| <text x="312" y="324">...OPTIONAL</text> | <text x="312" y="324">...OPTIONAL</text> | |||
| <text x="376" y="324">RTP</text> | <text x="376" y="324">RTP</text> | |||
| <text x="424" y="324">padding</text> | <text x="424" y="324">Padding</text> | |||
| </g> | </g> | |||
| </svg> | </svg> | |||
| </artwork> | </artwork> | |||
| <artwork type="ascii-art"><![CDATA[ | <artwork type="ascii-art"><![CDATA[ | |||
| 0 1 2 3 | 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 | 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 Header | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | RTP Payload Header | MIHS Unit 1 Size | | | RTP Payload Header | MIHS Unit 1 Size | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | TS Offset | | | | TS Offset | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| | MIHS Unit 1 | | | MIHS Unit 1 | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | MIHS Unit 2 Size | TS Offset | | | MIHS Unit 2 Size | TS Offset | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | TS offset | | | | TS Offset | | | |||
| |-+-+-+-+-+-+-+-+ | | |-+-+-+-+-+-+-+-+ | | |||
| | MIHS Unit 2 | | | MIHS Unit 2 | | |||
| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | |...OPTIONAL RTP padding | | | |...OPTIONAL RTP Padding | | |||
| +-------------------------------+-------------------------------+ | +-------------------------------+-------------------------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </artset> | </artset> | |||
| </figure> | </figure> | |||
| <t><xref target="_figure-aggremtap-structure"/> shows a multi-time agg regation packet. It is used to transmit multiple MIHS units with different times tamps, in one RTP packet. Multi-time aggregation can help reduce the number of p ackets, in environments where some delay is acceptable. The value of the UT fiel d of the Payload Header is 6. The MIHS unit length field (16 bits) holds the len gth of the MIHS unit following it, in bytes. The timestamp offset field (TS offs et, 16 bits) is present in the MTAP case, and MUST be set to the value of (time of the MIHS unit - RTP timestamp of the packet). The timestamp offset of the ea rliest aggregation unit MUST always be zero. Therefore, the RTP timestamp of the MTAP is identical to the earliest MIHS unit time.</t> | <t><xref target="_figure-aggremtap-structure"/> shows a Multi-Time Agg regation Packet (MTAP). It is used to transmit multiple MIHS units with differen t timestamps, in one RTP packet. Multi-time aggregation can help reduce the numb er of packets in environments where some delay is acceptable. The value of the U T field of the payload header is 6. The MIHS unit length field (16 bits) holds t he length of the MIHS unit following it, in bytes. The timestamp offset field (T S 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 timest amp 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> | </section> | |||
| <section anchor="mihs-trans"> | <section anchor="mihs-trans"> | |||
| <name>MIHS Units Transmission and Reception Considerations</name> | <name>MIHS Units Transmission and Reception Considerations</name> | |||
| <t>The following considerations apply for the streaming of MIHS units ov | <t>The following considerations apply for the streaming of MIHS units ov | |||
| er RTP:</t> | er RTP.</t> | |||
| <t>The MIHS format enables variable duration units and uses initializati | <t>The MIHS format enables variable duration units and uses initializati | |||
| on MIHS units to declare the duration of subsequent non-zero duration MIHS units | on MIHS units to declare the duration of subsequent non-zero duration MIHS units | |||
| , as well as the maximum variation of this duration. A sender SHOULD set constan | , as well as the maximum variation of this duration. A sender <bcp14>SHOULD</bcp | |||
| t or low-variability (e.g., lower than the playout buffer) durations in initiali | 14> set constant or low-variability (e.g., lower than the playout buffer) durati | |||
| zation MIHS units, for RTP streaming. This enables the receiver to determine ear | ons in initialization MIHS units, for RTP streaming. This enables the receiver t | |||
| ly (e.g., using a timer) when a unit has been lost and make the decoder more rob | o determine early (e.g., using a timer) when a unit has been lost and to make th | |||
| ust to RTP packet loss. If a sender sends MIHS units with high duration variatio | e decoder more robust to RTP packet loss. If a sender sends MIHS units with high | |||
| ns, the receiver MAY need to wait for a long period of time (e.g., the upper bou | duration variations, the receiver <bcp14>MAY</bcp14> need to wait for a long pe | |||
| nd of the duration variation), to determine if a MIHS unit was lost in transmiss | riod of time (e.g., the upper bound of the duration variation) to determine if a | |||
| ion. Whether this behavior is acceptable or not is application dependent, and th | MIHS unit was lost in transmission. Whether this behavior is acceptable or not | |||
| e application can configure the encoder to generate MIHS unit of lengths with th | is application dependent, and the application can configure the encoder to gener | |||
| e appropriate variation.</t> | ate MIHS unit of lengths with the appropriate variation.</t> | |||
| <t>The MIHS format uses silent MIHS units to signal haptic silence. A se | <t>The MIHS format uses silent MIHS units to signal haptic silence. A se | |||
| nder MAY decide not to send silent units, to save network resources. Since, from | nder <bcp14>MAY</bcp14> decide not to send silent units, to save network resourc | |||
| a receiver standpoint, a missed MIHS unit may originate from a not-sent silent | es. Since, from a receiver standpoint, a missed MIHS unit may originate from a n | |||
| unit, or a lost packet, a sender MAY send one, or a few, MIHS silent units at th | ot-sent silent unit or a lost packet, a sender <bcp14>MAY</bcp14> send one, or a | |||
| e beginning of a haptic silence. If a media receiver receives a MIHS silent unit | few, MIHS silent units at the beginning of a haptic silence. If a media receive | |||
| , the receiver SHOULD assume that silence is intended until the reception of a n | r receives a MIHS silent unit, the receiver <bcp14>SHOULD</bcp14> assume that si | |||
| on-silent MIHS unit. This can reduce the number of false detections of lost RTP | lence is intended until the reception of a non-silent MIHS unit. This can reduce | |||
| packets by the decoder.</t> | 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 | <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 R | ., when adding or selecting a new source), it is recommended to use Full Intra R | |||
| equest (FIR) feedback messages with Haptics <xref target="RFC5104"/>. The purpos | equest (FIR) feedback messages <xref target="RFC5104"/> with Haptics. The purpos | |||
| e of the FIR message is to cause an encoder to send a decoder refresh point at t | e of the FIR message is to cause an encoder to send a decoder refresh point at t | |||
| he earliest opportunity. In the context of haptics, an appropriate decoder refre | he earliest opportunity. In the context of haptics, an appropriate decoder refre | |||
| sh point is an initialization MIHS unit. The initialization MIHS unit point enab | sh point is an initialization MIHS unit. The initialization MIHS unit point enab | |||
| les a decoder to be reset to a known state and be able decode all MIHS units fol | les a decoder to be reset to a known state and to decode all MIHS units followin | |||
| lowing it.</t> | g it.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="payload-format-parameters"> | <section anchor="payload-format-parameters"> | |||
| <name>Payload Format Parameters</name> | <name>Payload Format Parameters</name> | |||
| <t>This section describes payload format parameters. <xref target="optiona l-param"/> specifies new optional parameters and <xref target="sdp-registration" /> further registers a new token in the media sub-registry of the Session Descri ption Protocols (SDP) Parameters registry.</t> | <t>This section describes payload format parameters. <xref target="optiona l-param"/> specifies new optional parameters, and <xref target="sdp-registration "/> further registers a new token in the media subregistry of the "Session Descr iption Protocol (SDP) Parameters" registry group.</t> | |||
| <section anchor="optional-param"> | <section anchor="optional-param"> | |||
| <name>Optional Parameters Definition</name> | <name>Optional Parameters Definition</name> | |||
| <t>It is optional to include the SDP parameters in this section. Some pa | <t>It is optional to include the SDP parameters in this section. Some pa | |||
| rameters have a default value which MUST be inferred if the parameter is not pre | rameters have a default value that <bcp14>MUST</bcp14> be inferred if the parame | |||
| sent in the SDP, unless an out-of-band agreement indicates a different value, as | ter is not present in the SDP, unless an out-of-band agreement indicates a diffe | |||
| described in <xref target="sdp-cons"/>. The values of the SDP parameters indica | rent value, as described in <xref target="sdp-cons"/>. The values of the SDP par | |||
| ted in this section are based on the current version of the MPEG Haptics Coding | ameters indicated in this section are based on the current version of the MPEG H | |||
| standard (ISO/IEC 23090-31:2025) and may be different in future versions of <xre | aptics Coding standard (ISO/IEC 23090-31:2025) and may be different in future ve | |||
| f target="ISO.IEC.23090-31"/>.</t> | rsions of <xref target="ISO.IEC.23090-31"/>.</t> | |||
| <t>ver:</t> | <!--[rfced] In the list in section 6.1, please clarify "may hold values | |||
| <t>This parameter provides the year of the edition and amendment of ISO/ | among" (3 instances). Does this | |||
| IEC 23090-31 that this file conforms to, as defined in <xref target="ISO.IEC.230 | mean "may contain the values"? Also, is "or" (before "Custom") | |||
| 90-31"/>: MPEG_haptics object.version is a string which may hold values such as | correct, or should it be "and/or"? | |||
| XXXX or XXXX-Y where XXXX is the year of publication and Y is the amendment numb | ||||
| er, if any. For the initial (and current) version of the MPEG Haptics Coding sta | One example | |||
| ndard (ISO/IEC 23090-31:2025) , the value is "2025". When ver is not present, a | ||||
| default value of "2025" SHOULD be inferred.</t> | Original: | |||
| <t>profile:</t> | The avatar type is defined in [ISO.IEC.23090-31]: | |||
| <t>This parameter indicates the profile used to generate the encoded str | MPEG_haptics.avatar object.type is a string which may hold values | |||
| eam as defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics object.profile | among "Vibration", "Pressure", "Temperature", "Custom". | |||
| is a string which may hold the values "simple-parametric" or "main". When profi | ||||
| le is not present, the default value "main" SHOULD be inferred.</t> | Perhaps: | |||
| <t>lvl:</t> | The avatar type is defined in [ISO.IEC.23090-31]: | |||
| <t>This parameter indicates the level used to generate the encoded strea | MPEG_haptics.avatar object.type is a string that may contain the | |||
| m as defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics object.level is | values "Vibration", "Pressure", "Temperature", or "Custom". | |||
| an integer which may hold the values 1 or 2. When lvl is not present, the defaul | --> | |||
| t value 2 SHOULD be inferred.</t> | ||||
| <t>maxlod:</t> | <t>ver:</t> | |||
| <t>This parameter indicates the maximum level of details to use for the | <t>This parameter provides the year of the edition and amendment of ISO/ | |||
| avatar(s). The avatar level of detail (LOD) is defined in <xref target="ISO.IEC. | IEC 23090-31 that this file conforms to, as defined in <xref target="ISO.IEC.230 | |||
| 23090-31"/>: MPEG_haptics.avatar object.lod is an integer which may hold the val | 90-31"/>: MPEG_haptics object.version is a string that may hold values such as X | |||
| ue 0 or a positive integer.</t> | XXX or XXXX-Y where XXXX is the year of publication and Y is the amendment numbe | |||
| <t>avtypes:</t> | r, if any. For the initial (and current) version of the MPEG Haptics Coding stan | |||
| <t>This parameter indicates, using a comma-separated list, types of hapt | dard (ISO/IEC 23090-31:2025), the value is "2025". When ver is not present, a de | |||
| ic perception represented by the avatar(s). The avatar type is defined in <xref | fault value of "2025" <bcp14>SHOULD</bcp14> be inferred.</t> | |||
| target="ISO.IEC.23090-31"/>: MPEG_haptics.avatar object.type is a string which m | <dl> | |||
| ay hold values among "Vibration", "Pressure", "Temperature", "Custom".</t> | <dt>profile:</dt> | |||
| <t>modalities:</t> | <dd> | |||
| <t>This parameter indicates, using a comma-separated list, haptic percep | <t>This parameter indicates the profile used to generate the encoded | |||
| tion modalities (e.g., pressure, acceleration, velocity, position, temperature, | stream, as defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics object.pr | |||
| etc.). The perception modality is defined in <xref target="ISO.IEC.23090-31"/>: | ofile is a string that may hold the values "simple-parametric" or "main". When p | |||
| MPEG_haptics.perception object.perception_modality is a string which may hold va | rofile is not present, the default value "main" <bcp14>SHOULD</bcp14> be inferre | |||
| lues among "Pressure", "Acceleration", "Velocity", "Position", "Temperature", "V | d.</t> | |||
| ibrotactile", "Water", "Wind", "Force", "Electrotactile", "Vibrotactile Texture" | </dd> | |||
| , "Stiffness", "Friction", "Humidity", "User-defined Temporal", "User-defined Sp | <dt>lvl:</dt> | |||
| atial", "Other".</t> | <dd> | |||
| <t>bodypartmask:</t> | <t>This parameter indicates the level used to generate the encoded s | |||
| <t>This parameter is an integer which indicates, using a bitmask, the lo | tream, as defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics object.leve | |||
| cation of the devices or actuators on the body. The body part mask is defined in | l is an integer that may hold the values 1 or 2. When lvl is not present, the de | |||
| <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.body_pa | fault value 2 <bcp14>SHOULD</bcp14> be inferred.</t> | |||
| rt_mask is a 32-bit integer which may hold a bit mask using bit positions define | </dd> | |||
| d in table 7 of <xref target="ISO.IEC.23090-31"/>.</t> | <dt>maxlod:</dt> | |||
| <t>maxfreq:</t> | <dd> | |||
| <t>This parameter is an integer which indicates the maximum frequency of | <t>This parameter indicates the maximum level of details (LODs) to u | |||
| haptic data for vibrotactile perceptions (Hz). Maximum frequency is defined in | se for the avatar(s). The avatar LOD is defined in <xref target="ISO.IEC.23090-3 | |||
| <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.maximum_ | 1"/>: MPEG_haptics.avatar object.lod is an integer that may hold the value 0 or | |||
| frequency.</t> | a positive integer.</t> | |||
| <t>minfreq:</t> | </dd> | |||
| <t>This parameter is an integer which indicates the minimum frequency of | <dt>avtypes:</dt> | |||
| haptic data for vibrotactile perceptions (Hz). Minimum frequency is defined in | <dd> | |||
| <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.minimum_ | <t>This parameter indicates, using a comma-separated list, the types | |||
| frequency.</t> | of haptic perception represented by the avatar(s). The avatar type is defined i | |||
| <t>dvctypes:</t> | n <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.avatar object.type is a string | |||
| <t>This parameter indicates, using a comma-separated list, the types of | that may hold values among "Vibration", "Pressure", "Temperature", or "Custom". | |||
| actuators. The device type is defined in <xref target="ISO.IEC.23090-31"/>: MPEG | </t> | |||
| _haptics.reference_device object.type is a string which may hold values among "L | </dd> | |||
| RA", "VCA", "ERM", "Piezo" or "Unknown".</t> | <dt>modalities:</dt> | |||
| <t>silencesupp:</t> | <dd> | |||
| <t>This parameter is an integer which indicates whether silence suppress | <t>This parameter indicates, using a comma-separated list, haptic pe | |||
| ion should be used (1) or not (0). When silencesupp is not present, the default | rception modalities (e.g., pressure, acceleration, velocity, position, temperatu | |||
| value 0 SHOULD be inferred.</t> | re, etc.). The perception modality is defined in <xref target="ISO.IEC.23090-31" | |||
| />: MPEG_haptics.perception object.perception_modality is a string that may hold | ||||
| values among "Pressure", "Acceleration", "Velocity", "Position", "Temperature", | ||||
| "Vibrotactile", "Water", "Wind", "Force", "Electrotactile", "Vibrotactile Textu | ||||
| re", "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 defi | ||||
| ned 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.maxim | ||||
| um_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.minim | ||||
| um_frequency.</t> | ||||
| </dd> | ||||
| <dt>dvctypes:</dt> | ||||
| <dd> | ||||
| <t>This parameter is an integer that indicates, using a comma-separa | ||||
| ted list, the types of actuators. The device type is defined in <xref target="IS | ||||
| O.IEC.23090-31"/>: MPEG_haptics.reference_device object.type is a string that ma | ||||
| y hold values among "LRA", "VCA", "ERM", "Piezo", or "Unknown".</t> | ||||
| </dd> | ||||
| <dt>silencesupp:</dt> | ||||
| <dd> | ||||
| <t>This parameter is an integer that indicates whether silence suppr | ||||
| ession should be used (value 1) or not (value 0). When silencesupp is not presen | ||||
| t, the default value 0 <bcp14>SHOULD</bcp14> be inferred.</t> | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | </section> | |||
| <section anchor="sdp-registration"> | <section anchor="sdp-registration"> | |||
| <name>SDP Parameter Registration</name> | <name>SDP Parameter Registration</name> | |||
| <t>This memo registers a 'haptics' token in the media sub-registry of th | <t>This memo registers a 'haptics' token in the media subregistry of the | |||
| e Session Description Protocols (SDP) Parameters registry. This registration con | "Session Description Protocol (SDP) Parameters" registry group. This registrati | |||
| tains the required information elements outlined in the SDP registration procedu | on contains the required information elements outlined in the SDP registration p | |||
| re defined in section 8.2 of <xref target="RFC8866"/>.</t> | rocedure defined in <xref section="8.2" sectionFormat="of" target="RFC8866"/>.</ | |||
| <t>(1) Contact Information:</t> | t> | |||
| <artwork><![CDATA[ | <!--[rfced] Please note that we updated the registration | |||
| template in Section 6.2 as follows. Please let us know of any objections. | ||||
| Original: | ||||
| (1) Contact Information: | ||||
| Name: Hyunsik Yang | Name: Hyunsik Yang | |||
| Email: hyunsik.yang@interdigital.com | Email: hyunsik.yang@interdigital.com | |||
| ]]></artwork> | ||||
| <t>(2) Name being registered (as it will appear in SDP): haptics</t> | (2) Name being registered (as it will appear in SDP): haptics | |||
| <t>(3) Long-form name in English: haptics</t> | ||||
| <t>(4) Type of name ('media', 'proto', 'fmt', 'bwtype', 'nettype', or | (3) Long-form name in English: haptics | |||
| 'addrtype'): media</t> | ||||
| <t>(5) Purpose of the registered name:</t> | (4) Type of name ('media', 'proto', 'fmt', 'bwtype', 'nettype', | |||
| <artwork><![CDATA[ | or 'addrtype'): media | |||
| (5) Purpose of the registered name: | ||||
| The 'haptics' media type for the Session Description Protocol | The 'haptics' media type for the Session Description Protocol | |||
| is used to describe a media stream whose content can be | is used to describe a media stream whose content can be | |||
| rendered as touch-related sensations. | rendered as touch-related sensations. | |||
| The media subtype further describes the specific | The media subtype further describes the specific | |||
| format of the haptics stream. The 'haptics' media type for | format of the haptics stream. The 'haptics' media type for | |||
| SDP is used to establish haptics media streams. | SDP is used to establish haptics media streams. | |||
| ]]></artwork> | ||||
| <t>(6) Specification for the registered name: RFC XXXX</t> | (6) Specification for the registered name: RFC XXXX | |||
| <t>RFC Editor Note: Replace RFC XXXX with the published RFC number.</t> | ||||
| Current: | ||||
| Contact name: Hyunsik Yang | ||||
| Contact email address: hyunsik.yang@interdigital.com | ||||
| Name being defined (as it will appear in SDP): haptics | ||||
| Type of name: media | ||||
| Description: 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. | ||||
| Reference: RFC 9993 | ||||
| --> | ||||
| <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> | </section> | |||
| <section anchor="sdp-considerations"> | <section anchor="sdp-considerations"> | |||
| <name>SDP Considerations</name> | <name>SDP Considerations</name> | |||
| <t>The mapping of above defined payload format media type to the correspon | <t>The mapping of the above-defined payload format media type to the corre | |||
| ding fields in the Session Description Protocol (SDP) is done according to <xref | sponding fields in SDP is done according to <xref target="RFC8866"/>.</t> | |||
| target="RFC8866"/>.</t> | <t>The media name in the "m=" line of SDP <bcp14>MUST</bcp14> be haptics.< | |||
| <t>The media name in the "m=" line of SDP MUST be haptics.</t> | /t> | |||
| <t>The encoding name in the "a=rtpmap" line of SDP MUST be hmpg</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, typical ly 8000.</t> | <t>The clock rate in the "a=rtpmap" line may be any sampling rate, typical ly 8000.</t> | |||
| <t>The optional parameters (defined in <xref target="optional-param"/>), w hen present, MUST 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=valu e pairs. Parameter values, including string values, MUST be written without quot ation marks ("") in SDP. Parameter values which are strings are not case sensiti ve and SHOULD be written in lowercase.</t> | <t>The optional parameters (defined in <xref target="optional-param"/>), w hen present, <bcp14>MUST</bcp14> be included in the "a=fmtp" line of SDP. This i s 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 lowercas e.</t> | |||
| <t>An example of media representation corresponding to the hmpg RTP payloa d in SDP is as follows:</t> | <t>An example of media representation corresponding to the hmpg RTP payloa d in SDP is as follows:</t> | |||
| <artwork><![CDATA[ | <!--[rfced] The figure in Section 7 is marked as artwork. Please | |||
| m=haptics 43291 UDP/TLS/RTP/SAVPF 115 | confirm if this is correct or if it should be marked as sourcecode | |||
| a=rtpmap:115 hmpg/8000 | instead. | |||
| a=fmtp:115 profile=main;lvl=1;ver=2025 | ||||
| If it is marked as sourcecode, please consider whether the "type" | ||||
| attribute should be set. | ||||
| The current list of preferred values for "type" is available at | ||||
| https://www.rfc-editor.org/materials/sourcecode-types.txt. If the current | ||||
| list does not contain an applicable type, feel free to suggest additions | ||||
| for consideration. Note that it is also acceptable to leave the "type" | ||||
| attribute not set. | ||||
| --> | ||||
| <artwork><![CDATA[ | ||||
| m=haptics 43291 UDP/TLS/RTP/SAVPF 115 | ||||
| a=rtpmap:115 hmpg/8000 | ||||
| a=fmtp:115 profile=main;lvl=1;ver=2025 | ||||
| ]]></artwork> | ]]></artwork> | |||
| <section anchor="sdp-cons"> | <section anchor="sdp-cons"> | |||
| <name>SDP Offer/Answer Considerations</name> | <name>SDP Offer/Answer Considerations</name> | |||
| <t>When using the offer/answer procedure described in <xref target="RFC3 264"/> to negotiate the use of haptic, the following considerations apply:</t> | <t>When using the offer/answer procedure described in <xref target="RFC3 264"/> to negotiate the use of haptic, the following considerations apply:</t> | |||
| <t>When used for a unidirectional stream, the SDP parameters represent t he properties of the sender (on the sending side) and of the receiver (on the re ceiving side). When used for a sendrecv stream, the SDP parameters represent the properties of the receiver.</t> | <t>When used for a unidirectional stream, the SDP parameters represent t he properties of the sender (on the sending side) and of the receiver (on the re ceiving 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', 'pr | <t>The receiver properties expressed using the SDP parameters 'ver', 'pr | |||
| ofile' and 'lvl' correspond to implementation capabilities. The ver, profile, lv | ofile', and 'lvl' correspond to implementation capabilities. The ver, profile, a | |||
| l parameters MUST be used symmetrically in SDP offer and answer. That is, their | nd lvl parameters <bcp14>MUST</bcp14> be used symmetrically in SDP offer and ans | |||
| values in the answer MUST match those in the offer, either explicitly signaled o | wer. That is, their values in the answer <bcp14>MUST</bcp14> match those in the | |||
| r implicitly inferred. In the same session, ver, profile, and lvl MUST NOT be ch | offer, either explicitly signaled or implicitly inferred. In the same session, v | |||
| anged in subsequent offers or answers.</t> | er, profile, and lvl <bcp14>MUST NOT</bcp14> be changed in subsequent offers or | |||
| <t>The properties expressed using SDP parameters other than 'ver', 'prof | answers.</t> | |||
| ile' and 'lvl' are provided as recommendations for efficient data transmission a | <t>The properties expressed using SDP parameters other than 'ver', 'prof | |||
| nd are not binding, meaning that a sender is encouraged but not required to conf | ile', and 'lvl' are provided as recommendations for efficient data transmission | |||
| orm to the parameters specified by the receiver. These properties MAY be set to | and are not binding, meaning that a sender is encouraged but not required to con | |||
| different values in offers and answers. These properties MAY be updated in subse | form to the parameters specified by the receiver. These properties <bcp14>MAY</b | |||
| quent offers or answers.</t> | cp14> be set to different values in offers and answers. These properties <bcp14> | |||
| <t>Any receiver compliant with <xref target="ISO.IEC.23090-31"/> MUST be | MAY</bcp14> be updated in subsequent offers or answers.</t> | |||
| capable of decoding any stream with a compatible version, profile, and level. A | <t>Any receiver compliant with <xref target="ISO.IEC.23090-31"/> <bcp14> | |||
| receiver supporting a more general profile will accept a stream corresponding t | MUST</bcp14> be capable of decoding any stream with a compatible version, profil | |||
| o a same or less general profile (e.g., "main" is more general than "simple-para | e, and level. A receiver supporting a more general profile will accept a stream | |||
| metric"). A receiver supporting a given level will accept a stream corresponding | corresponding to the same or a less general profile (e.g., "main" is more genera | |||
| to a same or lower level. A receiver supporting a given version will accept a s | l than "simple-parametric"). A receiver supporting a given level will accept a s | |||
| tream corresponding to the same version and MAY accept other versions. A receive | tream corresponding to the same or a lower level. A receiver supporting a given | |||
| r MAY ignore any part of a received stream, e.g., that it does not have support | version will accept a stream corresponding to the same version and <bcp14>MAY</b | |||
| for rendering.</t> | cp14> 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 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 spec | <!--[rfced] May we remove the second sentence below? It appears to be | |||
| ification. If it is not specified, the The parameter 'ver' indicates the version | duplicate information from the first sentence. | |||
| 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=" | Original: | |||
| ISO.IEC.23090-31"/> SHOULD be inferred, although the sender and receiver MAY us | The parameter 'ver' indicates the version of the haptic standard | |||
| e a specific value based on an out-of-band agreement. The parameter 'profile' is | specification. If it is not specified, the The parameter 'ver' | |||
| used to restrict the number of tools used (e.g., the simple-parametric profile | indicates the version of the haptic standard specification. If it is | |||
| fits enable simpler implementations than the main profile). If it is not specifi | not specified, the value "2025" indicating the MPEG Haptics Coding | |||
| ed, the most general profile "main" SHOULD be inferred, although the sender and | standard ISO/IEC 23090-31:2025 [ISO.IEC.23090-31] SHOULD be inferred, | |||
| receiver MAY use a specific value based on an out-of-band agreement. The paramet | although the sender and receiver MAY use a specific value based on an | |||
| er 'lvl' is used to further characterize implementations within a given profile, | out-of-band agreement. | |||
| e.g., according to the maximum supported number of channels, bands, and percept | ||||
| ions. If it is not specified, the most general level "2" SHOULD be inferred, alt | Perhaps: | |||
| hough the sender and receiver MAY use a specific version based on an out-of-band | The parameter 'ver' indicates the version of the haptic standard | |||
| agreement.</t> | specification. If it is not specified, the value "2025" indicating | |||
| <t>Other parameters can be used to indicate bitstream properties as well | the MPEG Haptics Coding standard ISO/IEC 23090-31:2025 | |||
| as receiver capabilities. The parameters 'maxlod', 'avtypes', 'bodypartmask', ' | [ISO.IEC.23090-31] SHOULD be inferred, although the sender and | |||
| maxfreq', 'minfreq', 'dvctypes', and 'modalities' can be sent by a sender to ref | receiver MAY use a specific value based on an out-of-band | |||
| lect the characteristics of bitstreams and can be set by a receiver to reflect t | agreement. | |||
| he nature and capabilities of local actuator devices, or a preferred set of bits | --> | |||
| tream properties. For example, different receivers MAY have different sets of lo | ||||
| cal actuators, in which case these parameters can be used to select a stream ada | <t>The parameter 'ver' indicates the version of the haptic standard specificatio | |||
| pted to the receiver. In some other cases, some receivers MAY indicate a prefere | n. If it is not specified, the parameter 'ver' indicates the version of the hapt | |||
| nce for a set of bitstream properties such as perceptions, min/max frequency, or | ic standard specification. If it is not specified, the value "2025" indicating t | |||
| body-part-mask, which contribute the most to the user experience for a given ap | he MPEG Haptics Coding standard ISO/IEC 23090-31:2025 <xref target="ISO.IEC.2309 | |||
| plication, in which case these parameters can be used to select a stream which i | 0-31"/> <bcp14>SHOULD</bcp14> be inferred, although the sender and receiver <bc | |||
| nclude and possibly prioritizes those properties. For example, if the haptic str | p14>MAY</bcp14> use a specific value based on an out-of-band agreement. The para | |||
| eam server provides more information than the body mask specified by the receive | meter 'profile' is used to restrict the number of tools used (e.g., the simple-p | |||
| r, the additional information can be either integrated into a single effect or i | arametric profile enables simpler implementations than the main profile). If it | |||
| gnored by the receiver.</t> | is not specified, the most general profile "main" <bcp14>SHOULD</bcp14> be infer | |||
| <t>The parameter 'silencesupp' can be used to indicate sender and receiv | red, although the sender and receiver <bcp14>MAY</bcp14> use a specific value ba | |||
| er capabilities or preferences. This parameter indicates whether silence suppres | sed on an out-of-band agreement. The parameter 'lvl' is used to further characte | |||
| sion should be used, as described in <xref target="mihs-trans"/>. If it is not s | rize implementations within a given profile, e.g., according to the maximum supp | |||
| pecified, the value "0", indicating no silence suppression, SHOULD be inferred, | orted number of channels, bands, and perceptions. If it is not specified, the mo | |||
| although the sender and receiver MAY use silence suppression based on an out-of- | st general level "2" <bcp14>SHOULD</bcp14> be inferred, although the sender and | |||
| band agreement.</t> | receiver <bcp14>MAY</bcp14> use a specific version based on an out-of-band agree | |||
| ment.</t> | ||||
| <!--[rfced] We note "body-part-mask" as well as "body part mask" | ||||
| (as defined in [ISO.IEC.23090-31]). Should the hyphenated form be | ||||
| updated as shown below for consistency? | ||||
| Original: | ||||
| In some other cases, some receivers MAY indicate a preference for a | ||||
| set of bitstream properties such as perceptions, min/max frequency, | ||||
| or body-part-mask, which contribute ... | ||||
| Perhaps: | ||||
| In some other cases, some receivers MAY indicate a preference for a | ||||
| set of bitstream properties such as perceptions, min/max frequency, | ||||
| or body part mask, which contribute ... | ||||
| --> | ||||
| <t>Other parameters can be used to indicate bitstream properties as well as rece | ||||
| iver 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 natur | ||||
| e and capabilities of local actuator devices or a preferred set of bitstream pro | ||||
| perties. For example, different receivers <bcp14>MAY</bcp14> have different sets | ||||
| of local actuators, in which case these parameters can be used to select a stre | ||||
| am adapted to the receiver. In some other cases, some receivers <bcp14>MAY</bcp1 | ||||
| 4> 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 expe | ||||
| rience for a given application, in which case these parameters can be used to se | ||||
| lect a stream that includes and possibly prioritizes those properties. For examp | ||||
| le, if the haptic stream server provides more information than the body mask spe | ||||
| cified 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 receiv | ||||
| er capabilities or preferences. This parameter indicates whether silence suppres | ||||
| sion should be used, as described in <xref target="mihs-trans"/>. If it is not s | ||||
| pecified, the value "0", indicating no silence suppression, <bcp14>SHOULD</bcp14 | ||||
| > be inferred, although the sender and receiver <bcp14>MAY</bcp14> use silence s | ||||
| uppression based on an out-of-band agreement.</t> | ||||
| </section> | </section> | |||
| <section anchor="declarative-sdp-considerations"> | <section anchor="declarative-sdp-considerations"> | |||
| <name>Declarative SDP Considerations</name> | <name>Declarative SDP Considerations</name> | |||
| <t>When haptic content over RTP is offered with SDP in a declarative sty le, the parameters capable of indicating both bitstream properties as well as re ceiver 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 f or receiving bitstreams. A receiver of the SDP is required to support all parame ters and values of the parameters provided; otherwise, the receiver MUST reject or not participate in the session. It falls on the creator of the session to us e values that are expected to be supported by the receiving application.</t> | <t>When haptic content over RTP is offered with SDP in a declarative sty le, the parameters capable of indicating both bitstream properties as well as re ceiver 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 ca pabilities for receiving bitstreams. A receiver of the SDP is required to suppor t 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 c reator of the session to use values that are expected to be supported by the rec eiving application.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="congestion-control-considerations"> | <section anchor="congestion-control-considerations"> | |||
| <name>Congestion Control Considerations</name> | <name>Congestion Control Considerations</name> | |||
| <t>The general congestion control considerations for transporting RTP data | <!--[rfced] We note only one instance of "HMPG" - is this correct, or | |||
| apply to HMPG haptics over RTP as well <xref target="RFC3550"/>.</t> | should it be lowercase? If it should remain as uppercase, how may we | |||
| <t>It is possible to adapt network bandwidth usage by adjusting either the | expand it? | |||
| encoder bit rate or by adjusting the stream content (e.g., level of detail, bod | ||||
| y parts, actuator frequency range, target device types, modalities). The conside | Original: | |||
| rations in this section are applicable to best-effort networks and controlled en | The general congestion control considerations for transporting RTP | |||
| vironments.</t> | data apply to HMPG haptics over RTP as well [RFC3550] | |||
| <t>In case of congestion, a receiver or intermediate node MAY prioritize i | --> | |||
| ndependent packets over dependent ones, since the non-reception of an independen | ||||
| t MIHS unit can prevent the decoding of multiple subsequent dependent MIHS units | <t>The general congestion control considerations for transporting RTP data apply | |||
| . In case of congestion, a receiver or intermediate node MAY prioritize initiali | to HMPG haptics over RTP as well <xref target="RFC3550"/>.</t> | |||
| zation MIHS units over other units, since initialization MIHS units contain meta | <t>It is possible to adapt network bandwidth usage by adjusting either the | |||
| data used to re-initialize the decoder, and MAY drop silent MIHS units before ot | encoder bit rate or the stream content (e.g., the LOD, body parts, actuator fre | |||
| her types of MIHS units, since a receiver MAY interpret a missing MIHS unit as a | quency range, target device types, and modalities). The considerations in this s | |||
| silence. It is also possible, using the layer field of the RTP payload header, | ection are applicable to best-effort networks and controlled environments.</t> | |||
| to allocate MIHS units to different layers based on their content, to prioritize | <!--[rfced] May we revise this text to be two sentences to improve | |||
| haptic data contributing the most to the user experience. In case of congestion | readability? | |||
| , intermediate nodes and receivers SHOULD use the MIHS layer value to determine | ||||
| the relative importance of haptic RTP packets.</t> | Original: | |||
| <t>Receivers should monitor timestamps and treat gaps as loss of the corre | In case of congestion, a receiver or intermediate node MAY prioritize | |||
| sponding MIHS units. MIHS units, as defined in <xref target="ISO.IEC.23090-31"/> | initialization MIHS units over other units, since initialization MIHS | |||
| , should be checked for structural integrity according to their type. When CRC16 | units contain metadata used to re-initialize the decoder, and MAY drop | |||
| or CRC32 information is present in MIHS units, receivers must validate data int | silent MIHS units before other types of MIHS units, since a receiver | |||
| egrity, and units failing CRC checks should be treated as lost. Receivers should | MAY interpret a missing MIHS unit as a silence. | |||
| further monitor indicators of service degradation such as unexpected silent gap | ||||
| s, repeated decoder reinitializations, or decoding failures. Receivers should re | Perhaps: | |||
| port packet loss to the sender using RTCP Receiver Reports <xref target="RFC3550 | In case of congestion, a receiver or intermediate node MAY prioritize | |||
| "/> and, when available, may report detailed loss and jitter metrics using mecha | initialization MIHS units over other units, as these contain metadata | |||
| nisms described in <xref target="RFC4585"/>.</t> | that is used to reinitialize the decoder. Additionally, a receiver or | |||
| intermediate node MAY drop silent units before other types, as a | ||||
| receiver MAY interpret a missing unit as silence. | ||||
| --> | ||||
| <t>In case of congestion, a receiver or intermediate node <bcp14>MAY</bcp14> pri | ||||
| oritize independent packets over dependent ones, since the non-reception of an i | ||||
| ndependent MIHS unit can prevent the decoding of multiple subsequent dependent M | ||||
| IHS units. In case of congestion, a receiver or intermediate node <bcp14>MAY</bc | ||||
| p14> prioritize initialization MIHS units over other units, since initialization | ||||
| MIHS units contain metadata used to reinitialize the decoder, and <bcp14>MAY</b | ||||
| cp14> drop silent MIHS units before other types of MIHS units, since a receiver | ||||
| <bcp14>MAY</bcp14> interpret a missing MIHS unit as a silence. It is also possib | ||||
| le, using the layer field of the RTP payload header, to allocate MIHS units to d | ||||
| ifferent layers based on their content to prioritize haptic data that contribute | ||||
| s 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 relat | ||||
| ive importance of haptic RTP packets.</t> | ||||
| <t>Receivers should monitor timestamps and treat gaps as loss of the corre | ||||
| sponding 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 int | ||||
| egrity, and units failing Cyclic Redundancy Checks (CRCs) should be treated as l | ||||
| ost. 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 jitte | ||||
| r metrics using mechanisms described in <xref target="RFC4585"/>.</t> | ||||
| </section> | </section> | |||
| <section anchor="security-considerations"> | <section anchor="security-considerations"> | |||
| <name>Security Considerations</name> | <name>Security Considerations</name> | |||
| <t>This RTP payload format is subject to security threats commonly associa | <t>The RTP payload format is subject to security threats commonly associat | |||
| ted with RTP payload formats, as well as threats specific to the interaction of | ed with RTP payload formats, as well as threats specific to the interaction of h | |||
| haptic devices with the physical world, and threats associated with the use of c | aptic devices with the physical world and threats associated with the use of com | |||
| ompression by the codec. | pression by the codec. | |||
| Security consideration for threats commonly associated with RTP payload formats | 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 | are outlined in <xref target="RFC3550"/>, as well as in RTP profiles such as RT | |||
| /AVP <xref target="RFC3551"/>), RTP/AVPF <xref target="RFC4585"/>, RTP/SAVP <xre | P/AVP <xref target="RFC3551"/>, RTP/AVPF <xref target="RFC4585"/>, RTP/SAVP <xre | |||
| f target="RFC3711"/>, or RTP/SAVPF <xref target="RFC5124"/>.</t> | f target="RFC3711"/>, and RTP/SAVPF <xref target="RFC5124"/>.</t> | |||
| <t>Haptic sensors and actuators operate within the physical environment. T | <t>Haptic sensors and actuators operate within the physical environment. T | |||
| his introduces the potential for information leakage through sensors, or damage | his introduces the potential for information leakage through sensors or damage t | |||
| to actuators due to data tampering. Additionally, misusing the functionalities o | o actuators due to data tampering. Additionally, misusing the functionalities of | |||
| f actuators (such as force, position, temperature, vibration, electro-tactile, e | actuators (such as force, position, temperature, vibration, electrotactile, etc | |||
| tc.) may pose a risk of harm to the user, for example by setting keyframe parame | .) may pose a risk of harm to the user, for example, by setting keyframe paramet | |||
| ters (e.g., amplitude, position, frequency) or channel gain to a value that surp | ers (e.g., amplitude, position, and frequency) or channel gain to a value that s | |||
| asses a permissible range. While individual devices can implement security measu | urpasses a permissible range. While individual devices can implement security me | |||
| res to reduce or eliminate those risks on a per-device basis, in some cases harm | asures to reduce or eliminate those risks on a per-device basis, in some cases, | |||
| can be inflicted by setting values which are permissible for the individual dev | harm can be inflicted by setting values that are permissible for the individual | |||
| ice. For example, causing contact with the physical environment or triggering un | device. For example, causing contact with the physical environment or triggering | |||
| expected force feedback can potentially harm the user. Each haptic system should | unexpected force feedback can potentially harm the user. Each haptic system sho | |||
| therefore implement system-dependent security measures, which are more error pr | uld therefore implement system-dependent security measures, which are more error | |||
| one. To limit the risk that attackers exploit weaknesses in haptic systems, it i | prone. To limit the risk that attackers exploit weaknesses in haptic systems, i | |||
| s important that haptic transmission should be protected against malicious traff | t is important that haptic transmission be protected against malicious traffic i | |||
| ic injection or tampering.</t> | njection or tampering.</t> | |||
| <t>However, as "Securing the RTP Framework: Why RTP Does Not Mandate a Sin gle Media Security Solution" <xref target="RFC7202"/> discusses, it is not an RT P payload format's responsibility to discuss or mandate what solutions are used to meet the basic security goals like confidentiality, integrity, and source aut henticity for RTP in general. The responsibility for implementing security mecha nisms lies with the application developer. They can find guidance on available s ecurity mechanisms and important considerations in "Options for Securing RTP Ses sions" <xref target="RFC7201"/>, although <xref target="RFC7201"/> is now consid ered dated and several mechanisms described therein have since evolved.</t> | <t>However, as "Securing the RTP Framework: Why RTP Does Not Mandate a Sin gle Media Security Solution" <xref target="RFC7202"/> discusses, it is not an RT P payload format's responsibility to discuss or mandate what solutions are used to meet the basic security goals like confidentiality, integrity, and source aut henticity for RTP in general. The responsibility for implementing security mecha nisms lies with the application developer. They can find guidance on available s ecurity mechanisms and important considerations in "Options for Securing RTP Ses sions" <xref target="RFC7201"/>, although <xref target="RFC7201"/> is now consid ered dated and several mechanisms described therein have since evolved.</t> | |||
| <t>Applications SHOULD use appropriate and current strong security mechani | <t>Applications <bcp14>SHOULD</bcp14> use appropriate and current strong s | |||
| sms. For modern best practices, applications can consider the following options: | ecurity mechanisms. For modern best practices, applications can consider the fol | |||
| </t> | lowing options:</t> | |||
| <ul spacing="normal"> | <!--[rfced] BCP 195 contains RFCs 8996 and 9325. Should there be a | |||
| reference to BCP 195 in this sentence (with a corresponding entry under | ||||
| the Informative References section), or is the reference to [RFC9325] | ||||
| sufficient? | ||||
| Current: | ||||
| (D)TLS-based protection: For guidance on using TLS 1.3 and DTLS, | ||||
| applications should refer to BCP 195, including [RFC9325], which | ||||
| provides up-to-date recommendations. | ||||
| --> | ||||
| <ul spacing="normal"> | ||||
| <li> | <li> | |||
| <t>(D)TLS-based protection: | <t>(D)TLS-based protection: | |||
| For guidance on using TLS 1.3 and DTLS, applications should refer to BCP 195, | For guidance on using TLS 1.3 and DTLS, applications should refer to BCP 195, | |||
| including <xref target="RFC9325"/>, which provides up-to-date recommendations.</ t> | including <xref target="RFC9325"/>, which provides up-to-date recommendations.</ t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>IPsec-based protection: | <t>IPsec-based protection: | |||
| Relevant and current protocol specifications include <xref target="RFC4303"/> (E SP) and <xref target="RFC7296"/> (IKEv2).</t> | Relevant and current protocol specifications include <xref target="RFC4303"/> (" IP Encapsulating Security Payload (ESP)") and <xref target="RFC7296"/> ("Interne t Key Exchange Protocol Version 2 (IKEv2)").</t> | |||
| </li> | </li> | |||
| </ul> | </ul> | |||
| <t>This document does not mandate a specific security mechanism. Instead, | <t>This document does not mandate a specific security mechanism. Instead, | |||
| applications are responsible for selecting mechanisms that follow current best p | applications are responsible for selecting mechanisms that follow current best p | |||
| ractices for confidentiality, integrity, and source authentication, and that ref | ractices for confidentiality, integrity, and source authentication and that refl | |||
| lect the evolving security landscape beyond what is covered in <xref target="RFC | ect the evolving security landscape beyond what is covered in <xref target="RFC7 | |||
| 7201"/>.</t> | 201"/>.</t> | |||
| <t>The haptic codec used with this payload format uses a compression algor | <t>The haptic codec used with this payload format uses a compression algor | |||
| ithm (see sections 8.2.8.5 and 8.3.3.2 in <xref target="ISO.IEC.23090-31"/>). An | ithm (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 which are complex to | attacker may inject pathological datagrams into the stream that are complex to | |||
| decode and cause the receiver to be overloaded, similarly to <xref target="RFC3 | decode and cause the receiver to be overloaded, similarly to <xref target="RFC35 | |||
| 551"/>.</t> | 51"/>.</t> | |||
| <t>End-to-end security with authentication, integrity, or confidentiality protection will prevent a Media-Aware Network Element (MANE) from performing med ia-aware operations other than discarding complete packets. In the case of confi dentiality protection, it will even be prevented from discarding packets in a me dia-aware way. To be allowed to perform such operations, a MANE is required to b e a trusted entity that is included in the security context establishment.</t> | <t>End-to-end security with authentication, integrity, or confidentiality protection will prevent a Media-Aware Network Element (MANE) from performing med ia-aware operations other than discarding complete packets. In the case of confi dentiality protection, it will even be prevented from discarding packets in a me dia-aware way. To be allowed to perform such operations, a MANE is required to b e a trusted entity that is included in the security context establishment.</t> | |||
| </section> | </section> | |||
| <section anchor="iana-considerations"> | <section anchor="iana-considerations"> | |||
| <name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
| <section anchor="media-type-registration-update"> | <section anchor="media-type-registration-update"> | |||
| <name>Media Type Registration Update</name> | <name>Media Type Registration Update</name> | |||
| <t>This memo updates the 'hmpg' haptic subtype defined in <xref target=" | <t>This memo updates the 'hmpg' haptic subtype defined in <xref target=" | |||
| RFC9695"/> for use with the MPEG-I haptics streamable binary coding format descr | RFC9695"/> for use with the MPEG-I haptics streamable binary coding format descr | |||
| ibed in ISO/IEC 23090-31: Haptics coding <xref target="ISO.IEC.23090-31"/>. This | ibed in ISO/IEC 23090-31: Haptics coding <xref target="ISO.IEC.23090-31"/>. This | |||
| memo especially defines optional parameters for this type in <xref target="opti | memo defines optional parameters for this type in <xref target="optional-param" | |||
| onal-param"/>. The original subtype registration for haptics/hmpg, registered wi | />. The original subtype registration for 'haptics/hmpg', registered with IANA i | |||
| th IANA in <xref target="RFC9695"/>, did not include any required or optional pa | n <xref target="RFC9695"/>, did not include any required or optional parameters. | |||
| rameters. This document introduces optional parameters to enable extended functi | This document introduces optional parameters to enable extended functionality w | |||
| onality while maintaining backward compatibility.</t> | hile maintaining backward compatibility.</t> | |||
| <t>A mapping of the parameters into the Session Description Protocol (SD | <t>A mapping of the parameters into SDP <xref target="RFC8866"/> is also | |||
| P) <xref target="RFC8866"/> is also provided for applications that use SDP. Equi | provided for applications that use SDP. Equivalent parameters could be defined | |||
| valent parameters could be defined elsewhere for use with control protocols that | elsewhere for use with control protocols that do not use SDP. The receiver <bcp1 | |||
| do not use SDP. | 4>MUST</bcp14> ignore any parameter unspecified in this memo.</t> | |||
| The receiver MUST ignore any parameter unspecified in this memo.</t> | <t>IANA has updated the registration for 'haptics', described in <xref t | |||
| <t>This document requests an SDP parameters registration for the haptic | arget="sdp-registration"/>, in the "haptics" registry within the "Media Types" r | |||
| media type, as described in <xref target="sdp-registration"/>.</t> | egistry group and listed document as an additional reference.</t> | |||
| <t>The following entries identify the media type being updated:</t> | <t>The following entries identify the updates to the 'media/haptics' reg | |||
| <t>Type name: haptics</t> | istration:</t> | |||
| <t>Subtype name: hmpg</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> | <t>The following entries are replaced by this memo:</t> | |||
| <t>Optional parameters: see section 6.2 of RFC XXX (note to RFC editor: | <dl> | |||
| replace with this RFC's number).</t> | <dt>Optional parameters:</dt> | |||
| <t>Person & email address to contact for further information: Yeshwa | <dd> | |||
| nt Muthusamy (yeshwant@yeshvik.com) and Hyunsik Yang (hyunsik.yang@interdigital. | <t>See <xref target="sdp-registration"/> of RFC 9993</t> | |||
| com)</t> | </dd> | |||
| <dt>Person & email address to contact for further information:</dt | ||||
| > | ||||
| <dd> | ||||
| <t><contact fullname="Yeshwant Muthusamy"/> (yeshwant@yeshvik.com) a | ||||
| nd <contact fullname="Hyunsik Yang"/> (hyunsik.yang@interdigital.com)</t> | ||||
| </dd> | ||||
| </dl> | ||||
| <!-- [rfced] We had trouble matching up the text in the IANA Considerati | ||||
| ons with the IANA registrations. We have attempted to make the text more clear. | ||||
| This includes adding a section 10.2 to specify the new SDP parameters media re | ||||
| gistration. | ||||
| Please review carefully and let us know if any updates are needed. | ||||
| --> | ||||
| </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> | |||
| </section> | </section> | |||
| <section anchor="acknowledgments"> | ||||
| <name>Acknowledgments</name> | ||||
| <t>Thanks to Philippe Guillotel, Quentin Galvane, Jonathan Lennox, Marius | ||||
| Kleidl and Stephan Wenger for the comments and discussions about this draft.</t> | ||||
| </section> | ||||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references anchor="sec-combined-references"> | <references anchor="sec-combined-references"> | |||
| <name>References</name> | <name>References</name> | |||
| <references anchor="sec-normative-references"> | <references anchor="sec-normative-references"> | |||
| <name>Normative References</name> | <name>Normative References</name> | |||
| <reference anchor="ISO.IEC.23090-31" target="https://www.iso.org/standar d/86122.html"> | <reference anchor="ISO.IEC.23090-31" target="https://www.iso.org/standar d/86122.html"> | |||
| <front> | <front> | |||
| <title>Information technology - Coded representation of immersive me dia</title> | <title>Information technology - Coded representation of immersive me dia - Part 31: Haptics coding</title> | |||
| <author> | <author> | |||
| <organization>ISO/IEC</organization> | <organization>ISO/IEC</organization> | |||
| </author> | </author> | |||
| <date year="2025"/> | <date year="2025"/> | |||
| </front> | </front> | |||
| <seriesInfo name="ISO/IEC" value="23090-31:2025"/> | <seriesInfo name="ISO/IEC" value="23090-31:2025"/> | |||
| </reference> | </reference> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 119.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 119.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 174.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 174.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 550.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 550.xml"/> | |||
| skipping to change at line 1087 ¶ | skipping to change at line 1461 ¶ | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 296.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 296.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 303.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 303.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 325.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 325.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 124.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 124.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 711.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 711.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 551.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 551.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 585.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 585.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 104.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 104.xml"/> | |||
| </references> | </references> | |||
| </references> | </references> | |||
| <?line 825?> | ||||
| <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="Ma | ||||
| rius Kleidl"/>, and <contact fullname="Stephan Wenger"/> for the comments and di | ||||
| scussions about this document.</t> | ||||
| <!--[rfced] FYI: We have added an expansion for the following | ||||
| abbreviation per Section 3.6 of RFC 7322 ("RFC Style Guide"). | ||||
| Please review this as well as each expansion in the document | ||||
| carefully to ensure correctness. | ||||
| Cyclic Redundancy Checks (CRCs) | ||||
| --> | ||||
| <!--[rfced] Please review the "Inclusive Language" portion of the online | ||||
| Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> | ||||
| and let us know if any changes are needed. Updates of this nature typically | ||||
| result in more precise language, which is helpful for readers. | ||||
| Note that our script did not flag any words in particular, but this should | ||||
| still be reviewed as a best practice. | ||||
| --> | ||||
| </section> | ||||
| </back> | </back> | |||
| <!-- ##markdown-source: | <!-- ##markdown-source: | |||
| H4sIAPCQc2kAA+19aW8bSZLodwP+DwkZWJPbRVqHTw0MrMaSx9qxbK0l90xv | H4sIAD94C2oAA+19a3MbR5Lg9/4VtVDECZgBwJeenPF4OBI15o4eXJGyx+dw | |||
| o9Eokkmy2sUqTmVRMtv2++0vrryqijradmPx3mrQY0qsyoyMjIw7IgeDwd07 | OBpAgWir0Y3papCCRe9vud9yv+zyVa9GgwQl2bF3t5zwCGh0VWVlZeWrMrMG | |||
| dVbnel9tvTs/VafpOi/TiXpZVou0VtOyUq/SZZ2NzdbdO+loVOmLfQUPDuTB | g0FSZ3WuD9Xb81N1mq7yMp2oF2U1T2s1LSv1Tbqos7FJ0tGo0pe3vjYpx0U6 | |||
| AX97986kHBfpAoaZVOm0HmS6ng7Si3pcVnpQ1cvBnEcZ5GmtTQ3Pw7/76tPh | h+4mVTqtB5mup4P0sh6XlR5U9WIw4/cGeVprUyfFcj7S1aF6+vTpQTKBZ4dq | |||
| wfnRl7t3TF3pdLGvjo/OX969M4bvZmW13lemnty9ky2rfVVXK1Pvbm8/294F | f3f/0WD3YWKWo3lmTFYW9WoBz0+Oz18kY3jloqxWh8rUk2RcFkYXZmkOVV0t | |||
| QODpfXVepYVZlhWMdllWH2ZVuVruK5n07p3VEucw++rZ42ePcIq0mPya5mUB | dZItKvpk6v3d3ae7+0la6fRQfXdynlyV1fuLqlwuDpWAkywXOCC0ffro6cOk | |||
| 8661uXtnme2rn+tynCgDg1R6auDTesEfYD2LdLnMitkvd+/AjKt6Xlb7d+8o | HJky1/g9gVkeJHlaXBwqXSSL7FD9UJfjvjJlVVd6auDTao4ffkze6xX0PDlM | |||
| NcD/UyorYOhXZ0P1U1rM+E+MgFfrVWGyD8Hfy2oGSytqXR1ms6xOc/6zXqRZ | knRZz8rqMFFqAP8plRXQ8zdnQ/U9dERPGC/frJaFyd77x2UF45wUta6eZxdZ | |||
| vq/m/PxwDc//R4ZPTfip4bhc8JPjclXUiI/3ZwdNEP45VBMN+7UOYfhnepHp | neb0VM/TLD9UM357uIK3/5rhSxN+aTgu5/TiuFwWNSLkXZHVeqLOapyUKqfq | |||
| KvriaiA+0gvDiZ6W6+uAeJEW6SRFrBREJdmFJsQcn70dHh+9GO7uwS4N9nb2 | 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 | |||
| h1Gy/F+wLbk5vrIAAA== | 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 | ||||
| 1QAA | ||||
| --> | --> | |||
| </rfc> | </rfc> | |||
| End of changes. 73 change blocks. | ||||
| 918 lines changed or deleted | 1381 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||