Skip to main content

Pipeline runtime

Session, PipelineRun, options, reports, errors. More...

Classes Index

structDebugOptions

Tunables for debug-mode pipeline dumps. More...

structDebugOutput

One captured pipeline output (single-shot dump result). More...

structDebugStream

Streaming iterator over debug-mode pipeline outputs. More...

structBox

One axis-aligned detection produced by BoxDecode. More...

structBoxDecodeResult

Parsed BoxDecode output paired with its raw byte buffer. More...

structFormatSpec

Thin wrapper around FormatTag with implicit string conversions. More...

structProfilerKernelInvocation

One kernel-invocation telemetry event. More...

structProfilerMemcpySite

Aggregate counters for one instrumented memcpy site. More...

structProfilerKernelAggregate

Aggregated timings for one (backend, kernel, stage, slot) tuple. More...

structProfilerReport

Snapshot bundle returned by LatencyProfiler::finalize(). More...

structLatencyProfilerOptions

Construction options for LatencyProfiler. More...

classLatencyProfiler

Per-sample latency tracker; attach to a Run to capture timing telemetry. More...

structRunOptions

Per-Run runtime options. More...

classRun

Live pipeline handle: push inputs in, pull outputs out. More...

classRtspServerHandle

Live handle for a Session running in RTSP server mode. More...

classSession

The assembly stage — turns a list of Nodes into a runnable, deterministic pipeline. More...

structBuiltState

Opaque state carried by a built (not yet running) Session. More...

structGroupMeta

Per-NodeGroup metadata captured during build. More...

structRtspServerOptions

Options for Session::run_rtsp() — controls the RTSP server's mount point and ports. More...

structSessionOptions

Per-Session construction options. More...

structOutputTensorOptions

Options for Session::add_output_tensor() — the tensor-friendly output helper. More...

structSample

Typed payload returned by Run::pull() and consumed by Run::push(). More...

structBoxDecodeOptions

Options driving a standalone BoxDecode invocation. More...

Enumerations Index

enum classBoxDecodeType : std::int32_t { ... }

Decode families accepted by the BoxDecode backend. More...

enum classBoxDecodeTypeOption : std::int32_t { ... }

Tensor packing/layout option within a decode family. More...

enum classFormatTag { ... }

Identifies a media or tensor payload format. More...

enum classOverflowPolicy { ... }

What push() does when the input queue is full. More...

enum classRunPreset { ... }

Convenience preset bundles for RunOptions. More...

enum classOutputMemory { ... }

How output Tensors relate to the underlying GStreamer buffers. More...

enum classRunMode { ... }

Timing mode a Run operates in. More...

enum classSampleKind { ... }

What kind of payload a Sample carries. More...

enum classPullStatus { ... }

Result status of Run::pull(). More...

Description

Session, PipelineRun, options, reports, errors.

Enumerations

BoxDecodeType

enum class simaai::neat::BoxDecodeType : std::int32_t
strong

Decode families accepted by the BoxDecode backend.

Enumeration values
UnspecifiedSentinel: no decode family selected (fails fast at runtime) (= 0)
YoloGeneric YOLO family token (= 1)
YoloV5YOLOv5 detection (= 2)
YoloV5SegYOLOv5 segmentation (= 3)
YoloV7YOLOv7 detection (= 4)
YoloV7SegYOLOv7 segmentation (= 5)
YoloV8YOLOv8 detection (= 6)
YoloV8SegYOLOv8 segmentation (= 7)
YoloV8PoseYOLOv8 pose-estimation heads (= 8)
YoloV9YOLOv9 detection (= 9)
YoloV9SegYOLOv9 segmentation (= 10)
YoloV10YOLOv10 detection (= 11)
YoloV10SegYOLOv10 segmentation (= 12)
DetrDETR-style transformer detection (= 13)
EffDetEfficientDet detection (= 14)
RcnnStage1Region-proposal stage of two-stage R-CNN models (= 15)
CenternetCenterNet keypoint-style detection (= 16)
YoloV26YOLO26 detection (raw l/t/r/b distance heads) (= 17)

