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

Data Fields | |
| gchar * | name |
| gchar * | role |
| Modelbin name. More... | |
| ModelType | type |
| Primary/Shadow. More... | |
| gboolean | perf_on |
| nvinfer vs nvinferserver More... | |
| ModelMuxPerf * | perf |
| gchar * | config_file |
| guint | unique_id |
| guint | max_streams |
| nvinfer gie-unique-id (for provenance) More... | |
| guint | mux_width |
| per-model nvstreammux properties (from [muxer]; captured at create so the drain-recovery recreate path reuses the same values). More... | |
| guint | mux_height |
| guint | mux_push_timeout |
| gint | process_mode |
| gboolean | mux_live_source |
| 1 = pgie, 2 = sgie (from the element) More... | |
| gint | mux_gpu |
| GstElement * | bin |
| PIPELINE device ([multimodel] gpu-id): the model mux batches decoder buffers, which live on that device – its own allocations must land there too. More... | |
| GstElement * | mux |
| the GstBin More... | |
| GstElement * | conv_in |
| nvstreammux (legacy) More... | |
| GstElement * | infer |
| xfer-in (nvdsxfer) mux->infer: migrates the batch to THIS shard's device – nvinfer rejects input surfaces on another GPU. More... | |
| GstElement * | conv_out |
| nvinfer More... | |
| GstElement * | demux |
| xfer-out (nvdsxfer) infer->demux: brings the batch back to the PIPELINE device ([multimodel] gpu-id) so demux/display aggregate same-device buffers. More... | |
| GstPad * | zero_stream_drop_pad |
| nvstreamdemux More... | |
| gulong | zero_stream_drop_probe |
| infer.src ref while drained to zero More... | |
| GQueue * | free_idx |
| drops stale late nvinfer output More... | |
| GHashTable * | idx_to_stream |
| available pad indices (GINT) More... | |
| gint * | slot_stream |
| idx(GINT) -> stream_id(GINT) More... | |
| guint | num_streams |
| lock-free mirror of idx_to_stream: idx -> stream_id (-1 = free), max_streams entries. More... | |
| gboolean | served |
| gint | status |
| TRUE once a stream has ever attached. More... | |
| GThread * | load_thread |
| ModelStatus, accessed atomically More... | |
| const GHashTable * | stream_names |
| background engine warm-up More... | |
| gpointer | pool |
| gchar * | engine |
| owning ModelPool* (back-ptr; for the slot-derived role lookup in the overlay) More... | |
| gchar * | version |
| cached engine path (provenance); set when the bin warms to READY More... | |
| gchar * | key |
| model checkpoint version (provenance/status); NULL => fall back to the engine basename More... | |
| guint | inst |
| canonical instance id "name@version" – the hash key in the pool's models map + the limbo map, so multiple versions of one name coexist. More... | |
| gint | gpu |
| shard instance index (0 = base; 1+ = overflow shards auto-created when a shard fills). More... | |
| gboolean | conv_cross |
| PER-SHARD placement recorded at creation (-1 = the config's device). More... | |
| gint | conv_gpu |
| placement was CROSS-device at creation: the bin carries a migration pair. More... | |
| gint | cfg_gpu |
| the migration pair's current TARGET device More... | |
| gboolean | pinned |
| device the model's own CONFIG FILE pins (nvinfer gpu-id / inferserver gpu_ids), parsed ONCE at creation; -1 = no key (backend default 0). More... | |
| gpointer | next_shard |
| deliberate gpus[] placement: this shard is DESIRED STATE (not overflow) – never auto scaled-in or compacted away; freed only by an explicit unload. More... | |
| GMutex | prov_lock |
| next ModelBin* of the SAME model (shard chain; NULL = last). More... | |
| gchar * | ota_old_version |
| guards retired[] + the ota_* rollback stash: the nvinfer 'model-updated' confirm callback runs on nvinfer's own thread, concurrent with main-loop reloads More... | |
| gchar * | ota_old_engine |
| rollback COPIES while an OTA awaits nvinfer's confirm; committed (freed) on success, swapped back on a failed reload More... | |
| gchar * | ota_old_config |
| gchar * | ota_old_key |
| rollback COPY of config_file for a BY-CONFIG OTA (NULL when the OTA was engine-only): a failed/rejected config reload must restore config_file + cfg_gpu, or later grows/effective- gpu reads clone/report the rejected config. More... | |
| gchar * | ota_new_key |
| identity-rename rollback COPIES (API_DESIGN.md 5.3): the pre-update ("name@FROM") and post-update ("name@TO") keys while the OTA awaits confirm – a failed reload renames the live identity BACK (marshalled to the main loop; see modelmux_ota_rename_rollback_main). More... | |
| gpointer | ota_ib |
| gboolean | ota_await |
| owning ModelMuxBin* for the deferred rollback rename (a limbo bin has pool==NULL, so the confirm callback can't derive it) More... | |
| gpointer | ota_group |
| an OTA reload is in flight (set at trigger) More... | |
| gboolean | ota_ok |
| owning ModelMuxOtaGroup* (bin-internal) while a GROUPED model/update awaits per-shard confirms: the whole multi-shard/multi-twin update commits or rolls back as ONE transaction once the LAST confirm lands. More... | |
| gboolean | ota_compensating |
| this shard's confirm outcome, recorded for the group resolution (prov_lock) More... | |
| GPtrArray * | retired |
| the in-flight reload is a group-rollback COMPENSATING re-trigger of the PREVIOUS engine: its confirm must NOT re-enter the group logic (log-only; see modelmux_ota_group_resolve_main) More... | |
| GstElement * ModelBin::bin |
PIPELINE device ([multimodel] gpu-id): the model mux batches decoder buffers, which live on that device – its own allocations must land there too.
Definition at line 491 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gint ModelBin::cfg_gpu |
the migration pair's current TARGET device
Definition at line 549 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gchar * ModelBin::config_file |
Definition at line 476 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gboolean ModelBin::conv_cross |
PER-SHARD placement recorded at creation (-1 = the config's device).
gpus[] groups place one shard per listed GPU, each with its own gpu-derived config.
Definition at line 543 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gint ModelBin::conv_gpu |
placement was CROSS-device at creation: the bin carries a migration pair.
Same-device bins carry NO migration elements (mux links directly to the inference element) – a later cross-device re-pin is refused (model_bin_set_gpu).
Definition at line 548 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| GstElement * ModelBin::conv_in |
nvstreammux (legacy)
Definition at line 493 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| GstElement * ModelBin::conv_out |
nvinfer
Definition at line 501 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| GstElement * ModelBin::demux |
xfer-out (nvdsxfer) infer->demux: brings the batch back to the PIPELINE device ([multimodel] gpu-id) so demux/display aggregate same-device buffers.
Paired with conv_in; NULL on same-device bins.
Definition at line 505 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gchar * ModelBin::engine |
owning ModelPool* (back-ptr; for the slot-derived role lookup in the overlay)
Definition at line 528 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| GQueue * ModelBin::free_idx |
drops stale late nvinfer output
Definition at line 509 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gint ModelBin::gpu |
shard instance index (0 = base; 1+ = overflow shards auto-created when a shard fills).
Only for unique element names; shards SHARE gie-id.
Definition at line 539 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| GHashTable * ModelBin::idx_to_stream |
available pad indices (GINT)
Definition at line 510 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| GstElement * ModelBin::infer |
xfer-in (nvdsxfer) mux->infer: migrates the batch to THIS shard's device – nvinfer rejects input surfaces on another GPU.
Present ONLY on a cross-device bin; NULL on a same-device bin (mux links straight to infer, zero overhead). Cross-device creation REJECTS when P2P or the nvdsxfer factory is unavailable.
Definition at line 500 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| guint ModelBin::inst |
canonical instance id "name@version" – the hash key in the pool's models map + the limbo map, so multiple versions of one name coexist.
Distinct from name (bare, for display/provenance).
Definition at line 536 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gchar * ModelBin::key |
model checkpoint version (provenance/status); NULL => fall back to the engine basename
Definition at line 532 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| GThread * ModelBin::load_thread |
ModelStatus, accessed atomically
Definition at line 524 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| guint ModelBin::max_streams |
nvinfer gie-unique-id (for provenance)
Definition at line 478 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| GstElement * ModelBin::mux |
the GstBin
Definition at line 492 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gint ModelBin::mux_gpu |
Definition at line 487 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| guint ModelBin::mux_height |
Definition at line 483 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gboolean ModelBin::mux_live_source |
1 = pgie, 2 = sgie (from the element)
Definition at line 486 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| guint ModelBin::mux_push_timeout |
Definition at line 484 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| guint ModelBin::mux_width |
per-model nvstreammux properties (from [muxer]; captured at create so the drain-recovery recreate path reuses the same values).
Definition at line 482 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gchar * ModelBin::name |
Definition at line 467 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gpointer ModelBin::next_shard |
deliberate gpus[] placement: this shard is DESIRED STATE (not overflow) – never auto scaled-in or compacted away; freed only by an explicit unload.
Definition at line 557 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| guint ModelBin::num_streams |
lock-free mirror of idx_to_stream: idx -> stream_id (-1 = free), max_streams entries.
Written with g_atomic under ib->lock; read lock-free by the per-frame provenance probe (GHashTable is NOT safe for unlocked reads concurrent with insert/remove).
Definition at line 517 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gboolean ModelBin::ota_await |
owning ModelMuxBin* for the deferred rollback rename (a limbo bin has pool==NULL, so the confirm callback can't derive it)
Definition at line 585 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gboolean ModelBin::ota_compensating |
this shard's confirm outcome, recorded for the group resolution (prov_lock)
Definition at line 593 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gpointer ModelBin::ota_group |
an OTA reload is in flight (set at trigger)
Definition at line 586 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gpointer ModelBin::ota_ib |
Definition at line 582 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gchar * ModelBin::ota_new_key |
identity-rename rollback COPIES (API_DESIGN.md 5.3): the pre-update ("name@FROM") and post-update ("name@TO") keys while the OTA awaits confirm – a failed reload renames the live identity BACK (marshalled to the main loop; see modelmux_ota_rename_rollback_main).
NULL when no rename rides this reload.
Definition at line 581 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gboolean ModelBin::ota_ok |
owning ModelMuxOtaGroup* (bin-internal) while a GROUPED model/update awaits per-shard confirms: the whole multi-shard/multi-twin update commits or rolls back as ONE transaction once the LAST confirm lands.
Guarded by prov_lock (like the ota_* stash).
Definition at line 591 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gchar * ModelBin::ota_old_config |
Definition at line 569 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gchar * ModelBin::ota_old_engine |
rollback COPIES while an OTA awaits nvinfer's confirm; committed (freed) on success, swapped back on a failed reload
Definition at line 568 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gchar * ModelBin::ota_old_key |
rollback COPY of config_file for a BY-CONFIG OTA (NULL when the OTA was engine-only): a failed/rejected config reload must restore config_file + cfg_gpu, or later grows/effective- gpu reads clone/report the rejected config.
Definition at line 574 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gchar * ModelBin::ota_old_version |
guards retired[] + the ota_* rollback stash: the nvinfer 'model-updated' confirm callback runs on nvinfer's own thread, concurrent with main-loop reloads
Definition at line 565 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| ModelMuxPerf * ModelBin::perf |
Definition at line 474 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gboolean ModelBin::perf_on |
nvinfer vs nvinferserver
perf metrics (NULL unless [multimodel] attach-perf-metric is on). perf_on is the cached hot-path gate so the provenance probe only does a single bool test when disabled.
Definition at line 473 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gboolean ModelBin::pinned |
device the model's own CONFIG FILE pins (nvinfer gpu-id / inferserver gpu_ids), parsed ONCE at creation; -1 = no key (backend default 0).
Last fallback of the effective-placement resolution.
Definition at line 553 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gpointer ModelBin::pool |
Definition at line 526 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gint ModelBin::process_mode |
Definition at line 485 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| GMutex ModelBin::prov_lock |
next ModelBin* of the SAME model (shard chain; NULL = last).
Same name/engine/gie-id (an instance-group shard carries its own per-GPU derived config).
Definition at line 561 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| GPtrArray * ModelBin::retired |
the in-flight reload is a group-rollback COMPENSATING re-trigger of the PREVIOUS engine: its confirm must NOT re-enter the group logic (log-only; see modelmux_ota_group_resolve_main)
Definition at line 597 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gchar * ModelBin::role |
Modelbin name.
Definition at line 468 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gboolean ModelBin::served |
Definition at line 518 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gint * ModelBin::slot_stream |
idx(GINT) -> stream_id(GINT)
Definition at line 511 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gint ModelBin::status |
TRUE once a stream has ever attached.
A bin that SERVED then drained to 0 streams must NOT be reused in place (legacy nvstreammux does not resume after a mid-pipeline drain-to-zero) – the reroute refreshes it to a fresh bin instead.
Definition at line 523 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| const GHashTable * ModelBin::stream_names |
background engine warm-up
borrowed: stream_id(GINT) -> name (overlay)
Definition at line 525 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| ModelType ModelBin::type |
Primary/Shadow.
Definition at line 469 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| guint ModelBin::unique_id |
Definition at line 477 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gchar * ModelBin::version |
cached engine path (provenance); set when the bin warms to READY
Definition at line 530 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| GstPad * ModelBin::zero_stream_drop_pad |
nvstreamdemux
Definition at line 506 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| gulong ModelBin::zero_stream_drop_probe |
infer.src ref while drained to zero
Definition at line 507 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.