Skip to content

Strengthen m2tsMuxRate / clock-authority guidance for byte-accurate CBR reconstruction #16

Description

@t0ms

Context: one of a set of separate follow-ups to #7 (building on point 2 / PR #10), from evaluating m2ts packaging for broadcast primary distribution / contribution handed off to hardware IRDs (SRT/Zixi/RIST-style satellite replacement). Background: https://github.com/tdrapier-wbd/moq-mpegts-paper (public technical evaluation, not yet widely announced).

Problem

M2TS Mux Rate ({#m2ts-mux-rate}) is defined as "the nominal source mux rate of the transport stream in bits per second. This field is advisory." For handing a byte-accurate CBR TS to a hardware IRD (which locks a PLL to PCR), a few things are currently ambiguous:

  1. Clock authority is not stated. To avoid drift between a reconstructed egress clock and the carried PTS/DTS (a T-STD hazard), an egress should generally recover its output clock from the carried PCR (authoritative), and use m2tsMuxRate as the null-stuffing / target-rate hint rather than as the timing source. The draft could say this explicitly.
  2. 188 vs 192 basis is unspecified. For m2tsPacketSize: 192, it is unclear whether the rate counts the four-octet prefix or the 188-octet TS packet only.
  3. Precision. A "nominal" integer bits/s may be too imprecise to reproduce exact byte positions once null packets are removed; a note on precision (or a statement that PCR-to-byte position is authoritative) would help.
  4. No worked example. m2tsMuxRate appears only in the field table and prose — none of the catalog examples show it, even though it is the field most relevant to null-removed CBR contribution.

Why it matters for contribution → IRD

This is the signaling a downstream groomer/stuffer needs to re-stuff to CBR and pass TR 101 290 on a hardware IRD. Getting the clock-authority and rate semantics right is what makes egress behavior interoperable across implementations.

Suggestion

  • State that a reconstructing egress SHOULD recover its clock from PCR and treat m2tsMuxRate as the stuffing/target rate.
  • Clarify the 188 vs 192 rate basis.
  • Add a short note on precision.
  • Add a catalog example showing null removal + m2tsMuxRate.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions