<?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.27 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-moq-loc-00" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="media-container">Low Overhead Media Container</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-moq-loc-00"/>
    <author fullname="Mo Zanaty">
      <organization>Cisco</organization>
      <address>
        <email>mzanaty@cisco.com</email>
      </address>
    </author>
    <author fullname="Suhas Nandakumar">
      <organization>Cisco</organization>
      <address>
        <email>snandaku@cisco.com</email>
      </address>
    </author>
    <author fullname="Peter Thatcher">
      <organization>Microsoft</organization>
      <address>
        <email>pthatcher@microsoft.com</email>
      </address>
    </author>
    <date/>
    <area>Web and Internet Transport</area>
    <workgroup>Media Over QUIC</workgroup>
    <keyword>media over quic</keyword>
    <abstract>
      <?line 44?>

<t>This specification describes a Low Overhead Media Container (LOC) format for
encoded and encrypted audio and video media data to be used
primarily for interactive Media over QUIC Transport (MOQT).
It further defines the
LOC Streaming Format for the MOQ Common Catalog format
for publishers to annouce and describe their LOC tracks and for
subscribers to consume them. Examples are also provided
for building media applications using LOC and MOQT.</t>
    </abstract>
  </front>
  <middle>
    <?line 56?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This specification describes a low-overhead media container format for
encoded and encrypted audio and video media data, as well as a MOQ Common Catalog streaming format called LOC to describe such tracks.</t>
      <t>"Low-overhead" refers to minimal extra encapsulation as well as minimal application overhead when interfacing with WebCodecs <xref target="WebCodecs"/>.</t>
      <t>The container format description is specified for all audio and video codecs defined in the
WebCodecs Codec Registry <xref target="WEBCODECS-CODEC-REGISTRY"/>.
The audio and video payload bitstream is identical to the "internal data"
inside an EncodedAudioChunk and EncodedVideoChunk, respectively, specified in the registry.</t>
      <t>(Note: Do we need to support timed text tracks such as Web Video Text Tracks (WebVTT) ?)</t>
      <t>In addition to the media payloads, critical metadata is also specified for audio and video payloads.
(Note: Align with MOQT terminology of either "metadata" or "header".)</t>
      <t>A primary motivation is to align with media formats used in WebCodecs to minimize
extra encapsulation and application overhead when interfacing with WebCodecs.
Other container formats like CMAF or RTP would require
more extensive application overhead in format conversions, as well as larger encapsultion overhead
which may burden some use cases like low bitrate audio scenarios.</t>
      <t>This specification can also be used by applications outside the context of WebCodecs or a web browser.
While the media payloads are defined by referring to the "internal data" of an
EncodedAudioChunk or EncodedVideoChunk in the WebCodecs Codec Registry, this "internal data"
is the elementary bitstream format of codecs without any encapsulation. Referring to the WebCodecs
Codec Registry avoids duplicating it in an identical IANA registry.</t>
      <ul spacing="normal">
        <li>
          <t><xref target="payload"/> defines the core media payload formats.</t>
        </li>
        <li>
          <t><xref target="headers"/> defines the metadata associated with audio and video payloads.</t>
        </li>
        <li>
          <t><xref target="catalog"/> describes the LOC Streaming Format bindings to the MoQ Common Catalog format including examples.</t>
        </li>
      </ul>
      <section anchor="requirements-notation-and-conventions">
        <name>Requirements Notation and Conventions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>Track, Group, Subgroup, Object, and their corresponding identifiers (ID or alias)
are defined in <xref target="MoQTransport"/> and used here to refer to those aspects of the
MOQT Object Model.</t>
      </section>
    </section>
    <section anchor="payload">
      <name>Payload Format</name>
      <t>The WebCodecs Codec Registry defines the contents of an EncodedAudioChunk and
