<?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.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wilaw-moq-scte35-event-timeline-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="SCTE35 over MSF">SCTE35 transmission over MSF Event Timeline</title>
    <seriesInfo name="Internet-Draft" value="draft-wilaw-moq-scte35-event-timeline-00"/>
    <author fullname="Will Law">
      <organization>Akamai</organization>
      <address>
        <email>wilaw@akamai.com</email>
      </address>
    </author>
    <author initials="S." surname="Nandakumar" fullname="Suhas Nandakumar">
      <organization>Cisco</organization>
      <address>
        <email>snandaku@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="06"/>
    <area>Web and Internet Transport</area>
    <workgroup>Media Over QUIC</workgroup>
    <keyword>MSF</keyword>
    <keyword>Eventtimeline</keyword>
    <keyword>SCTE35</keyword>
    <keyword>MOQT</keyword>
    <abstract>
      <?line 47?>

<t>Defines the transmission of SCTE 35 data over MSF Event Timeline tracks.</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/SCTE35-over-MSF-Event-Timeline/draft-wilaw-moq-scte35-event-timeline.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wilaw-moq-scte35-event-timeline/"/>.
      </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/SCTE35-over-MSF-Event-Timeline"/>.</t>
    </note>
  </front>
  <middle>
    <?line 52?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>MOQT Streaming Format <xref target="MSF"/> defines Event Timeline tracks as a generic mechanism for
transmitting ad hoc data associated with MSF media tracks. <xref target="SCTE35"/> markers signal ad insertion
points, program boundaries, and other broadcast events. This draft specifies how SCTE35
data can be transmitted using MSF Event Timeline tracks.</t>
    </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="track-properties">
      <name>Track properties</name>
      <t>An MSF track carrying <xref target="SCTE35"/> data <bcp14>MUST</bcp14></t>
      <ul spacing="normal">
        <li>
          <t>declare a packaging value of "eventtimeline"</t>
        </li>
        <li>
          <t>declare an eventType value of "urn:scte:scte35:2022:bin" if using binary splice information</t>
        </li>
        <li>
          <t>declare an eventType value of "urn:scte:scte35:2022:xml" if using xml splice information</t>
        </li>
      </ul>
    </section>
    <section anchor="scte-35-mapping-to-msf-event-timeline">
      <name>SCTE 35 Mapping to MSF Event Timeline</name>
      <section anchor="record-structure">
        <name>Record Structure</name>
        <t>Each record in the MSF Event Timeline track for SCTE 35 <bcp14>MUST</bcp14> be a JSON object conforming to
the Event Timeline data format defined in <xref target="MSF"/> Section 8.1: it <bcp14>MUST</bcp14> contain exactly one
index reference field (t, l, or m), selected per the precedence rules in Section 3.2, and a
data field.</t>
        <t>The data field <bcp14>MUST</bcp14> be an object containing a single scte35_payload member. The scte35_payload
contains either the Base64-encoded binary representation of the splice_info_section() or a
string containing the escaped XML representation of the SCTE 35 message, per the eventType
declared in the track properties (Section 2).</t>
        <sourcecode type="json"><![CDATA[
{
  "m": 480500,
  "data": {
    "scte35_payload": "/DAhAAAAAAAAAP/wFAUAAArXf+/+AAAAAH4AARSyAAAAAA=="
  }
}
]]></sourcecode>
        <sourcecode type="json"><![CDATA[
{
  "t": 1756885678361,
  "data": {
    "scte35_payload": "/DApAAAAAAAAAP/wBQb+AAAAAAAfAh1zY3RlMzU6U2VnbWVudGF0aW9uRGVzY3JpcHRvcg=="
  }
}
]]></sourcecode>
        <sourcecode type="json"><![CDATA[
{
  "l": [42, 0],
  "data": {
    "scte35_payload": "<SpliceInfoSection><SpliceInsert spliceImmediateFlag=\"1\" eventId=\"101\"/></SpliceInfoSection>"
  }
}
]]></sourcecode>
        <t>Since the index reference field itself identifies the timing source used for a record, no
additional field is required inside data to disambiguate it. Receivers requiring finer-grained
classification (e.g., distinguishing an immediate splice from an event cancellation) <bcp14>MAY</bcp14> inspect
the scte35_payload itself, since this information is already present in the SCTE 35 message
(splice_immediate_flag, splice_event_cancel_indicator, etc.) and duplicating it in the envelope
would be redundant.</t>
      </section>
      <section anchor="index-selection">
        <name>Index Selection</name>
        <t>Each record <bcp14>MUST</bcp14> select its index reference field according to the following precedence, applied
to the SCTE 35 message being carried:</t>
        <ul spacing="normal">
          <li>
            <t>PTS-timed events: If a pts_time (binary) or ptsTime (XML) is present, the record <bcp14>MUST</bcp14> use m,
