Go to the source code of this file.
Data Structures | |
| struct | _GstNvModelMux |
| ModelMuxInstance struct. More... | |
| struct | _GstNvModelMuxClass |
Macros | |
| #define | GST_TYPE_NVMODELMUX (gst_modelmux_get_type ()) |
| SECTION:element-nvmodelmux. More... | |
| #define | GST_NVMODELMUX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_NVMODELMUX, GstNvModelMux)) |
| #define | GST_NVMODELMUX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_NVMODELMUX, GstNvModelMuxClass)) |
| #define | GST_IS_NVMODELMUX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_NVMODELMUX)) |
| #define | GST_IS_NVMODELMUX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_NVMODELMUX)) |
Typedefs | |
| typedef struct _GstNvModelMux | GstNvModelMux |
| typedef struct _GstNvModelMuxClass | GstNvModelMuxClass |
| typedef gboolean(* | ModelMuxPeerStageFunc) (GstNvModelMux *self, GstNvModelMux *peer, gpointer udata) |
Functions | |
| GType | gst_modelmux_get_type (void) |
| gboolean | gst_modelmux_parse_config_file (GstNvModelMux *self, const gchar *cfg_file) |
| G_GNUC_INTERNAL void | modelmux_foreach_peer_stage (GstNvModelMux *self, ModelMuxPeerStageFunc fn, gpointer udata) |
| G_GNUC_INTERNAL gboolean | modelmux_stage_ask_peer (GstNvModelMux *peer, GstQuery *q, GstQuery **out) |
| G_GNUC_INTERNAL gboolean | modelmux_stage_query_is_delegated (GstQuery *q) |
| void | gst_modelmux_control_attach (GstNvModelMux *self) |
| void | gst_modelmux_control_detach (GstNvModelMux *self) |
| void | gst_modelmux_control_wire_ota_rollback (GstNvModelMux *self, ModelMuxBin *mm) |
| 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) |
| #define GST_IS_NVMODELMUX | ( | obj | ) | (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_NVMODELMUX)) |
Definition at line 69 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| #define GST_IS_NVMODELMUX_CLASS | ( | klass | ) | (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_NVMODELMUX)) |
Definition at line 71 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| #define GST_NVMODELMUX | ( | obj | ) | (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_NVMODELMUX, GstNvModelMux)) |
Definition at line 65 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| #define GST_NVMODELMUX_CLASS | ( | klass | ) | (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_NVMODELMUX, GstNvModelMuxClass)) |
Definition at line 67 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| #define GST_TYPE_NVMODELMUX (gst_modelmux_get_type ()) |
SECTION:element-nvmodelmux.
A self-contained DeepStream GStreamer bin element that runs PER-STREAM, PER-MODEL inference with optional A/B (primary + shadow) serving.
One batched input (e.g. from nvstreammux / nvmultiurisrcbin) enters the element's sink pad; the element fans every source out to its assigned model(s), batches each model independently, runs nvinfer, and re-batches all outputs into a SINGLE batched buffer on the src pad. Each output frame carries InferenceProvenanceMeta so a downstream consumer can attribute detections to the exact (stream, model, role) that produced them.
sink (1 batched) --> [ demux -> per-stream tee -> {Primary, Shadow} model pools (per-model nvstreammux->nvinfer->nvstreamdemux) -> combined nvstreammux ] --> src (1 batched)
ALL routing / pooling / sharding / A/B promote-swap / OTA reload / provenance logic lives inside the bin (see gstnvmodelmux_bin.c); this element is the thin GObject shell that exposes it as a reusable plugin:
The element is a GstBin: when disabled (enable=FALSE) it degrades to a transparent passthrough, exactly like other DeepStream components.
Definition at line 64 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| typedef struct _GstNvModelMux GstNvModelMux |
Definition at line 74 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| typedef struct _GstNvModelMuxClass GstNvModelMuxClass |
Definition at line 75 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| typedef gboolean(* ModelMuxPeerStageFunc) (GstNvModelMux *self, GstNvModelMux *peer, gpointer udata) |
Definition at line 223 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| anonymous enum |
Definition at line 80 of file sources/gst-plugins/gst-nvmodelmux/gstnvmodelmux.h.
| void gst_modelmux_control_attach | ( | GstNvModelMux * | self | ) |
| void gst_modelmux_control_detach | ( | GstNvModelMux * | self | ) |
| void gst_modelmux_control_wire_ota_rollback | ( | GstNvModelMux * | self, |
| ModelMuxBin * | mm | ||
| ) |
| GType gst_modelmux_get_type | ( | void | ) |
| gboolean gst_modelmux_parse_config_file | ( | GstNvModelMux * | self, |
| const gchar * | cfg_file | ||
| ) |
| 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 | ||
| ) |
| G_GNUC_INTERNAL void modelmux_foreach_peer_stage | ( | GstNvModelMux * | self, |
| ModelMuxPeerStageFunc | fn, | ||
| gpointer | udata | ||
| ) |
| G_GNUC_INTERNAL gboolean modelmux_stage_ask_peer | ( | GstNvModelMux * | peer, |
| GstQuery * | q, | ||
| GstQuery ** | out | ||
| ) |
| G_GNUC_INTERNAL gboolean modelmux_stage_query_is_delegated | ( | GstQuery * | q | ) |