EncodedVideoChunk for the audio and video codec formats in the registry. The
"internal data" in these chunks is used directly in this specification as
the "LOC Payload" bitstream. This "internal data" is the elementary bitstream format
of each codec without any encapsulation.</t>
      <section anchor="video">
        <name>Video Payload Format</name>
        <t>For video formats with multiple bitstream formats in the WebCodecs Registry, such as H.264/AVC or H.265/HEVC, the LOC Payload can use either the "canonical" format ("avc" or "hevc") often used in storage containers like MP4 / ISO BMFF, or the "annexB" format used in some non-MP4 applications. These formats differ in how they carry initialization and configuration information called parameter sets as well as how parts of a video frame are delimited with length prefixes or start codes.</t>
        <section anchor="parameter-sets-in-payload">
          <name>Parameter Sets In Payload</name>
          <t>Parameter sets can be sent in the bitstream payload before key frames, similar to "annexB" formats. Newer "canonical" formats such as "avc3" and "hev1" codec strings also support parameter sets in the bitstream payload or outside it in "extradata" metadata headers.</t>
        </section>
        <section anchor="parameter-sets-in-headers">
          <name>Parameter Sets in Headers</name>
          <t>Parameter sets can be sent in headers before key frames, as described in the Config LOC Header Extension <xref target="config"/>, similar to the original "canonical" formats such as "avc1" and "hvc1" codec strings. The Config contents are the "extradata" bytes defined by the corresponding codec specification, which map to the WebCodecs VideoDecoderConfig description property in the EncodedVideoChunkMetadata.</t>
        </section>
        <section anchor="length-prefixes-in-payload">
          <name>Length Prefixes in Payload</name>
          <t>A 4-byte length prefix can be sent before each NAL Unit, similar to "canonical" ("avc" or "hevc") formats. A length value of 1 should be interpreted as a start code rather than a length. The length is in network byte order, i.e. big endian, and <bcp14>SHOULD</bcp14> be 4 bytes long to disambiguate from start code prefixes. A length prefix less than 4 bytes long, which is uncommon, <bcp14>MAY</bcp14> be specified in the Config <xref target="config"/>.</t>
        </section>
        <section anchor="start-code-prefixes-in-payload">
          <name>Start Code Prefixes in Payload</name>
          <t>A 4-byte start code can be sent before each NAL Unit, similar to "annexB" formats. The start code value is 1 in network byte order, i.e. big endian, and <bcp14>SHOULD</bcp14> be 4 bytes long to disambiguate from length prefixes. A 3-byte start code, which is uncommon, <bcp14>MAY</bcp14> be used if the track never uses length prefixes or any Config <xref target="config"/>.</t>
        </section>
      </section>
      <section anchor="moq-object-mapping">
        <name>MOQ Object Mapping</name>
        <t>An application object when transported as a <xref target="MoQTransport"/> object is composed of
a MOQ Object Header, with optional Extensions, and a Payload. 
Media objects encoded using the container format defined in this
specification populate the MOQ Object Payload with the LOC Payload, and 
the MOQ Object Header Extensions with the LOC Header Extensions, as shown below.</t>
        <t>The LOC Payload is the "internal data" of an EncodedAudioChunk or EncodedVideoChunk.</t>
        <t>The LOC Header Extensions carry optional metadata related to the Payload.</t>
        <artwork type="ascii-art"><![CDATA[
<-----------  MOQ Object  ------------>
+----------+--------------+-----------+
|   MOQ    |  MOQ Header  |    MOQ    |
|  Header  |  Extensions  |  Payload  |
+----------+--------------+-----------+
                  |             |
                  |             |
           +--------------+-----------+
           |  LOC Header  |    LOC    |
           |  Extensions  |  Payload  |
           +--------------+-----------+

LOC Header Extensions = some MOQ Object Header Extensions
LOC Payload = all MOQ Object Payload
LOC Payload = "internal data" of EncodedAudio/VideoChunk

]]></artwork>
      </section>
      <section anchor="headers">
        <name>LOC Header Extensions</name>
        <t>The LOC Header Extensions carry optional metadata for the corresponding LOC Payload.