the media time in milliseconds, computed as: floor(((pts_time + pts_adjustment) mod 2^33) / 90).
This value <bcp14>MUST</bcp14> be expressed in the same coordinate space as the media time defined for the
corresponding Media Timeline track or template (<xref target="MSF"/> Section 7.1.1) of the track(s) named in
this track's depends attribute — that is, pts_time and the referenced media track's timestamps
<bcp14>MUST</bcp14> share a common zero-point and epoch. Publishers <bcp14>MUST</bcp14> resolve any PTS discontinuities or
2^33 wraparound in the source SCTE 35 stream before computing m, so that the resulting value
remains monotonic and consistent with the associated media track's timeline.</t>
          </li>
          <li>
            <t>Wallclock-timed events: If a utc_splice_time is present without a pts_time, the record <bcp14>MUST</bcp14>
use t, set directly to the UTC time expressed as milliseconds since the Unix epoch, per
<xref target="MSF"/> Section 8.1. No conversion to media time is required or permitted; this avoids requiring
the publisher to maintain a UTC-to-media-time mapping solely for signaling purposes.</t>
          </li>
          <li>
            <t>Immediate events: If splice_immediate_flag is 1 and no pts_time is present, the record <bcp14>MUST</bcp14>
use l, set to the MOQT Location — [Group ID, Object ID] — of the media Object at or immediately
preceding which the splice is to take effect. This anchors the event to an actual encoded Object
in the dependent media track rather than an approximated wallclock or media time.</t>
          </li>
          <li>
            <t>Other events: For messages that carry no timing information of their own
(e.g., splice_event_cancel_indicator, splice_null()), the record <bcp14>MUST</bcp14> use l, set to the MOQT
Location of the media Object with which the record is associated at the time of publication.</t>
          </li>
        </ul>
        <t>Publishers <bcp14>MUST</bcp14> use only one index reference field per record, per <xref target="MSF"/> Section 8.1. Because the
four cases above use t, m, and l at different times within the same track, this track is a case
where index reference types intentionally vary record-to-record, rather than following the
"<bcp14>SHOULD</bcp14> use the same index reference type" guidance in <xref target="MSF"/> Section 8.1 — that guidance is best
suited to tracks with a single, uniform timing source, which SCTE 35 signaling is not.</t>
      </section>
      <section anchor="payload-encoding-requirements">
        <name>Payload Encoding Requirements</name>
        <ul spacing="normal">
          <li>
            <t>Binary Payloads: When the track is configured for binary carriage, the scte35_payload <bcp14>MUST</bcp14> be
a Base64-encoded string of the splice_info_section() as defined in <xref target="SCTE35"/>.</t>
          </li>
          <li>
            <t>XML Payloads: When the track is configured for XML carriage, the scte35_payload <bcp14>MUST</bcp14> be a string
containing the XML representation as defined in <xref target="SCTE35"/>. Characters that are reserved in JSON
(such as double quotes, backslashes, and control characters) <bcp14>MUST</bcp14> be properly escaped to maintain
JSON validity as per <xref target="JSON"/>.</t>
          </li>
        </ul>
        <t>Implementations <bcp14>MUST NOT</bcp14> mix binary and XML payloads within the same MSF Event Timeline track
to ensure predictable parsing at the client.</t>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>To illustrate the implementation of SCTE 35 within the MSF Event Timeline track, the following
examples demonstrate the mapping of various timing sources — using MSF's native t, l, and m index
reference fields — and the two supported encoding formats (Binary and XML).</t>
      <section anchor="example-1-binary-encoding-with-pts-timing">
        <name>Example 1: Binary Encoding with PTS Timing</name>
        <t>This example shows the standard frame-accurate splice using a pts_time. Per Section 3.2 case 1,
the record uses m, the calculated millisecond offset, and the payload is the Base64-encoded binary
splice_info_section().</t>
        <sourcecode type="json"><![CDATA[
[
  {
    "m": 480500,
    "data": {
      "scte35_payload": "/DAhAAAAAAAAAP/wFAUAAArXf+/+AAAAAH4AARSyAAAAAA=="
    }
  },
  {
    "m": 510500,
    "data": {
      "scte35_payload": "/DAhAAAAAAAAAP/wFAUAAArYf+/+AAAAAH4AARSyAAAAAA=="
    }
  }
]
]]></sourcecode>
      </section>
      <section anchor="example-2-xml-encoding-with-immediate-flag">
        <name>Example 2: XML Encoding with Immediate Flag</name>
        <t>In this scenario, the track is configured for XML. The first record illustrates an "immediate" event
