Skip to content

Streaming data types ​

Fields below are declared serialized members. Base types contribute their own fields; related types link the payload graph. ? means nullable, and required marks a required C# initializer. These are schematic C# contract shapes, not compilable declarations or a separate JSON schema. Constructor members are repeated in the field list for easy scanning. Serialization attributes and implementation helpers are omitted; use the linked source for exact wire aliases and formatters.

PlaybackQualityInfo ​

Aggregate playback health + per-stream details accompanying a playback quality push. Drives capacity estimation and per-stream priority decisions on the server's safety-cap step. Source

csharp
public sealed partial record PlaybackQualityInfo(
    long EstimatedCapacityBytesPerSec,
    double AggregateHealth,
    PlaybackQualityReason Reason,
    bool IsColdStart,
    ApiMap<string, PlaybackStreamInfo> Streams,
    string StallNote = ""
)
{
    long EstimatedCapacityBytesPerSec;
    double AggregateHealth;
    PlaybackQualityReason Reason;
    bool IsColdStart;
    ApiMap<string, PlaybackStreamInfo> Streams;
    string StallNote;
}

Related types: PlaybackQualityReason, PlaybackStreamInfo.

PlaybackQualityReason ​

Allowed values for playback quality reason. Source

csharp
public enum PlaybackQualityReason
{
    Stable = 0,
    Climb,
    Backoff,
    FloorReached,
    ActiveSetChanged,
    ReconnectPush,
    ColdStartTick,
    Stalled,
}

PlaybackStreamInfo ​

Per-stream playback sample plus the controller's classification. Pruned to what the server-side allocator and telemetry consume. Source

csharp
public sealed partial record PlaybackStreamInfo(
    long IncomingByteRate,
    double BufferDurationMsEma,
    PlaybackStreamPriority Priority,
    int Verdict
)
{
    long IncomingByteRate;
    double BufferDurationMsEma;
    PlaybackStreamPriority Priority;
    int Verdict;
}

Related types: PlaybackStreamPriority.

PlaybackStreamPriority ​

Allowed values for playback stream priority. Source

csharp
public enum PlaybackStreamPriority
{
    Secondary = 0,
    Primary = 1,
}

ReceiveQuality ​

Per-stream client request for the SVC layer cap the server should forward. LayerId is the inclusive max kept spatial layer id; IsThumbnail is the display role — true only for a true thumbnail tile, false = "large or unknown" (old clients never set it). Source

csharp
public sealed partial record ReceiveQuality
{
    int LayerId;
    bool IsThumbnail;
}

RecordingQualityInfo ​

Wire payload accompanying a recording quality decision. Slim: only what the server-side telemetry uses (VideoSendDropRatio, VideoSendAckAgeMs). Source

csharp
public sealed partial record RecordingQualityInfo(
    RecordingQualityReason Reason,
    double SenderFrameDropRatioEma,
    double LastAckAgeMs,
    ThermalLevel ThermalLevel = default,
    bool IsHardwareAccelerated = false
)
{
    RecordingQualityReason Reason;
    double SenderFrameDropRatioEma;
    double LastAckAgeMs;
    ThermalLevel ThermalLevel;
    bool IsHardwareAccelerated;
}

Related types: RecordingQualityReason, ThermalLevel.

RecordingQualityReason ​

Allowed values for recording quality reason. Source

csharp
public enum RecordingQualityReason
{
    Stable = 0,
    Climb,
    Backoff,
    StuckAtFloor,
    ColdStartTick,
    ReconnectPush,
}

RecordingQualityState ​

Recorder controller's intended layer count and the count actually applied to the encoder. Sent to the server purely as a metric. Source

csharp
public sealed partial record RecordingQualityState(
    int TargetLayerCount,
    int EffectiveLayerCount
)
{
    int TargetLayerCount;
    int EffectiveLayerCount;
}

StreamDemandInfo ​

The viewer-demand aggregate for one stream, as seen by the stream's owning node. Functional decision inputs only — provenance counters live in StreamDemandStats (pull-only, so their churn can't drive invalidations). Source

csharp
public sealed partial record StreamDemandInfo(int Mask, bool ThumbnailViewersOnly)
{
    int Mask;
    bool ThumbnailViewersOnly;
}

StreamDemandStats ​

Demand provenance for diagnostics: who is reporting demand for a stream. Served by a plain (non-compute) method and polled by the diagnostics UI — deliberately NOT part of StreamDemandInfo, since the counters change on every viewer join/leave/pause and would invalidate the demand computes far more often than the decision inputs actually change. Source

csharp
public sealed partial record StreamDemandStats(int ViewerCount, int PausedCount)
{
    int ViewerCount;
    int PausedCount;
}