NVIDIA DeepStream SDK API Reference

9.2 Release
_GstNvModelMux Struct Reference

Detailed Description

ModelMuxInstance struct.

Property values are stored verbatim and only assembled into @config + materialised into @mm at the NULL->READY state transition, so the order in which properties are set does not matter. Everything that does real work lives in @mm (the reusable ModelMuxBin); @passthru is used only when the element is disabled.

Definition at line 103 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

Collaboration diagram for _GstNvModelMux:

Data Fields

GstBin parent
 we are a bin
More...
 
ModelMuxBin * modelmux_bin
 the PRIMARY-stage inference bin (NULL until built, or in passthrough mode) More...
 
ModelMuxSgieBin * modelmux_sgie_bin
 the SECONDARY-stage inference bin, built instead of @modelmux_bin when process-mode=2 (NULL at a primary stage or in passthrough mode) More...
 
GstElement * passthru
 identity element, used when enable=FALSE (transparent passthrough) More...
 
ModelMuxRevShared * rev_shared
 the routing revision SHARED by every nvmodelmux stage in this pipeline, negotiated at NULL->READY through MODELMUX_CONTEXT_TYPE_ROUTING and handed to whichever bin this stage built. More...
 
GstPad * sinkpad
 ghost sink/src pad (no-target until the sub-graph is built) More...
 
GstPad * srcpad
 
gboolean built
 TRUE once the sub-graph has been materialised. More...
 
gboolean initial_default_load_started
 default-model warm-up KICKED OFF at first PLAYING (once); reset on teardown. More...
 
gulong sink_event_probe_id
 PAD_ADDED/PAD_DELETED/STREAM_EOS event probe on the sink. More...
 
gulong sink_probe_id
 buffer probe: drop a source's buffers until it is attached (safety net) More...
 
gulong sink_status_query_id
 QUERY probes on the sink: model/status + model/routing GET, and the synchronous control admission. More...
 
gulong sink_control_query_id
 
GMutex api_control_lock
 serializes every control-plane ENTRY POINT (action signals, REST dispatch, pending-reroute poller) against each other AND against teardown: self->modelmux_bin may only be DEREFERENCED under it (published/cleared with g_atomic_pointer_set under the lock). More...
 
GMutex source_state_lock
 guards source_attach_state + requested_binding_info More...
 
GHashTable * source_attach_state
 source_id -> ModelMuxSourceAttachState (attach lifecycle; driven by stream/add -> GST_NVEVENT_PAD_ADDED and stream/remove -> GST_NVEVENT_PAD_DELETED) More...
 
GHashTable * requested_binding_info
 source_id -> ModelMuxRequestedBindingInfo (per-stream model binding from the in-band GST_NVEVENT_STREAM_MODEL_BIND event: sensor_id + metadata). More...
 
guint64 batch_idx
 batches seen on the sink (for staleness detection) More...
 
GstBus * bus
 pipeline bus (ref held for the "sync-message" subscription) More...
 
gulong bus_sync_id
 "sync-message" handler id (0 = not connected) More...
 
GList * pending_reroutes
 ModelMuxPendingReroute*: model/update flips deferred until the target warms up. More...
 
guint pending_poll_id
 g_timeout id for the deferred pending-reroute poller (0 = not running) More...
 
ModelMuxConfig config
 assembled configuration (owned) More...
 
gboolean is_prop_set [PROP_LAST]
 properties the user set (by PROP_*); a set property overrides the config-file value. More...
 
gboolean enable
 flag to enable inference (TRUE) vs passthrough (FALSE) More...
 
gchar * config_file_path
 multimodel config (defaults, behaviour, [stream-model-<id>] bindings); parsed by the plugin. More...
 
guint batch_size
 max concurrent streams batch cap More...
 
guint per_model_batch_size
 per-model nvstreammux batch cap (0=def) More...
 
gboolean unified_batch
 flag to enable unified A/B display batch More...
 
gint process_mode
 which GIE position (1=primary full frame, 2=secondary objects) More...
 
gboolean compact_idle_models_across_pools
 flag to compact idle models across pools on idle (dedup-on-idle) More...
 
gboolean model_sharding
 flag to enable model sharding on overflow More...
 
gchar * primary_model
 default primary model "name;version;config" More...
 
gchar * shadow_model
 default shadow model "name;version;config" More...
 

Field Documentation

◆ api_control_lock

GMutex _GstNvModelMux::api_control_lock

serializes every control-plane ENTRY POINT (action signals, REST dispatch, pending-reroute poller) against each other AND against teardown: self->modelmux_bin may only be DEREFERENCED under it (published/cleared with g_atomic_pointer_set under the lock).

Lock order: api_control_lock -> ib->lock -> free_lock; api_control_lock -> source_state_lock. NEVER taken from probes (they do a lock-free NULL-check only).

Definition at line 149 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ batch_idx

guint64 _GstNvModelMux::batch_idx

batches seen on the sink (for staleness detection)

Definition at line 161 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ batch_size

guint _GstNvModelMux::batch_size

max concurrent streams batch cap

Definition at line 183 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ built

gboolean _GstNvModelMux::built

TRUE once the sub-graph has been materialised.

Definition at line 129 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ bus

GstBus * _GstNvModelMux::bus