The LOC Header Extensions are contained within the MOQ Object Header Extensions.
This metadata provides necessary information for 
end subscribers, relays and other intermediaries
to perform their operations without accessing the media payload. For example, 
media switches can use this metadata to perform their media switching decisions
without accessing the payload which may be encrypted end-to-end
(from original publisher to end subscribers).</t>
        <t>The following sections define specific metadata as LOC Header Extensions and
register them in the IANA registry for MOQ Object Header Extensions.</t>
        <t>Other specifications can define other metadata as LOC Header Extensions and
register them in the same registry. Each extension must specify the following
information in the IANA registry.</t>
        <ul spacing="normal">
          <li>
            <t>Name: Short name for the metadata (not sent on the wire)</t>
          </li>
          <li>
            <t>Description: Detailed description (not sent on the wire)</t>
          </li>
          <li>
            <t>ID: Identifier assigned by the registry (varint)</t>
          </li>
          <li>
            <t>Length: Length of metadata Value in bytes (varint if ID is odd, omitted if ID is even)</t>
          </li>
          <li>
            <t>Value: Value of metadata (varint if ID is even, Length bytes if ID is odd)</t>
          </li>
        </ul>
        <section anchor="common-header-data">
          <name>Common Header Data</name>
          <section anchor="capture-timestamp">
            <name>Capture Timestamp</name>
            <ul spacing="normal">
              <li>
                <t>Name: Capture Timestamp</t>
              </li>
              <li>
                <t>Description: Wall-clock time in microseconds since the Unix epoch
when the encoded media frame was captured, encoded as a varint.</t>
              </li>
              <li>
                <t>ID: 2 (IANA, please assign from the MOQ Header Extensions Registry)</t>
              </li>
              <li>
                <t>Length: Varies (1-8 bytes)</t>
              </li>
              <li>
                <t>Value: Varies</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="video-header-data">
          <name>Video Header Data</name>
          <section anchor="config">
            <name>Video Config</name>
            <ul spacing="normal">
              <li>
                <t>Name: Video Config</t>
              </li>
              <li>
                <t>Description: Video codec configuration "extradata", as defined by the corresponding codec specification, which maps to the WebCodecs VideoDecoderConfig description property in the EncodedVideoChunkMetadata.</t>
              </li>
              <li>
                <t>ID: 13 (IANA, please assign from the MOQ Header Extensions Registry)</t>
              </li>
              <li>
                <t>Length: Varies</t>
              </li>
              <li>
                <t>Value: Varies</t>
              </li>
            </ul>
          </section>
          <section anchor="video-frame-marking">
            <name>Video Frame Marking</name>
            <ul spacing="normal">
              <li>
                <t>Name: Video Frame Marking</t>
              </li>
              <li>
                <t>Description: Flags for video frames which are independent, discardable, or
base layer sync points, as well as temporal and spatial layer
identification, as defined in <xref target="Framemarking"/>, encoded in the least
significant bits of a varint.</t>
              </li>
              <li>
                <t>ID: 4 (IANA, please assign from the MOQ Header Extensions Registry)</t>
              </li>
              <li>
                <t>Length: Varies (1-4 bytes)</t>
              </li>
              <li>
                <t>Value: Varies</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="audio-header-data">
          <name>Audio Header Data</name>
          <section anchor="audio-level">
            <name>Audio Level</name>
            <ul spacing="normal">
              <li>
                <t>Name: Audio Level</t>
              </li>
              <li>
                <t>Description: The magnitude of the audio level of the corresponding audio frame
as well as a voice activity indicator as defined in section 3 of <xref target="RFC6464"/>, 
encoded in the least significant 8 bits of a varint.</t>
              </li>
              <li>
                <t>ID: 6 (IANA, please assign from the MOQ Header Extensions Registry)</t>
              </li>
              <li>
                <t>Length: Varies (1-2 bytes)</t>
              </li>
              <li>
                <t>Value: Varies</t>
              </li>
            </ul>
          </section>
        </section>
      </section>
    </section>
    <section anchor="catalog">
      <name>Catalog</name>
      <t>A catalog track provides information about tracks from a given publisher. A catalog is used by subscribers for consuming tracks and by publishers
