NVIDIA DeepStream SDK API Reference

9.2 Release
9.2/sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h File Reference

Go to the source code of this file.

Data Structures

struct  ModelBackendInfo
 One row of the backend registry. More...
 
struct  ModelCatalogEntry
 A model definition from the [model-*] config groups. More...
 
struct  ModelVersionArtifact
 A per-version artifact override from a [model-<name>-<version>] config group: the engine/checkpoint and/or custom config to use when instantiating that specific (name, version). More...
 
struct  StreamModelBinding
 A config-time per-sensor model binding, parsed from a [stream-model-<sensor_id>] group. More...
 
struct  ModelMuxConfig
 
struct  ModelBin
 
struct  DefaultModelRef
 DefaultModelRef: a role's RUNTIME default model DESIGNATION – embedded in that role's ModelPool ("this pool holds these models, and THIS one is the default"). More...
 
struct  ModelPool
 ModelPool: the live INVENTORY of one role's (Primary or Shadow) instantiated models, plus the factory that builds them (model_pool_get_or_create: lookup -> promote from limbo -> create + background warm). More...
 
struct  ModelMuxRoleAttach
 One role branch (Primary or Shadow) attached for a stream: the model this role is currently routed to + every element/pad of its lane, recorded so the lane can later be swapped (model/routing) or torn down surgically. More...
 
struct  ModelMuxStreamEntry
 Per-stream bookkeeping inside the ModelMuxBin: ONE record per attached stream (the routing-table row). More...
 
struct  ModelMuxAcctRole
 
struct  ModelMuxAcct
 
struct  ModelMuxPendingRouteNote
 One ACCEPTED-but-not-yet-applied model/routing, mirrored down from the control layer so the status view can see it. More...
 
struct  ModelMuxBin
 

Macros

#define MM_MAX_STREAMS_DEFAULT   16
 
#define MM_MAX_BATCH   1024 /* hard cap on batch-size (sizes every internal mux) */
 
#define MM_MAX_MODELS   32
 
#define MM_DEFAULT_REST_PORT   9000
 
#define MM_DEFAULT_REST_IP   "0.0.0.0"
 
#define MM_MODEL_VERSION_DEFAULT   "1"
 
#define MM_MODEL_KEY_SEP   '@'
 
#define MM_PROCESS_MODE_PGIE   1
 
#define MM_PROCESS_MODE_SGIE   2
 
#define MM_SHADOW_GIE_OFFSET   100
 
#define MM_MUX_WIDTH   1920
 
#define MM_MUX_HEIGHT   1080
 
#define MM_MUX_PUSH_TIMEOUT   33333
 
#define MODELMUX_CONTEXT_TYPE_ROUTING   "nvidia.deepstream.modelmux.routing"
 gst_context_get_context_type() for the routing-revision context. More...
 
#define MODELMUX_CONTEXT_FIELD_REV   "revision"
 field name carrying the ModelMuxRevShared inside that context's structure More...
 
#define MODELMUX_TYPE_REV_SHARED   (modelmux_rev_shared_get_type ())
 
#define MM_BACKEND_AT_PGIE   (1u << 0)
 Positions a backend may occupy. More...
 
#define MM_BACKEND_AT_SGIE   (1u << 1)
 
#define MM_GPU_ANY   (-1)
 Placement constraint sentinel: "no specific GPU requested". More...
 
#define MM_ACCT_MAX   256
 max source_id tracked (flat, lock-free)
More...
 
#define MM_ROLE_PRIMARY   0
 
#define MM_ROLE_SHADOW   1
 
#define MM_ROLE_SLOTS   2
 

Typedefs

typedef struct _ModelMuxRevShared ModelMuxRevShared
 The counter itself: refcounted (each stage holds one ref) and self-locking, so it can be read while a caller already holds a bin lock. More...
 
typedef struct _ModelMuxSgieBin ModelMuxSgieBin
 

Enumerations

enum  ModelType {
  MODEL_INFER = 0,
  MODEL_INFERSERVER,
  MODEL_VISION_ENCODER,
  MODEL_BACKEND_N,
  MODEL_INFER = 0,
  MODEL_INFERSERVER,
  MODEL_VISION_ENCODER,
  MODEL_BACKEND_N
}
 Inference backend element used inside a ModelBin. More...
 
enum  ModelStatus {
  MODEL_WARMING = 0,
  MODEL_WARMED,
  MODEL_SERVING,
  MODEL_FAILED,
  MODEL_WARMING = 0,
  MODEL_WARMED,
  MODEL_SERVING,
  MODEL_FAILED
}
 ModelBin lifecycle (applies to EVERY ModelBin, any role). More...
 
enum  ModelPlacementPolicy {
  PACK_PLACEMENT = 0,
  SPREAD_PLACEMENT,
  PACK_PLACEMENT = 0,
  SPREAD_PLACEMENT
}
 Stream placement policy across a multi-GPU instance group ([multimodel] placement-policy) – applies only to unconstrained attaches (MM_GPU_ANY); an explicit route gpu always addresses its instance directly. More...
 
enum  ModelMuxUnloadGpuResult {
  MM_UNLOAD_GPU_REMOVED = 0,
  MM_UNLOAD_GPU_ALL,
  MM_UNLOAD_GPU_ABSENT,
  MM_UNLOAD_GPU_NO_MATCH,
  MM_UNLOAD_GPU_SERVING,
  MM_UNLOAD_GPU_REMOVED = 0,
  MM_UNLOAD_GPU_ALL,
  MM_UNLOAD_GPU_ABSENT,
  MM_UNLOAD_GPU_NO_MATCH,
  MM_UNLOAD_GPU_SERVING
}
 

Functions

GType modelmux_rev_shared_get_type (void)
 
ModelMuxRevShared * modelmux_rev_shared_new (void)
 A new counter at revision 0, refcount 1. More...
 
ModelMuxRevShared * modelmux_rev_shared_ref (ModelMuxRevShared *rev)
 
void modelmux_rev_shared_unref (ModelMuxRevShared *rev)
 
guint64 modelmux_rev_shared_get (ModelMuxRevShared *rev)
 Current value; 0 for a NULL @rev, which is the same answer a stage that has not negotiated the context yet would give. More...
 
guint64 modelmux_rev_shared_bump (ModelMuxRevShared *rev)
 Increment and return the new value. More...
 
gboolean modelmux_config_apply_properties (GstElement *element, const gchar *config_file, const gchar *group)
 Apply every key of @group in @config_file to @element as the property of the same name, converting by the property's own GParamSpec type. More...
 
const ModelBackendInfo * modelmux_backend (ModelType type)
 The registry row for @type. More...
 
