OBSERVERTC / Client Monitor
Perceived quality detectors
Visible and audible degradation, including synchronization.
Pixelated VideoDetects heavy video compression associated with visible pixelation.
Class
What it collects
Normalized quantization measurements and codec/track eligibility.
What triggers it
normalized QP≥0.62 for 8000 ms
What resolves it
QP<0.52; no QP/unknown codec/pause/end/screenshare stand down; not bitPerPixel
Example
Normalized QP stays high long enough to indicate heavy video compression.
Inbound Video Flow StateDistinguishes moving, choppy and frozen incoming video.
Class
What it collects
Continuous and repeated freezes across flow detection and recovery windows.
What triggers it
shared flow slice: continuous/longest freeze≥2000 ms => frozen; ≥2 freezes => choppy
What resolves it
frozen clears on moving picture; choppy needs freeze-free recovery slice; mutually exclusive payload state
Example
A long freeze marks video frozen; repeated short freezes can mark it choppy.
Invented SpeechDetects excessive synthesized speech used to conceal missing audio.
Class
What it collects
Invented-speech ratio, elapsed time and an accumulated evidence bucket.
What triggers it
bucket clamp(bucket+(inventedRatio−0.05)×dtMs,0,400); full opens invented-speech
What resolves it
empty closes; pause/end discard; missing input marks unavailable
Example
Repeated audio concealment fills the evidence bucket and raises the issue.
Audio Playout SynthesisDetects excessive synthesized audio during playout.
Class
What it collects
Synthesized audio duration relative to played duration.
What triggers it
synthesized duration / played duration>0.05 over track window
What resolves it
recovery ratio≤threshold; needs media-playout measurements; currently raises synthesized-audio
Example
Synthesized audio exceeds five percent of played duration over the track window.
Jitter Buffer StressDetects a jitter buffer compensating heavily for uneven delivery.
Class
What it collects
Jitter-buffer target delay and audio stretch share.
What triggers it
target delay>200 ms AND stretch share>0.02 for 2 ticks
What resolves it
conjunction clears, track stand-downs; severity scales against 1000 ms and 0.15
Example
High buffer delay and substantial time stretching occur together.
AV Desync PlayoutDetects a timing mismatch between paired audio and video.
Class
What it collects
Playout timestamps of explicitly paired audio and video tracks.
What triggers it
explicitly paired audio/video playout timestamps; ahead≥90 ms or behind≥185 ms for 3000 ms
What resolves it
ahead<45 or behind<125; direction-aware hysteresis; missing pairing is unavailable
Example
Paired audio remains sufficiently ahead of video for three seconds.
Sources: client-monitor-js/src/detectors/PixelatedVideoDetector.ts, client-monitor-js/src/detectors/AudioPlayoutSynthesisDetector.ts, client-monitor-js/src/detectors/InventedSpeechDetector.ts.