Skip to content

Commit 7e05e3b

Browse files
author
ID Bot
committed
Script updating gh-pages from 44b3bb0. [ci skip]
1 parent f6a4481 commit 7e05e3b

2 files changed

Lines changed: 227 additions & 43 deletions

File tree

draft-gregoire-moq-msfts.html

Lines changed: 125 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1194,6 +1194,9 @@ <h2 id="name-copyright-notice">
11941194
</li>
11951195
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.6">
11961196
<p id="section-toc.1-1.5.2.6.1"><a href="#section-5.6" class="auto internal xref">5.6</a>.  <a href="#name-pcr-and-timing" class="internal xref">PCR and Timing</a></p>
1197+
</li>
1198+
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.7">
1199+
<p id="section-toc.1-1.5.2.7.1"><a href="#section-5.7" class="auto internal xref">5.7</a>.  <a href="#name-splice-signaling" class="internal xref">Splice Signaling</a></p>
11971200
</li>
11981201
</ul>
11991202
</li>
@@ -1228,7 +1231,10 @@ <h2 id="name-copyright-notice">
12281231
<p id="section-toc.1-1.6.2.9.1"><a href="#section-6.9" class="auto internal xref">6.9</a>.  <a href="#name-m2ts-timestamp-mode" class="internal xref">M2TS Timestamp Mode</a></p>
12291232
</li>
12301233
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.6.2.10">
1231-
<p id="section-toc.1-1.6.2.10.1"><a href="#section-6.10" class="auto internal xref">6.10</a><a href="#name-initialization-data" class="internal xref">Initialization Data</a></p>
1234+
<p id="section-toc.1-1.6.2.10.1"><a href="#section-6.10" class="auto internal xref">6.10</a><a href="#name-m2ts-scte-35-pid" class="internal xref">M2TS SCTE-35 PID</a></p>
1235+
</li>
1236+
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.6.2.11">
1237+
<p id="section-toc.1-1.6.2.11.1"><a href="#section-6.11" class="auto internal xref">6.11</a><a href="#name-initialization-data" class="internal xref">Initialization Data</a></p>
12321238
</li>
12331239
</ul>
12341240
</li>
@@ -1246,6 +1252,9 @@ <h2 id="name-copyright-notice">
12461252
</li>
12471253
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.7.2.4">
12481254
<p id="section-toc.1-1.7.2.4.1"><a href="#section-7.4" class="auto internal xref">7.4</a>.  <a href="#name-multi-program-source-two-pr" class="internal xref">Multi-Program Source — Two Programs from One MPTS</a></p>
1255+
</li>
1256+
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.7.2.5">
1257+
<p id="section-toc.1-1.7.2.5.1"><a href="#section-7.5" class="auto internal xref">7.5</a>.  <a href="#name-abr-alternate-renditions-tw" class="internal xref">ABR Alternate Renditions — Two Bitrate Tracks</a></p>
12491258
</li>
12501259
</ul>
12511260
</li>
@@ -1417,7 +1426,7 @@ <h2 id="name-scope">
14171426
continuity counter, or scrambling semantics defined by <span>[<a href="#ISO138181" class="cite xref">ISO138181</a>]</span>.<a href="#section-4-4.3.1" class="pilcrow"></a></p>
14181427
</li>
14191428
<li class="normal" id="section-4-4.4">
1420-
<p id="section-4-4.4.1">A mandatory ABR switching model across separately encoded transport streams.<a href="#section-4-4.4.1" class="pilcrow"></a></p>
1429+
<p id="section-4-4.4.1">A mandatory Adaptive Bitrate (ABR) switching model across separately encoded transport streams.<a href="#section-4-4.4.1" class="pilcrow"></a></p>
14211430
</li>
14221431
<li class="normal" id="section-4-4.5">
14231432
<p id="section-4-4.5.1">A key management protocol.<a href="#section-4-4.5.1" class="pilcrow"></a></p>
@@ -1468,8 +1477,9 @@ <h3 id="name-object-boundaries">
14681477
<a href="#section-5.2" class="section-number selfRef">5.2. </a><a href="#name-object-boundaries" class="section-name selfRef">Object Boundaries</a>
14691478
</h3>
14701479
<p id="section-5.2-1">Object boundaries are packaging boundaries and do not change MPEG-2 Transport
1471-
Stream semantics. Continuity counters, adaptation fields, PCR, PTS, DTS, PSI,
1472-
and other transport-stream syntax remain inside the source packets.<a href="#section-5.2-1" class="pilcrow"></a></p>
1480+
Stream semantics. Continuity counters, adaptation fields, PCR, PTS, DTS,
1481+
Program Specific Information (PSI), and other transport-stream syntax remain
1482+
inside the source packets.<a href="#section-5.2-1" class="pilcrow"></a></p>
14731483
<p id="section-5.2-2">A publisher <span class="bcp14">SHOULD</span> place an independently usable random access point at the
14741484
first media Object of each MOQT Group. For video, this normally means that the
14751485
Group begins at or before the transport-stream packets carrying a random access
@@ -1490,14 +1500,16 @@ <h3 id="name-group-numbering">
14901500
the Group content is independently decodable without reference to prior Groups.
14911501
For video, a valid Group start is any intra-coded access point at which all
14921502
decoder references needed by that Group are present within the Group itself.
1493-
IDR frames always satisfy this condition. A CRA frame <span class="bcp14">MAY</span> serve as a Group
1494-
start only if no subsequent RASL pictures in that Group reference frames from
1495-
a prior Group. Publishers are not required to start a new Group at every
1496-
intra-coded access point: a CRA whose following RASL pictures reference only
1497-
frames present earlier in the same Group may remain interior to that Group.
1503+
Instantaneous Decoder Refresh (IDR) frames always satisfy this condition.
1504+
A Clean Random Access (CRA) frame <span class="bcp14">MAY</span> serve as a Group start only if no
1505+
subsequent Random Access Skipped Leading (RASL) pictures in that Group
1506+
reference frames from a prior Group. Publishers are not required to start a
1507+
new Group at every intra-coded access point: a CRA whose following RASL
1508+
pictures reference only frames present earlier in the same Group may remain
1509+
interior to that Group.
14981510
The Object ID <span class="bcp14">MUST</span> increase by one for each Object within a Group unless MOQT
14991511
delivery semantics permit gaps that are explicitly intended by the publisher.<a href="#section-5.3-1" class="pilcrow"></a></p>
1500-
<p id="section-5.3-2">For VOD streams, Group ID and Object ID assignment <span class="bcp14">SHOULD</span> be stable for a given
1512+
<p id="section-5.3-2">For video-on-demand (VOD) streams, Group ID and Object ID assignment <span class="bcp14">SHOULD</span> be stable for a given
15011513
asset so that relays and subscribers can cache and request repeatable ranges.<a href="#section-5.3-2" class="pilcrow"></a></p>
15021514
</section>
15031515
</div>
@@ -1529,8 +1541,8 @@ <h3 id="name-multi-program-source-handli">
15291541
each track contains only:<a href="#section-5.5-1" class="pilcrow"></a></p>
15301542
<ul class="normal">
15311543
<li class="normal" id="section-5.5-2.1">
1532-
<p id="section-5.5-2.1.1">Null packets (PID 0x1FFF), which <span class="bcp14">MAY</span> be removed or retained at the
1533-
publisher's discretion.<a href="#section-5.5-2.1.1" class="pilcrow"></a></p>
1544+
<p id="section-5.5-2.1.1">Null packets with Packet Identifier (PID) 0x1FFF, which <span class="bcp14">MAY</span> be removed or
1545+
retained at the publisher's discretion.<a href="#section-5.5-2.1.1" class="pilcrow"></a></p>
15341546
</li>
15351547
<li class="normal" id="section-5.5-2.2">
15361548
<p id="section-5.5-2.2.1">Program Association Table packets (PID 0x0000), rewritten to list only the
@@ -1580,6 +1592,17 @@ <h3 id="name-pcr-and-timing">
15801592
wrap-around.<a href="#section-5.6-3" class="pilcrow"></a></p>
15811593
</section>
15821594
</div>
1595+
<div id="splice-signaling">
1596+
<section id="section-5.7">
1597+
<h3 id="name-splice-signaling">
1598+
<a href="#section-5.7" class="section-number selfRef">5.7. </a><a href="#name-splice-signaling" class="section-name selfRef">Splice Signaling</a>
1599+
</h3>
1600+
<p id="section-5.7-1">SCTE-35 splice information is carried transparently in the TS stream as
1601+
splice_info_section() messages on their designated PID. Publishers <span class="bcp14">MAY</span> surface
1602+
splice events via the MSF Event Timeline <span>[<a href="#MSF" class="cite xref">MSF</a>]</span>. This document does not
1603+
specify SCTE-35 processing.<a href="#section-5.7-1" class="pilcrow"></a></p>
1604+
</section>
1605+
</div>
15831606
</section>
15841607
</div>
15851608
<div id="catalog">
@@ -1662,13 +1685,20 @@ <h3 id="name-track-object-fields">
16621685
<td class="text-left" rowspan="1" colspan="1">m2tsTimestampMode</td>
16631686
<td class="text-left" rowspan="1" colspan="1">
16641687
<a href="#m2ts-timestamp-mode" class="auto internal xref">Section 6.9</a>
1688+
</td>
1689+
</tr>
1690+
<tr>
1691+
<td class="text-left" rowspan="1" colspan="1">M2TS SCTE-35 PID</td>
1692+
<td class="text-left" rowspan="1" colspan="1">m2tsScte35Pid</td>
1693+
<td class="text-left" rowspan="1" colspan="1">
1694+
<a href="#m2ts-scte35-pid" class="auto internal xref">Section 6.10</a>
16651695
</td>
16661696
</tr>
16671697
<tr>
16681698
<td class="text-left" rowspan="1" colspan="1">Initialization data</td>
16691699
<td class="text-left" rowspan="1" colspan="1">initData</td>
16701700
<td class="text-left" rowspan="1" colspan="1">
1671-
<a href="#init-data" class="auto internal xref">Section 6.10</a>
1701+
<a href="#init-data" class="auto internal xref">Section 6.11</a>
16721702
</td>
16731703
</tr>
16741704
</tbody>
@@ -1767,21 +1797,34 @@ <h3 id="name-m2ts-timestamp-mode">
17671797
semantics. This field <span class="bcp14">MUST NOT</span> be present when <code>m2tsPacketSize</code> is 188.<a href="#section-6.9-2" class="pilcrow"></a></p>
17681798
</section>
17691799
</div>
1770-
<div id="init-data">
1800+
<div id="m2ts-scte35-pid">
17711801
<section id="section-6.10">
1802+
<h3 id="name-m2ts-scte-35-pid">
1803+
<a href="#section-6.10" class="section-number selfRef">6.10. </a><a href="#name-m2ts-scte-35-pid" class="section-name selfRef">M2TS SCTE-35 PID</a>
1804+
</h3>
1805+
<p id="section-6.10-1">Required: Optional JSON Type: Number Location: Track Object<a href="#section-6.10-1" class="pilcrow"></a></p>
1806+
<p id="section-6.10-2">The PID carrying SCTE-35 splice_info_section() messages for this track. This
1807+
field is advisory; SCTE-35 messages are also discoverable via the PMT CA/registration
1808+
descriptor. When present, receivers <span class="bcp14">MAY</span> use this value to locate splice events
1809+
without parsing PMT. Publishers <span class="bcp14">SHOULD</span> include this field when the track carries
1810+
SCTE-35 splice signaling.<a href="#section-6.10-2" class="pilcrow"></a></p>
1811+
</section>
1812+
</div>
1813+
<div id="init-data">
1814+
<section id="section-6.11">
17721815
<h3 id="name-initialization-data">
1773-
<a href="#section-6.10" class="section-number selfRef">6.10. </a><a href="#name-initialization-data" class="section-name selfRef">Initialization Data</a>
1816+
<a href="#section-6.11" class="section-number selfRef">6.11. </a><a href="#name-initialization-data" class="section-name selfRef">Initialization Data</a>
17741817
</h3>
1775-
<p id="section-6.10-1">Required: Optional JSON Type: String Location: Track Object<a href="#section-6.10-1" class="pilcrow"></a></p>
1776-
<p id="section-6.10-2">An m2ts track <span class="bcp14">MAY</span> use the MSF <code>initData</code> field to carry Base64 <span>[<a href="#BASE64" class="cite xref">BASE64</a>]</span>
1818+
<p id="section-6.11-1">Required: Optional JSON Type: String Location: Track Object<a href="#section-6.11-1" class="pilcrow"></a></p>
1819+
<p id="section-6.11-2">An m2ts track <span class="bcp14">MAY</span> use the MSF <code>initData</code> field to carry Base64 <span>[<a href="#BASE64" class="cite xref">BASE64</a>]</span>
17771820
encoded initialization data. If present, the decoded value <span class="bcp14">MUST</span> be a sequence
1778-
of whole source packets using the packet size declared by <code>m2tsPacketSize</code>.<a href="#section-6.10-2" class="pilcrow"></a></p>
1779-
<p id="section-6.10-3">Publishers <span class="bcp14">SHOULD</span> include current PAT and PMT packets in <code>initData</code> when those
1821+
of whole source packets using the packet size declared by <code>m2tsPacketSize</code>.<a href="#section-6.11-2" class="pilcrow"></a></p>
1822+
<p id="section-6.11-3">Publishers <span class="bcp14">SHOULD</span> include current PAT and PMT packets in <code>initData</code> when those
17801823
tables are not guaranteed to be available at the first Object of each Group.
17811824
When PSI changes within a live track, publishers <span class="bcp14">SHOULD</span> update <code>initData</code> to
17821825
reflect the new PAT and PMT before publishing subsequent Objects.
17831826
Receivers <span class="bcp14">MUST NOT</span> assume that <code>initData</code> remains valid after a version change
1784-
in transport-stream PSI; updated PSI in the media Objects takes precedence.<a href="#section-6.10-3" class="pilcrow"></a></p>
1827+
in transport-stream PSI; updated PSI in the media Objects takes precedence.<a href="#section-6.11-3" class="pilcrow"></a></p>
17851828
</section>
17861829
</div>
17871830
</section>
@@ -1943,6 +1986,64 @@ <h3 id="name-multi-program-source-two-pr">
19431986
</div>
19441987
</section>
19451988
</div>
1989+
<div id="example-abr">
1990+
<section id="section-7.5">
1991+
<h3 id="name-abr-alternate-renditions-tw">
1992+
<a href="#section-7.5" class="section-number selfRef">7.5. </a><a href="#name-abr-alternate-renditions-tw" class="section-name selfRef">ABR Alternate Renditions — Two Bitrate Tracks</a>
1993+
</h3>
1994+
<p id="section-7.5-1">This example shows a catalog for a live channel published at two bitrates as
1995+
alternate renditions. Both tracks are in the same <code>altGroup</code>; video tracks
1996+
<span class="bcp14">MUST</span> align Group boundaries at identical presentation positions. The tracks
1997+
use different PID assignments: a subscriber switching between them <span class="bcp14">MUST</span> re-parse
1998+
PAT and PMT on the new track before routing packets to a decoder.<a href="#section-7.5-1" class="pilcrow"></a></p>
1999+
<div class="lang-json sourcecode" id="section-7.5-2">
2000+
<pre>
2001+
{
2002+
"version": 1,
2003+
"generatedAt": 1746104606044,
2004+
"tracks": [
2005+
{
2006+
"name": "video-high",
2007+
"namespace": "live.example.com/channel/1",
2008+
"packaging": "m2ts",
2009+
"isLive": true,
2010+
"targetLatency": 1000,
2011+
"role": "video",
2012+
"mimeType": "video/mp2t",
2013+
"bitrate": 6000000,
2014+
"altGroup": 1,
2015+
"m2tsPacketSize": 188,
2016+
"m2tsPacketsPerObject": 64,
2017+
"m2tsProgramNumber": 1,
2018+
"m2tsPmtPid": 256,
2019+
"m2tsPcrPid": 257,
2020+
"m2tsPsiInterval": 100,
2021+
"m2tsRandomAccess": true
2022+
},
2023+
{
2024+
"name": "video-low",
2025+
"namespace": "live.example.com/channel/1",
2026+
"packaging": "m2ts",
2027+
"isLive": true,
2028+
"targetLatency": 1000,
2029+
"role": "video",
2030+
"mimeType": "video/mp2t",
2031+
"bitrate": 2000000,
2032+
"altGroup": 1,
2033+
"m2tsPacketSize": 188,
2034+
"m2tsPacketsPerObject": 64,
2035+
"m2tsProgramNumber": 1,
2036+
"m2tsPmtPid": 512,
2037+
"m2tsPcrPid": 513,
2038+
"m2tsPsiInterval": 100,
2039+
"m2tsRandomAccess": true
2040+
}
2041+
]
2042+
}
2043+
</pre><a href="#section-7.5-2" class="pilcrow"></a>
2044+
</div>
2045+
</section>
2046+
</div>
19462047
</section>
19472048
</div>
19482049
<div id="subscriber-processing">
@@ -2023,7 +2124,10 @@ <h2 id="name-switching-and-alternate-ren">
20232124
value received on the new track as the initial reference. In addition to the
20242125
Group boundary alignment requirements above, publishers providing alternate
20252126
tracks <span class="bcp14">SHOULD</span> align presentation timestamps at Group boundaries across tracks
2026-
to enable seamless presentation switching at the application layer.<a href="#section-10-3" class="pilcrow"></a></p>
2127+
to enable seamless presentation switching at the application layer.
2128+
Because PID assignments need not match across alternate tracks, a receiver
2129+
<span class="bcp14">MUST</span> re-parse the PAT and PMT of the new track after every track switch before
2130+
routing elementary-stream packets to a decoder.<a href="#section-10-3" class="pilcrow"></a></p>
20272131
</section>
20282132
</div>
20292133
<div id="content-protection">

0 commit comments

Comments
 (0)