<?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.19 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mzanaty-moq-loc-04" category="info" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="media container">Low Overhead Media Container</title>
    <seriesInfo name="Internet-Draft" value="draft-mzanaty-moq-loc-04"/>
    <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 year="2024" month="November" day="04"/>
    <abstract>
      <?line 44?>

<t>This specification describes a media container format for
encoded and encrypted audio and video media data to be used
primarily for interactive Media over QUIC Transport (MOQT) <xref target="MoQTransport"/>,
with the goal of it being a low-overhead format. It further defines the
LOC Streaming Format for the MOQ Common Catalog format <xref target="MoQCatalog"/>
for publishers to annouce and describe their LOC tracks and for
subscribers to consume them. The specification also provides examples
to aid application developers for building media applications over
MOQT and intending to use LOC as the streaming format.</t>
    </abstract>
  </front>
  <middle>
    <?line 57?>

<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 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD","SHOULD NOT",
"RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
interpreted as described in <xref target="RFC2119"/>.</t>
      </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>
      <t>For video formats with multiple bitstream formats in the WebCodecs Registry, such as H.264/AVC or H.265/HEVC, the LOC Payload uses the "canonical" format ("avc" or "hevc", not "annexB") with the following additions:</t>
      <ul spacing="normal">
        <li>
          <t>Parameter sets can be sent in the bitstream before key frames, similar to "annexB" formats. (Note that newer "canonical" formats such as "avc3" and "hev1" codec strings support parameter sets in the bitstream or outside it.)</t>
        </li>
        <li>
          <t>Parameter sets can be provided by means outside this specification, such as "extradata" in "canonical" ("avc" or "hevc") formats.</t>
        </li>
        <li>
          <t>4 byte length codes can be sent before each NAL Unit, similar to "canonical" ("avc" or "hevc") formats. (Note that a length of 1 should be interpreted as a start code rather than a length.)</t>
        </li>
        <li>
          <t>4 byte or longer start codes can be sent before each NAL Unit, similar to "annexB" formats.</t>
        </li>
        <li>
          <t>Note that if length codes or start codes are less than 4 bytes, which is uncommon, it may not be possible to disambiguate them without information outside this specification.</t>
        </li>
      </ul>
      <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 for the metadata. (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)</t>
          </li>
          <li>
            <t>Value: Value of metadata. (Length bytes)</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 64 bit unsigned integer
in network byte order (big endian).</t>
              </li>
              <li>
                <t>ID: TBA (IANA, please assign from the MOQ Header Extensions Registry)</t>
              </li>
              <li>
                <t>Length: 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="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"/>.</t>
              </li>
              <li>
                <t>ID: TBA (IANA, please assign from the MOQ Header Extensions Registry)</t>
              </li>
              <li>
                <t>Length: Varies (1-3 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
encoded in 7 bits as defined in section 3 of <xref target="RFC6464"/>.</t>
              </li>
              <li>
                <t>ID: TBA (IANA, please assign from the MOQ Header Extensions Registry)</t>
              </li>
              <li>
                <t>Length: 1 (byte)</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 MUST declare a streaming format type (See Sect 3.2.1 of <xref target="MoQCatalog"/>) value of 2.</t>
      <t>Every LOC catalog track MUST 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 MUST declare a packaging type (See Sect 3.2.9 of <xref target="MoQCatalog"/>) of "loc".</t>
      <t>The catalog track MUST have a track name of "catalog". A catalog object MAY be independent of other catalog objects or it MAY represent a delta update of a prior catalog object. The first catalog object published within a new group MUST be independent. A catalog object SHOULD only be published only when the availability of tracks changes.</t>
      <t>Each catalog update MUST 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-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="21" month="October" year="2024"/>
          <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-07"/>
      </reference>
      <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" target="https://suhashere.github.io/moq-secure-objects/#go.draft-jennings-moq-secure-objects.html">
        <front>
          <title>Secure Objects for Media over QUIC</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="MOQ-MLS" target="https://suhashere.github.io/moq-e2ee-mls/draft-jennings-moq-e2ee-mls.html">
        <front>
          <title>Secure Group Key Agreement with MLS over MoQ</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </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="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>
    <?line 580?>

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

-->

</rfc>
