@@ -235,11 +235,13 @@ assuming every Object has the declared size.
235235
236236# # Multi-Program Source Handling {#mpts}
237237
238- An m2ts track SHOULD carry packets from at most one MPEG-2 program,
239- producing a single-program transport stream. A publisher receiving a
240- multi-program transport stream (MPTS) SHOULD produce a separate m2ts track
241- for each program it wishes to offer, filtering the source packets so that
242- each track contains only :
238+ When a publisher receives a multi-program transport stream (MPTS), it may
239+ either produce a separate m2ts track for each program by filtering the source,
240+ or carry the complete multiplex transparently by setting `m2tsMpts`
241+ ({{m2ts-mpts}}) to true.
242+
243+ A publisher producing per-program tracks SHOULD filter the source packets so
244+ that each track contains only :
243245
244246* Null packets with Packet Identifier (PID) 0x1FFF, which MAY be removed or
245247 retained at the publisher's discretion.
@@ -256,28 +258,24 @@ required for descrambling; conditional access integration is application-specifi
256258and outside the scope of this document.
257259
258260The `m2tsProgramNumber` field ({{m2ts-program-number}}) SHOULD be present on
259- tracks derived from a multi-program source to identify the program carried.
260-
261- When multiple tracks are derived from the same MPTS source, the publisher
262- SHOULD use the MSF `altGroup` field if the programs are alternate renditions
263- of the same content. Programs that are independent services SHOULD be
264- published as separate tracks; whether to include them in the same catalog is
265- application-specific.
266-
267- A publisher MAY carry the complete multi-program transport stream without
268- program selection or PID filtering, by setting `m2tsMpts` ({{m2ts-mpts}}) to
269- true. In this mode, all source packets from the multiplex are emitted without
270- PAT rewrite. Because no per-program filtering occurs, MOQT serves only as a
271- scalable transport layer; per-track program subscription, per-program catalog
272- fields, and the relay caching and subscriber join behavior defined in this
261+ per-program tracks to identify the program carried. When multiple per-program
262+ tracks are derived from the same MPTS source, the publisher SHOULD use the MSF
263+ ` altGroup` field if the programs are alternate renditions of the same content;
264+ programs that are independent services SHOULD be published as separate tracks.
265+
266+ A publisher MAY instead carry the complete multi-program transport stream
267+ without program selection or PID filtering, by setting `m2tsMpts`
268+ ({{m2ts-mpts}}) to true. In this mode, all source packets from the multiplex
269+ are emitted without PAT rewrite. Because no per-program filtering occurs,
270+ MOQT serves only as a scalable transport layer; per-track program subscription,
271+ per-program catalog fields, and the subscriber join behavior defined in this
273272document do not apply. When `m2tsMpts` is true, `m2tsProgramNumber`,
274273` m2tsPmtPid` , and `m2tsPcrPid` MUST be absent.
275274
276- Group boundary placement depends on whether the publisher can identify random
277- access points across the multiplex. A publisher that can do so MAY align
278- Group boundaries to those points and set `m2tsRandomAccess` to true. A
279- publisher that cannot SHOULD instead start a new Group after a fixed number of
280- Objects.
275+ Group boundary placement for `m2tsMpts` tracks depends on whether the publisher
276+ can identify random access points across the multiplex : if it can, it MAY align
277+ Group boundaries to those points and set `m2tsRandomAccess` to true; otherwise
278+ it SHOULD start a new Group after a fixed number of Objects.
281279
282280# # PCR and Timing {#pcr-timing}
283281
0 commit comments