CallMeter Docs

PLC Duration

Understand PLC Duration in Opus audio streams — how much audio is being synthesized by the codec per second, thresholds, and what prolonged concealment means for call quality.

PLC Duration measures the total time the Opus decoder spent generating synthetic audio during each measurement interval. While PLC Events count how often concealment activates, PLC Duration tells you how much audio was actually concealed.

Imagine a phone call where every few seconds, the person on the other end is briefly replaced by a convincing impersonator. A few milliseconds are undetectable. Hundreds of milliseconds per second means the listener is hearing more synthesized speech than real speech.

Opus only

PLC Duration is measured exclusively for Opus-encoded audio streams. Other codecs do not expose concealment duration at the decoder level.

How It Works

Each time the Opus decoder enters PLC mode, it generates synthetic audio for the duration of the missing packet (typically 20ms). CallMeter accumulates these durations and reports the total concealed time per second in milliseconds.

For example, if five 20ms packets are lost in one second, the PLC Duration would be approximately 100ms/s — meaning 10% of that second's audio was synthesized rather than real.

Why It Matters

PLC Duration is the most direct measure of how much audio the listener is not actually hearing from the remote speaker. Short bursts of PLC are inaudible, but sustained concealment produces audible artifacts: the synthesized audio gradually diverges from reality, creating a "warbling" or "underwater" effect.

For enterprise testing, PLC Duration thresholds help you define pass/fail criteria for audio quality that go beyond simple packet loss percentages.

Thresholds

LevelValue (ms per second)Interpretation
Good0 - 50Concealment is minimal and likely inaudible
Warning50 - 150Noticeable audio degradation, investigate network conditions
CriticalAbove 150Severe concealment, listeners hear obvious audio artifacts

Duration compounds quickly

At 150ms/s of concealment, 15% of all audio is synthetic. Combined with the decoder's decreasing accuracy over consecutive concealed frames, the listener experience degrades rapidly beyond this point.

Common Causes of High PLC Duration

CauseExplanation
Burst packet lossMultiple consecutive packets lost, causing long PLC stretches
Network congestion spikesSudden congestion dropping several packets in a row
Jitter buffer underflowBuffer runs empty, forcing decoder into extended concealment
Route changesNetwork path switches causing temporary packet gaps
Overloaded intermediariesSBCs or proxies dropping packets under load

How to Fix It

  1. Distinguish burst vs scattered loss — Compare PLC Duration with PLC Events. High duration with few events means long burst losses. High events with low duration means frequent but brief gaps.
  2. Check jitter buffer sizing — An undersized buffer causes more underflow events. Review jitter buffer metrics for overflow/underflow patterns.
  3. Enable FEC (Forward Error Correction) — Opus supports in-band FEC that can recover from isolated packet losses without PLC activation.
  4. Investigate network path stability — Use traceroute or path analysis tools to identify unstable hops causing burst losses.
  5. Add bandwidth headroom — Congestion-induced burst loss often resolves with 20-30% additional bandwidth capacity.
  • PLC Events — Number of PLC activations; combine with duration to understand loss patterns
  • Opus Packet Loss % — Overall loss percentage at the codec level
  • MOS Score — Overall quality score that factors in concealment impact
  • Jitter — Packet timing variation that contributes to jitter buffer underflow

RFC Reference

The Opus PLC algorithm is defined in RFC 6716 (Definition of the Opus Audio Codec), Section 4. PLC frame duration corresponds to the codec's frame size, typically 20ms for VoIP configurations as recommended in RFC 7587 (RTP Payload Format for the Opus Speech and Audio Codec).

On this page