Skip to content

feat: add m2tsMpts transparent whole-multiplex carriage mode - #8

Merged
mondain merged 5 commits into
mondain:mainfrom
gwendalsimon:feat/m2ts-mpts
Jul 15, 2026
Merged

feat: add m2tsMpts transparent whole-multiplex carriage mode#8
mondain merged 5 commits into
mondain:mainfrom
gwendalsimon:feat/m2ts-mpts

Conversation

@gwendalsimon

Copy link
Copy Markdown
Collaborator

Summary

Addresses point 3 of #7 — the request for an explicit transparent profile for whole-multiplex carriage.

  • Defines a new boolean catalog field m2tsMpts that, when true, signals that the track carries the full multi-program transport stream without program selection, PID filtering, or PAT rewrite
  • Names the field after its content rather than publisher behavior, distinguishing it from per-program transparent forwarding of a SPTS
  • Propagates the constraint and semantics across all affected sections of the draft

Changes

§5.2 Object Boundaries — scopes the "Group starts with PAT and PMT" guidance to single-program video tracks

§5.5 Multi-Program Source Handling — adds two paragraphs defining the m2tsMpts mode; Group boundaries use a fixed Object count unless the publisher can identify RAPs and sets m2tsRandomAccess

Catalog table and field definitions

  • New m2tsMpts entry and section
  • m2tsProgramNumber, m2tsPmtPid, m2tsPcrPid: each gains a MUST-be-absent clause when m2tsMpts is true
  • m2tsPsiInterval: distinguished between normative SHOULD (single-program) and advisory (MPTS)
  • initData: closing paragraph noting that MPTS requires extracting PAT and all program PMTs

§7 Examples — rename per-program example to avoid confusion; add Transparent MPTS Carriage example

§8 Subscriber Processing — clarify "PMT for the track" to "PMT for the program to be decoded"

§10 Switching — add MUST NOT prohibiting m2tsMpts tracks from altGroup

gwendalsimon and others added 4 commits July 8, 2026 16:34
Add a paragraph acknowledging whole-MPTS transparent carriage as a
first-class but limited profile. A publisher sets m2tsMpts to true to
carry the full multiplex without program selection, PID filtering, or
PAT rewrite. In this mode MOQT serves only as a transport layer; per-
program catalog fields and relay join-point behavior do not apply.

Group boundaries are IDR-based when the publisher can detect RAPs
(m2tsRandomAccess MAY be set), otherwise fixed Object count intervals.

Catalog field definition and remaining section clarifications follow
in subsequent commits on this branch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add m2tsMpts boolean catalog field (§6) signaling whole-MPTS carriage.
Clarify constraints on m2tsProgramNumber, m2tsPmtPid, and m2tsPcrPid
(MUST be absent when m2tsMpts is true). Update m2tsPsiInterval to
distinguish normative obligation for single-program tracks from advisory
role for MPTS tracks. Add non-normative note to initData that publishers
of MPTS tracks typically omit it since PSI is continuously in-band.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Scope the PAT/PMT Group-start guidance in §5.2 to single-program video
tracks, since MPTS tracks carry multiple PMTs and publisher composition
control cannot be assumed.

Replace the initData closing paragraph with accurate framing: publishers
that do not inspect the source multiplex typically omit initData for
m2tsMpts tracks; subscribers will encounter PSI within one PSI
repetition cycle regardless of Group boundaries.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Rename §7 example section to disambiguate per-program tracks from
  transparent MPTS mode
* Add §7 transparent MPTS carriage example with m2tsMpts and advisory
  m2tsPsiInterval
* Clarify §8 subscriber PAT/PMT requirement to "program to be decoded"
  (covers both SPTS and MPTS tracks)
* Add §10 MUST NOT constraint prohibiting m2tsMpts tracks from altGroup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@gwendalsimon
gwendalsimon requested a review from mondain as a code owner July 9, 2026 08:07
* Reframe opening to present per-program filtering and m2tsMpts
  transparent carriage as equal first-class modes, removing the
  contradiction between the original SPTS SHOULD and the m2tsMpts MAY
* Remove stale relay caching reference (relay section was deleted)
* Consolidate m2tsProgramNumber and altGroup guidance into one paragraph
* Merge choppy parallel Group boundary sentences into a single
  connected conditional

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mondain
mondain merged commit 66a4476 into mondain:main Jul 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants