|
|
NVIDIA DeepStream SDK API Reference
|
9.2 Release
|
Go to the documentation of this file.
56 #ifndef __GST_NVMODELMUX_H__
57 #define __GST_NVMODELMUX_H__
64 #define GST_TYPE_NVMODELMUX (gst_modelmux_get_type ())
65 #define GST_NVMODELMUX(obj) \
66 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_NVMODELMUX, GstNvModelMux))
67 #define GST_NVMODELMUX_CLASS(klass) \
68 (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_NVMODELMUX, GstNvModelMuxClass))
69 #define GST_IS_NVMODELMUX(obj) \
70 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_NVMODELMUX))
71 #define GST_IS_NVMODELMUX_CLASS(klass) \
72 (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_NVMODELMUX))
252 const gchar *
json, gchar ** primary_model_name, gchar ** primary_model_version,
253 gint * primary_model_gpu, gchar ** shadow_model_name, gchar ** shadow_model_version,
254 gint * shadow_model_gpu);
gboolean initial_default_load_started
default-model warm-up KICKED OFF at first PLAYING (once); reset on teardown.
void gst_modelmux_control_wire_ota_rollback(GstNvModelMux *self, ModelMuxBin *mm)
gchar * primary_model
default primary model "name;version;config"
gboolean compact_idle_models_across_pools
flag to compact idle models across pools on idle (dedup-on-idle)
GType gst_modelmux_get_type(void)
GHashTable * source_attach_state
source_id -> ModelMuxSourceAttachState (attach lifecycle; driven by stream/add -> GST_NVEVENT_PAD_ADD...
guint per_model_batch_size
per-model nvstreammux batch cap (0=def)
gulong sink_event_probe_id
PAD_ADDED/PAD_DELETED/STREAM_EOS event probe on the sink.
ModelMuxSgieBin * modelmux_sgie_bin
the SECONDARY-stage inference bin, built instead of @modelmux_bin when process-mode=2 (NULL at a prim...
gboolean unified_batch
flag to enable unified A/B display batch
gulong sink_status_query_id
QUERY probes on the sink: model/status + model/routing GET, and the synchronous control admission.
GstBin parent
we are a bin
gchar * config_file_path
multimodel config (defaults, behaviour, [stream-model-<id>] bindings); parsed by the plugin.
gulong sink_control_query_id
gboolean gst_modelmux_parse_config_file(GstNvModelMux *self, const gchar *cfg_file)
GHashTable * requested_binding_info
source_id -> ModelMuxRequestedBindingInfo (per-stream model binding from the in-band GST_NVEVENT_STRE...
struct _ModelMuxSgieBin ModelMuxSgieBin
gulong sink_probe_id
buffer probe: drop a source's buffers until it is attached (safety net)
gboolean enable
flag to enable inference (TRUE) vs passthrough (FALSE)
GstPad * sinkpad
ghost sink/src pad (no-target until the sub-graph is built)
GstBus * bus
pipeline bus (ref held for the "sync-message" subscription)
gboolean built
TRUE once the sub-graph has been materialised.
gboolean(* ModelMuxPeerStageFunc)(GstNvModelMux *self, GstNvModelMux *peer, gpointer udata)
ModelMuxConfig config
assembled configuration (owned)
gboolean is_prop_set[PROP_LAST]
properties the user set (by PROP_*); a set property overrides the config-file value.
gint process_mode
which GIE position (1=primary full frame, 2=secondary objects)
@ PROP_PER_MODEL_BATCH_SIZE
guint64 batch_idx
batches seen on the sink (for staleness detection)
G_GNUC_INTERNAL gboolean modelmux_stage_query_is_delegated(GstQuery *q)
guint pending_poll_id
g_timeout id for the deferred pending-reroute poller (0 = not running)
G_GNUC_INTERNAL void modelmux_foreach_peer_stage(GstNvModelMux *self, ModelMuxPeerStageFunc fn, gpointer udata)
gulong bus_sync_id
"sync-message" handler id (0 = not connected)
gboolean model_sharding
flag to enable model sharding on overflow
void gst_modelmux_control_detach(GstNvModelMux *self)
GstElement * passthru
identity element, used when enable=FALSE (transparent passthrough)
G_GNUC_INTERNAL void modelmux_control_parse_model_metadata(GstNvModelMux *self, const gchar *json, gchar **primary_model_name, gchar **primary_model_version, gint *primary_model_gpu, gchar **shadow_model_name, gchar **shadow_model_version, gint *shadow_model_gpu)
ModelMuxBin * modelmux_bin
the PRIMARY-stage inference bin (NULL until built, or in passthrough mode)
ModelMuxRevShared * rev_shared
the routing revision SHARED by every nvmodelmux stage in this pipeline, negotiated at NULL->READY thr...
GList * pending_reroutes
ModelMuxPendingReroute*: model/update flips deferred until the target warms up.
G_GNUC_INTERNAL gboolean modelmux_stage_ask_peer(GstNvModelMux *peer, GstQuery *q, GstQuery **out)
struct _ModelMuxRevShared ModelMuxRevShared
The counter itself: refcounted (each stage holds one ref) and self-locking, so it can be read while a...
void gst_modelmux_control_attach(GstNvModelMux *self)
guint batch_size
max concurrent streams batch cap
GMutex source_state_lock
guards source_attach_state + requested_binding_info
GMutex api_control_lock
serializes every control-plane ENTRY POINT (action signals, REST dispatch, pending-reroute poller) ag...
@ PROP_COMPACT_IDLE_MODELS_ACROSS_POOLS
gchar * shadow_model
default shadow model "name;version;config"