NVIDIA DeepStream SDK API Reference

9.2 Release
9.2/sources/gst-plugins/gst-nvtiler/gstnvtiler.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2019-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_NVMULTISTREAMTILER_H__
19 #define __GST_NVMULTISTREAMTILER_H__
20 
21 #include <gst/gst.h>
22 #include <gst/base/base.h>
23 #include <gst/video/video.h>
24 
25 #include "cuda_runtime_api.h"
26 #include "gstnvdsmeta.h"
27 #include "INvTiler.h"
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 G_BEGIN_DECLS
34 #define GST_TYPE_NVMULTISTREAMTILER \
35  (gst_nvmultistreamtiler_get_type ())
36 #define GST_NVMULTISTREAMTILER(obj) \
37  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_NVMULTISTREAMTILER,GstNvMultiStreamTiler))
38 #define GST_NVMULTISTREAMTILER_CLASS(klass) \
39  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_NVMULTISTREAMTILER,GstNvMultiStreamTilerClass))
40 #define GST_IS_NVMULTISTREAMTILER(obj) \
41  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_NVMULTISTREAMTILER))
42 #define GST_IS_NVMULTISTREAMTILER_CLASS(klass) \
43  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_NVMULTISTREAMTILER))
44 
47 
48 #if 0
49 typedef struct _BBoxHolder
50 {
51  int size; /* Total bboxes */
52  int size_line; /* Total lines */
53  NvDsFrameMeta *bboxes[100];
54  NvDsLineMeta *num_line_meta[100];
55 }BBoxHolder;
56 #endif
57 
59 {
60  GstBaseTransform basetrans;
61 
62  gint show_source;
63  gint cuda_mem_type;
64  gint compute_hw;
66 
67  GstVideoInfo outvideoinfo;
68  GstVideoInfo invideoinfo;
69  guint gpu_id;
70 
71  GMutex tilerIfaceLock;
72 
74  guint buffer_pool_size;
75 
76  gboolean square_grid;
77  std::map<uint32_t, uint32_t> *tiler_map;
78  GMutex tiler_map_lock;
79 #if 0
80  guint width_per_instance[3];
81  guint height_per_instance[3];
82 
83  gdouble scale_x;
84  gdouble scale_y;
85 
86  guint in_offsets[3];
87  guint out_offsets[3];
88 
89  guint *out_inst_offsets[3];
90 
91  guint in_width[3];
92  guint out_width[3];
93 
94  guint in_height[3];
95  guint out_height[3];
96 
97  guint in_pstride[3];
98  guint out_pstride[3];
99 
100  guint in_pitch;
101  guint out_pitch;
102  guint batchSize;
103 
104  gboolean *got_last_frame;
105  gint *stream_last_batch_id_map;
106  BBoxHolder *last_bboxes;
107  FrameMeta_Params *last_frame_meta;
108  void *last_frame;
109 
110  void *last_frame_ss;
111  BBoxHolder last_bboxes_ss;
112  gboolean copied_last_frame_ss;
113 
114  guint frame_num;
115 #endif
116  guint frame_num;
117  guint cur_sources;
122 };
123 
125 {
126  GstBaseTransformClass parent_class;
127 };
128 
130 
131 gboolean allocate_tiler_memory (GstNvMultiStreamTiler *nvmultistreamtiler,
132  guint rows, guint columns);
133 
134 #ifdef ENABLE_GST_NVTILER_UNIT_TESTS
135 gboolean gGstNvTilerStaticInit();
136 #endif
137 
138 G_END_DECLS
139 
140 #ifdef __cplusplus
141 }
142 #endif
143 
144 #endif
INvTiler
@dev-note: Tiler Composition Steps: 1) Extract GstNvStreamMeta from the input muxed buffer 2) loop fo...
Definition: sources/gst-plugins/gst-nvtiler/INvTiler.h:49
gst_nvmultistreamtiler_get_type
GType gst_nvmultistreamtiler_get_type(void)
NvBufSurface
Holds information about batched buffers.
Definition: includes/nvbufsurface.h:602
_GstNvMultiStreamTiler::basetrans
GstBaseTransform basetrans
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:60
_GstNvMultiStreamTiler::frame_num
guint frame_num
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:116
_GstNvMultiStreamTiler::buffer_pool_size
guint buffer_pool_size
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:74
_GstNvMultiStreamTiler::outvideoinfo
GstVideoInfo outvideoinfo
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:67
_GstNvMultiStreamTiler::cuda_mem_type
gint cuda_mem_type
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:63
_GstNvMultiStreamTiler::tilerScratchBufferGst
GstBuffer * tilerScratchBufferGst
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:120
_GstNvMultiStreamTiler::interpolation_method
gint interpolation_method
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:65
_GstNvMultiStreamTiler::compute_hw
gint compute_hw
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:64
_GstNvMultiStreamTiler::tiler_map
std::map< uint32_t, uint32_t > * tiler_map
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:77
_GstNvMultiStreamTiler::show_source
gint show_source
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:62
_GstNvMultiStreamTiler::tilerConfig
TilerConfig tilerConfig
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:118
GstBuffer
struct _GstBuffer GstBuffer
Definition: includes/ds3d/common/idatatype.h:24
INvTiler.h
TilerConfig
Holds the Tiler Canvas Configuration Note: The user cannot directly set this on nvmultistreamtiler Us...
Definition: includes/nvdstilerconfig.h:83
_GstNvMultiStreamTiler::tilerScratchBuffer
NvBufSurface * tilerScratchBuffer
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:121
_GstNvMultiStreamTiler::gpu_id
guint gpu_id
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:69
pydeepstreamdoc::tensor::TensorDoc::size
constexpr const char * size
Definition: service-maker/sources/python/src/bindings/docstrings/tensordoc.h:46
_GstNvMultiStreamTiler::tilerIface
INvTiler * tilerIface
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:119
_GstNvMultiStreamTiler::num_surfaces_per_frame
guint num_surfaces_per_frame
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:73
_GstNvMultiStreamTiler::square_grid
gboolean square_grid
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:76
_GstNvMultiStreamTiler::tiler_map_lock
GMutex tiler_map_lock
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:78
allocate_tiler_memory
gboolean allocate_tiler_memory(GstNvMultiStreamTiler *nvmultistreamtiler, guint rows, guint columns)
_GstNvMultiStreamTiler::tilerIfaceLock
GMutex tilerIfaceLock
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:71
_NvDsFrameMeta
Holds metadata for a frame in a batch.
Definition: includes/nvdsmeta.h:308
_GstNvMultiStreamTilerClass
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:124
_GstNvMultiStreamTilerClass::parent_class
GstBaseTransformClass parent_class
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:126
_GstNvMultiStreamTiler::cur_sources
guint cur_sources
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:117
_GstNvMultiStreamTiler
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:58
_GstNvMultiStreamTiler::invideoinfo
GstVideoInfo invideoinfo
Definition: sources/gst-plugins/gst-nvtiler/gstnvtiler.h:68