gboolean modelmux_backend_at_position (ModelType type, gint process_mode)
 TRUE iff @type may run at @process_mode (MM_PROCESS_MODE_PGIE / _SGIE). More...
 
void modelmux_config_clear (ModelMuxConfig *config)
 
gchar * model_key (const gchar *name, const gchar *version)
 
void model_key_split (const gchar *key, gchar **name_out, gchar **version_out)
 
gboolean modelmux_version_is_int (const gchar *v)
 
const ModelCatalogEntry * modelmux_config_find_model (const ModelMuxConfig *config, const gchar *name)
 
ModelType modelmux_detect_model_type (const gchar *config_file)
 
const gchar * modelmux_infer_plugin_str (ModelType type)
 
gchar * modelmux_config_derive (const gchar *base_cfg, const gchar *engine, gint gpu, gint gie, const gchar *model_name, const gchar *version)
 
void modelmux_config_register_version (ModelMuxConfig *config, const gchar *name, const gchar *version, const gchar *engine, const gchar *config_file, gint gpu, guint batch)
 
guint modelmux_config_version_batch (const ModelMuxConfig *config, const gchar *name, const gchar *version)
 
gint modelmux_config_version_gie (const ModelMuxConfig *config, const gchar *name, const gchar *version)
 
gint modelmux_config_version_gpu (const ModelMuxConfig *config, const gchar *name, const gchar *version)
 
gboolean modelmux_config_has_other_version (const ModelMuxConfig *config, const gchar *name, const gchar *version)
 
gchar * modelmux_config_resolve_version_cfg (const ModelMuxConfig *config, const gchar *name, const gchar *version, gboolean *derive_failed)
 
gint modelmux_config_file_gpu (const gchar *config_file)
 
gint modelmux_config_file_process_mode (const gchar *config_file)
 
gint modelmux_config_file_gie_id (const gchar *config_file)
 
gint modelmux_config_file_operate_on_gie (const gchar *config_file)
 
const ModelCatalogEntry * modelmux_config_register_model (ModelMuxConfig *config, const gchar *name, const gchar *config_file, const gchar *engine_file, const gchar *version, guint max_streams)
 
const ModelCatalogEntry * modelmux_config_update_model (ModelMuxConfig *config, const gchar *name, const gchar *config_file, const gchar *engine_file, const gchar *version)
 
void modelmux_config_resolve_models (const ModelMuxConfig *config, const DefaultModelRef *def_primary, const DefaultModelRef *def_shadow, const gchar *camera_id, const gchar **primary, const gchar **shadow, const gchar **primary_version, const gchar **shadow_version, gboolean *primary_is_default, gboolean *shadow_is_default)
 
ModelBin * model_bin_new (const gchar *name, const gchar *role, const gchar *config_file, const gchar *engine_file, const gchar *version, guint unique_id, guint max_streams, const ModelMuxConfig *config, GstElement *parent_pipeline, GstElement *container, const GHashTable *stream_names, guint inst)
 
GstPad * model_bin_attach (ModelBin *model_bin, guint stream_id)
 
gboolean model_bin_detach (ModelBin *model_bin, guint stream_id)
 
gboolean model_bin_has_capacity (ModelBin *model_bin)
 
guint model_bin_num_streams (ModelBin *model_bin)
 
void model_bin_load (ModelBin *model_bin)
 
ModelStatus model_bin_status (ModelBin *model_bin)
 
const gchar * model_status_str (ModelStatus s)
 
const G_GNUC_INTERNAL gchar * model_version_str (ModelBin *model_bin)
 
G_GNUC_INTERNAL gchar * get_infer_engine_str (ModelBin *model_bin)
 
void model_bin_free (ModelBin *model_bin)
 
ModelPool * model_pool_new (const gchar *role, guint base_uid, guint max_streams, GstElement *parent_pipeline, GstElement *container, const ModelMuxConfig *config, const GHashTable *stream_names)
 
GstPad * model_pool_attach (ModelPool *rb, guint stream_id, const gchar *model_name, gint gpu, GstPad *in_pad, guint branch_serial, GstElement **in_q_out, GstElement **out_q_out, GstElement **conv_out, gboolean *cap_overflow, ModelBin **attached_bin_out)
 
gboolean model_pool_detach (ModelPool *rb, guint stream_id, const gchar *model_name)
 
gboolean model_pool_load_model (ModelPool *rb, const gchar *model_name, const gchar *cfg_override, guint batch)
 
gboolean model_pool_unload_model (ModelPool *rb, const gchar *model_name)
 
void model_pool_free (ModelPool *rb)
 
G_GNUC_INTERNAL ModelBin * modelmux_perf_find_bin_for_source (ModelPool *pool, guint source_id)
 
G_GNUC_INTERNAL void modelmux_role_set (ModelBin *model_bin, const gchar *role)
 
const G_GNUC_INTERNAL gchar * modelmux_role_get (ModelBin *model_bin)
 
const G_GNUC_INTERNAL gchar * modelmux_resolve_role (ModelBin *model_bin, guint source_id)
 
G_GNUC_INTERNAL gint modelmux_role_idx (const gchar *role)
 
G_GNUC_INTERNAL void modelmux_fmt_route_cell (gchar *buf, gsize n, const ModelMuxRoleAttach *ra)
 
G_GNUC_INTERNAL gboolean modelmux_debug_enabled (void)
 
G_GNUC_INTERNAL void modelmux_debug_configure (ModelMuxBin *ib)
 
G_GNUC_INTERNAL void modelmux_schedule_dump (ModelMuxBin *ib, guint delay_seconds)
 
ModelMuxSgieBin * modelmux_sgie_new (GstElement *parent, const gchar *name, const ModelMuxConfig *config)
 
void modelmux_sgie_free (ModelMuxSgieBin *sgie_bin)
 
GstPad * modelmux_sgie_get_sink (ModelMuxSgieBin *sgie_bin)
 
GstPad * modelmux_sgie_get_src (ModelMuxSgieBin *sgie_bin)
 
GstElement * modelmux_sgie_get_infer (ModelMuxSgieBin *sgie_bin)
 
const gchar * modelmux_sgie_model_name (ModelMuxSgieBin *sgie_bin)
 
const gchar * modelmux_sgie_model_version (ModelMuxSgieBin *sgie_bin)
 
gchar * modelmux_sgie_status_json (ModelMuxSgieBin *sgie_bin, const gchar *f_model, const gchar *f_version)
 
gchar * modelmux_sgie_route_json (ModelMuxSgieBin *sgie_bin)
 