to advertise and describe the tracks. The content of a catalog is opaque to the relays and may be end to end encrypted. A catalog describes the details of tracks such as Track IDs and corresponding media configuration details, for example, audio/video codec details.</t>
      <t>The LOC Streaming Format uses the MoQ Common Catalog Format <xref target="MoQCatalog"/> to describe the content being produced by a publisher.</t>
      <t>Per Sect 5.1 of <xref target="MoQCatalog"/>, this document registers an entry in the "MoQ Streaming Format Type" table, with the type value 2, the name "LOC Streaming Format", and the RFC XXX.</t>
      <t>Every LOC catalog track <bcp14>MUST</bcp14> declare a streaming format type (See Sect 3.2.1 of <xref target="MoQCatalog"/>) value of 2.</t>
      <t>Every LOC catalog track <bcp14>MUST</bcp14> declare a streaming format version (See Sect 3.2.1 of <xref target="MoQCatalog"/>) value of 1, which is the version described in this document.</t>
      <t>Every LOC catalog track <bcp14>MUST</bcp14> declare a packaging type (See Sect 3.2.9 of <xref target="MoQCatalog"/>) of "loc".</t>
      <t>The catalog track <bcp14>MUST</bcp14> have a track name of "catalog". A catalog object <bcp14>MAY</bcp14> be independent of other catalog objects or it <bcp14>MAY</bcp14> represent a delta update of a prior catalog object. The first catalog object published within a new group <bcp14>MUST</bcp14> be independent. A catalog object <bcp14>SHOULD</bcp14> only be published only when the availability of tracks changes.</t>
      <t>Each catalog update <bcp14>MUST</bcp14> be mapped to a discreet moq-transport object.</t>
      <section anchor="catalog-fields">
        <name>Catalog Fields</name>
        <t>The MOQ Common Catalog defines the required base fields and optional extensions.</t>
        <section anchor="video-ext">
          <name>Optional Extensions for Video</name>
          <t>The LOC Streaming Format allows the following optional extensions for video media.</t>
          <ul spacing="normal">
            <li>
              <t>temporalId: Identifies the temporal layer/sub-layer encoded, starting with 0 for the base layer, and increasing with higher temporal fidelity.</t>
            </li>
            <li>
              <t>spatialId: Identifies the spatial and quality layer encoded, starting with 0 for the base layer, and increasing with higher fidelity.</t>
            </li>
            <li>
              <t>depends: Identifies track dependencies for a given track, usually for video media with scalable layers in separate tracks.</t>
            </li>
            <li>
              <t>renderGroup: Identifies a group of time-aligned tracks which should be rendered simultaneously.</t>
            </li>
            <li>
              <t>selectionParams: Selection parameters for media quality, fidelity, etc.; see next section.</t>
            </li>
          </ul>
        </section>
        <section anchor="profile">
          <name>Selection Parameters for Video</name>
          <t>Each video track can have the following associated Selection Parameters.</t>
          <ul spacing="normal">
            <li>
              <t>codec: Codec information (including profile, level, tier, etc.), as defined by the codec registrations listed in <xref target="WEBCODECS-CODEC-REGISTRY"/>.</t>
            </li>
            <li>
              <t>framerate: As defined in section 7.8 of <xref target="WEBCODECS-CODEC-REGISTRY"/>.</t>
            </li>
            <li>
              <t>bitrate: As defined in section 7.7 and 7.8 of <xref target="WEBCODECS-CODEC-REGISTRY"/>.</t>
            </li>
            <li>
              <t>width, height: As defined in section 7.8 of <xref target="WEBCODECS-CODEC-REGISTRY"/>.</t>
            </li>
            <li>
              <t>displayWidth, displayheight: As defined in section 7.7 of <xref target="WEBCODECS-CODEC-REGISTRY"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="optional-extensions-for-audio">
          <name>Optional Extensions for Audio</name>
          <t>The LOC Streaming Format allows the following optional extensions for audio media.</t>
          <ul spacing="normal">
            <li>
              <t>renderGroup: Identifies a group of time-aligned tracks which should be rendered simultaneously.</t>
            </li>
            <li>
              <t>selectionParams: Selection parameters for media quality, fidelity, etc.; see next section.</t>
            </li>
          </ul>
        </section>
        <section anchor="audioprofile">
          <name>Selection Parameters for Audio</name>
          <t>Each audio track can have the following associated Selection Parameters.</t>
          <ul spacing="normal">
            <li>
              <t>codec: Codec information as defined by the codec registrations listed in <xref target="WEBCODECS-CODEC-REGISTRY"/>.</t>
            </li>
            <li>
              <t>bitrate: As defined in section 7.7 and 7.8 of <xref target="WEBCODECS-CODEC-REGISTRY"/>.</t>
            </li>
            <li>
              <t>samplerate: As defined in section 7.7 of <xref target="WEBCODECS-CODEC-REGISTRY"/>.</t>
            </li>
            <li>
              <t>chanelConfig: As defined in section 7.7 of <xref target="WEBCODECS-CODEC-REGISTRY"/>.</t>
            </li>
            <li>
              <t>lang: The primary language of the track, using standard tags from <xref target="RFC5646"/>.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="catalog-examples">
        <name>Catalog Examples</name>
        <t>See section 3.4 of the MOQ Common Catalog <xref target="MoQCatalog"/>.</t>
      </section>
    </section>
    <section anchor="payload-encryption">
      <name>Payload Encryption</name>
      <t>When end to end encryption is supported, the encoded payload is encrypted
