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.

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... | |
| 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.
| 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.
| guint _GstNvModelMux::batch_size |
max concurrent streams batch cap
Definition at line 183 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| gboolean _GstNvModelMux::built |
TRUE once the sub-graph has been materialised.
Definition at line 129 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| 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.
| 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.
| 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.
| ModelMuxConfig _GstNvModelMux::config |
assembled configuration (owned)
Definition at line 174 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| 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.
| gboolean _GstNvModelMux::enable |
flag to enable inference (TRUE) vs passthrough (FALSE)
Definition at line 179 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| 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.
| 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.
| gboolean _GstNvModelMux::model_sharding |
flag to enable model sharding on overflow
Definition at line 194 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| 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.
| 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.
| GstBin _GstNvModelMux::parent |
we are a bin
Definition at line 105 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| GstElement * _GstNvModelMux::passthru |
identity element, used when enable=FALSE (transparent passthrough)
Definition at line 115 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| 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.
| 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.
| 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.
| gchar * _GstNvModelMux::primary_model |
default primary model "name;version;config"
Definition at line 196 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| 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.
| 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.
| 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.
| gchar * _GstNvModelMux::shadow_model |
default shadow model "name;version;config"
Definition at line 198 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| gulong _GstNvModelMux::sink_control_query_id |
Definition at line 142 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| GstPad * _GstNvModelMux::srcpad |
Definition at line 126 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| 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.