@@ -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.
@@ -262,28 +264,24 @@ required for descrambling; conditional access integration is application-specifi
262264and outside the scope of this document.
263265
264266The `m2tsProgramNumber` field ({{m2ts-program-number}}) SHOULD be present on
265- tracks derived from a multi-program source to identify the program carried.
266-
267- When multiple tracks are derived from the same MPTS source, the publisher
268- SHOULD use the MSF `altGroup` field if the programs are alternate renditions
269- of the same content. Programs that are independent services SHOULD be
270- published as separate tracks; whether to include them in the same catalog is
271- application-specific.
272-
273- A publisher MAY carry the complete multi-program transport stream without
274- program selection or PID filtering, by setting `m2tsMpts` ({{m2ts-mpts}}) to
275- true. In this mode, all source packets from the multiplex are emitted without
276- PAT rewrite. Because no per-program filtering occurs, MOQT serves only as a
277- scalable transport layer; per-track program subscription, per-program catalog
278- fields, and the relay caching and subscriber join behavior defined in this
267+ per-program tracks to identify the program carried. When multiple per-program
268+ tracks are derived from the same MPTS source, the publisher SHOULD use the MSF
269+ ` altGroup` field if the programs are alternate renditions of the same content;
270+ programs that are independent services SHOULD be published as separate tracks.
271+
272+ A publisher MAY instead carry the complete multi-program transport stream
273+ without program selection or PID filtering, by setting `m2tsMpts`
274+ ({{m2ts-mpts}}) to true. In this mode, all source packets from the multiplex
275+ are emitted without PAT rewrite. Because no per-program filtering occurs,
276+ MOQT serves only as a scalable transport layer; per-track program subscription,
277+ per-program catalog fields, and the subscriber join behavior defined in this
279278document do not apply. When `m2tsMpts` is true, `m2tsProgramNumber`,
280279` m2tsPmtPid` , and `m2tsPcrPid` MUST be absent.
281280
282- Group boundary placement depends on whether the publisher can identify random
283- access points across the multiplex. A publisher that can do so MAY align
284- Group boundaries to those points and set `m2tsRandomAccess` to true. A
285- publisher that cannot SHOULD instead start a new Group after a fixed number of
286- Objects.
281+ Group boundary placement for `m2tsMpts` tracks depends on whether the publisher
282+ can identify random access points across the multiplex : if it can, it MAY align
283+ Group boundaries to those points and set `m2tsRandomAccess` to true; otherwise
284+ it SHOULD start a new Group after a fixed number of Objects.
287285
288286# # PCR and Timing {#pcr-timing}
289287
0 commit comments