with symmetric keys derived from key establishment mechanisms, such as <xref target="MOQ-MLS"/>, and the payload itself is protected using mechanisms defined in <xref target="SecureObjects"/>.</t>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>This section provides examples with details for building audio and video applications
using MOQ and LOC; more specifically, it provides information on:</t>
      <ul spacing="normal">
        <li>
          <t>Using a catalog to describe track information,</t>
        </li>
        <li>
          <t>Packaging media into LOC streaming format, and</t>
        </li>
        <li>
          <t>Mapping application media objects to the MOQT object model and transport.</t>
        </li>
      </ul>
      <t>The figure below shows the conceptual model for mapping media application data
to the MOQT object model and underlying QUIC transport.</t>
      <artwork type="ascii-art"><![CDATA[
+------------------------------+
|     Media Application        |
|    Audio, Video Frames       |
+---------------+--------------+
                |
                |
+---------------v--------------------+
|        MOQT Object Model           |
| Tracks, Groups, Subgroups, Objects |
+---------------+--------------------+
                |
                |
+---------------v--------------+
|             QUIC             |
|        Streams, Datagrams    |
+------------------------------+

]]></artwork>
      <section anchor="app-audio">
        <name>Application with one audio track</name>
        <t>An example is shown below for an Opus mono channel audio track at 48Khz.</t>
        <sourcecode type="psuedocode"><![CDATA[
codec: "opus"
bitrate: 24000
samplerate: 480000
channelConfig: "mono"
lang: "en"
]]></sourcecode>
        <t>When ready for publishing, each encoded audio chunk, say 10ms, represents a
MOQT Object. In this setup, there is one <tt>MOQT Object</tt>
per <tt>MOQT Group</tt>, where the <tt>GroupID</tt> in the object header is
increment by one for each encoded audio chunk and the <tt>ObjectID</tt>
is defaulted to value 0.</t>
        <t>These objects can be sent as QUIC streams or datagrams. When mapped to
QUIC datagrams, each object must fit entirely within a QUIC datagram, and
when mapped to QUIC Streams, each such unitary group is sent over
an individual unidirectional QUIC stream since there is just one <tt>SubGroup</tt> per
each <tt>MOQT Group</tt>.</t>
      </section>
      <section anchor="app-1-video">
        <name>Application with one single quality video track</name>
        <t>An example is shown below for an H.264 video track with 1280x720p resolution
and 30 fps frame rate at 1 Mbps bitrate.</t>
        <sourcecode type="psuedocode"><![CDATA[
codec: "avc3.42E01E"
bitrate: 1000000
framerate: 30
width: 1280
height: 720
]]></sourcecode>
        <t>When ready for publishing, each encoded video chunk is considered as input