void modelmux_sgie_set_rev_shared (ModelMuxSgieBin *sgie_bin, ModelMuxRevShared *rev)
 
void modelmux_sgie_bump_routing_revision (ModelMuxSgieBin *sgie_bin)
 
void modelmux_sgie_set_overlay_slot (ModelMuxSgieBin *sgie_bin, guint slot)
 
gboolean modelmux_sgie_get_info (ModelMuxSgieBin *sgie_bin, guint idx, const gchar **name, const gchar **version, const gchar **backend, guint *gie, gint *gpu, guint *streams, const gchar **state, gboolean *serving, gchar **engine)
 
gboolean modelmux_sgie_update (ModelMuxSgieBin *sgie_bin, const gchar *name, const gchar *from_version, const gchar *version, const gchar *config_file, const gchar *engine_file, gint *http, const gchar **err_code, const gchar **reason, const gchar **hint)
 
gboolean modelmux_sgie_load (ModelMuxSgieBin *sgie_bin, const gchar *name, const gchar *version, const gchar *config_file, const gchar *engine_file, gint *http, const gchar **err_code, const gchar **reason, const gchar **hint)
 
gboolean modelmux_sgie_route (ModelMuxSgieBin *sgie_bin, const gchar *name, const gchar *version, gint *http, const gchar **err_code, const gchar **reason, const gchar **hint)
 
gboolean modelmux_sgie_unload (ModelMuxSgieBin *sgie_bin, const gchar *name, const gchar *version, gint *http, const gchar **err_code, const gchar **reason, const gchar **hint)
 
gboolean modelmux_overlay_enabled (void)
 
void modelmux_draw_label (struct _NvDsBatchMeta *bmeta, struct _NvDsFrameMeta *fm, guint x_offset, guint y_offset, const gchar *text, const gchar *role)
 
ModelMuxBin * modelmux_bin_new (GstElement *pipeline, const gchar *name, guint max_streams, const ModelMuxConfig *config)
 
GstPad * modelmux_bin_get_sink (ModelMuxBin *ib)
 
gboolean modelmux_bin_attach_stream (ModelMuxBin *ib, guint stream_id, const gchar *name, const gchar *cam_id, const gchar *primary, const gchar *shadow, gint p_gpu, gint s_gpu, gboolean p_via_default, gboolean s_via_default)
 
gboolean modelmux_bin_detach_stream (ModelMuxBin *ib, guint stream_id)
 
gboolean modelmux_bin_update_routing (ModelMuxBin *ib, guint stream_id, const gchar *primary, const gchar *shadow, gint p_gpu, gint s_gpu, gboolean p_via_default, gboolean s_via_default)
 
GstPad * modelmux_bin_get_src (ModelMuxBin *ib)
 
guint modelmux_bin_num_streams (ModelMuxBin *ib)
 
gboolean modelmux_bin_load_defaults (ModelMuxBin *ib)
 
ModelStatus modelmux_bin_load_model (ModelMuxBin *ib, const gchar *key, const gchar *cfg_override, gint gpu, guint batch)
 
ModelStatus modelmux_bin_load_model_instances (ModelMuxBin *ib, const gchar *key, const gchar *const cfgs[], const gint gpus[], guint n, guint batch)
 
gboolean modelmux_bin_model_on_gpu (ModelMuxBin *ib, const gchar *key, gint gpu)
 
guint modelmux_bin_model_gpus (ModelMuxBin *ib, const gchar *key, gint *out, guint cap)
 
guint modelmux_bin_model_batch (ModelMuxBin *ib, const gchar *key)
 
ModelStatus modelmux_bin_load_into_pool (ModelMuxBin *ib, gboolean shadow, const gchar *key, const gchar *cfg_override)
 
void modelmux_bin_set_default (ModelMuxBin *ib, gboolean shadow, const gchar *name, const gchar *version, gint gpu)
 
void modelmux_bin_clear_default (ModelMuxBin *ib, gboolean shadow)
 
void modelmux_bin_set_stream_identity (ModelMuxBin *ib, guint stream_id, const gchar *name, const gchar *cam_id)
 
const DefaultModelRef * modelmux_bin_get_default (ModelMuxBin *ib, gboolean shadow)
 
gboolean modelmux_bin_is_configured_default (ModelMuxBin *ib, const gchar *name, const gchar *version)
 
guint modelmux_bin_streams_on_model (ModelMuxBin *ib, gboolean shadow, const gchar *key, guint *out, guint cap, gboolean default_only)
 
gboolean modelmux_bin_reload_model (ModelMuxBin *ib, const gchar *name, const gchar *config, const gchar *engine, const gchar *version)
 
gboolean modelmux_bin_reload_model_multi (ModelMuxBin *ib, const gchar *name, const gint gpus[], const gchar *const engines[], guint n, const gchar *version)
 
gboolean modelmux_bin_model_loaded (ModelMuxBin *ib, const gchar *name)
 
gboolean modelmux_bin_update_in_flight (ModelMuxBin *ib, const gchar *name)
 
ModelStatus modelmux_bin_prepare_model (ModelMuxBin *ib, gboolean shadow, const gchar *name)
 
gint modelmux_bin_model_status (ModelMuxBin *ib, gboolean shadow, const gchar *name)
 
gchar * modelmux_bin_status_json (ModelMuxBin *ib, const gchar *f_model, const gchar *f_version, const gchar *f_stream, gint f_sid)
 
gchar * modelmux_bin_route_json (ModelMuxBin *ib, const gchar *f_camera)
 
void modelmux_bin_bump_routing_revision (ModelMuxBin *ib)
 
void modelmux_bin_set_rev_shared (ModelMuxBin *ib, ModelMuxRevShared *rev)
 
guint64 modelmux_bin_routing_revision (ModelMuxBin *ib)
 
void modelmux_bin_set_pending_routes (ModelMuxBin *ib, GPtrArray *notes)
 
void modelmux_pending_route_note_free (gpointer note)
 
G_GNUC_INTERNAL GstPadProbeReturn modelmux_status_query_probe (GstPad *pad, GstPadProbeInfo *info, gpointer udata)
 
G_GNUC_INTERNAL GstPadProbeReturn modelmux_control_query_probe (GstPad *pad, GstPadProbeInfo *info, gpointer udata)
 
G_GNUC_INTERNAL void modelmux_post_model_event (GstElement *src, const gchar *event, const gchar *name, const gchar *version, gint gpu, gboolean ok, const gchar *detail)
 
const G_GNUC_INTERNAL gchar * modelmux_bin_source_name (ModelMuxBin *ib, guint sid)
 
gboolean modelmux_bin_key_serving (ModelMuxBin *ib, const gchar *key, guint *streams, gchar **streams_csv)
 
gchar * modelmux_bin_name_serving_streams (ModelMuxBin *ib, const gchar *name)
 
guint modelmux_bin_update_routing_scoped (ModelMuxBin *ib, const guint *src_ids, guint n, const gchar *primary, const gchar *shadow, gint p_gpu, gint s_gpu, gboolean p_via_default, gboolean s_via_default)
 
void modelmux_bin_promote_passthru (ModelMuxBin *ib, guint stream_id, const gchar *model, const gchar *shadow, gint p_gpu, gint s_gpu, gboolean p_via_default, gboolean s_via_default)
 
void modelmux_bin_set_pending_model (ModelMuxBin *ib, guint stream_id, const gchar *model, gint gpu, gboolean via_default)
 
void modelmux_bin_clear_pending_model (ModelMuxBin *ib, guint stream_id)
 
guint modelmux_bin_passthru_streams (ModelMuxBin *ib, const guint *src_ids, guint n, guint **out)
 
guint modelmux_bin_active_stream_ids (ModelMuxBin *ib, guint **out)
 
gboolean modelmux_bin_try_inplace (ModelMuxBin *ib, const guint *src_ids, guint n, const gchar *primary, const gchar *shadow)
 
gboolean modelmux_bin_unload_model (ModelMuxBin *ib, const gchar *key)
 
ModelMuxUnloadGpuResult modelmux_bin_unload_model_gpus (ModelMuxBin *ib, const gchar *key, const gint *gpus, guint n_gpus, gint *serving_gpu, guint *serving_streams, gchar **serving_csv)
 
guint modelmux_bin_unload_versions (ModelMuxBin *ib, const gchar *name, guint *present)
 
void modelmux_bin_free (ModelMuxBin *ib)
 

Macro Definition Documentation

◆ MM_ACCT_MAX

#define MM_ACCT_MAX   256

max source_id tracked (flat, lock-free)

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

◆ MM_BACKEND_AT_PGIE

#define MM_BACKEND_AT_PGIE   (1u << 0)

Positions a backend may occupy.

A BITMASK, because validity is a property of the backend, not of the stage: nvinfer runs at either position, nvinferserver is a primary-only backend here, and a vision encoder will be secondary-only.

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

◆ MM_BACKEND_AT_SGIE

#define MM_BACKEND_AT_SGIE   (1u << 1)

◆ MM_DEFAULT_REST_IP

#define MM_DEFAULT_REST_IP   "0.0.0.0"

◆ MM_DEFAULT_REST_PORT

#define MM_DEFAULT_REST_PORT   9000

◆ MM_GPU_ANY

#define MM_GPU_ANY   (-1)

Placement constraint sentinel: "no specific GPU requested".

