NVIDIA DeepStream SDK API Reference
9.0 Release
9.0/sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h
Go to the documentation of this file.
1
12
#ifndef __GST_NVDSMETAMUX_H__
13
#define __GST_NVDSMETAMUX_H__
14
15
#include <gst/gst.h>
16
#include <gst/base/gstaggregator.h>
17
#include "gstnvdsmeta.h"
18
19
#include <condition_variable>
20
#include <mutex>
21
#include <thread>
22
#include <unordered_map>
23
#include <functional>
24
25
/* Package and library details required for plugin_init */
26
#define PACKAGE "nvdsmetamux"
27
#define VERSION "1.0"
28
#define LICENSE "Proprietary"
29
#define DESCRIPTION "NVIDIA batch meta mux plugin for integration with DeepStream on DGPU/Jetson"
30
#define BINARY_PACKAGE "NVIDIA DeepStream batch meta mux form different model"
31
#define URL "http://nvidia.com/"
32
33
#ifdef __cplusplus
34
extern
"C"
{
35
#endif
36
37
G_BEGIN_DECLS
38
39
#define GST_TYPE_NVDSMETAMUX_PAD (gst_nvdsmetamux_pad_get_type())
40
#define GST_NVDSMETAMUX_PAD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_NVDSMETAMUX_PAD, GstNvDsMetaMuxPad))
41
#define GST_NVDSMETAMUX_PAD_CAST(obj) ((GstNvDsMetaMuxPad *)(obj))
42
#define GST_NVDSMETAMUX_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_NVDSMETAMUX_PAD, GstNvDsMetaMuxPad))
43
#define GST_IS_NVDSMETAMUX_PAD(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_NVDSMETAMUX_PAD))
44
#define GST_IS_NVDSMETAMUX_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_NVDSMETAMUX_PAD))
45
46
typedef
struct
_GstNvDsMetaMuxPad
GstNvDsMetaMuxPad
;
47
typedef
struct
_GstNvDsMetaMuxPadClass
GstNvDsMetaMuxPadClass
;
48
typedef
struct
_GstNvDsMetaMux
GstNvDsMetaMux
;
49
typedef
struct
_GstNvDsMetaMuxClass
GstNvDsMetaMuxClass
;
50
51
#define GST_TYPE_NVDSMETAMUX \
52
(gst_nvdsmetamux_get_type ())
53
#define GST_NVDSMETAMUX(obj) \
54
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_NVDSMETAMUX, GstNvDsMetaMux))
55
#define GST_NVDSMETAMUX_CAST(obj) ((GstNvDsMetaMux *)obj)
56
#define GST_NVDSMETAMUX_CLASS(klass) \
57
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_NVDSMETAMUX, GstNvDsMetaMuxClass))
58
#define GST_IS_NVDSMETAMUX(obj) \
59
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_NVDSMETAMUX))
60
#define GST_IS_NVDSMETAMUX_CLASS(klass) \
61
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_NVDSMETAMUX))
62
63
typedef
struct
64
{
66
std::vector<gint> source_id_vector;
67
}
GstNvDsMetaMuxModelSource
;
68
69
struct
_GstNvDsMetaMuxPad
70
{
71
GstAggregatorPad
aggregator_pad
;
72
73
GstBufferList *
buf_list
;
74
std::vector <gint>
source_ids
;
75
};
76
77
struct
_GstNvDsMetaMuxPadClass
{
78
GstAggregatorPadClass
parent
;
79
};
80
81
struct
_GstNvDsMetaMux
{
82
GstAggregator
aggregator
;
83
84
GstPad *
srcpad
;
85
gboolean
enable
;
86
gchar *
active_sink_pad
;
87
GstClockTimeDiff
pts_tolerance
;
88
gchar *
config_file_path
;
89
GstNvDsMetaMuxPad
*
active_pad
;
90
gboolean
config_file_parse_successful
;
91
std::unordered_map<gint, GstNvDsMetaMuxModelSource>
model_source_map
;
92
GHashTable *
pts_table
;
93
};
94
95
struct
_GstNvDsMetaMuxClass
{
96
GstAggregatorClass
parent
;
97
};
98
99
GType
gst_nvdsmetamux_pad_get_type
(
void
);
100
GType
gst_nvdsmetamux_get_type
(
void
);
101
102
G_END_DECLS
103
104
#ifdef __cplusplus
105
}
106
#endif
107
108
#endif
_GstNvDsMetaMux::srcpad
GstPad * srcpad
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:84
gst_nvdsmetamux_pad_get_type
GType gst_nvdsmetamux_pad_get_type(void)
_GstNvDsMetaMux::model_source_map
std::unordered_map< gint, GstNvDsMetaMuxModelSource > model_source_map
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:91
_GstNvDsMetaMuxPad::aggregator_pad
GstAggregatorPad aggregator_pad
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:71
_GstNvDsMetaMuxPad::source_ids
std::vector< gint > source_ids
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:74
_GstNvDsMetaMuxPad::buf_list
GstBufferList * buf_list
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:73
_GstNvDsMetaMux
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:81
_GstNvDsMetaMux::config_file_path
gchar * config_file_path
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:88
_GstNvDsMetaMux::pts_table
GHashTable * pts_table
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:92
_GstNvDsMetaMux::pts_tolerance
GstClockTimeDiff pts_tolerance
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:87
_GstNvDsMetaMux::active_pad
GstNvDsMetaMuxPad * active_pad
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:89
_GstNvDsMetaMuxPad
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:69
_GstNvDsMetaMux::enable
gboolean enable
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:85
_GstNvDsMetaMux::active_sink_pad
gchar * active_sink_pad
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:86
gst_nvdsmetamux_get_type
GType gst_nvdsmetamux_get_type(void)
_GstNvDsMetaMuxClass
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:95
_GstNvDsMetaMux::config_file_parse_successful
gboolean config_file_parse_successful
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:90
_GstNvDsMetaMuxClass::parent
GstAggregatorClass parent
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:96
_GstNvDsMetaMuxPadClass
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:77
GstNvDsMetaMuxModelSource
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:63
_GstNvDsMetaMuxPadClass::parent
GstAggregatorPadClass parent
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:78
_GstNvDsMetaMux::aggregator
GstAggregator aggregator
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:82
Privacy Policy
|
Manage My Privacy
|
Do Not Sell or Share My Data
|
Terms of Service
|
Accessibility
|
Corporate Policies
|
Product Security
|
Contact
© 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
NVIDIA Confidential | Subject to Change | For test and development only.
Fri Mar 20 2026 14:36:58 | PR-09318-R32