to MOQT Object payload. If encrypted, the output of encryption will serve as
the object's payload. The <tt>GroupID</tt> is incremented by 1 at IDR Frame boundaries.
The <tt>ObjectID</tt> is increment by 1 for each encoded video frame, starting at 0
and resetting to 0 at the start of a new group. The first encoded video frame,
MOQT Object with <tt>ObjectID</tt> 0, shall be the Independent (IDR) frame and
the rest of the encoded video frames corresponds to dependent (delta) frames,
organized in the decode order.</t>
        <t>When mapping to QUIC for sending, one unidirectional QUIC stream is setup to
deliver all the encoded video chunks within a MOQT group.</t>
        <t>When decoding at the 'End Consumer', the objects from each of the QUIC
streams are fed in the GroupID then ObjectID order to the decoder for
the track.</t>
      </section>
      <section anchor="app-2-temp-video">
        <name>Application with single video track with temporal layers</name>
        <t>An example is shown below for an H.264 video track with 1280x720p resolution and
2 temporal layers at 30 fps and 60 fps frame rate.</t>
        <sourcecode type="psuedocode"><![CDATA[
codec: "avc3.42E01F"
bitrate: 1500000
framerate: 60
width: 1280
height: 720
]]></sourcecode>
        <t>When ready for publishing, each encoded video chunk is considered as input
to MOQT Object payload. If encrypted, the output of encryption will serve as
the object's payload. The <tt>GroupID</tt> is incremented by 1 at Independent (IDR)
frame  boundaries. Each MOQT group shall contain 2 SubGroups corresponding
to the 2 temporal layers as shown below:</t>
        <sourcecode type="psuedocode"><![CDATA[
Layer:0/30fps Subgroup: 0 ObjectID: even
Layer:1/60fps Subgroup: 1 ObjectID: odd
]]></sourcecode>
        <t>Within the MOQT group, <tt>ObjectID</tt> is increment by 1 for each encoded video
frame, starting at 0 and resetting to 0 at the start of a new group. The
first encoded video frame, MOQT Object with <tt>ObjectID</tt> 0, shall be the
Indepedent (IDR) frame and the rest of the encoded video frames corresponds to
dependent (delta) frames, organized in the decode order. When mapping to
QUIC for sending, one unidirectional QUIC stream is used per SubGroup,
thus resulting in 2 QUIC streams per MOQT group.</t>
        <t>When decoding at the 'End Consumer' for a given MOQT group, the objects
must be fed in the GroupID then ObjectID order. This implies that the consumer
media application needs to order objects across the SubGroup QUIC
streams.</t>
      </section>
      <section anchor="application-with-mutiple-dependent-video-tracks">
        <name>Application with mutiple dependent video tracks</name>
        <t>An example is shown below for an H.264 video track with 2 spatial qualities
at 360p and 720p each at 30 fps</t>
        <sourcecode type="psuedocode"><![CDATA[
Video Track 1
codec: "avc3.42E01E"
bitrate: 500000
framerate: 30
width: 640
height: 360

Video Track 2
codec: "svc1.56401F"
bitrate: 1000000
framerate: 30
width: 1280
height: 720

]]></sourcecode>
        <t>When ready for publishing, the mapping to the MOQT object model and
to underlying QUIC, follows the same procedures as described in
<xref target="app-1-video"/> for each video track.</t>
        <t>When decoding at the 'End Consumer' for a given MOQT group, the objects
must be fed in the GroupID then ObjectID order in the ascending quality
track order.</t>
        <t>For the example in the section, this would imply following
pattern when decoding group 5.</t>
        <sourcecode type="pseudocode"><![CDATA[
Track 1 Group 5 Object 0
Track 2 Group 5 Object 0
Track 1 Group 5 Object 1
Track 2 Group 5 Object 1
....
]]></sourcecode>
      </section>
      <section anchor="application-with-mutiple-dependent-video-tracks-with-dyadic-framerate-levels">
        <name>Application with mutiple dependent video tracks with dyadic framerate levels.</name>
        <t>An example is shown below for an H.264 video track with 2 spatial qualities