Every attach / route / promote / swap API below takes a gpu constraint with this contract: MM_GPU_ANY -> the scheduler (modelmux_pool_shard_for_attach) is free to pick any warm shard with capacity (single-GPU behaviour, unchanged); >= 0 -> selection is restricted to shards whose EFFECTIVE device (shard's own gpu, falling back to the version registry, then device 0) matches – scale-out then also stays on that device.

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

◆ MM_MAX_BATCH

#define MM_MAX_BATCH   1024 /* hard cap on batch-size (sizes every internal mux) */

◆ MM_MAX_MODELS

#define MM_MAX_MODELS   32

◆ MM_MAX_STREAMS_DEFAULT

#define MM_MAX_STREAMS_DEFAULT   16

deepstream-multimodel

Dynamic multi-stream / multi-model (primary + shadow) DeepStream app.

Pipeline (high level):

nvmultiurisrcbin (decode + NATIVE REST add/remove; internal nvstreammux) | one BATCHED src, NvDsBatchMeta, source_id per camera v ModelMuxBin <– reusable; its GhostPad sink is the entry GhostPad sink (batched) -> nvstreamdemux -> per-source src_<id> per source_id -> tee -> { Primary role, Shadow role } each role: per-MODEL nvstreammux -> nvinfer -> nvstreamdemux (batched per model name) all role outputs -> ONE combined nvstreammux (display batch) v nvmultistreamtiler -> nvvideoconvert -> nvdsosd -> sink (loose display chain)

Stream add/remove is handled by the NATIVE DeepStream REST server embedded in nvmultiurisrcbin (ip-address:port). This app does NOT run a custom HTTP server. Per-stream model selection rides in the request metadata (stream/add); models are managed at runtime via model/load, model/unload and model/update. Only the configured default models preload.

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

◆ MM_MODEL_KEY_SEP

#define MM_MODEL_KEY_SEP   '@'

◆ MM_MODEL_VERSION_DEFAULT

#define MM_MODEL_VERSION_DEFAULT   "1"

◆ MM_MUX_HEIGHT

#define MM_MUX_HEIGHT   1080

◆ MM_MUX_PUSH_TIMEOUT

#define MM_MUX_PUSH_TIMEOUT   33333

◆ MM_MUX_WIDTH

#define MM_MUX_WIDTH   1920

◆ MM_PROCESS_MODE_PGIE

#define MM_PROCESS_MODE_PGIE   1

◆ MM_PROCESS_MODE_SGIE

#define MM_PROCESS_MODE_SGIE   2

◆ MM_ROLE_PRIMARY

#define MM_ROLE_PRIMARY   0

◆ MM_ROLE_SHADOW

#define MM_ROLE_SHADOW   1

◆ MM_ROLE_SLOTS

#define MM_ROLE_SLOTS   2

◆ MM_SHADOW_GIE_OFFSET

#define MM_SHADOW_GIE_OFFSET   100

◆ MODELMUX_CONTEXT_FIELD_REV

#define MODELMUX_CONTEXT_FIELD_REV   "revision"

field name carrying the ModelMuxRevShared inside that context's structure

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

◆ MODELMUX_CONTEXT_TYPE_ROUTING

#define MODELMUX_CONTEXT_TYPE_ROUTING   "nvidia.deepstream.modelmux.routing"

gst_context_get_context_type() for the routing-revision context.

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

◆ MODELMUX_TYPE_REV_SHARED

#define MODELMUX_TYPE_REV_SHARED   (modelmux_rev_shared_get_type ())

Typedef Documentation

◆ ModelMuxRevShared

typedef struct _ModelMuxRevShared ModelMuxRevShared

The counter itself: refcounted (each stage holds one ref) and self-locking, so it can be read while a caller already holds a bin lock.

Lock order is always bin-lock -> rev-lock, never the reverse.

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

◆ ModelMuxSgieBin

typedef struct _ModelMuxSgieBin ModelMuxSgieBin

Enumeration Type Documentation

◆ ModelMuxUnloadGpuResult

Enumerator
MM_UNLOAD_GPU_REMOVED 
MM_UNLOAD_GPU_ALL 
MM_UNLOAD_GPU_ABSENT 
MM_UNLOAD_GPU_NO_MATCH 
MM_UNLOAD_GPU_SERVING 
MM_UNLOAD_GPU_REMOVED 
MM_UNLOAD_GPU_ALL 
MM_UNLOAD_GPU_ABSENT 
MM_UNLOAD_GPU_NO_MATCH 
MM_UNLOAD_GPU_SERVING 

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

◆ ModelPlacementPolicy

Stream placement policy across a multi-GPU instance group ([multimodel] placement-policy) – applies only to unconstrained attaches (MM_GPU_ANY); an explicit route gpu always addresses its instance directly.

PACK (default): saturate instances in gpus[] order – a stream lands on the next GPU only when every earlier shard is at max-streams. Maximizes batch efficiency and leaves later GPUs free (ECS "binpack" / k8s MostAllocated consolidation semantics; matches the overflow chains' own first-fit packing). SPREAD: least-loaded eligible instance (pinned members preferred) – latency-first, smaller failure blast radius (ECS "spread").

Enumerator
PACK_PLACEMENT 
SPREAD_PLACEMENT 
PACK_PLACEMENT 
SPREAD_PLACEMENT 

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

◆ ModelStatus

ModelBin lifecycle (applies to EVERY ModelBin, any role).

Lifecycle reads WARMING -> WARMED -> SERVING (and any state -> FAILED on a load error). These are DOMAIN states, intentionally distinct from GstState (NULL/READY/PAUSED/PLAYING): a WARMED bin is already in GST_STATE_PLAYING with its engine in VRAM, just idle.

Enumerator
MODEL_WARMING 
MODEL_WARMED 

engine still building/loading; cannot attach yet

MODEL_SERVING 

engine loaded, idle (0 streams); ready to take streams

MODEL_FAILED 

engine loaded, >=1 stream attached

engine warm-up FAILED; not usable; unloadable + reloadable

MODEL_WARMING 
MODEL_WARMED 

engine still building/loading; cannot attach yet

MODEL_SERVING 

engine loaded, idle (0 streams); ready to take streams

MODEL_FAILED 

engine loaded, >=1 stream attached

engine warm-up FAILED; not usable; unloadable + reloadable

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

◆ ModelType

enum ModelType

Inference backend element used inside a ModelBin.

AUTO-DETECTED from the model's config-file: an nvinferserver protobuf config has a top-level infer_config { block; an nvinfer INI config has a [property] section. Default = nvinfer (back-compat).

Enumerator
MODEL_INFER 
MODEL_INFERSERVER 

nvinfer (TensorRT; default)

MODEL_VISION_ENCODER 

nvinferserver (Triton backend)

MODEL_BACKEND_N 

nvdsvisionencoder (object embeddings)

count – keep LAST, not a backend

MODEL_INFER 
MODEL_INFERSERVER 

nvinfer (TensorRT; default)

MODEL_VISION_ENCODER 

nvinferserver (Triton backend)

MODEL_BACKEND_N 

nvdsvisionencoder (object embeddings)

count – keep LAST, not a backend

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

Function Documentation

◆ get_infer_engine_str()

G_GNUC_INTERNAL gchar* get_infer_engine_str ( ModelBin *  model_bin)

◆ model_bin_attach()

GstPad* model_bin_attach ( ModelBin *  model_bin,
guint  stream_id 
)

◆ model_bin_detach()

gboolean model_bin_detach ( ModelBin *  model_bin,
guint  stream_id 
)

◆ model_bin_free()

void model_bin_free ( ModelBin *  model_bin)

◆ model_bin_has_capacity()

gboolean model_bin_has_capacity ( ModelBin *  model_bin)

◆ model_bin_load()

void model_bin_load ( ModelBin *  model_bin)

◆ model_bin_new()

ModelBin* model_bin_new ( const gchar *  name,
const gchar *  role,
const gchar *  config_file,
const gchar *  engine_file,
const gchar *  version,
guint  unique_id,
guint  max_streams,
const ModelMuxConfig *  config,
GstElement *  parent_pipeline,
GstElement *  container,
const GHashTable *  stream_names,
guint  inst 
)

◆ model_bin_num_streams()

guint model_bin_num_streams ( ModelBin *  model_bin)

◆ model_bin_status()

ModelStatus model_bin_status ( ModelBin *  model_bin)

◆ model_key()

gchar* model_key ( const gchar *  name,
const gchar *  version 
)

◆ model_key_split()

void model_key_split ( const gchar *  key,
gchar **  name_out,
gchar **  version_out 
)

◆ model_pool_attach()

GstPad* model_pool_attach ( ModelPool *  rb,
guint  stream_id,
const gchar *  model_name,
gint  gpu,
GstPad *  in_pad,
guint  branch_serial,
GstElement **  in_q_out,
GstElement **  out_q_out,
GstElement **  conv_out,
gboolean *  cap_overflow,
ModelBin **  attached_bin_out 
)

◆ model_pool_detach()

gboolean model_pool_detach ( ModelPool *  rb,
guint  stream_id,
const gchar *  model_name 
)

◆ model_pool_free()

void model_pool_free ( ModelPool *  rb)

◆ model_pool_load_model()

gboolean model_pool_load_model ( ModelPool *  rb,
const gchar *  model_name,
const gchar *  cfg_override,
guint  batch 
)

◆ model_pool_new()

ModelPool* model_pool_new ( const gchar *  role,
guint  base_uid,
guint  max_streams,
GstElement *  parent_pipeline,
GstElement *  container,
const ModelMuxConfig *  config,
const GHashTable *  stream_names 
)

◆ model_pool_unload_model()

gboolean model_pool_unload_model ( ModelPool *  rb,
const gchar *  model_name 
)

◆ model_status_str()

const gchar* model_status_str ( ModelStatus  s)

◆ model_version_str()

const G_GNUC_INTERNAL gchar* model_version_str ( ModelBin *  model_bin)

◆ modelmux_backend()

const ModelBackendInfo* modelmux_backend ( ModelType  type)

The registry row for @type.

NEVER NULL – an out-of-range value clamps to MODEL_INFER, which is the same back-compat default the config sniff uses, so a caller can dereference the result without a null check.

◆ modelmux_backend_at_position()

gboolean modelmux_backend_at_position ( ModelType  type,
gint  process_mode 
)

TRUE iff @type may run at @process_mode (MM_PROCESS_MODE_PGIE / _SGIE).

◆ modelmux_bin_active_stream_ids()

guint modelmux_bin_active_stream_ids ( ModelMuxBin *  ib,
guint **  out 
)

◆ modelmux_bin_attach_stream()

gboolean modelmux_bin_attach_stream ( ModelMuxBin *  ib,
guint  stream_id,
const gchar *  name,
const gchar *  cam_id,
const gchar *  primary,
const gchar *  shadow,
gint  p_gpu,
gint  s_gpu,
gboolean  p_via_default,
gboolean  s_via_default 
)

◆ modelmux_bin_bump_routing_revision()

void modelmux_bin_bump_routing_revision ( ModelMuxBin *  ib)

◆ modelmux_bin_clear_default()

void modelmux_bin_clear_default ( ModelMuxBin *  ib,
gboolean  shadow 
)

◆ modelmux_bin_clear_pending_model()

void modelmux_bin_clear_pending_model ( ModelMuxBin *  ib,
guint  stream_id 
)

◆ modelmux_bin_detach_stream()

gboolean modelmux_bin_detach_stream ( ModelMuxBin *  ib,
guint  stream_id 
)

◆ modelmux_bin_free()

void modelmux_bin_free ( ModelMuxBin *  ib)

◆ modelmux_bin_get_default()

const DefaultModelRef* modelmux_bin_get_default ( ModelMuxBin *  ib,
gboolean  shadow 
)

◆ modelmux_bin_get_sink()

GstPad* modelmux_bin_get_sink ( ModelMuxBin *  ib)

◆ modelmux_bin_get_src()

GstPad* modelmux_bin_get_src ( ModelMuxBin *  ib)

◆ modelmux_bin_is_configured_default()

gboolean modelmux_bin_is_configured_default ( ModelMuxBin *  ib,
const gchar *  name,
const gchar *  version 
)

◆ modelmux_bin_key_serving()

gboolean modelmux_bin_key_serving ( ModelMuxBin *  ib,
const gchar *  key,
guint *  streams,
gchar **  streams_csv 
)

◆ modelmux_bin_load_defaults()

gboolean modelmux_bin_load_defaults ( ModelMuxBin *  ib)

◆ modelmux_bin_load_into_pool()

ModelStatus modelmux_bin_load_into_pool ( ModelMuxBin *  ib,
gboolean  shadow,
const gchar *  key,
const gchar *  cfg_override 
)

◆ modelmux_bin_load_model()

ModelStatus modelmux_bin_load_model ( ModelMuxBin *  ib,
const gchar *  key,
const gchar *  cfg_override,
gint  gpu,
guint  batch 
)

◆ modelmux_bin_load_model_instances()

ModelStatus modelmux_bin_load_model_instances ( ModelMuxBin *  ib,
const gchar *  key,
const gchar *const  cfgs[],
const gint  gpus[],
guint  n,
guint  batch 
)

◆ modelmux_bin_model_batch()

guint modelmux_bin_model_batch ( ModelMuxBin *  ib,
const gchar *  key 
)

◆ modelmux_bin_model_gpus()

guint modelmux_bin_model_gpus ( ModelMuxBin *  ib,
const gchar *  key,
gint *  out,
guint  cap 
)

◆ modelmux_bin_model_loaded()

gboolean modelmux_bin_model_loaded ( ModelMuxBin *  ib,
const gchar *  name 
)

◆ modelmux_bin_model_on_gpu()

gboolean modelmux_bin_model_on_gpu ( ModelMuxBin *  ib,
const gchar *  key,
gint  gpu 
)

◆ modelmux_bin_model_status()

gint modelmux_bin_model_status ( ModelMuxBin *  ib,
gboolean  shadow,
const gchar *  name 
)

◆ modelmux_bin_name_serving_streams()

gchar* modelmux_bin_name_serving_streams ( ModelMuxBin *  ib,
const gchar *  name 
)

◆ modelmux_bin_new()

ModelMuxBin* modelmux_bin_new ( GstElement *  pipeline,
const gchar *  name,
guint  max_streams,
const ModelMuxConfig *  config 
)

◆ modelmux_bin_num_streams()

guint modelmux_bin_num_streams ( ModelMuxBin *  ib)

◆ modelmux_bin_passthru_streams()

guint modelmux_bin_passthru_streams ( ModelMuxBin *  ib,
const guint *  src_ids,
guint  n,
guint **  out 
)

◆ modelmux_bin_prepare_model()

ModelStatus modelmux_bin_prepare_model ( ModelMuxBin *  ib,
gboolean  shadow,
const gchar *  name 
)

◆ modelmux_bin_promote_passthru()

void modelmux_bin_promote_passthru ( ModelMuxBin *  ib,
guint  stream_id,
const gchar *  model,
const gchar *  shadow,
gint  p_gpu,
gint  s_gpu,
gboolean  p_via_default,
gboolean  s_via_default 
)

◆ modelmux_bin_reload_model()

gboolean modelmux_bin_reload_model ( ModelMuxBin *  ib,
const gchar *  name,
const gchar *  config,
const gchar *  engine,
const gchar *  version 
)

◆ modelmux_bin_reload_model_multi()

gboolean modelmux_bin_reload_model_multi ( ModelMuxBin *  ib,
const gchar *  name,
const gint  gpus[],
const gchar *const  engines[],
guint  n,
const gchar *  version 
)

◆ modelmux_bin_route_json()

gchar* modelmux_bin_route_json ( ModelMuxBin *  ib,
const gchar *  f_camera 
)

◆ modelmux_bin_routing_revision()

guint64 modelmux_bin_routing_revision ( ModelMuxBin *  ib)

◆ modelmux_bin_set_default()

void modelmux_bin_set_default ( ModelMuxBin *  ib,
gboolean  shadow,
const gchar *  name,
const gchar *  version,
gint  gpu 
)

◆ modelmux_bin_set_pending_model()

void modelmux_bin_set_pending_model ( ModelMuxBin *  ib,
guint  stream_id,
const gchar *  model,
gint  gpu,
gboolean  via_default 
)

◆ modelmux_bin_set_pending_routes()

void modelmux_bin_set_pending_routes ( ModelMuxBin *  ib,
GPtrArray *  notes 
)

◆ modelmux_bin_set_rev_shared()

void modelmux_bin_set_rev_shared ( ModelMuxBin *  ib,
ModelMuxRevShared *  rev 
)

◆ modelmux_bin_set_stream_identity()

void modelmux_bin_set_stream_identity ( ModelMuxBin *  ib,
guint  stream_id,
const gchar *  name,
const gchar *  cam_id 
)

◆ modelmux_bin_source_name()

const G_GNUC_INTERNAL gchar* modelmux_bin_source_name ( ModelMuxBin *  ib,
guint  sid 
)

◆ modelmux_bin_status_json()

gchar* modelmux_bin_status_json ( ModelMuxBin *  ib,
const gchar *  f_model,
const gchar *  f_version,
const gchar *  f_stream,
gint  f_sid 
)

◆ modelmux_bin_streams_on_model()

guint modelmux_bin_streams_on_model ( ModelMuxBin *  ib,
gboolean  shadow,
const gchar *  key,
guint *  out,
guint  cap,
gboolean  default_only 
)

◆ modelmux_bin_try_inplace()

gboolean modelmux_bin_try_inplace ( ModelMuxBin *  ib,
const guint *  src_ids,
guint  n,
const gchar *  primary,
const gchar *  shadow 
)

◆ modelmux_bin_unload_model()

gboolean modelmux_bin_unload_model ( ModelMuxBin *  ib,
const gchar *  key 
)

◆ modelmux_bin_unload_model_gpus()

ModelMuxUnloadGpuResult modelmux_bin_unload_model_gpus ( ModelMuxBin *  ib,
const gchar *  key,
const gint *  gpus,
guint  n_gpus,
gint *  serving_gpu,
guint *  serving_streams,
gchar **  serving_csv 
)

◆ modelmux_bin_unload_versions()

guint modelmux_bin_unload_versions ( ModelMuxBin *  ib,
const gchar *  name,
guint *  present 
)

◆ modelmux_bin_update_in_flight()

gboolean modelmux_bin_update_in_flight ( ModelMuxBin *  ib,
const gchar *  name 
)

◆ modelmux_bin_update_routing()

gboolean modelmux_bin_update_routing ( ModelMuxBin *  ib,
guint  stream_id,
const gchar *  primary,
const gchar *  shadow,
gint  p_gpu,
gint  s_gpu,
gboolean  p_via_default,
gboolean  s_via_default 
)

◆ modelmux_bin_update_routing_scoped()

guint modelmux_bin_update_routing_scoped ( ModelMuxBin *  ib,
const guint *  src_ids,
guint  n,
const gchar *  primary,
const gchar *  shadow,
gint  p_gpu,
gint  s_gpu,
gboolean  p_via_default,
gboolean  s_via_default 
)

◆ modelmux_config_apply_properties()

gboolean modelmux_config_apply_properties ( GstElement *  element,
const gchar *  config_file,
const gchar *  group 
)

Apply every key of @group in @config_file to @element as the property of the same name, converting by the property's own GParamSpec type.

For a backend with no config-file property (see ModelBackendInfo.config_group), this IS its configuration. Unknown keys are WARNED and skipped rather than fatal – a newer config naming a property this build's element lacks must not stop the pipeline. Returns FALSE only when the file or the group cannot be read at all.

◆ modelmux_config_clear()

void modelmux_config_clear ( ModelMuxConfig *  config)

◆ modelmux_config_derive()

gchar* modelmux_config_derive ( const gchar *  base_cfg,
const gchar *  engine,
gint  gpu,
gint  gie,
const gchar *  model_name,
const gchar *  version 
)

◆ modelmux_config_file_gie_id()

gint modelmux_config_file_gie_id ( const gchar *  config_file)

◆ modelmux_config_file_gpu()

gint modelmux_config_file_gpu ( const gchar *  config_file)

◆ modelmux_config_file_operate_on_gie()

gint modelmux_config_file_operate_on_gie ( const gchar *  config_file)

◆ modelmux_config_file_process_mode()

gint modelmux_config_file_process_mode ( const gchar *  config_file)

◆ modelmux_config_find_model()

const ModelCatalogEntry* modelmux_config_find_model ( const ModelMuxConfig *  config,
const gchar *  name 
)

◆ modelmux_config_has_other_version()

gboolean modelmux_config_has_other_version ( const ModelMuxConfig *  config,
const gchar *  name,
const gchar *  version 
)

◆ modelmux_config_register_model()

const ModelCatalogEntry* modelmux_config_register_model ( ModelMuxConfig *  config,
const gchar *  name,
const gchar *  config_file,
const gchar *  engine_file,
const gchar *  version,
guint  max_streams 
)

◆ modelmux_config_register_version()

void modelmux_config_register_version ( ModelMuxConfig *  config,
const gchar *  name,
const gchar *  version,
const gchar *  engine,
const gchar *  config_file,
gint  gpu,
guint  batch 
)

◆ modelmux_config_resolve_models()

void modelmux_config_resolve_models ( const ModelMuxConfig *  config,
const DefaultModelRef *  def_primary,
const DefaultModelRef *  def_shadow,
const gchar *  camera_id,
const gchar **  primary,
const gchar **  shadow,
const gchar **  primary_version,
const gchar **  shadow_version,
gboolean *  primary_is_default,
gboolean *  shadow_is_default 
)

◆ modelmux_config_resolve_version_cfg()

gchar* modelmux_config_resolve_version_cfg ( const ModelMuxConfig *  config,
const gchar *  name,
const gchar *  version,
gboolean *  derive_failed 
)

◆ modelmux_config_update_model()

const ModelCatalogEntry* modelmux_config_update_model ( ModelMuxConfig *  config,
const gchar *  name,
const gchar *  config_file,
const gchar *  engine_file,
const gchar *  version 
)

◆ modelmux_config_version_batch()

guint modelmux_config_version_batch ( const ModelMuxConfig *  config,
const gchar *  name,
const gchar *  version 
)

◆ modelmux_config_version_gie()

gint modelmux_config_version_gie ( const ModelMuxConfig *  config,
const gchar *  name,
const gchar *  version 
)

◆ modelmux_config_version_gpu()

gint modelmux_config_version_gpu ( const ModelMuxConfig *  config,
const gchar *  name,
const gchar *  version 
)

◆ modelmux_control_query_probe()

G_GNUC_INTERNAL GstPadProbeReturn modelmux_control_query_probe ( GstPad *  pad,
GstPadProbeInfo *  info,
gpointer  udata 
)

◆ modelmux_debug_configure()

G_GNUC_INTERNAL void modelmux_debug_configure ( ModelMuxBin *  ib)

◆ modelmux_debug_enabled()

G_GNUC_INTERNAL gboolean modelmux_debug_enabled ( void  )

◆ modelmux_detect_model_type()

ModelType modelmux_detect_model_type ( const gchar *  config_file)

◆ modelmux_draw_label()

void modelmux_draw_label ( struct _NvDsBatchMeta *  bmeta,
struct _NvDsFrameMeta *  fm,
guint  x_offset,
guint  y_offset,
const gchar *  text,
const gchar *  role 
)

◆ modelmux_fmt_route_cell()

G_GNUC_INTERNAL void modelmux_fmt_route_cell ( gchar *  buf,
gsize  n,
const ModelMuxRoleAttach *  ra 
)

◆ modelmux_infer_plugin_str()

const gchar* modelmux_infer_plugin_str ( ModelType  type)

◆ modelmux_overlay_enabled()

gboolean modelmux_overlay_enabled ( void  )

◆ modelmux_pending_route_note_free()

void modelmux_pending_route_note_free ( gpointer  note)

◆ modelmux_perf_find_bin_for_source()

G_GNUC_INTERNAL ModelBin* modelmux_perf_find_bin_for_source ( ModelPool *  pool,
guint  source_id 
)

◆ modelmux_post_model_event()

G_GNUC_INTERNAL void modelmux_post_model_event ( GstElement *  src,
const gchar *  event,
const gchar *  name,
const gchar *  version,
gint  gpu,
gboolean  ok,
const gchar *  detail 
)

◆ modelmux_resolve_role()

const G_GNUC_INTERNAL gchar* modelmux_resolve_role ( ModelBin *  model_bin,
guint  source_id 
)

◆ modelmux_rev_shared_bump()

guint64 modelmux_rev_shared_bump ( ModelMuxRevShared *  rev)

Increment and return the new value.

NULL-safe (returns 0).

◆ modelmux_rev_shared_get()

guint64 modelmux_rev_shared_get ( ModelMuxRevShared *  rev)

Current value; 0 for a NULL @rev, which is the same answer a stage that has not negotiated the context yet would give.

◆ modelmux_rev_shared_get_type()

GType modelmux_rev_shared_get_type ( void  )

◆ modelmux_rev_shared_new()

ModelMuxRevShared* modelmux_rev_shared_new ( void  )

A new counter at revision 0, refcount 1.

◆ modelmux_rev_shared_ref()

ModelMuxRevShared* modelmux_rev_shared_ref ( ModelMuxRevShared *  rev)

◆ modelmux_rev_shared_unref()

void modelmux_rev_shared_unref ( ModelMuxRevShared *  rev)

◆ modelmux_role_get()

const G_GNUC_INTERNAL gchar* modelmux_role_get ( ModelBin *  model_bin)

◆ modelmux_role_idx()

G_GNUC_INTERNAL gint modelmux_role_idx ( const gchar *  role)

◆ modelmux_role_set()

G_GNUC_INTERNAL void modelmux_role_set ( ModelBin *  model_bin,
const gchar *  role 
)

◆ modelmux_schedule_dump()

G_GNUC_INTERNAL void modelmux_schedule_dump ( ModelMuxBin *  ib,
guint  delay_seconds 
)

◆ modelmux_sgie_bump_routing_revision()

void modelmux_sgie_bump_routing_revision ( ModelMuxSgieBin *  sgie_bin)

◆ modelmux_sgie_free()

void modelmux_sgie_free ( ModelMuxSgieBin *  sgie_bin)

◆ modelmux_sgie_get_infer()

GstElement* modelmux_sgie_get_infer ( ModelMuxSgieBin *  sgie_bin)

◆ modelmux_sgie_get_info()

gboolean modelmux_sgie_get_info ( ModelMuxSgieBin *  sgie_bin,
guint  idx,
const gchar **  name,
const gchar **  version,
const gchar **  backend,
guint *  gie,
gint *  gpu,
guint *  streams,
const gchar **  state,
gboolean *  serving,
gchar **  engine 
)

◆ modelmux_sgie_get_sink()

GstPad* modelmux_sgie_get_sink ( ModelMuxSgieBin *  sgie_bin)

◆ modelmux_sgie_get_src()

GstPad* modelmux_sgie_get_src ( ModelMuxSgieBin *  sgie_bin)

◆ modelmux_sgie_load()

gboolean modelmux_sgie_load ( ModelMuxSgieBin *  sgie_bin,
const gchar *  name,
const gchar *  version,
const gchar *  config_file,
const gchar *  engine_file,
gint *  http,
const gchar **  err_code,
const gchar **  reason,
const gchar **  hint 
)

◆ modelmux_sgie_model_name()

const gchar* modelmux_sgie_model_name ( ModelMuxSgieBin *  sgie_bin)

◆ modelmux_sgie_model_version()

const gchar* modelmux_sgie_model_version ( ModelMuxSgieBin *  sgie_bin)

◆ modelmux_sgie_new()

ModelMuxSgieBin* modelmux_sgie_new ( GstElement *  parent,
const gchar *  name,
const ModelMuxConfig *  config 
)

◆ modelmux_sgie_route()

gboolean modelmux_sgie_route ( ModelMuxSgieBin *  sgie_bin,
const gchar *  name,
const gchar *  version,
gint *  http,
const gchar **  err_code,
const gchar **  reason,
const gchar **  hint 
)

◆ modelmux_sgie_route_json()

gchar* modelmux_sgie_route_json ( ModelMuxSgieBin *  sgie_bin)

◆ modelmux_sgie_set_overlay_slot()

void modelmux_sgie_set_overlay_slot ( ModelMuxSgieBin *  sgie_bin,
guint  slot 
)

◆ modelmux_sgie_set_rev_shared()

void modelmux_sgie_set_rev_shared ( ModelMuxSgieBin *  sgie_bin,
ModelMuxRevShared *  rev 
)

◆ modelmux_sgie_status_json()

gchar* modelmux_sgie_status_json ( ModelMuxSgieBin *  sgie_bin,
const gchar *  f_model,
const gchar *  f_version 
)

◆ modelmux_sgie_unload()

gboolean modelmux_sgie_unload ( ModelMuxSgieBin *  sgie_bin,
const gchar *  name,
const gchar *  version,
gint *  http,
const gchar **  err_code,
const gchar **  reason,
const gchar **  hint 
)

◆ modelmux_sgie_update()

gboolean modelmux_sgie_update ( ModelMuxSgieBin *  sgie_bin,
const gchar *  name,
const gchar *  from_version,
const gchar *  version,
const gchar *  config_file,
const gchar *  engine_file,
gint *  http,
const gchar **  err_code,
const gchar **  reason,
const gchar **  hint 
)

◆ modelmux_status_query_probe()

G_GNUC_INTERNAL GstPadProbeReturn modelmux_status_query_probe ( GstPad *  pad,
GstPadProbeInfo *  info,
gpointer  udata 
)

◆ modelmux_version_is_int()

gboolean modelmux_version_is_int ( const gchar *  v)