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 |
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) |
| #define MM_ACCT_MAX 256 |
max source_id tracked (flat, lock-free)
Definition at line 822 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #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 sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_BACKEND_AT_SGIE (1u << 1) |
Definition at line 164 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_DEFAULT_REST_IP "0.0.0.0" |
Definition at line 61 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_DEFAULT_REST_PORT 9000 |
Definition at line 60 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #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 sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_MAX_BATCH 1024 /* hard cap on batch-size (sizes every internal mux) */ |
Definition at line 58 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_MAX_MODELS 32 |
Definition at line 59 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_MAX_STREAMS_DEFAULT 16 |
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 sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_MODEL_KEY_SEP '@' |
Definition at line 69 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_MODEL_VERSION_DEFAULT "1" |
Definition at line 68 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_MUX_HEIGHT 1080 |
Definition at line 87 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_MUX_PUSH_TIMEOUT 33333 |
Definition at line 88 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_MUX_WIDTH 1920 |
Definition at line 86 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_PROCESS_MODE_PGIE 1 |
Definition at line 77 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_PROCESS_MODE_SGIE 2 |
Definition at line 78 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_ROLE_PRIMARY 0 |
Definition at line 823 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_ROLE_SHADOW 1 |
Definition at line 824 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_ROLE_SLOTS 2 |
Definition at line 825 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MM_SHADOW_GIE_OFFSET 100 |
Definition at line 84 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MODELMUX_CONTEXT_FIELD_REV "revision" |
field name carrying the ModelMuxRevShared inside that context's structure
Definition at line 114 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #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 sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| #define MODELMUX_TYPE_REV_SHARED (modelmux_rev_shared_get_type ()) |
Definition at line 121 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| 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 sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| typedef struct _ModelMuxSgieBin ModelMuxSgieBin |
Definition at line 1200 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
Definition at line 1552 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| enum 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 sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| enum 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.
Definition at line 445 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| 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).
Definition at line 136 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux_priv.h.
| G_GNUC_INTERNAL gchar* get_infer_engine_str | ( | ModelBin * | model_bin | ) |
| GstPad* model_bin_attach | ( | ModelBin * | model_bin, |
| guint | stream_id | ||
| ) |
| gboolean model_bin_detach | ( | ModelBin * | model_bin, |
| guint | stream_id | ||
| ) |
| void model_bin_free | ( | ModelBin * | model_bin | ) |
| gboolean model_bin_has_capacity | ( | ModelBin * | model_bin | ) |
| void model_bin_load | ( | ModelBin * | model_bin | ) |
| 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 | ||
| ) |
| guint model_bin_num_streams | ( | ModelBin * | model_bin | ) |
| ModelStatus model_bin_status | ( | ModelBin * | model_bin | ) |
| gchar* model_key | ( | const gchar * | name, |
| const gchar * | version | ||
| ) |
| void model_key_split | ( | const gchar * | key, |
| gchar ** | name_out, | ||
| gchar ** | version_out | ||
| ) |
| 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 | ||
| ) |
| void model_pool_free | ( | ModelPool * | rb | ) |
| gboolean model_pool_load_model | ( | ModelPool * | rb, |
| const gchar * | model_name, | ||
| const gchar * | cfg_override, | ||
| guint | batch | ||
| ) |
| 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 | ||
| ) |
| gboolean model_pool_unload_model | ( | ModelPool * | rb, |
| const gchar * | model_name | ||
| ) |
| const gchar* model_status_str | ( | ModelStatus | s | ) |
| const G_GNUC_INTERNAL gchar* model_version_str | ( | ModelBin * | model_bin | ) |
| 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.
| gboolean modelmux_backend_at_position | ( | ModelType | type, |
| gint | process_mode | ||
| ) |
TRUE iff @type may run at @process_mode (MM_PROCESS_MODE_PGIE / _SGIE).
| guint modelmux_bin_active_stream_ids | ( | ModelMuxBin * | ib, |
| guint ** | out | ||
| ) |
| 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 | ||
| ) |
| void modelmux_bin_bump_routing_revision | ( | ModelMuxBin * | ib | ) |
| void modelmux_bin_clear_default | ( | ModelMuxBin * | ib, |
| gboolean | shadow | ||
| ) |
| void modelmux_bin_clear_pending_model | ( | ModelMuxBin * | ib, |
| guint | stream_id | ||
| ) |
| gboolean modelmux_bin_detach_stream | ( | ModelMuxBin * | ib, |
| guint | stream_id | ||
| ) |
| void modelmux_bin_free | ( | ModelMuxBin * | ib | ) |
| const DefaultModelRef* modelmux_bin_get_default | ( | ModelMuxBin * | ib, |
| gboolean | shadow | ||
| ) |
| GstPad* modelmux_bin_get_sink | ( | ModelMuxBin * | ib | ) |
| GstPad* modelmux_bin_get_src | ( | ModelMuxBin * | ib | ) |
| gboolean modelmux_bin_is_configured_default | ( | ModelMuxBin * | ib, |
| const gchar * | name, | ||
| const gchar * | version | ||
| ) |
| gboolean modelmux_bin_key_serving | ( | ModelMuxBin * | ib, |
| const gchar * | key, | ||
| guint * | streams, | ||
| gchar ** | streams_csv | ||
| ) |
| gboolean modelmux_bin_load_defaults | ( | ModelMuxBin * | ib | ) |
| ModelStatus modelmux_bin_load_into_pool | ( | ModelMuxBin * | ib, |
| gboolean | shadow, | ||
| const gchar * | key, | ||
| const gchar * | cfg_override | ||
| ) |
| 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 | ||
| ) |
| guint modelmux_bin_model_batch | ( | ModelMuxBin * | ib, |
| const gchar * | key | ||
| ) |
| guint modelmux_bin_model_gpus | ( | ModelMuxBin * | ib, |
| const gchar * | key, | ||
| gint * | out, | ||
| guint | cap | ||
| ) |
| gboolean modelmux_bin_model_loaded | ( | ModelMuxBin * | ib, |
| const gchar * | name | ||
| ) |
| gboolean modelmux_bin_model_on_gpu | ( | ModelMuxBin * | ib, |
| const gchar * | key, | ||
| gint | gpu | ||
| ) |
| gint modelmux_bin_model_status | ( | ModelMuxBin * | ib, |
| gboolean | shadow, | ||
| const gchar * | name | ||
| ) |
| gchar* modelmux_bin_name_serving_streams | ( | ModelMuxBin * | ib, |
| const gchar * | name | ||
| ) |
| ModelMuxBin* modelmux_bin_new | ( | GstElement * | pipeline, |
| const gchar * | name, | ||
| guint | max_streams, | ||
| const ModelMuxConfig * | config | ||
| ) |
| guint modelmux_bin_num_streams | ( | ModelMuxBin * | ib | ) |
| guint modelmux_bin_passthru_streams | ( | ModelMuxBin * | ib, |
| const guint * | src_ids, | ||
| guint | n, | ||
| guint ** | out | ||
| ) |
| ModelStatus modelmux_bin_prepare_model | ( | ModelMuxBin * | ib, |
| gboolean | shadow, | ||
| const gchar * | name | ||
| ) |
| 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 | ||
| ) |
| 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 | ||
| ) |
| gchar* modelmux_bin_route_json | ( | ModelMuxBin * | ib, |
| const gchar * | f_camera | ||
| ) |
| guint64 modelmux_bin_routing_revision | ( | ModelMuxBin * | ib | ) |
| void modelmux_bin_set_default | ( | ModelMuxBin * | ib, |
| gboolean | shadow, | ||
| const gchar * | name, | ||
| const gchar * | version, | ||
| gint | gpu | ||
| ) |
| void modelmux_bin_set_pending_model | ( | ModelMuxBin * | ib, |
| guint | stream_id, | ||
| const gchar * | model, | ||
| gint | gpu, | ||
| gboolean | via_default | ||
| ) |
| void modelmux_bin_set_pending_routes | ( | ModelMuxBin * | ib, |
| GPtrArray * | notes | ||
| ) |
| void modelmux_bin_set_rev_shared | ( | ModelMuxBin * | ib, |
| ModelMuxRevShared * | rev | ||
| ) |
| void modelmux_bin_set_stream_identity | ( | ModelMuxBin * | ib, |
| guint | stream_id, | ||
| const gchar * | name, | ||
| const gchar * | cam_id | ||
| ) |
| const G_GNUC_INTERNAL gchar* modelmux_bin_source_name | ( | ModelMuxBin * | ib, |
| guint | sid | ||
| ) |
| gchar* modelmux_bin_status_json | ( | ModelMuxBin * | ib, |
| const gchar * | f_model, | ||
| const gchar * | f_version, | ||
| const gchar * | f_stream, | ||
| gint | f_sid | ||
| ) |
| guint modelmux_bin_streams_on_model | ( | ModelMuxBin * | ib, |
| gboolean | shadow, | ||
| const gchar * | key, | ||
| guint * | out, | ||
| guint | cap, | ||
| gboolean | default_only | ||
| ) |
| 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 | ||
| ) |
| gboolean modelmux_bin_update_in_flight | ( | ModelMuxBin * | ib, |
| const gchar * | name | ||
| ) |
| 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 | ||
| ) |
| 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 | ||
| ) |
| 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.
| void modelmux_config_clear | ( | ModelMuxConfig * | config | ) |
| gchar* modelmux_config_derive | ( | const gchar * | base_cfg, |
| const gchar * | engine, | ||
| gint | gpu, | ||
| gint | gie, | ||
| const gchar * | model_name, | ||
| const gchar * | version | ||
| ) |
| gint modelmux_config_file_gie_id | ( | const gchar * | config_file | ) |
| gint modelmux_config_file_gpu | ( | const gchar * | config_file | ) |
| gint modelmux_config_file_operate_on_gie | ( | const gchar * | config_file | ) |
| gint modelmux_config_file_process_mode | ( | const gchar * | config_file | ) |
| const ModelCatalogEntry* modelmux_config_find_model | ( | const ModelMuxConfig * | config, |
| const gchar * | name | ||
| ) |
| gboolean modelmux_config_has_other_version | ( | const ModelMuxConfig * | config, |
| const gchar * | name, | ||
| const gchar * | version | ||
| ) |
| 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 | ||
| ) |
| void modelmux_config_register_version | ( | ModelMuxConfig * | config, |
| const gchar * | name, | ||
| const gchar * | version, | ||
| const gchar * | engine, | ||
| const gchar * | config_file, | ||
| gint | gpu, | ||
| guint | batch | ||
| ) |
| 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 | ||
| ) |
| gchar* modelmux_config_resolve_version_cfg | ( | const ModelMuxConfig * | config, |
| const gchar * | name, | ||
| const gchar * | version, | ||
| gboolean * | derive_failed | ||
| ) |
| const ModelCatalogEntry* modelmux_config_update_model | ( | ModelMuxConfig * | config, |
| const gchar * | name, | ||
| const gchar * | config_file, | ||
| const gchar * | engine_file, | ||
| const gchar * | version | ||
| ) |
| 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 | ||
| ) |
| G_GNUC_INTERNAL GstPadProbeReturn modelmux_control_query_probe | ( | GstPad * | pad, |
| GstPadProbeInfo * | info, | ||
| gpointer | udata | ||
| ) |
| G_GNUC_INTERNAL void modelmux_debug_configure | ( | ModelMuxBin * | ib | ) |
| G_GNUC_INTERNAL gboolean modelmux_debug_enabled | ( | void | ) |
| ModelType modelmux_detect_model_type | ( | const gchar * | config_file | ) |
| void modelmux_draw_label | ( | struct _NvDsBatchMeta * | bmeta, |
| struct _NvDsFrameMeta * | fm, | ||
| guint | x_offset, | ||
| guint | y_offset, | ||
| const gchar * | text, | ||
| const gchar * | role | ||
| ) |
| G_GNUC_INTERNAL void modelmux_fmt_route_cell | ( | gchar * | buf, |
| gsize | n, | ||
| const ModelMuxRoleAttach * | ra | ||
| ) |
| const gchar* modelmux_infer_plugin_str | ( | ModelType | type | ) |
| gboolean modelmux_overlay_enabled | ( | void | ) |
| void modelmux_pending_route_note_free | ( | gpointer | note | ) |
| 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_resolve_role | ( | ModelBin * | model_bin, |
| guint | source_id | ||
| ) |
| guint64 modelmux_rev_shared_bump | ( | ModelMuxRevShared * | rev | ) |
Increment and return the new value.
NULL-safe (returns 0).
| 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.
| GType modelmux_rev_shared_get_type | ( | void | ) |
| ModelMuxRevShared* modelmux_rev_shared_new | ( | void | ) |
A new counter at revision 0, refcount 1.
| ModelMuxRevShared* modelmux_rev_shared_ref | ( | ModelMuxRevShared * | rev | ) |
| void modelmux_rev_shared_unref | ( | ModelMuxRevShared * | rev | ) |
| const G_GNUC_INTERNAL gchar* modelmux_role_get | ( | ModelBin * | model_bin | ) |
| G_GNUC_INTERNAL gint modelmux_role_idx | ( | const gchar * | role | ) |
| G_GNUC_INTERNAL void modelmux_role_set | ( | ModelBin * | model_bin, |
| const gchar * | role | ||
| ) |
| G_GNUC_INTERNAL void modelmux_schedule_dump | ( | ModelMuxBin * | ib, |
| guint | delay_seconds | ||
| ) |
| void modelmux_sgie_bump_routing_revision | ( | ModelMuxSgieBin * | sgie_bin | ) |
| void modelmux_sgie_free | ( | ModelMuxSgieBin * | sgie_bin | ) |
| GstElement* modelmux_sgie_get_infer | ( | ModelMuxSgieBin * | sgie_bin | ) |
| 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 | ||
| ) |
| GstPad* modelmux_sgie_get_sink | ( | ModelMuxSgieBin * | sgie_bin | ) |
| GstPad* modelmux_sgie_get_src | ( | ModelMuxSgieBin * | sgie_bin | ) |
| 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 | ||
| ) |
| const gchar* modelmux_sgie_model_name | ( | ModelMuxSgieBin * | sgie_bin | ) |
| const gchar* modelmux_sgie_model_version | ( | ModelMuxSgieBin * | sgie_bin | ) |
| ModelMuxSgieBin* modelmux_sgie_new | ( | GstElement * | parent, |
| const gchar * | name, | ||
| const ModelMuxConfig * | config | ||
| ) |
| 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 | ||
| ) |
| gchar* modelmux_sgie_route_json | ( | ModelMuxSgieBin * | sgie_bin | ) |
| void modelmux_sgie_set_overlay_slot | ( | ModelMuxSgieBin * | sgie_bin, |
| guint | slot | ||
| ) |
| void modelmux_sgie_set_rev_shared | ( | ModelMuxSgieBin * | sgie_bin, |
| ModelMuxRevShared * | rev | ||
| ) |
| gchar* modelmux_sgie_status_json | ( | ModelMuxSgieBin * | sgie_bin, |
| const gchar * | f_model, | ||
| const gchar * | f_version | ||
| ) |
| 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_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 | ||
| ) |
| G_GNUC_INTERNAL GstPadProbeReturn modelmux_status_query_probe | ( | GstPad * | pad, |
| GstPadProbeInfo * | info, | ||
| gpointer | udata | ||
| ) |
| gboolean modelmux_version_is_int | ( | const gchar * | v | ) |