Table of Contents

Class TeeQueueSettings

Namespace
VisioForge.Core.Types.X.Special
Assembly
VisioForge.Core.dll

Settings for the queue elements used in Tee splitter. Controls buffering behavior for each tee output.

public class TeeQueueSettings

Inheritance

Inherited Members

Properties

FlushOnEos

Gets or sets a value indicating whether to discard all data in the queue when an EOS event is received. GStreamer default is false.

public bool FlushOnEos { get; set; }

Property Value

bool

Leaky

Gets or sets where the queue leaks, if at all. GStreamer default is No (queue blocks when full).

public TeeQueueLeaky Leaky { get; set; }

Property Value

TeeQueueLeaky

MaxSizeBuffers

Gets or sets the maximum number of buffers in the queue. Set to 0 to disable buffer count limit. GStreamer default is 200.

public uint MaxSizeBuffers { get; set; }

Property Value

uint

MaxSizeBytes

Gets or sets the maximum amount of data in the queue in bytes. Set to 0 to disable byte limit. GStreamer default is 10485760 (10 MB).

public uint MaxSizeBytes { get; set; }

Property Value

uint

MaxSizeTime

Gets or sets the maximum amount of data in the queue in nanoseconds. Set to 0 to disable time limit. GStreamer default is 1000000000 (1 second).

public ulong MaxSizeTime { get; set; }

Property Value

ulong

MinThresholdBuffers

Gets or sets the minimum number of buffers required before allowing reading. Set to 0 to disable. GStreamer default is 0.

public uint MinThresholdBuffers { get; set; }

Property Value

uint

MinThresholdBytes

Gets or sets the minimum amount of data in bytes required before allowing reading. Set to 0 to disable. GStreamer default is 0.

public uint MinThresholdBytes { get; set; }

Property Value

uint

MinThresholdTime

Gets or sets the minimum amount of data in nanoseconds required before allowing reading. Set to 0 to disable. GStreamer default is 0.

public ulong MinThresholdTime { get; set; }

Property Value

ulong

Silent

Gets or sets a value indicating whether to suppress queue signals. GStreamer default is false.

public bool Silent { get; set; }

Property Value

bool

Methods

Default()

Creates default settings optimized for media pipelines.

public static TeeQueueSettings Default()

Returns

TeeQueueSettings

Settings optimized for media pipeline queues.

Remarks

Limits applied:

  • MaxSizeBuffers = 200 — belt-and-braces upper bound that stops a misconfigured pipeline from growing the queue without limit, regardless of per-buffer size.
  • MaxSizeBytes = 0 (disabled) — byte limits are format- dependent in ways that are almost always wrong. A 10 MB cap drops every raw 1080p frame (~8.3 MB) but is effectively unlimited for an H.264 stream (5–50 KB/buffer); the same numeric value cannot serve both. Buffer-count and time bounds are format-agnostic and provide the real ceiling.
  • MaxSizeTime = 2 s — primary latency bound for live recording / monitoring paths. Tight enough that A/V drift stays bounded after a brief consumer-side hiccup (GC pause, disk-write spike, USB-bus stall), wide enough not to drop buffers under normal scheduler jitter.

LowLatency()

Creates default settings optimized for low latency.

public static TeeQueueSettings LowLatency()

Returns

TeeQueueSettings

Settings configured for minimal buffering.