NVIDIA DeepStream SDK API Reference
9.1 Release
9.1/sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: Copyright (c) 2022-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3
* SPDX-License-Identifier: Apache-2.0
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
#ifndef __GST_NVDSMETAMUX_H__
19
#define __GST_NVDSMETAMUX_H__
20
21
#include <gst/gst.h>
22
#include <gst/base/gstaggregator.h>
23
#include "gstnvdsmeta.h"
24
25
#include <condition_variable>
26
#include <mutex>
27
#include <thread>
28
#include <unordered_map>
29
#include <functional>
30
31
/* Package and library details required for plugin_init */
32
#define PACKAGE "nvdsmetamux"
33
#define VERSION "1.0"
34
#define LICENSE "Proprietary"
35
#define DESCRIPTION "NVIDIA batch meta mux plugin for integration with DeepStream on DGPU/Jetson"
36
#define BINARY_PACKAGE "NVIDIA DeepStream batch meta mux form different model"
37
#define URL "http://nvidia.com/"
38
39
#ifdef __cplusplus
40
extern
"C"
{
41
#endif
42
43
G_BEGIN_DECLS
44
45
#define GST_TYPE_NVDSMETAMUX_PAD (gst_nvdsmetamux_pad_get_type())
46
#define GST_NVDSMETAMUX_PAD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_NVDSMETAMUX_PAD, GstNvDsMetaMuxPad))
47
#define GST_NVDSMETAMUX_PAD_CAST(obj) ((GstNvDsMetaMuxPad *)(obj))
48
#define GST_NVDSMETAMUX_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_NVDSMETAMUX_PAD, GstNvDsMetaMuxPad))
49
#define GST_IS_NVDSMETAMUX_PAD(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_NVDSMETAMUX_PAD))
50
#define GST_IS_NVDSMETAMUX_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_NVDSMETAMUX_PAD))
51
52
typedef
struct
_GstNvDsMetaMuxPad
GstNvDsMetaMuxPad
;
53
typedef
struct
_GstNvDsMetaMuxPadClass
GstNvDsMetaMuxPadClass
;
54
typedef
struct
_GstNvDsMetaMux
GstNvDsMetaMux
;
55
typedef
struct
_GstNvDsMetaMuxClass
GstNvDsMetaMuxClass
;
56
57
#define GST_TYPE_NVDSMETAMUX \
58
(gst_nvdsmetamux_get_type ())
59
#define GST_NVDSMETAMUX(obj) \
60
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_NVDSMETAMUX, GstNvDsMetaMux))
61
#define GST_NVDSMETAMUX_CAST(obj) ((GstNvDsMetaMux *)obj)
62
#define GST_NVDSMETAMUX_CLASS(klass) \
63
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_NVDSMETAMUX, GstNvDsMetaMuxClass))
64
#define GST_IS_NVDSMETAMUX(obj) \
65
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_NVDSMETAMUX))
66
#define GST_IS_NVDSMETAMUX_CLASS(klass) \
67
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_NVDSMETAMUX))
68
69
typedef
struct
70
{
72
std::vector<gint> source_id_vector;
73
}
GstNvDsMetaMuxModelSource
;
74
75
struct
_GstNvDsMetaMuxPad
76
{
77
GstAggregatorPad
aggregator_pad
;
78
79
GstBufferList *
buf_list
;
80
std::vector <gint>
source_ids
;
81
};
82
83
struct
_GstNvDsMetaMuxPadClass
{
84
GstAggregatorPadClass
parent
;
85
};
86
87
struct
_GstNvDsMetaMux
{
88
GstAggregator
aggregator
;
89
90
GstPad *
srcpad
;
91
gboolean
enable
;
92
gchar *
active_sink_pad
;
93
GstClockTimeDiff
pts_tolerance
;
94
gchar *
config_file_path
;
95
GstNvDsMetaMuxPad
*
active_pad
;
96
gboolean
config_file_parse_successful
;
97
std::unordered_map<gint, GstNvDsMetaMuxModelSource>
model_source_map
;
98
GHashTable *
pts_table
;
99
};
100
101
struct
_GstNvDsMetaMuxClass
{
102
GstAggregatorClass
parent
;
103
};
104
105
GType
gst_nvdsmetamux_pad_get_type
(
void
);
106
GType
gst_nvdsmetamux_get_type
(
void
);
107
108
G_END_DECLS
109
110
#ifdef __cplusplus
111
}
112
#endif
113
114
#endif
_GstNvDsMetaMux::srcpad
GstPad * srcpad
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:90
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:97
_GstNvDsMetaMuxPad::aggregator_pad
GstAggregatorPad aggregator_pad
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:77
_GstNvDsMetaMuxPad::source_ids
std::vector< gint > source_ids
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:80
_GstNvDsMetaMuxPad::buf_list
GstBufferList * buf_list
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:79
_GstNvDsMetaMux
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:87
_GstNvDsMetaMux::config_file_path
gchar * config_file_path
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:94
_GstNvDsMetaMux::pts_table
GHashTable * pts_table
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:98
_GstNvDsMetaMux::pts_tolerance
GstClockTimeDiff pts_tolerance
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:93
_GstNvDsMetaMux::active_pad
GstNvDsMetaMuxPad * active_pad
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:95
_GstNvDsMetaMuxPad
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:75
_GstNvDsMetaMux::enable
gboolean enable
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:91
_GstNvDsMetaMux::active_sink_pad
gchar * active_sink_pad
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:92
gst_nvdsmetamux_get_type
GType gst_nvdsmetamux_get_type(void)
_GstNvDsMetaMuxClass
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:101
_GstNvDsMetaMux::config_file_parse_successful
gboolean config_file_parse_successful
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:96
_GstNvDsMetaMuxClass::parent
GstAggregatorClass parent
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:102
_GstNvDsMetaMuxPadClass
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:83
GstNvDsMetaMuxModelSource
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:69
_GstNvDsMetaMuxPadClass::parent
GstAggregatorPadClass parent
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:84
_GstNvDsMetaMux::aggregator
GstAggregator aggregator
Definition:
sources/gst-plugins/gst-nvdsmetamux/gstnvdsmetamux.h:88
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.
Thu Jul 9 2026 11:48:19 | PR-09318-R32