NVIDIA DeepStream SDK API Reference

6.4 Release
common.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021-2023 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 // structure DepthScale
78 static constexpr const char* kDepthScaleUnit = DS3D_KEY_NAME("DepthScaleUnit");
79 // structure IntrinsicsParam
80 static constexpr const char* kDepthIntrinsics = DS3D_KEY_NAME("DepthIntrinsics");
81 // structure IntrinsicsParam
82 static constexpr const char* kColorIntrinsics = DS3D_KEY_NAME("ColorIntrinsics");
83 // structure ExtrinsicsParam
84 static constexpr const char* kDepth2ColorExtrinsics = DS3D_KEY_NAME("Depth2ColorExtrinsics");
85 // structure bool
86 static constexpr const char* kColorDepthAligned = DS3D_KEY_NAME("ColorDepthAligned");
87 
88 // get from FrameGuard, N x 3
89 static constexpr const char* kTextureVertexKey = DS3D_KEY_NAME("TextureVertexKey");
90 // get from FrameGuard, N x 2
91 static constexpr const char* kTextureCoordinateKey = DS3D_KEY_NAME("TextureCoordKey");
92 
93 // structure bool
94 static constexpr const char* kEOS = DS3D_KEY_NAME("EndOfStream");
95 // get from FrameGuard
96 static constexpr const char* kPointXYZ = DS3D_KEY_NAME("PointXYZ");
97 // get from FrameGuard
98 static constexpr const char* kPointCoordUV = DS3D_KEY_NAME("PointColorCoord");
99 // get from FrameGuard
100 static constexpr const char* kLidarXYZI = DS3D_KEY_NAME("LidarXYZI");
101 // get from FrameGuard
102 // LidarInferenceParas is deprecated, use kDs3dInferenceParas instead
103 static constexpr const char* kLidarInferenceParas = DS3D_KEY_NAME("LidarInferenceParas");
104 // get from FrameGuard
105 static constexpr const char* kDs3dInferenceParas = DS3D_KEY_NAME("DS3DInferneceParasKey");
106 //get from FrameGuard
107 static constexpr const char* kLidarRefDataMap = DS3D_KEY_NAME("LidarRefDataMap");
109 static constexpr const char* kLidar3DBboxRawData = DS3D_KEY_NAME("Lidar3DBboxRawData");
110 
111 static constexpr const char* kLidarAlignedXYZI = DS3D_KEY_NAME("LidarAlignedXYZIKey");
112 static constexpr const char* kCamIntrinsicParm = DS3D_KEY_NAME("CameraIntrinsicParm");
113 static constexpr const char* kCamIntrinsicMat = DS3D_KEY_NAME("CameraIntrinsicMatrix");
114 static constexpr const char* kLidarToCamExtrinsicMat = DS3D_KEY_NAME("LidarToCameraExtrinsicMatrix");
115 
116 //VideoBridge2dInput for video/x-raw(memory:NVMM)
117 static constexpr const char* kVideoBridge2dData = DS3D_KEY_NAME("VideoBridge2dInput");
118 //GstBuffer for video/x-raw(memory:NVMM)
119 static constexpr const char* kGstBuffer = DS3D_KEY_NAME("GstBuffer");
120 //NvBufSurface for video/x-raw(memory:NVMM)
121 static constexpr const char* kNvBufSurface = DS3D_KEY_NAME("NvBufSurface");
122 //NvDsBatchMeta for video/x-raw(memory:NVMM) buffer gst meta == batch meta
123 static constexpr const char* kNvDsBatchMeta = DS3D_KEY_NAME("NvDsBatchMeta");
124 //first frame, set by source
125 static constexpr const char* kFirstSourceFrame = DS3D_KEY_NAME("FirstSourceFrame");
126 //source id
127 static constexpr const char* kSourceId = DS3D_KEY_NAME("SourceId");
128 
130 static constexpr const char* kObject2DBboxKey = DS3D_KEY_NAME("Object2DBboxKey");
131 
133 static constexpr const char* kFusedDetectionKey = DS3D_KEY_NAME("FusedDetectionKey");
134 
135 // default caps for input and ouptut
136 static constexpr const char* kDefaultDs3dCaps = "ds3d/datamap";
137 
138 class Exception : public std::exception {
139  std::string _msg;
140  ErrCode _code = ErrCode::kGood;
141 
142 public:
143  Exception(ErrCode code, const std::string& s = "") : _msg(s), _code(code) {}
144  ErrCode code() const { return _code; }
145  const char* what() const noexcept override { return _msg.c_str(); }
146 };
147 
148 
149 } // namespace ds3d
150 
151 #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:133
ds3d::kDepthIntrinsics
static constexpr const char * kDepthIntrinsics
Definition: common.h:80
ds3d::ErrCode::kGL
@ kGL
ds3d::kColorIntrinsics
static constexpr const char * kColorIntrinsics
Definition: common.h:82
ds3d::ErrCode::kUnsupported
@ kUnsupported
ds3d::ErrCode::kGst
@ kGst
ds3d::kDepthFrame
static constexpr const char * kDepthFrame
Definition: common.h:76
ds3d::kTextureVertexKey
static constexpr const char * kTextureVertexKey
Definition: common.h:89
ds3d::kLidar3DBboxRawData
static constexpr const char * kLidar3DBboxRawData
get array of Lidar3DBbox from FrameGuard [N, sizeof(Lidar3DBbox)]
Definition: common.h:109
ds3d::Exception
Definition: common.h:138
ds3d::ErrCode::kNullPtr
@ kNullPtr
ds3d::ErrCode::kParam
@ kParam
ds3d::ErrCode::kGood
@ kGood
ds3d::kFirstSourceFrame
static constexpr const char * kFirstSourceFrame
Definition: common.h:125
ds3d::kLidarToCamExtrinsicMat
static constexpr const char * kLidarToCamExtrinsicMat
Definition: common.h:114
ds3d::ErrCode::kOutOfRange
@ kOutOfRange
ds3d::ErrCode::kCuda
@ kCuda
ds3d::kColorDepthAligned
static constexpr const char * kColorDepthAligned
Definition: common.h:86
ds3d::ErrCode::kMem
@ kMem
ds3d::Exception::what
const char * what() const noexcept override
Definition: common.h:145
ds3d::kDs3dInferenceParas
static constexpr const char * kDs3dInferenceParas
Definition: common.h:105
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:84
ds3d::ErrCode
ErrCode
Definition: common.h:43
ds3d::ErrCode::kTimeOut
@ kTimeOut
ds3d::kVideoBridge2dData
static constexpr const char * kVideoBridge2dData
Definition: common.h:117
ds3d::ErrCode::kLockWakeup
@ kLockWakeup
ds3d::kCamIntrinsicParm
static constexpr const char * kCamIntrinsicParm
Definition: common.h:112
ds3d::Exception::code
ErrCode code() const
Definition: common.h:144
ds3d::kLidarAlignedXYZI
static constexpr const char * kLidarAlignedXYZI
Definition: common.h:111
ds3d::kCamIntrinsicMat
static constexpr const char * kCamIntrinsicMat
Definition: common.h:113
ds3d::kTextureCoordinateKey
static constexpr const char * kTextureCoordinateKey
Definition: common.h:91
ds3d::ErrCode::kByPass
@ kByPass
ds3d::kObject2DBboxKey
static constexpr const char * kObject2DBboxKey
get array of Object2DBbox from FrameGuard [N, sizeof(Object2DBbox)]
Definition: common.h:130
ds3d::ErrCode::KEndOfStream
@ KEndOfStream
ds3d::ErrCode::kTypeId
@ kTypeId
ds3d::ErrCode::kConfig
@ kConfig
ds3d::kLidarRefDataMap
static constexpr const char * kLidarRefDataMap
Definition: common.h:107
ds3d::kNvBufSurface
static constexpr const char * kNvBufSurface
Definition: common.h:121
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:119
ds3d::kDepthScaleUnit
static constexpr const char * kDepthScaleUnit
Definition: common.h:78
ds3d::kDefaultDs3dCaps
static constexpr const char * kDefaultDs3dCaps
Definition: common.h:136
ds3d::TIdType
uint64_t TIdType
Definition: common.h:69
ds3d::kSourceId
static constexpr const char * kSourceId
Definition: common.h:127
ds3d::kNvDsBatchMeta
static constexpr const char * kNvDsBatchMeta
Definition: common.h:123
ds3d::kPointCoordUV
static constexpr const char * kPointCoordUV
Definition: common.h:98
ds3d::kLidarXYZI
static constexpr const char * kLidarXYZI
Definition: common.h:100
ds3d::Exception::Exception
Exception(ErrCode code, const std::string &s="")
Definition: common.h:143
ds3d::kPointXYZ
static constexpr const char * kPointXYZ
Definition: common.h:96
ds3d
Definition: lidar_3d_datatype.h:33
ds3d::ErrCode::kState
@ kState
ds3d::kLidarInferenceParas
static constexpr const char * kLidarInferenceParas
Definition: common.h:103
ds3d::kEOS
static constexpr const char * kEOS
Definition: common.h:94
ds3d::ErrCode::kIncompatible
@ kIncompatible