NVIDIA DeepStream SDK API Reference

7.0 Release
common.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11  */
12 
13 
14 #ifndef _DS3D_COMMON_COMMON__H
15 #define _DS3D_COMMON_COMMON__H
16 
17 #include <ds3d/common/defines.h>
18 #include <inttypes.h>
19 #include <math.h>
20 #include <stdint.h>
21 #include <string.h>
22 
23 #include <atomic>
24 #include <cassert>
25 #include <condition_variable>
26 #include <fstream>
27 #include <functional>
28 #include <future>
29 #include <iostream>
30 #include <map>
31 #include <memory>
32 #include <mutex>
33 #include <numeric>
34 #include <queue>
35 #include <stdexcept>
36 #include <thread>
37 #include <tuple>
38 #include <type_traits>
39 #include <unordered_map>
40 
41 namespace ds3d {
42 
43 enum class ErrCode : int {
44  kGood = 0,
45  kByPass = 1,
46  KEndOfStream = 2,
47 
48  kLoadLib = -1,
49  kMem = -2,
50  kParam = -3,
51  kNotFound = -4,
52  kTimeOut = -5,
53  kTypeId = -6,
54  kNvDsMeta = -7,
55  kUnsupported = -8,
56  kConfig = -9,
57  kRealSense = -10,
58  kNullPtr = -11,
59  kOutOfRange = -12,
60  kGst = -13,
61  kState = -14,
62  kGL = -15,
63  kLockWakeup = -16,
64  kCuda = -17,
65  kIncompatible = -18,
66  kUnknown = -255,
67 };
68 
69 using TIdType = uint64_t;
70 
71 // structure TimeStamp
72 static constexpr const char* kTimeStamp = DS3D_KEY_NAME("Timestamp");
73 // get from Frame2DGuard
74 static constexpr const char* kColorFrame = DS3D_KEY_NAME("ColorFrame");
75 // get from Frame2DGuard
76 static constexpr const char* kDepthFrame = DS3D_KEY_NAME("DepthFrame");
77 // nvdspreprocess output tensor
78 static constexpr const char* kVideoPreProcTensor = DS3D_KEY_NAME("VideoPreprocessTensor");
79 // structure DepthScale
80 static constexpr const char* kDepthScaleUnit = DS3D_KEY_NAME("DepthScaleUnit");
81 // structure IntrinsicsParam
82 static constexpr const char* kDepthIntrinsics = DS3D_KEY_NAME("DepthIntrinsics");
83 // structure IntrinsicsParam
84 static constexpr const char* kColorIntrinsics = DS3D_KEY_NAME("ColorIntrinsics");
85 // structure ExtrinsicsParam
86 static constexpr const char* kDepth2ColorExtrinsics = DS3D_KEY_NAME("Depth2ColorExtrinsics");
87 // structure bool
88 static constexpr const char* kColorDepthAligned = DS3D_KEY_NAME("ColorDepthAligned");
89 
90 // get from FrameGuard, N x 3
91 static constexpr const char* kTextureVertexKey = DS3D_KEY_NAME("TextureVertexKey");
92 // get from FrameGuard, N x 2
93 static constexpr const char* kTextureCoordinateKey = DS3D_KEY_NAME("TextureCoordKey");
94 
95 // structure bool
96 static constexpr const char* kEOS = DS3D_KEY_NAME("EndOfStream");
97 // get from FrameGuard
98 static constexpr const char* kPointXYZ = DS3D_KEY_NAME("PointXYZ");
99 // get from FrameGuard
100 static constexpr const char* kPointCoordUV = DS3D_KEY_NAME("PointColorCoord");
101 // get from FrameGuard
102 static constexpr const char* kLidarXYZI = DS3D_KEY_NAME("LidarXYZI");
103 // lidar preprocess output tenor
104 static constexpr const char* kLidarFeatureTensor = DS3D_KEY_NAME("LidarFeatureTensor");
105 static constexpr const char* kLidarCoordTensor = DS3D_KEY_NAME("LidarCoordTensor");
106 static constexpr const char* kLidarPointNumTensor = DS3D_KEY_NAME("LidarPointNumTensor");
107 // get from FrameGuard
108 // LidarInferenceParas is deprecated, use kDs3dInferenceParas instead
109 static constexpr const char* kLidarInferenceParas = DS3D_KEY_NAME("LidarInferenceParas");
110 // get from FrameGuard
111 static constexpr const char* kDs3dInferenceParas = DS3D_KEY_NAME("DS3DInferneceParasKey");
112 //get from FrameGuard
113 static constexpr const char* kLidarRefDataMap = DS3D_KEY_NAME("LidarRefDataMap");
115 static constexpr const char* kLidar3DBboxRawData = DS3D_KEY_NAME("Lidar3DBboxRawData");
116 
117 static constexpr const char* kLidarAlignedXYZI = DS3D_KEY_NAME("LidarAlignedXYZIKey");
118 static constexpr const char* kCamIntrinsicParm = DS3D_KEY_NAME("CameraIntrinsicParm");
119 static constexpr const char* kCamIntrinsicMat = DS3D_KEY_NAME("CameraIntrinsicMatrix");
120 static constexpr const char* kLidarToCamExtrinsicMat = DS3D_KEY_NAME("LidarToCameraExtrinsicMatrix");
121 
122 //VideoBridge2dInput for video/x-raw(memory:NVMM)
123 static constexpr const char* kVideoBridge2dData = DS3D_KEY_NAME("VideoBridge2dInput");
124 //GstBuffer for video/x-raw(memory:NVMM)
125 static constexpr const char* kGstBuffer = DS3D_KEY_NAME("GstBuffer");
126 //NvBufSurface for video/x-raw(memory:NVMM)
127 static constexpr const char* kNvBufSurface = DS3D_KEY_NAME("NvBufSurface");
128 //NvDsBatchMeta for video/x-raw(memory:NVMM) buffer gst meta == batch meta
129 static constexpr const char* kNvDsBatchMeta = DS3D_KEY_NAME("NvDsBatchMeta");
130 //first frame, set by source
131 static constexpr const char* kFirstSourceFrame = DS3D_KEY_NAME("FirstSourceFrame");
132 //source id
133 static constexpr const char* kSourceId = DS3D_KEY_NAME("SourceId");
134 
136 static constexpr const char* kObject2DBboxKey = DS3D_KEY_NAME("Object2DBboxKey");
137 
139 static constexpr const char* kFusedDetectionKey = DS3D_KEY_NAME("FusedDetectionKey");
140 
141 // default caps for input and ouptut
142 static constexpr const char* kDefaultDs3dCaps = "ds3d/datamap";
143 
144 class Exception : public std::exception {
145  std::string _msg;
146  ErrCode _code = ErrCode::kGood;
147 
148 public:
149  Exception(ErrCode code, const std::string& s = "") : _msg(s), _code(code) {}
150  ErrCode code() const { return _code; }
151  const char* what() const noexcept override { return _msg.c_str(); }
152 };
153 
154 
155 } // namespace ds3d
156 
157 #endif // _DS3D_COMMON_COMMON__H
ds3d::ErrCode::kNvDsMeta
@ kNvDsMeta
ds3d::ErrCode::kNotFound
@ kNotFound
ds3d::kFusedDetectionKey
static constexpr const char * kFusedDetectionKey
get array of FusedDetection from FrameGuard [N, sizeof(FusedDetection)]
Definition: common.h:139
ds3d::kDepthIntrinsics
static constexpr const char * kDepthIntrinsics
Definition: common.h:82
ds3d::ErrCode::kGL
@ kGL
ds3d::kColorIntrinsics
static constexpr const char * kColorIntrinsics
Definition: common.h:84
ds3d::ErrCode::kUnsupported
@ kUnsupported
ds3d::ErrCode::kGst
@ kGst
ds3d::kDepthFrame
static constexpr const char * kDepthFrame
Definition: common.h:76
ds3d::kVideoPreProcTensor
static constexpr const char * kVideoPreProcTensor
Definition: common.h:78
ds3d::kTextureVertexKey
static constexpr const char * kTextureVertexKey
Definition: common.h:91
ds3d::kLidar3DBboxRawData
static constexpr const char * kLidar3DBboxRawData
get array of Lidar3DBbox from FrameGuard [N, sizeof(Lidar3DBbox)]
Definition: common.h:115
ds3d::Exception
Definition: common.h:144
ds3d::ErrCode::kNullPtr
@ kNullPtr
ds3d::ErrCode::kParam
@ kParam
ds3d::ErrCode::kGood
@ kGood
ds3d::kFirstSourceFrame
static constexpr const char * kFirstSourceFrame
Definition: common.h:131
ds3d::kLidarToCamExtrinsicMat
static constexpr const char * kLidarToCamExtrinsicMat
Definition: common.h:120
ds3d::ErrCode::kOutOfRange
@ kOutOfRange
ds3d::ErrCode::kCuda
@ kCuda
ds3d::kColorDepthAligned
static constexpr const char * kColorDepthAligned
Definition: common.h:88
ds3d::ErrCode::kMem
@ kMem
ds3d::Exception::what
const char * what() const noexcept override
Definition: common.h:151
ds3d::kDs3dInferenceParas
static constexpr const char * kDs3dInferenceParas
Definition: common.h:111
ds3d::kLidarFeatureTensor
static constexpr const char * kLidarFeatureTensor
Definition: common.h:104
ds3d::ErrCode::kRealSense
@ kRealSense
ds3d::kColorFrame
static constexpr const char * kColorFrame
Definition: common.h:74
ds3d::ErrCode::kLoadLib
@ kLoadLib
defines.h
ds3d::kDepth2ColorExtrinsics
static constexpr const char * kDepth2ColorExtrinsics
Definition: common.h:86
ds3d::ErrCode
ErrCode
Definition: common.h:43
ds3d::ErrCode::kTimeOut
@ kTimeOut
ds3d::kVideoBridge2dData
static constexpr const char * kVideoBridge2dData
Definition: common.h:123
ds3d::ErrCode::kLockWakeup
@ kLockWakeup
ds3d::kCamIntrinsicParm
static constexpr const char * kCamIntrinsicParm
Definition: common.h:118
ds3d::Exception::code
ErrCode code() const
Definition: common.h:150
ds3d::kLidarAlignedXYZI
static constexpr const char * kLidarAlignedXYZI
Definition: common.h:117
ds3d::kCamIntrinsicMat
static constexpr const char * kCamIntrinsicMat
Definition: common.h:119
ds3d::kLidarPointNumTensor
static constexpr const char * kLidarPointNumTensor
Definition: common.h:106
ds3d::kTextureCoordinateKey
static constexpr const char * kTextureCoordinateKey
Definition: common.h:93
ds3d::ErrCode::kByPass
@ kByPass
ds3d::kObject2DBboxKey
static constexpr const char * kObject2DBboxKey
get array of Object2DBbox from FrameGuard [N, sizeof(Object2DBbox)]
Definition: common.h:136
ds3d::ErrCode::KEndOfStream
@ KEndOfStream
ds3d::ErrCode::kTypeId
@ kTypeId
ds3d::ErrCode::kConfig
@ kConfig
ds3d::kLidarRefDataMap
static constexpr const char * kLidarRefDataMap
Definition: common.h:113
ds3d::kNvBufSurface
static constexpr const char * kNvBufSurface
Definition: common.h:127
DS3D_KEY_NAME
#define DS3D_KEY_NAME(name)
Definition: defines.h:129
ds3d::ErrCode::kUnknown
@ kUnknown
ds3d::kTimeStamp
static constexpr const char * kTimeStamp
Definition: common.h:72
ds3d::kGstBuffer
static constexpr const char * kGstBuffer
Definition: common.h:125
ds3d::kDepthScaleUnit
static constexpr const char * kDepthScaleUnit
Definition: common.h:80
ds3d::kDefaultDs3dCaps
static constexpr const char * kDefaultDs3dCaps
Definition: common.h:142
ds3d::TIdType
uint64_t TIdType
Definition: common.h:69
ds3d::kLidarCoordTensor
static constexpr const char * kLidarCoordTensor
Definition: common.h:105
ds3d::kSourceId
static constexpr const char * kSourceId
Definition: common.h:133
ds3d::kNvDsBatchMeta
static constexpr const char * kNvDsBatchMeta
Definition: common.h:129
ds3d::kPointCoordUV
static constexpr const char * kPointCoordUV
Definition: common.h:100
ds3d::kLidarXYZI
static constexpr const char * kLidarXYZI
Definition: common.h:102
ds3d::Exception::Exception
Exception(ErrCode code, const std::string &s="")
Definition: common.h:149
ds3d::kPointXYZ
static constexpr const char * kPointXYZ
Definition: common.h:98
ds3d
Definition: lidar_3d_datatype.h:35
ds3d::ErrCode::kState
@ kState
ds3d::kLidarInferenceParas
static constexpr const char * kLidarInferenceParas
Definition: common.h:109
ds3d::kEOS
static constexpr const char * kEOS
Definition: common.h:96
ds3d::ErrCode::kIncompatible
@ kIncompatible