NVIDIA DeepStream SDK API Reference

9.0 Release
9.0/sources/gst-plugins/gst-nvdewarper/gstnvdewarper.h
Go to the documentation of this file.
1 
32 #ifndef __GST_NVDEWARPER_H__
33 #define __GST_NVDEWARPER_H__
34 
35 #include <gst/gst.h>
36 #include <gst/video/gstvideometa.h>
37 #include <gst/video/video.h>
38 #include <gst/base/gstbasetransform.h>
39 
40 #include <cuda.h>
41 #include <npp.h>
42 
43 #include "nv_aisle_csvparser.hpp"
44 #include "nv_spot_csvparser.hpp"
45 #include "gstnvdsmeta.h"
46 #include "nvds_dewarper_meta.h"
47 #include "nvbufsurface.h"
48 #include "nvbufsurftransform.h"
49 
50 using namespace nvaisle_csv;
51 using namespace nvspot_csv;
52 
53 #define DISTORTION_SIZE 5
54 #define FOCAL_LENGTH_SIZE 2
55 #define ROTATION_MATRIX_SIZE 9
57 G_BEGIN_DECLS
58 
63 #define GST_TYPE_NVDEWARPER \
64  (gst_nvdewarper_get_type())
65 #define GST_NVDEWARPER(obj) \
66  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_NVDEWARPER,Gstnvdewarper))
67 #define GST_NVDEWARPER_CLASS(klass) \
68  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_NVDEWARPER,GstnvdewarperClass))
69 #define GST_IS_NVDEWARPER(obj) \
70  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_NVDEWARPER))
71 #define GST_IS_NVDEWARPER_CLASS(klass) \
72  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_NVDEWARPER))
73 
83 typedef struct _NvDewarperParams
84 {
85  guint projection_type;
87  gfloat top_angle;
88  gfloat bottom_angle;
89  gfloat pitch;
90  gfloat roll;
91  gfloat yaw;
92  gfloat dewarpFocalLength[FOCAL_LENGTH_SIZE];
93  char rot_axes[4];
97  gfloat control;
99  guint dewarpWidth;
100  guint dewarpHeight;
101  guint dewarpPitch;
103  guint addressMode;
104  guchar *surface;
105  guint isValid;
108  guint id;
109  guint surface_index;
111  gdouble distortion[DISTORTION_SIZE];
112  gfloat src_x0;
113  gfloat src_y0;
114  gfloat srcFov;
115  gfloat rot_matrix[ROTATION_MATRIX_SIZE];
116  guint rot_matrix_valid;
118  gfloat dstFocalLength[FOCAL_LENGTH_SIZE];
119  gfloat dstPrincipalPoint[2];
121 
123 typedef struct _NvDewarperPriv
124 {
125  std::vector<NvDewarperParams> vecDewarpSurface;
127 
131 struct _Gstnvdewarper
132 {
133  GstBaseTransform element;
135  GstCaps *sinkcaps;
136  GstCaps *srccaps;
138  guint input_width;
139  guint input_height;
140  guint output_width;
141  guint output_height;
143  guint num_batch_buffers;
144  guint gpu_id;
146  gchar* config_file;
147  gchar* spot_calibration_file;
148  gchar* aisle_calibration_file;
150  GstBufferPool *pool;
154  gint input_feature;
157  gint output_feature;
158 
159  NvBufSurfaceMemType cuda_mem_type;
160  NvBufSurfTransform_Inter interpolation_method;
161  GstVideoFormat input_fmt;
162  GstVideoFormat output_fmt;
164  cudaStream_t stream;
166  guint frame_num;
168  guint dump_frames;
169  void *aisle_output;
170  void *spot_output;
171  void *output;
173  gboolean silent;
174  gboolean spot_calibrationfile_set;
175  gboolean aisle_calibrationfile_set;
176  AisleCSVParser *aisleCSVParser;
177  SpotCSVParser *spotCSVParser;
179  guint source_id;
180  guint num_output_buffers;
181  guint aisleCSVInit;
182  guint spotCSVInit;
183  guint num_spot_views;
184  guint num_aisle_views;
185  guint spot_surf_index[MAX_DEWARPED_VIEWS];
186  guint aisle_surf_index[MAX_DEWARPED_VIEWS];
187  guint surface_index[MAX_DEWARPED_VIEWS];
188  guint surface_type[MAX_DEWARPED_VIEWS];
190  GstBuffer * out_gst_buf;
192  NvDewarperPriv *priv;
193 };
194 
196 struct _GstnvdewarperClass
197 {
198  GstBaseTransformClass parent_class;
199 };
200 
201 GType gst_nvdewarper_get_type (void);
202 
203 G_END_DECLS
204 
205 #endif /* __GST_NVDEWARPER_H__ */
cudaStream_t
struct CUstream_st * cudaStream_t
Forward declaration of cudaStream_t.
Definition: sources/includes/nvbufsurftransform.h:35
ROTATION_MATRIX_SIZE
#define ROTATION_MATRIX_SIZE
Standard rotation matrix size.
Definition: 9.0/sources/gst-plugins/gst-nvdewarper/gstnvdewarper.h:55
_NvDewarperPriv
Data structure contaning dewarping parameters for all the output surfaces.
Definition: sources/gst-plugins/gst-nvdewarper/gstnvdewarper.h:123
nvaisle_csv::AisleCSVParser
Class for parsing of Aisle CSV data.
Definition: sources/includes/nv_aisle_csvparser.hpp:90
nvaisle_csv
Definition: sources/includes/nv_aisle_csvparser.hpp:31
MAX_DEWARPED_VIEWS
#define MAX_DEWARPED_VIEWS
Maximum number of dewarped surfaces per frame supported.
Definition: sources/includes/nvds_dewarper_meta.h:44
_NvDewarperParams
Holds all the configuration parameters required for dewarping a surface.
Definition: sources/gst-plugins/gst-nvdewarper/gstnvdewarper.h:83
DISTORTION_SIZE
#define DISTORTION_SIZE
Maximum number of distortion coefficients.
Definition: 9.0/sources/gst-plugins/gst-nvdewarper/gstnvdewarper.h:53
NvBufSurfaceMemType
NvBufSurfaceMemType
Specifies memory types for NvBufSurface.
Definition: sources/includes/nvbufsurface.h:350
nvspot_csv::SpotCSVParser
Class for parsing of Spot CSV data.
Definition: sources/includes/nv_spot_csvparser.hpp:81
gst_nvdewarper_get_type
GType gst_nvdewarper_get_type(void)
NvDewarperPriv
struct _NvDewarperPriv NvDewarperPriv
Data structure contaning dewarping parameters for all the output surfaces.
FOCAL_LENGTH_SIZE
#define FOCAL_LENGTH_SIZE
Focal length array size : two values for X & Y direction.
Definition: 9.0/sources/gst-plugins/gst-nvdewarper/gstnvdewarper.h:54
NvBufSurfTransform_Inter
NvBufSurfTransform_Inter
Specifies video interpolation methods.
Definition: sources/includes/nvbufsurftransform.h:85
nvspot_csv
Definition: sources/includes/nv_spot_csvparser.hpp:30
NvDewarperParams
struct _NvDewarperParams NvDewarperParams
Holds all the configuration parameters required for dewarping a surface.
_Gstnvdewarper
Gstnvdewarper element structure.
Definition: sources/gst-plugins/gst-nvdewarper/gstnvdewarper.h:131
GstBuffer
struct _GstBuffer GstBuffer
Definition: sources/includes/ds3d/common/idatatype.h:19
_GstnvdewarperClass
GStreamer boilerplate.
Definition: sources/gst-plugins/gst-nvdewarper/gstnvdewarper.h:196