NVIDIA DeepStream SDK API Reference

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