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 
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;
68 
69 struct _GstNvDsMetaMuxPad
70 {
71  GstAggregatorPad aggregator_pad;
72 
73  GstBufferList *buf_list;
74  std::vector <gint> source_ids;
75 };
76 
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;
91  std::unordered_map<gint, GstNvDsMetaMuxModelSource> model_source_map;
92  GHashTable *pts_table;
93 };
94 
95 struct _GstNvDsMetaMuxClass {
96  GstAggregatorClass parent;
97 };
98 
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