PLC Events
Understand Packet Loss Concealment (PLC) events in Opus audio streams — what they measure, why they matter, and what high PLC activation rates mean for call quality.
When an audio packet goes missing during a call, the Opus codec does not simply play silence. Instead, it activates Packet Loss Concealment (PLC) — a built-in mechanism that generates synthetic audio to fill the gap. Each PLC event represents one activation of this concealment algorithm.
Think of PLC as the codec's best guess at what the missing audio would have sounded like. A few PLC events per second are invisible to the listener. A high rate means the codec is constantly inventing audio instead of playing the real thing.
Opus only
PLC events are measured exclusively for Opus-encoded audio streams. Other codecs like G.711 (PCMA/PCMU) do not expose PLC activation counts at the decoder level.
How It Works
When the Opus decoder expects a packet but none arrives in time, it transitions into PLC mode. The decoder uses the characteristics of recently decoded audio — pitch, spectral shape, energy — to synthesize a continuation of the audio signal. Each transition into PLC mode counts as one PLC event.
CallMeter counts these events per second by monitoring the decoder output during the call. The count reflects how frequently the decoder had to conceal a gap, regardless of how long each concealment lasted.
Why It Matters
PLC events are a direct, codec-level indicator of audio quality degradation. Unlike network-level packet loss metrics, PLC events measure what the listener actually experiences. A packet that arrives too late for the jitter buffer still triggers PLC even though it was not technically "lost" on the network.
For enterprise VoIP testing, rising PLC event counts during load tests reveal the point at which network conditions start affecting perceived audio quality — often before traditional packet loss metrics show a problem.
Common Causes of High PLC Event Counts
| Cause | Explanation |
|---|---|
| Network packet loss | Packets dropped by routers, switches, or firewalls before reaching the receiver |
| Excessive jitter | Packets arriving too late for the jitter buffer, effectively lost |
| Insufficient jitter buffer | Buffer too small to absorb normal network variation |
| CPU overload on sender | Encoder unable to produce packets on time |
| WiFi or lossy links | Wireless connections introduce unpredictable packet loss |
How to Fix It
- Check network packet loss — Use the Packet Loss Rate metric to confirm whether packets are being dropped on the network path.
- Review jitter buffer behavior — If jitter is high but packet loss is low, the jitter buffer may be discarding late-arriving packets. Consider whether the buffer target is appropriate for the network conditions.
- Enable QoS/DSCP marking — Ensure audio RTP packets are marked with EF (Expedited Forwarding) so network equipment prioritizes them.
- Use wired connections — Replace WiFi with Ethernet where possible to eliminate wireless loss.
- Monitor CPU on endpoints — If the sending device is overloaded, it may not produce packets consistently.
Related Metrics
- PLC Duration — How long each concealment period lasted, measuring the total concealed audio per second
- Opus Packet Loss % — Loss percentage as seen by the Opus decoder, complementing the event count
- Packet Loss Rate — Network-level packet loss for comparison with codec-level PLC
- Jitter — Packet arrival variation that can trigger PLC even without true packet loss
RFC Reference
Packet Loss Concealment in Opus is described in RFC 6716 (Definition of the Opus Audio Codec), Section 4. The PLC algorithm uses Linear Predictive Coding (LPC) extrapolation to generate synthetic frames when decoder input is missing.
Jitter Buffer RTX Success
Understand jitter buffer RTX success — packets successfully recovered via retransmission, and how to calculate your recovery ratio.
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.