@@ -55,11 +55,11 @@ informative:
5555
5656--- abstract
5757
58- This document extends the MOQT Streaming Format (MSF) by registering the
58+ This document extends the MOQT Streaming Format (MSF) catalog by defining the
5959" m2ts" packaging value for carrying MPEG-2 Transport Stream and M2TS source
60- packets over Media Over QUIC Transport. It defines catalog fields for
61- transport-stream track description and specifies receiver and relay behavior
62- for joining, switching, and validating packetized streams.
60+ packets over Media Over QUIC Transport. It defines catalog-extension fields
61+ for transport-stream track description and specifies receiver and relay
62+ behavior for joining, switching, and validating packetized streams.
6363
6464--- middle
6565
@@ -68,7 +68,7 @@ for joining, switching, and validating packetized streams.
6868Media Over QUIC Transport (MOQT) {{MoQTransport}} delivers named tracks as
6969ordered groups of objects. The MOQT Streaming Format (MSF) {{MSF}} defines a
7070catalog model and common streaming conventions for describing tracks delivered
71- over MOQT. This document extends MSF by registering the "m2ts" packaging
71+ over MOQT. This document extends the MSF catalog with the "m2ts" packaging
7272value for carrying MPEG-2 Transport Stream packets as defined by {{ISO138181}}
7373and M2TS source packets that prefix each transport-stream packet with a
7474four-octet source-packet timestamp.
@@ -92,6 +92,17 @@ requirements that are conditioned on `packaging: loc` do not apply to
9292m2ts-packaged tracks; equivalent behavior for m2ts tracks is defined in this
9393document.
9494
95+ This document is an extension of the catalog defined by the revision of
96+ {{MSF}} identified in the normative references. The catalog structure, common
97+ fields, and catalog processing rules are inherited from that revision of MSF.
98+ This document defines only the `m2ts` packaging value and the fields and
99+ processing rules specific to that packaging.
100+
101+ The catalog `version` field identifies the referenced MSF revision and does not
102+ identify version 1 of the MSFTS packaging format described in {{introduction}}.
103+ Catalogs conforming to this document MUST use the version value specified by
104+ the referenced revision of MSF.
105+
95106# Conventions and Definitions
96107
97108{::boilerplate bcp14-tagged}
@@ -349,12 +360,13 @@ specify SCTE-35 processing.
349360
350361# Catalog {#catalog}
351362
352- An m2ts track is described by the MSF catalog {{MSF}}. The catalog track name,
353- delta update rules, variable substitution rules, authorization signaling, and
354- common track fields are inherited from MSF.
355-
356- This document defines additional fields for track objects whose `packaging`
357- value is "m2ts". A parser MUST ignore fields it does not understand.
363+ An m2ts track is described by the MSF catalog {{MSF}}. This document extends
364+ that catalog by defining the `m2ts` value for the inherited `packaging` field
365+ and additional fields for track objects that use that value. The catalog track
366+ name, root catalog fields, common track fields, delta update rules, variable
367+ substitution rules, and authorization signaling are inherited unchanged from
368+ MSF unless this document explicitly states otherwise. A parser MUST ignore
369+ fields it does not understand.
358370
359371# # Track Object Fields {#track-fields}
360372
@@ -374,7 +386,9 @@ Table 1 lists the m2ts-specific fields defined within a track object.
374386| M2TS timestamp mode | m2tsTimestampMode | {{m2ts-timestamp-mode}} |
375387| M2TS SCTE-35 PID | m2tsScte35Pid | {{m2ts-scte35-pid}} |
376388| M2TS MPTS | m2tsMpts | {{m2ts-mpts}} |
377- | Initialization data | initData | {{init-data}} |
389+
390+ Use of the MSF `initRef` and `initDataList` fields by m2ts tracks is described
391+ in {{init-data}}.
378392
379393# # M2TS Packet Size {#m2ts-packet-size}
380394
@@ -488,25 +502,30 @@ When true, this track carries a multi-program transport stream without program
488502selection or PID filtering. `m2tsProgramNumber`, `m2tsPmtPid`, and
489503` m2tsPcrPid` MUST be absent when this field is true.
490504
491- # # Initialization Data {#init-data}
492-
493- Required : Optional JSON Type: String Location: Track Object
494-
495- An m2ts track MAY use the MSF `initData` field to carry Base64 {{BASE64}}
496- encoded initialization data. If present, the decoded value MUST be a sequence
497- of whole source packets using the packet size declared by `m2tsPacketSize`.
498-
499- Publishers SHOULD include current PAT and PMT packets in `initData` when those
500- tables are not guaranteed to be available at the first Object of each Group.
501- When PSI changes within a live track, publishers SHOULD update `initData` to
502- reflect the new PAT and PMT before publishing subsequent Objects.
503- Receivers MUST NOT assume that `initData` remains valid after a version change
504- in transport-stream PSI; updated PSI in the media Objects takes precedence.
505-
506- For `m2tsMpts` tracks, encoding `initData` requires extracting PAT and all
507- program PMTs from the source multiplex. Publishers that do not inspect the
508- source stream typically omit `initData`; subscribers will encounter PSI within
509- one PSI repetition cycle regardless of Group boundaries.
505+ # # Use of MSF Initialization Data {#init-data}
506+
507+ The `initRef` track field and the root `initDataList` field are defined by MSF;
508+ they are not fields defined by this extension. An m2ts track MAY use those
509+ fields to carry initialization data. The track sets `initRef` to the `id` of
510+ an `initDataList` entry whose `type` MUST be "inline". The Base64 {{BASE64}}
511+ decoded value of the entry's `data` field MUST be a sequence of whole source
512+ packets using the packet size declared by `m2tsPacketSize`.
513+
514+ Publishers SHOULD include current PAT and PMT packets in the referenced
515+ initialization data when those tables are not guaranteed to be available at the
516+ first Object of each Group. When PSI changes within a live track, the
517+ publisher SHOULD publish an updated initialization data entry in a new
518+ independent catalog before publishing media Objects that rely on the changed
519+ PSI. An update to the root `initDataList` MUST NOT be expressed as an MSF delta
520+ update. Receivers MUST NOT assume that referenced initialization data remains
521+ valid after the MPEG-2 PSI `version_number` changes; updated PSI in media
522+ Objects takes precedence.
523+
524+ For `m2tsMpts` tracks, producing referenced initialization data requires
525+ extracting the PAT and all program PMTs from the source multiplex. Publishers
526+ that do not inspect the source stream typically omit `initRef` and the
527+ corresponding `initDataList` entry; subscribers will encounter PSI within one
528+ PSI repetition cycle regardless of Group boundaries.
510529
511530# Catalog Examples {#catalog-examples}
512531
@@ -516,7 +535,7 @@ The following examples are non-normative.
516535
517536~~~ json
518537{
519- " version " : 1 ,
538+ " version " : " draft-01 " ,
520539 " generatedAt " : 1746104606044,
521540 " tracks " : [
522541 {
@@ -544,7 +563,7 @@ The following examples are non-normative.
544563
545564~~~ json
546565{
547- " version " : 1 ,
566+ " version " : " draft-01 " ,
548567 " generatedAt " : 1746104606044,
549568 " tracks " : [
550569 {
@@ -570,7 +589,7 @@ The following examples are non-normative.
570589
571590~~~ json
572591{
573- " version " : 1 ,
592+ " version " : " draft-01 " ,
574593 " tracks " : [
575594 {
576595 " name " : " asset-main" ,
@@ -599,7 +618,7 @@ used because the programs carry different content.
599618
600619~~~ json
601620{
602- " version " : 1 ,
621+ " version " : " draft-01 " ,
603622 " generatedAt " : 1746104606044,
604623 " tracks " : [
605624 {
@@ -649,7 +668,7 @@ advisory hint; its value is not normative for MPTS tracks.
649668
650669~~~ json
651670{
652- " version " : 1 ,
671+ " version " : " draft-01 " ,
653672 " generatedAt " : 1746104606044,
654673 " tracks " : [
655674 {
@@ -679,7 +698,7 @@ PAT and PMT on the new track before routing packets to a decoder.
679698
680699~~~ json
681700{
682- " version " : 1 ,
701+ " version " : " draft-01 " ,
683702 " generatedAt " : 1746104606044,
684703 " tracks " : [
685704 {
0 commit comments