NVIDIA DeepStream SDK API Reference

9.2 Release
ModelMuxPendingRouteNote Struct Reference

Detailed Description

One ACCEPTED-but-not-yet-applied model/routing, mirrored down from the control layer so the status view can see it.

A POST that targets a still-warming model is accepted (202) and parked on the element's pending_reroutes list until the target is READY. The stream keeps serving its OLD model meanwhile, so without this mirror model/status shows no trace of the request at all – and a reconciler polling it cannot tell an in-flight route from one that was dropped.

It is a MIRROR, not a reference: the control structs it copies from are freed the moment their reroute applies or is abandoned, and the status probe runs on a different thread under a different lock (ib->lock, not api_control_lock). Deep copies under ib->lock keep the two lifetimes independent. The whole array is REPLACED wholesale on every change rather than patched entry by entry, so there is no add/remove bookkeeping to drift out of sync.

Deferred PROMOTES are deliberately not mirrored: a passthrough stream awaiting one already reports its target via prim.pending_model, and mirroring it too would report the same intent twice.

Definition at line 870 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.

Data Fields

guint * src
 
guint n
 in-scope source ids; NULL/n==0 => ALL streams
More...
 
gchar * primary
 
gchar * shadow
 deferred primary target key, or NULL
More...
 
gboolean clear_shadow
 deferred shadow target key, or NULL
More...
 
gint p_gpu
 TRUE: the apply DROPS the shadow lane
More...
 
gint s_gpu
 requested placement per role (MM_GPU_ANY=any)
More...
 
gboolean p_via_default
 
gboolean s_via_default
 origin the deferred apply will record
More...
 

Field Documentation

◆ clear_shadow

gboolean ModelMuxPendingRouteNote::clear_shadow

deferred shadow target key, or NULL

Definition at line 883 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.

◆ n

guint ModelMuxPendingRouteNote::n

in-scope source ids; NULL/n==0 => ALL streams

Definition at line 873 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.

◆ p_gpu

gint ModelMuxPendingRouteNote::p_gpu

TRUE: the apply DROPS the shadow lane

Definition at line 884 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.

◆ p_via_default

gboolean ModelMuxPendingRouteNote::p_via_default

◆ primary

gchar * ModelMuxPendingRouteNote::primary

◆ s_gpu

gint ModelMuxPendingRouteNote::s_gpu

requested placement per role (MM_GPU_ANY=any)

Definition at line 885 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.

◆ s_via_default

gboolean ModelMuxPendingRouteNote::s_via_default

origin the deferred apply will record

Definition at line 887 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.

◆ shadow

gchar * ModelMuxPendingRouteNote::shadow

deferred primary target key, or NULL

The shadow lane is TRI-state, and absence alone cannot carry it: shadow=NULL, clear_shadow=FALSE -> leave the shadow UNCHANGED shadow=<key> -> set it to that model shadow=NULL, clear_shadow=TRUE -> CLEAR it ("shadow": null in the POST) Collapsing the first and last would make "route the primary" and "route the primary AND drop the shadow" read identically while deferred – the reader could not predict whether an A/B pair survives the switch.

Definition at line 882 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.

◆ src

guint * ModelMuxPendingRouteNote::src

The documentation for this struct was generated from the following file: