feat: add m2tsMpts transparent whole-multiplex carriage mode - #8
Merged
Conversation
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>
* 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>
gwendalsimon
force-pushed
the
feat/m2ts-mpts
branch
from
July 9, 2026 09:33
16f18ae to
9822ca8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Addresses point 3 of #7 — the request for an explicit transparent profile for whole-multiplex carriage.
m2tsMptsthat, when true, signals that the track carries the full multi-program transport stream without program selection, PID filtering, or PAT rewriteChanges
§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
m2tsMptsmode; Group boundaries use a fixed Object count unless the publisher can identify RAPs and setsm2tsRandomAccessCatalog table and field definitions
m2tsMptsentry and sectionm2tsProgramNumber,m2tsPmtPid,m2tsPcrPid: each gains a MUST-be-absent clause whenm2tsMptsis truem2tsPsiInterval: 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
m2tsMptstracks fromaltGroup