Unspecified is an internal unset sentinel and must fail fast before runtime decode. Most YOLO-family variants share the same class-inference contract in genericboxdecode_v2:

  • decoupled heads: repeated class-depth tensors, class depth > 4
  • packed heads: depth = 3 * (num_classes + 5), consistent across heads YoloV26 uses decoupled 4-channel raw l/t/r/b bbox heads paired with class heads.

Definition at line 33 of file BoxDecodeType.h.

33enum class BoxDecodeType : std::int32_t {
34 // Internal sentinel; runtime decode requires a concrete value.
35 Unspecified = 0,
36 // YOLO-family (generic token).
37 Yolo = 1,
38 YoloV5 = 2,
39 YoloV5Seg = 3,
40 YoloV7 = 4,
41 YoloV7Seg = 5,
42 YoloV8 = 6,
43 YoloV8Seg = 7,
44 YoloV8Pose = 8,
45 YoloV9 = 9,
46 YoloV9Seg = 10,
47 YoloV10 = 11,
48 YoloV10Seg = 12,
49 Detr = 13,
50 EffDet = 14,
51 RcnnStage1 = 15,
52 Centernet = 16,
53 YoloV26 = 17,
54};

BoxDecodeTypeOption

enum class simaai::neat::BoxDecodeTypeOption : std::int32_t
strong

Tensor packing/layout option within a decode family.

Enumeration values
AutoBackend infers the layout from tensor shapes (= 0)
PackedPerHeadEach head holds a single packed tensor (box+obj+cls) (= 1)
InterleavedByHeadHeads interleaved within tensors (= 2)
GroupedByRoleTensors grouped by role (box, score, class) (= 3)
Split3InterleavedThree split tensors, head-interleaved (= 4)
Split3GroupedThree split tensors, grouped by role (= 5)
InterleavedByHeadProbabilityInterleaved-by-head, class scores as probabilities (= 6)
InterleavedByHeadLogitInterleaved-by-head, class scores as logits (= 7)
GroupedByRoleProbabilityGrouped-by-role, class scores as probabilities (= 8)
GroupedByRoleLogitGrouped-by-role, class scores as logits (= 9)

Some families admit multiple equivalent head layouts (packed vs interleaved, grouped by role, probability vs logit class scores). Auto lets the planner pick from observed tensor geometry; the explicit values force a particular decoding contract for ambiguous models.

Definition at line 66 of file BoxDecodeType.h.

FormatTag

enum class simaai::neat::FormatTag
strong

Identifies a media or tensor payload format.

Enumeration values
AutoUnset / framework decides (= 0)
RGBPacked RGB, 8 bits per channel
BGRPacked BGR, 8 bits per channel (OpenCV default)
GRAY8Single-plane 8-bit grayscale
NV12YUV 4:2:0, Y plane + interleaved UV plane
I420YUV 4:2:0, three planes (Y, U, V)
YUYVYUV 4:2:2 packed (Y0 U Y1 V)
ENCODEDGeneric encoded payload (codec from caps)
H264H.264 access unit / NAL stream
ByteStreamOpaque byte stream; downstream interprets bytes by contract
MLAMLA-tessellated tensor payload
BBOXDecoded bounding-box byte stream
ARGMAXArgmax/segmentation map
DETESSDEQUANTDetessellated + dequantized tensor payload
FP32IEEE-754 32-bit float tensor
INT8Signed 8-bit integer tensor
UINT8Unsigned 8-bit integer tensor
BF16bfloat16 tensor
EVXX_FLOAT32EV-side alias for FP32
EVXX_INT8EV-side alias for INT8
EVXX_BFLOAT16EV-side alias for BF16

Used in caps strings and option fields throughout the pipeline. Auto is the unset sentinel (let the framework pick or sniff). The EVXX_ variants are aliases preferred by the EV74 caps surface.

See Also

FormatSpec

Definition at line 36 of file FormatSpec.h.

36enum class FormatTag {
37 Auto = 0,
38 RGB,
39 BGR,
40 GRAY8,
41 NV12,
42 I420,
43 YUYV,
44 ENCODED,
45 H264,
47 MLA,
48 BBOX,
49 ARGMAX,
51 FP32,
52 INT8,
53 UINT8,
54 BF16,
58};

OutputMemory

enum class simaai::neat::OutputMemory
strong

How output Tensors relate to the underlying GStreamer buffers.

Enumeration values
Auto (= 0)
ZeroCopy
Owned

Auto lets the framework pick based on platform and pipeline shape. ZeroCopy shares storage with GStreamer (faster but lifetime-coupled to the Run). Owned copies into a framework-owned buffer (safer, slightly slower).

Definition at line 88 of file Run.h.

88enum class OutputMemory {
89 Auto = 0,
91 Owned,
92};

OverflowPolicy

enum class simaai::neat::OverflowPolicy
strong

What push() does when the input queue is full.

Enumeration values
Blockpush() blocks until queue space frees up. Lossless. Use for batch processing (= 0)
KeepLatestDrop the oldest queued frame to make room
DropIncomingDrop the new frame; keep what's queued

The right choice depends on the input source — file batches want lossless, live cameras want freshness, network feeds with chokepoint pipelines want bounded memory.

Definition at line 59 of file Run.h.

59enum class OverflowPolicy {
60 Block = 0,
65};

PullStatus

enum class simaai::neat::PullStatus
strong

Result status of Run::pull().

Enumeration values
OkA sample is available in the output parameter
TimeoutThe wait elapsed without a sample arriving
ClosedThe pipeline has reached EOS; no more samples will come
ErrorA runtime error occurred; check the optional PullError

Definition at line 349 of file SessionOptions.h.

349enum class PullStatus {
350 Ok,
351 Timeout,
352 Closed,
353 Error,
354};

RunMode

enum class simaai::neat::RunMode
strong

Timing mode a Run operates in.

Enumeration values
AsyncContinuous pipeline; user pushes/pulls asynchronously
SyncOne frame in, one result out, synchronously

Async runs the pipeline continuously with internal worker threads; user code pushes and pulls at its own pace. Sync runs one frame at a time on the calling thread. Choose based on the input source: streaming sources → Async; one-shot/batch → Sync.

See Also

Run

Definition at line 192 of file SessionOptions.h.

192enum class RunMode {
193 Async,
194 Sync,
195};

RunPreset

enum class simaai::neat::RunPreset
strong

Convenience preset bundles for RunOptions.

Enumeration values
RealtimeLow-latency; small queues; KeepLatest overflow; metrics off
BalancedDefault; moderate queues; Block overflow; metrics off
ReliableLossless; deeper queues; Block overflow; metrics on

Each preset adjusts queue depth, overflow policy, and metrics flags to a profile that's known to work well for one workload class.

Definition at line 74 of file Run.h.

74enum class RunPreset {
78};

SampleKind

enum class simaai::neat::SampleKind
strong

What kind of payload a Sample carries.

Enumeration values
TensorSingle tensor payload (the tensor field is set)
TensorSetMultiple tensors at one logical output index (the tensors field is set)
BundleRecursive: payload is a vector of Samples (the fields field is set)
UnknownDefault/uninitialized

The framework's outputs come in three shapes depending on the model's output topology: a single Tensor, a flat list of Tensors (TensorSet), or a recursive Bundle of Samples (Bundle, used by multi-logical-output models).

See Also

Sample

Definition at line 338 of file SessionOptions.h.

338enum class SampleKind {
339 Tensor,
340 TensorSet,
341 Bundle,
342 Unknown,
343};

Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.