pipeline bus (ref held for the "sync-message" subscription)

Definition at line 164 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ bus_sync_id

gulong _GstNvModelMux::bus_sync_id

"sync-message" handler id (0 = not connected)

Definition at line 166 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ compact_idle_models_across_pools

gboolean _GstNvModelMux::compact_idle_models_across_pools

flag to compact idle models across pools on idle (dedup-on-idle)

Definition at line 192 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ config

ModelMuxConfig _GstNvModelMux::config

assembled configuration (owned)

Definition at line 174 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ config_file_path

gchar * _GstNvModelMux::config_file_path

multimodel config (defaults, behaviour, [stream-model-<id>] bindings); parsed by the plugin.

Individual properties override it.

Definition at line 181 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ enable

gboolean _GstNvModelMux::enable

flag to enable inference (TRUE) vs passthrough (FALSE)

Definition at line 179 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ initial_default_load_started

gboolean _GstNvModelMux::initial_default_load_started

default-model warm-up KICKED OFF at first PLAYING (once); reset on teardown.

Definition at line 132 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ is_prop_set

gboolean _GstNvModelMux::is_prop_set

properties the user set (by PROP_*); a set property overrides the config-file value.

Definition at line 176 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ model_sharding

gboolean _GstNvModelMux::model_sharding

flag to enable model sharding on overflow

Definition at line 194 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ modelmux_bin

ModelMuxBin * _GstNvModelMux::modelmux_bin

the PRIMARY-stage inference bin (NULL until built, or in passthrough mode)

Definition at line 108 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ modelmux_sgie_bin

ModelMuxSgieBin * _GstNvModelMux::modelmux_sgie_bin

the SECONDARY-stage inference bin, built instead of @modelmux_bin when process-mode=2 (NULL at a primary stage or in passthrough mode)

Definition at line 112 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ parent

GstBin _GstNvModelMux::parent

we are a bin

Definition at line 105 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ passthru

GstElement * _GstNvModelMux::passthru

identity element, used when enable=FALSE (transparent passthrough)

Definition at line 115 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ pending_poll_id

guint _GstNvModelMux::pending_poll_id

g_timeout id for the deferred pending-reroute poller (0 = not running)

Definition at line 170 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ pending_reroutes

GList * _GstNvModelMux::pending_reroutes

ModelMuxPendingReroute*: model/update flips deferred until the target warms up.

Definition at line 168 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ per_model_batch_size

guint _GstNvModelMux::per_model_batch_size

per-model nvstreammux batch cap (0=def)

Definition at line 185 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ primary_model

gchar * _GstNvModelMux::primary_model

default primary model "name;version;config"

Definition at line 196 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ process_mode

gint _GstNvModelMux::process_mode

which GIE position (1=primary full frame, 2=secondary objects)

Definition at line 190 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ requested_binding_info

GHashTable * _GstNvModelMux::requested_binding_info

source_id -> ModelMuxRequestedBindingInfo (per-stream model binding from the in-band GST_NVEVENT_STREAM_MODEL_BIND event: sensor_id + metadata).

Kept SEPARATE from source_attach_state so it never affects the attach lifecycle/freshness logic.

Definition at line 159 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ rev_shared

ModelMuxRevShared * _GstNvModelMux::rev_shared

the routing revision SHARED by every nvmodelmux stage in this pipeline, negotiated at NULL->READY through MODELMUX_CONTEXT_TYPE_ROUTING and handed to whichever bin this stage built.

Owns a ref, released at finalize – a stopped-and-restarted pipeline keeps counting up rather than resetting to a number a controller has already seen.

Definition at line 122 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ shadow_model

gchar * _GstNvModelMux::shadow_model

default shadow model "name;version;config"

Definition at line 198 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ sink_control_query_id

gulong _GstNvModelMux::sink_control_query_id

◆ sink_event_probe_id

gulong _GstNvModelMux::sink_event_probe_id

PAD_ADDED/PAD_DELETED/STREAM_EOS event probe on the sink.

Definition at line 135 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ sink_probe_id

gulong _GstNvModelMux::sink_probe_id

buffer probe: drop a source's buffers until it is attached (safety net)

Definition at line 137 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ sink_status_query_id

gulong _GstNvModelMux::sink_status_query_id

QUERY probes on the sink: model/status + model/routing GET, and the synchronous control admission.

Installed for BOTH stages (a secondary has no ModelMuxBin, so they cannot live on the bin's boundary pad).

Definition at line 141 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ sinkpad

GstPad * _GstNvModelMux::sinkpad

ghost sink/src pad (no-target until the sub-graph is built)

Definition at line 125 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ source_attach_state

GHashTable * _GstNvModelMux::source_attach_state

source_id -> ModelMuxSourceAttachState (attach lifecycle; driven by stream/add -> GST_NVEVENT_PAD_ADDED and stream/remove -> GST_NVEVENT_PAD_DELETED)

Definition at line 155 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ source_state_lock

GMutex _GstNvModelMux::source_state_lock

guards source_attach_state + requested_binding_info

Definition at line 152 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.

◆ srcpad

GstPad * _GstNvModelMux::srcpad

◆ unified_batch

gboolean _GstNvModelMux::unified_batch

flag to enable unified A/B display batch

Definition at line 187 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.


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