at 360p and 720p, however, the framerate between tracks vary dyadically.</t>
        <sourcecode type="pseudocode"><![CDATA[
Video Track 1
codec: "avc3.42E01E"
bitrate: 500000
framerate: 30
width: 640
height: 360

Video Track 2
codec: "svc1.56E01F"
bitrate: 1000000
framerate: 60
width: 1280
height: 720

]]></sourcecode>
        <t>When ready for publishing, the mapping to the MOQT object model and
to underlying QUIC, follows the same procedures as described in
<xref target="app-1-video"/> for each video track.</t>
        <t>When decoding at the 'End Consumer' for a given MOQT group, the objects
from across the tracks must be fed in the timestamp order to the decoder,
if no frame reordering is present in the encoding.</t>
        <t>If the encoding uses frame reordering, or if timestamp cannot be obtained, the
object to choose next shall follow the below formula.</t>
        <sourcecode type="pseudocode"><![CDATA[
Object Decode Order = ObjectID * multiplier + offset

multiplier = 2^(maxlayer-max(0,layer-1))
offset = 2^(maxlayer-layer) MOD multiplier

]]></sourcecode>
      </section>
      <section anchor="app-2-video">
        <name>Application with multiple simulcast qualities video tracks</name>
        <t>An example is shown below for an H.264 video track with 2 simulcast
spatial qualities at 360p and 720p each at 30 fps.</t>
        <sourcecode type="psuedocode"><![CDATA[
Video Track 1
codec: "avc3.42E01E"
bitrate: 500000
framerate: 30
width: 640
height: 360

Video Track 2
codec: "avc3.42E01F"
bitrate: 1000000
framerate: 30
width: 1280
height: 720

]]></sourcecode>
        <t>When ready for publishing, the mapping to the MOQT object model and
to underlying QUIC, follows the same procedures as described in
<xref target="app-1-video"/> for each video track.</t>
        <t>When decoding at the 'End Consumer', the objects from the QUIC stream
are fed in the GroupID then ObjectID order to the decoders setup for the
corresponding video tracks.</t>
      </section>
    </section>
    <section anchor="security-and-privacy-considerations">
      <name>Security and Privacy Considerations</name>
      <t>The metadata in LOC Header Extensions is visible to relays, since the
MOQ Object Header Extensions are often not encrypted end-to-end
(from original publisher to end subscribers) in common schemes.
In some cases, this may be an intentional design intent for proper relay
operation. In other cases, this may be unintentional or undesirable leaking
of the metadata to relays. Each metadata that is defined should consider
the security and privacy aspects of granting relays visibility to the metadata.
End-to-end encyption schemes should support end-to-end encryption of sensitive
metadata.</t>
      <t>The metadata defined and registered in this specification
