NVIDIA DeepStream SDK API Reference

9.2 Release
9.2/sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2023-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_NVSEG_VISUAL_H__
19 #define __GST_NVSEG_VISUAL_H__
20 
21 #include <gst/base/gstbasetransform.h>
22 #include <gst/video/video.h>
23 
24 #include <cuda.h>
25 #include <cuda_runtime.h>
26 
27 /* Package and library details required for plugin_init */
28 #define PACKAGE "nvsegvisual"
29 #define VERSION "1.0"
30 #define LICENSE "Proprietary"
31 #define DESCRIPTION "NVIDIA segmentation visualization plugin for integration with DeepStream on DGPU"
32 #define BINARY_PACKAGE "NVIDIA DeepStream Segmantation Visualization Plugin"
33 #define URL "http://nvidia.com/"
34 
35 
36 G_BEGIN_DECLS
37 /* Standard boilerplate stuff */
40 
41 /* Standard boilerplate stuff */
42 #define GST_TYPE_NV_SEG_VISUAL (gst_nvseg_visual_get_type())
43 #define GST_NV_SEG_VISUAL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_NV_SEG_VISUAL,GstNvSegVisual))
44 #define GST_NV_SEG_VISUAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_NV_SEG_VISUAL,GstNvSegVisualClass))
45 #define GST_NV_SEG_VISUAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GST_TYPE_NV_SEG_VISUAL, GstNvSegVisualClass))
46 #define GST_IS_NV_SEG_VISUAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_NV_SEG_VISUAL))
47 #define GST_IS_NV_SEG_VISUAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_NV_SEG_VISUAL))
48 #define GST_NV_SEG_VISUAL_CAST(obj) ((GstNvSegVisual *)(obj))
49 
50 struct _GstNvSegVisual
51 {
52  GstBaseTransform base_trans;
53 
54  // Unique ID of the element. The labels generated by the element will be
55  // updated at index `unique_id` of attr_info array in NvDsObjectParams.
56  guint unique_id;
57 
58  // Frame number of the current input buffer
59  guint64 frame_num;
60 
61  // Input video info (resolution, color format, framerate, etc)
62  GstVideoInfo video_info;
63 
64  // Resolution at which frames/objects should be processed
65  gint output_width;
66  gint output_height;
67 
68  // GPU ID on which we expect to execute the task
69  guint gpu_id;
70 
71  // Buffer pool size used for optical flow output
72  guint pool_size;
73 
74  // Segmentation-Meta id for which segmentation is visualize
76 
77  gboolean original_background;
78  guint class_id;
79  float alpha;
80  gboolean flag_alloc_dev_memory;
81  unsigned char* class2BGR_device;
83  gboolean gpu_on;
84 
85  int *class_map_device;
86 
87  gint batch_size;
88  guint num_batch_buffers;
89 
90  gint input_feature;
91  gint output_feature;
92  gint cuda_mem_type;
93  GstVideoFormat input_fmt;
94  GstVideoFormat output_fmt;
95 
96  GstVideoInfo in_info;
97  GstVideoInfo out_info;
98 
99  GstCaps *sinkcaps;
100  GstCaps *srccaps;
101 
102  GstBufferPool *pool;
103 };
104 
105 // Boiler plate stuff
107 {
108  GstBaseTransformClass parent_class;
109 };
110 
111 GType gst_nvseg_visual_get_type (void);
112 
113 G_END_DECLS
114 #endif /* __GST_NVSEG_VISUAL_H__ */
_GstNvSegVisual::alpha
float alpha
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:79
gst_nvseg_visual_get_type
GType gst_nvseg_visual_get_type(void)
_GstNvSegVisual::num_batch_buffers
guint num_batch_buffers
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:88
_GstNvSegVisual::srccaps
GstCaps * srccaps
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:100
_GstNvSegVisual::class2BGR_device
unsigned char * class2BGR_device
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:81
_GstNvSegVisualClass
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:106
_GstNvSegVisual::original_background
gboolean original_background
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:77
cudaStream_t
struct CUstream_st * cudaStream_t
Forward declaration of cudaStream_t.
Definition: includes/nvbufsurftransform.h:40
_GstNvSegVisual::class_map_device
int * class_map_device
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:85
_GstNvSegVisual::input_fmt
GstVideoFormat input_fmt
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:93
GstNvSegVisual
typedefG_BEGIN_DECLS struct _GstNvSegVisual GstNvSegVisual
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:38
_GstNvSegVisual::output_width
gint output_width
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:65
_GstNvSegVisual::sinkcaps
GstCaps * sinkcaps
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:99
_GstNvSegVisual
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:50
_GstNvSegVisual::output_fmt
GstVideoFormat output_fmt
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:94
_GstNvSegVisual::base_trans
GstBaseTransform base_trans
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:52
_GstNvSegVisual::flag_alloc_dev_memory
gboolean flag_alloc_dev_memory
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:80
_GstNvSegVisual::out_info
GstVideoInfo out_info
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:97
_GstNvSegVisual::unique_id
guint unique_id
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:56
_GstNvSegVisual::input_feature
gint input_feature
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:90
_GstNvSegVisual::video_info
GstVideoInfo video_info
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:62
_GstNvSegVisual::class_id
guint class_id
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:78
_GstNvSegVisual::gpu_on
gboolean gpu_on
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:83
_GstNvSegVisual::batch_size
gint batch_size
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:87
_GstNvSegVisualClass::parent_class
GstBaseTransformClass parent_class
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:108
_GstNvSegVisual::operate_on_seg_meta_id
gint operate_on_seg_meta_id
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:75
_GstNvSegVisual::output_feature
gint output_feature
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:91
_GstNvSegVisual::output_height
gint output_height
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:66
_GstNvSegVisual::cuda_mem_type
gint cuda_mem_type
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:92
_GstNvSegVisual::pool_size
guint pool_size
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:72
_GstNvSegVisual::stream
cudaStream_t stream
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:82
_GstNvSegVisual::gpu_id
guint gpu_id
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:69
_GstNvSegVisual::frame_num
guint64 frame_num
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:59
_GstNvSegVisual::pool
GstBufferPool * pool
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:102
_GstNvSegVisual::in_info
GstVideoInfo in_info
Definition: sources/gst-plugins/gst-nvsegvisual/gstnvsegvisual.h:96