InputStreamHealth interface
Per-stream wallclock-vs-media health within a connection health sample. See the SRT input metrics documentation for how to read these together.
Signature:
export interface InputStreamHealth
Properties
| Property | Type | Description |
|---|---|---|
number |
Bits seen for this stream over the sample window |
|
number |
Smoothed media time delivered per wallclock second (EWMA across windows). ~1.0 = realtime; > 1 sustained = the source is running above realtime (a "forgot -re" firehose reads tens×, a genuinely-fast source ~1.1+); < 1 = arriving slower than realtime. The startup producer burst is smoothed out. Only act on this once is true. |
|
number |
Frames seen for this stream over the sample window |
|
number |
wallclock now − arrival of the last frame (ms). The stall detector: grows when frames stop arriving, even while realtimeDelta is frozen. |
|
number |
How much media time advanced over the sample window (ms) |
|
number |
(Optional) Nominal frame rate, if known |
|
number |
wallclock now − the last frame’s media timestamp (ms), measured at the input. This is a RELATIVE quantity — do NOT read its absolute sign or magnitude as "seconds behind realtime". It carries a source-dependent offset that has nothing to do with the receiver: a startup lead (a publisher typically dumps its first GOP the instant it connects, stamping media time ahead of now) plus accumulated source-vs-receiver clock skew (a source running even ~1% fast makes this drift steadily more negative). It is commonly negative on a perfectly healthy input. Use the TREND, not the value: |
|
number |
Trend of realtimeDelta over the window (ms per second; positive = the input is falling behind realtime, negative = catching up). The reliable drift signal — this, not the absolute realtimeDelta, is what tells you an input is degrading. |
|
boolean |
False during the startup window(s); once true the initial producer burst has been discounted and reflects steady state. Gate any "sustained above realtime" decision on this. |
|