(Capture Timestamp, Video Frame Marking, and Audio Level) may be sensitive
metadata that should be encrypted end-to-end. They are used by media switches,
which are not merely relays, and likely have access to some media keys.
This may require end-to-end encryption schemes with multiple different
security key contexts for payload versus metadata.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>The IANA registry for MOQ Object Header Extensions is populated with
the entries specified in section <xref target="headers"/>, referencing this specification.</t>
      <t>This document creates a new entry in the "MoQ Streaming Format" Registry (see <xref target="MoQTransport"/> Sect 8). The type value is 0x002, the name is "LOC Streaming Format" and the RFC is XXX.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <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="WebCodecs" target="https://www.w3.org/TR/webcodecs/">
          <front>
            <title>WebCodecs</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="July"/>
          </front>
        </reference>
        <reference anchor="WEBCODECS-CODEC-REGISTRY" target="https://www.w3.org/TR/webcodecs-codec-registry/">
          <front>
            <title>WebCodecs Codec Registry</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="July"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC6464">
          <front>
            <title>A Real-time Transport Protocol (RTP) Header Extension for Client-to-Mixer Audio Level Indication</title>
            <author fullname="J. Lennox" initials="J." role="editor" surname="Lennox"/>
            <author fullname="E. Ivov" initials="E." surname="Ivov"/>
            <author fullname="E. Marocco" initials="E." surname="Marocco"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document defines a mechanism by which packets of Real-time Transport Protocol (RTP) audio streams can indicate, in an RTP header extension, the audio level of the audio sample carried in the RTP packet. In large conferences, this can reduce the load on an audio mixer or other middlebox that wants to forward only a few of the loudest audio streams, without requiring it to decode and measure every stream that is received. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6464"/>
          <seriesInfo name="DOI" value="10.17487/RFC6464"/>
        </reference>
        <reference anchor="RFC5646">
          <front>
            <title>Tags for Identifying Languages</title>
            <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips"/>
            <author fullname="M. Davis" initials="M." role="editor" surname="Davis"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object. It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange. 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="47"/>
          <seriesInfo name="RFC" value="5646"/>
          <seriesInfo name="DOI" value="10.17487/RFC5646"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="MoQCatalog">
          <front>
            <title>Common Catalog Format for moq-transport</title>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Will Law" initials="W." surname="Law">
              <organization>Akamai</organization>
            </author>
            <author fullname="Mo Zanaty" initials="M." surname="Zanaty">
              <organization>Cisco</organization>
            </author>
            <date day="30" month="November" year="2023"/>
            <abstract>
              <t>   This specification defines a Common Catalog specification for
   streaming formats implementing the MOQ Transport Protocol
   [MoQTransport].  Media over QUIC Transport (MOQT) defines a publish/
   subscribe based unified media delivery protocol for delivering media
   for streaming and interactive applications over QUIC.  The catalog
   describes the content made available by a publisher, including
   information necessary for subscribers to select, subscribe and
   initialize tracks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-wilaw-moq-catalogformat-02"/>
        </reference>
        <reference anchor="Framemarking">
          <front>
            <title>Video Frame Marking RTP Header Extension</title>
            <author fullname="Mo Zanaty" initials="M." surname="Zanaty">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Espen Berger" initials="E." surname="Berger">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco Systems</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   This document describes a Video Frame Marking RTP header extension
   used to convey information about video frames that is critical for
   error recovery and packet forwarding in RTP middleboxes or network
   nodes.  It is most useful when media is encrypted, and essential when
   the middlebox or node has no access to the media decryption keys.  It
   is also useful for codec-agnostic processing of encrypted or
   unencrypted media, while it also supports extensions for codec-
   specific information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-avtext-framemarking-16"/>
        </reference>
        <reference anchor="SecureObjects">
          <front>
            <title>End-to-End Secure Objects for Media over QUIC Transport</title>
            <author fullname="Cullen Fluffy Jennings" initials="C. F." surname="Jennings">
              <organization>Cisco</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <date day="28" month="February" year="2025"/>
            <abstract>
              <t>   This document describes an end-to-end authenticated encryption scheme
   for application objects intended to be delivered over Media over QUIC
   Transport (MOQT).  We reuse the SFrame scheme for authenticated
   encryption of media objects, while suppressing data that would be
   redundant between SFrame and MOQT, for an efficient on-the-wire
   representation.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jennings-moq-secure-objects-02"/>
        </reference>
        <reference anchor="MOQ-MLS">
          <front>
            <title>Secure Group Key Agreement with MLS over MoQ</title>
            <author fullname="Cullen Fluffy Jennings" initials="C. F." surname="Jennings">
              <organization>Cisco</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   This specification defines a mechanism to use Message Layer Security
   (MLS) to provide end-to-end group key agreement for Media over QUIC
   (MOQ) applications.  Almost all communications are done via the MOQ
   transport.  MLS requires a small degree of synchronization, which is
   provided by a simple counter service.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jennings-moq-e2ee-mls-02"/>
        </reference>
      </references>
    </references>
    <?line 613?>

<section anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Cullen Jennings for suggestions and review.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
Ezh3k+j1WPwPug/unsRbAAA=

-->

</rfc>
