<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-law-moq-carp-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title>CARP - a CMAF compliant implementation of WARP</title>
    <seriesInfo name="Internet-Draft" value="draft-law-moq-carp-00"/>
    <author initials="W." surname="Law" fullname="Will Law">
      <organization>Akamai</organization>
      <address>
        <email>wilaw@akamai.com</email>
      </address>
    </author>
    <date year="2025" month="November" day="03"/>
    <area>Web and Internet Transport</area>
    <workgroup>Media Over QUIC</workgroup>
    <keyword>moq</keyword>
    <keyword>moqt</keyword>
    <keyword>WARP</keyword>
    <keyword>CMAF</keyword>
    <abstract>
      <?line 50?>

<t>This document updates <xref target="WARP"/> by defining a new optional feature for the streaming format.
It specifies the syntax and semantics for adding CMAF-packaged media <xref target="CMAF"/> to WARP.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://wilaw.github.io/carp/draft-law-moq-carp.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-law-moq-carp/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Media Over QUIC Working Group mailing list (<eref target="mailto:moq@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/moq/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/moq/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/wilaw/carp"/>.</t>
    </note>
  </front>
  <middle>
    <?line 56?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>CARP Streaming Format (CARP) is a media format designed to deliver CMAF <xref target="CMAF"/> and
LOC [LOC] compliant media content over MOQ Transport (MOQT) <xref target="MoQTransport"/>. CARP extends
WARP and retains all the scope, capabilities and features of WARP including the catalog
format, timeline, ABR switching and LOC support. CARP is targeted at real-time and
interactive levels of live latency, as well as VOD content.</t>
      <t>This document describes version 1 of the CARP streaming format.</t>
    </section>
    <section anchor="warp-extension">
      <name>WARP Extension</name>
      <t>All of the specifications, requirements, and terminology defined in <xref target="WARP"/> apply to
implementations of this extension unless explicitly noted otherwise in this document.</t>
    </section>
    <section anchor="cmaf-packaging">
      <name>CMAF Packaging</name>
      <section anchor="initialization-headers">
        <name>Initialization headers</name>
        <t>A CMAF header is a sequence of CMAF constrained ISO BMFF boxes that do not reference any
media samples, but are associated with a CMAF track and are necessary for initializing
the decoding of the subsequent CMAF fragments.</t>
        <t>The header for a given MOQT Track <bcp14>MUST</bcp14> be packaged by encoding the header using <xref target="BASE64"/>
and then inserting that payload as the value of the Initialization data "initData" field
in the catalog entry for that Track.</t>
      </section>
      <section anchor="switching-sets-and-tracks">
        <name>Switching sets and tracks</name>
        <t>This specification defines a direct mapping between CMAF Tracks ( <xref target="CMAF"/> Sect 3.2.1) and
MOQT tracks (<xref target="MoQTransport"/> Sect 2.3).</t>
        <t>CMAF switching sets are a set of one or more CMAF tracks (3.2.1), where each track is an
alternative encoding of the same source content and are constrained to enable seamless
track switching (3.3.9).</t>
        <t>Each CMAF track in a switching set <bcp14>MUST</bcp14> be transmitted as a separate MOQT Track. The
catalog entry for each of these tracks in the switching set <bcp14>MUST</bcp14> carry a Alternate group
(altGroup) key with a common value.</t>
        <t>The MOQT Group numbers within these switching set tracks <bcp14>MUST</bcp14> be media time-aligned.
Mandating the track being media time-aligned requires that the presentation time of the
first media sample contained within the first MOQT Object of each MOQT Group is identical.</t>
      </section>
      <section anchor="object-packaging">
        <name>Object Packaging</name>
        <t>The payload of each Object is subject to the following requirements:</t>
        <ul spacing="normal">
          <li>
            <t><bcp14>MUST</bcp14> contain at least one Movie Fragment Box (moof) followed by a Media Data
Box (mdat). This is equivalent to requiring that each Object hold at least one CMAF
Chunk. The Media Fragment Box (moof) <bcp14>MUST</bcp14> contain a Movie Fragment Header Box
(mfhd) and Track Box (trak) with a Track ID (track_ID) matching a Track Box in the
initialization fragment.</t>
          </li>
          <li>
            <t><bcp14>MAY</bcp14> contain multiple successive CMAF Chunks.</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> contain a single [ISOBMFF] track.</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> contain media content encoded in decode order.</t>
          </li>
        </ul>
      </section>
      <section anchor="group-packaging">
        <name>Group Packaging</name>
        <t>Each MOQT Group</t>
        <ul spacing="normal">
          <li>
            <t><bcp14>MUST</bcp14> begin with an Object containing a stream access point (SAP type 1 or 2).</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> contain one or more contiguous Groups of Pictures (GOPs).</t>
          </li>
          <li>
            <t>The Group boundary <bcp14>MUST</bcp14> align with a CMAF Fragment boundary. CMAF Fragments and CMAF