(splice_immediate_flag="1", no PTS) — per Section 3.2 case 3, it uses l, the MOQT Location of the
media Object at which the splice takes effect. The second record shows a standard PTS-timed event,
using m. Note the JSON-escaped quotes within the XML string.</t>
        <sourcecode type="json"><![CDATA[
[
  {
    "l": [15, 0],
    "data": {
      "scte35_payload": "<SpliceInfoSection><SpliceInsert spliceImmediateFlag=\"1\" eventId=\"101\"/></SpliceInfoSection>"
    }
  },
  {
    "m": 92000,
    "data": {
      "scte35_payload": "<SpliceInfoSection><TimeSignal><SpliceTime ptsTime=\"8280000\"/></TimeSignal></SpliceInfoSection>"
    }
  }
]
]]></sourcecode>
      </section>
      <section anchor="example-3-mixed-timing-utc-and-cancellation">
        <name>Example 3: Mixed Timing (UTC and Cancellation)</name>
        <t>This example demonstrates a track that varies its index reference field record-to-record, as permitted
by Section 3.2. The first record is anchored to a UTC wallclock moment — per case 2, it uses t directly,
with no media-time conversion required. The second is a splice_event_cancel_indicator cancellation with
no timing information of its own — per case 4, it uses l, referencing the Location of the media Object
with which it is associated at the time of publication.</t>
        <sourcecode type="json"><![CDATA[
[
  {
    "t": 1756885678361,
    "data": {
      "scte35_payload": "/DApAAAAAAAAAP/wBQb+AAAAAAAfAh1zY3RlMzU6U2VnbWVudGF0aW9uRGVzY3JpcHRvcg=="
    }
  },
  {
    "l": [15, 3],
    "data": {
      "scte35_payload": "/DAWAAAAAAAAAP/wBQIAAAAAf3/yD77y"
    }
  }
]
]]></sourcecode>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The carriage of SCTE 35 signals within the MSF Event Timeline track inherits the security
considerations of both the underlying MSF transport and the SCTE 35 standard itself.</t>
      <section anchor="integrity-and-authenticity">
        <name>Integrity and Authenticity</name>
        <t>SCTE 35 messages are frequently used to trigger high-value business logic, such as the
insertion of advertising or the enforcement of viewing blackouts. If the MSF track is not
protected by transport-layer security (e.g., TLS) or object-level signing, an attacker could
modify the "m" timing value or the "scte35_payload" to disrupt ad delivery or cause
unauthorized content transitions.</t>
      </section>
      <section anchor="payload-validation">
        <name>Payload Validation</name>
        <t>Implementations <bcp14>MUST</bcp14> treat the scte35_payload as untrusted data. Receivers should implement
robust parsing for both Base64-encoded binary data and XML strings to prevent buffer overflow
attacks or XML External Entity (XXE) exploits. Specifically, when parsing XML-encoded SCTE 35,
parsers <bcp14>SHOULD</bcp14> be configured to disallow DTDs and external entities. Large scte35_payload
strings (especially in XML) could lead to memory exhaustion if not bound-checked by the
JSON parser.</t>
      </section>
      <section anchor="denial-of-service-dos">
        <name>Denial of Service (DoS)</name>
        <t>An attacker could inject a high frequency of timeline records with conflicting "m" values.
This could lead to "event thrashing," where the client device is forced to rapidly switch states,
potentially leading to resource exhaustion or a degraded user experience.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document adds two entries to the "MSF Event Timeline Types" registry.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Event Type</th>
            <th align="left">Description</th>
            <th align="left">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">urn:scte:scte35:2022:bin</td>
            <td align="left">SCTE 35 binary splice_info_section</td>
            <td align="left">this</td>
          </tr>
          <tr>
            <td align="left">urn:scte:scte35:2022:xml</td>
            <td align="left">SCTE 35 XML representation</td>
            <td align="left">this</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The IETF moq workgroup.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="MSF">
        <front>
          <title>MOQT Streaming Format</title>
          <author fullname="Will Law" initials="W." surname="Law">
            <organization>Akamai</organization>
          </author>
          <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
            <organization>Cisco</organization>
          </author>
          <date day="2" month="June" year="2026"/>
          <abstract>
            <t>   This document specifies the MOQT Streaming Format, designed to
   operate on Media Over QUIC Transport.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-moq-msf-01"/>
      </reference>
      <reference anchor="JSON">
        <front>
          <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
          <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
          <date month="December" year="2017"/>
          <abstract>
            <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
            <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="90"/>
        <seriesInfo name="RFC" value="8259"/>
        <seriesInfo name="DOI" value="10.17487/RFC8259"/>
      </reference>
      <reference anchor="SCTE35" target="https://www.scte.org/standards/library/catalog/scte-35-digital-program-insertion-cueing-message/">
        <front>
          <title>SCTE 35: Digital Program Insertion Cueing Message</title>
          <author>
            <organization/>
          </author>
          <date year="2022"/>
        </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>
    </references>
  </back>
  <!-- ##markdown-source:
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
AAA=

-->

</rfc>
