Skip to main content

⏱ PCR Interval

The Program Clock Reference (PCR) is the 27 MHz timing reference carried in MPEG-TS adaptation fields for the PMT-declared PCR PID. PCR values must appear often enough that decoders can stay synchronized to the encoder clock.
This application applies the maximum interval for the selected MPEG-TS profile:

  • ATSC: 100 ms
  • DVB: 40 ms
  • Generic: 100 ms

What This Test Does​

The PCR Interval test scans PCR-bearing packets on the selected PCR PID and records an interval violation when the gap between consecutive PCR values exceeds the selected profile limit.

If a transport packet in that violating span sets the adaptation-field discontinuity_indicator, the finding is still recorded, but the validation result is downgraded to a warning.

βœ… Pass Criteria​

The test passes when no PCR interval violations are detected.

Application result message:

No PCR interval violations were detected.

⚠️ Warning Criteria​

The test reports a warning when every detected PCR interval violation is covered by a discontinuity_indicator on the violating packet or on an earlier packet after the previous PCR sample.

This usually means the stream declared a legal transport discontinuity such as a splice, restart, or timestamp reset.

Application result message:

<n> PCR interval violation was detected, and discontinuity_indicator was set. This is a legal situation.

❌ Fail Criteria​

The test fails when one or more PCR interval violations are detected without a matching discontinuity indicator.

Typical causes include:

  • Missing PCR packets on the PCR PID
  • Mux pacing issues
  • Timestamp rewrite or remux defects

Application result message:

<n> PCR interval errors were detected.

Example​

Here a chart that shows a PCR interval jump.

PAT interval chart

Test file​

  • mpegts-pcr-interval-jump.ts