Chunks <bcp14>MUST</bcp14> not span Groups.</t>
          </li>
        </ul>
      </section>
      <section anchor="catalog-description">
        <name>Catalog description</name>
        <section anchor="cmaf-packaging-type">
          <name>CMAF packaging type</name>
          <t>This specification extends the allowed packaging values defined in WARP Section 5.1.12
to include one new entry, as defined in Table 1 below:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">CMAF</td>
                <td align="left">cmaf</td>
                <td align="left">This RFC</td>
              </tr>
            </tbody>
          </table>
          <t>Every Track entry in a CARP catalog carrying CMAF-packaged media data <bcp14>MUST</bcp14> declare a
"packaging" type value of "cmaf".</t>
        </section>
        <section anchor="max-sap-starting-types">
          <name>Max SAP starting types</name>
          <t>This specification adds two track-level catalog fields, as defined in Table 2 below:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Field</th>
                <th align="left">Name</th>
                <th align="left">Definition</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Max Group SAP starting type</td>
                <td align="left">maxGrpSapStartingType</td>
                <td align="left">
                  <xref target="maxgrpsapstartingtype"/></td>
              </tr>
              <tr>
                <td align="left">Max Object SAP starting type</td>
                <td align="left">maxObjSapStartingType</td>
                <td align="left">
                  <xref target="maxobjsapstartingtype"/></td>
              </tr>
            </tbody>
          </table>
          <section anchor="maxgrpsapstartingtype">
            <name>Max Group SAP starting type</name>
            <t>Location: T    Required: Optional   JSON Type: Number</t>
            <t>A number indicating the maximum SAP type the MOQT Groups in the track start with.</t>
          </section>
          <section anchor="maxobjsapstartingtype">
            <name>Max Object SAP starting type</name>
            <t>Location: T    Required: Optional   JSON Type: Number</t>
            <t>A number indicating the maximum SAP type the MOQT Objects in the track start with.</t>
          </section>
        </section>
      </section>
      <section anchor="event-timelines">
        <name>Event Timelines</name>
        <section anchor="saptypetimeline">
          <name>SAP Type timeline</name>
          <t>CARP defines a special instance of an Event Timeline track, termed the SAP Type timeline
track. Its purpose is to convey information about the distribution of Stream Access Point
types and their associated Earlist Presentation Times.</t>
          <t>In the catalog, the SAP-type timeline track <bcp14>MUST</bcp14> include a 'packaging' value of 'eventtimeline"
and <bcp14>MUST</bcp14> include an 'eventType' value of 'org.ietf.moq.carp.sap'.</t>
          <t>In the SAP Type timeline JSON payload:</t>
          <ul spacing="normal">
            <li>
              <t>The index reference <bcp14>MUST</bcp14> be 'l' for Location</t>
            </li>
            <li>
              <t>The data field is a JSON Array containing two integers. The first integer defines SAP type
with an allowed value of 0,1,2 or 3. The value 0 indicates that the Object does not start
with an ISOBMFF stream access point. The value equal to 1, 2, or 3 indicates that the Object
begins with a stream access point of SAP type 1, 2, or 3, respectively. When the Object is
the first Object in the Group, the value <bcp14>MUST</bcp14> be equal to 1 or 2. The second integer defines
the earliest media presentation timestamp, rounded to the nearest millisecond, of all media
samples in the Object defined by the Location of that record.</t>
            </li>
          </ul>
        </section>
        <section anchor="sap-type-timeline-track-example">
          <name>SAP-type timeline track example</name>
          <t>This shows an example of 30-fps HEVC-encoded content, in which each 4s Group beings with
SAP-type 2 (i.e., the first picture in the Group is an IDR picture, while there may be one or more
pictures in the Group following the IDR picture in decoding order but preceding it in output
order). After 2 seconds in each Group, there is a SAP-type 3, i.e., a CRA picture, which
is associated with one or more Random Access Skipped
Leading (RASL) pictures. A small buffer of frames (10 frames at 30 fps) is skipped/discarded
(RASL pictures) when the streaming session starts from the SAP-type 3 location. In this example,
the EPT is the presentation time of the first picture after the RASL pictures in decoding order;
all pictures after the RASL pictures can be fully correctly decoded and are thus presentable
when the streaming session starts from the SAP-type 3 location. Note that if the streaming session
starts from the start of the Group, then these RASL pictures can be fully correctly decoded and are
thus presentable.</t>
          <sourcecode type="json"><![CDATA[
[
    {
        "l": [0,0],
        "data": [2,0]
    },
    {
        "l": [0,60],
        "data": [3,2100]
    },
    {
        "l": [1,0],
        "data": [2,4000]
    },
    {
        "l": [1,60],
        "data": [3,6100]
    }
]
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="catalog-examples">
      <name>Catalog Examples</name>
      <t>The following section provides non-normative JSON examples of various catalogs
compliant with this draft.</t>
      <section anchor="simulcast-video-tracks-3-alternate-video-qualities-along-with-audio">
        <name>Simulcast video tracks - 3 alternate video qualities along with audio</name>
        <t>This example shows catalog for a media producer capable of sending 3
time-aligned video tracks for high definition, low definition and medium
definition video qualities, along with an audio track.</t>
        <sourcecode type="json"><![CDATA[
{
  "version": 1,
  "generatedAt": 1746104606044,
  "tracks":[
    {
      "name": "hd",
      "renderGroup": 1,
      "packaging": "cmaf",
      "isLive": true,
      "initData": "AAAAIGZ0eXBpc281AAA...AAAAAAAAAAAAA",
      "role": "video",
      "codec":"avc1.640028",
      "width":1920,
      "height":1080,
      "bitrate":5000000,
      "framerate":30,
      "altGroup":1
    },
    {
      "name": "md",
      "renderGroup": 1,
      "packaging": "cmaf",
      "isLive": true,
      "initData": "AAAAHGZ0eXBpc281AAA...AAAAAAAAAAAAAA",
      "role": "video",
      "codec":"avc1.64001e",
      "width":720,
      "height":640,
      "bitrate":3000000,
      "framerate":30,
      "altGroup":1
    },
    {
      "name": "sd",
      "renderGroup": 1,
      "packaging": "cmaf",
      "isLive": true,
      "initData": "AAAAHGZ0eXBpc281AAA...AAAAAAAAAAAAAA",
      "role": "video",
      "codec":"avc1.64000d",
      "width":192,
      "height":144,
      "bitrate":500000,
      "framerate":30,
      "altGroup":1
    },
    {
      "name": "audio",
      "renderGroup": 1,
      "packaging": "cmaf",
      "isLive": true,
      "initData": "AAAAHGZ0eXBpc281AAA...AAAAAAAAAAAAAA",
      "role": "audio",
      "codec":"mp4a.40.5",
      "samplerate":48000,
      "channelConfig":"2",
      "bitrate":67071
    }
   ]
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="MoQTransport">
        <front>
          <title>Media over QUIC Transport</title>
          <author fullname="Luke Curley" initials="L." surname="Curley">
            <organization>Discord</organization>
          </author>
          <author fullname="Kirill Pugin" initials="K." surname="Pugin">
            <organization>Meta</organization>
          </author>
          <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
            <organization>Cisco</organization>
          </author>
          <author fullname="Victor Vasiliev" initials="V." surname="Vasiliev">
            <organization>Google</organization>
          </author>
          <author fullname="Ian Swett" initials="I." surname="Swett">
            <organization>Google</organization>
          </author>
          <date day="3" month="March" year="2025"/>
          <abstract>
            <t>   This document defines the core behavior for Media over QUIC Transport
   (MOQT), a media transport protocol designed to operate over QUIC and
   WebTransport, which have similar functionality.  MOQT allows a
   producer of media to publish data and have it consumed via
   subscription by a multiplicity of endpoints.  It supports
   intermediate content distribution networks and is designed for high
   scale and low latency distribution.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-moq-transport-10"/>
      </reference>
      <reference anchor="WARP">
        <front>
          <title>WARP Streaming Format</title>
          <author fullname="Will Law" initials="W." surname="Law">
            <organization>Akamai</organization>
          </author>
          <author fullname="Luke Curley" initials="L." surname="Curley">
            <organization>Twitch</organization>
          </author>
          <author fullname="Victor Vasiliev" initials="V." surname="Vasiliev">
            <organization>Google</organization>
          </author>
          <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
            <organization>Cisco</organization>
          </author>
          <author fullname="Kirill Pugin" initials="K." surname="Pugin">
            <organization>Meta</organization>
          </author>
          <date day="22" month="July" year="2025"/>
          <abstract>
            <t>   This document specifies the WARP Streaming Format, designed to
   operate on Media Over QUIC Transport.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-moq-warp-01"/>
      </reference>
      <reference anchor="CMAF">
        <front>
          <title>Information technology — Multimedia application format (MPEG-A) — Part 19: Common media application format (CMAF) for segmented media</title>
          <author initials="I. O. for" surname="Standardization" fullname="International Organization for Standardization">
            <organization>ISO</organization>
          </author>
          <date year="2021" month="October"/>
        </front>
      </reference>
      <reference anchor="BASE64">
        <front>
          <title>The Base16, Base32, and Base64 Data Encodings</title>
          <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
          <date month="October" year="2006"/>
          <abstract>
            <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4648"/>
        <seriesInfo name="DOI" value="10.17487/RFC4648"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 318?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
