NVIDIA DeepStream SDK API Reference

9.0 Release
sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2022 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 #ifndef DS_APP_DEEPSTREAM_CAN_CONTEXT_H
14 #define DS_APP_DEEPSTREAM_CAN_CONTEXT_H
15 
16 #include "gstnvdsmeta.h"
17 
18 #include <sstream>
19 #include <unistd.h>
20 
21 #include <ds3d/common/hpp/profiling.hpp>
22 #include <ds3d/common/func_utils.h>
23 #include <ds3d/common/hpp/yaml_config.hpp>
24 #include <ds3d/common/hpp/profiling.hpp>
25 // inlucde nvds3d Gst header files
26 #include <ds3d/gst/nvds3d_gst_plugin.h>
27 #include <ds3d/gst/nvds3d_gst_ptr.h>
28 #include <ds3d/gst/nvds3d_meta.h>
29 #include <gst/gst.h>
30 
31 #define GST_CAPS_FEATURES_NVMM "memory:NVMM"
32 
33 const uint32_t kNvDsCanResultMeta = (NVDS_GST_CUSTOM_META + 100);
34 
35 using namespace ds3d;
36 
37 enum class NvDsCanContextConfigType : int {
38  kConfigPath = 0,
39  kConfigContent = 1,
40 };
41 
43  void* buf;
44  size_t bufLen;
45  uint32_t fourcc; // GREY, RGBA
46  uint32_t width, height;
47 };
48 
50  float rotation; // normalized result
51 };
52 
53 enum class NvDsCanSrcType : int {
54  kNone = 0,
55  kUri,
56  kFrame,
58 };
59 
61  uint32_t fourcc = 0;
62  uint32_t height = 0;
63  uint32_t width = 0;
64 };
65 
67  std::string devSN; // Basler Camera Device Serial Number
68  std::string pfsPath; // PFS location
69  uint32_t height = 0;
70  uint32_t width = 0;
71  std::string format = "GRAY8";
72 };
73 
76 
77  std::string srcUri;
80  std::string srcFrameRate;
81 
82  uint32_t muxWidth = 1280, muxHeight = 720;
83  int32_t muxBatchTimeout = 40000;
84 
85  std::string templateCustomLibName;
87 
88  std::string inferConfig;
89  uint32_t debugLevel = 0;
90  bool printRes = true;
91  bool enableEglSink = false;
92  bool syncDisplay = true;
93 };
94 
95 #define NVDS_MAKE_FOURCC(c0, c1, c2, c3) \
96  ((uint32_t)(c0) | ((uint32_t)(c1)) << 8 | ((uint32_t)(c2)) << 16 | ((uint32_t)(c3)) << 24)
97 
98 
99 const uint32_t NvDsCanFormatRGBA = NVDS_MAKE_FOURCC('R', 'G', 'B', 'A');
100 const uint32_t NvDsCanFormatGREY = NVDS_MAKE_FOURCC('G', 'R', 'E', 'Y');
101 
102 typedef void (*NvDsCanContextTaskQuitCb)(void* usrData);
103 
104 class DsCanContext;
105 
107 
109  NvDsCanContextConfig* config, const char* str, uint32_t len, NvDsCanContextConfigType type);
111 NvDs_CanContextCreate(DsCanContext** ctx, const NvDsCanContextConfig* config);
113 NvDs_CanContextStart(DsCanContext* ctx, NvDsCanContextTaskQuitCb cb, void* usrData);
115  DsCanContext* ctx, const NvDsCanContextFrame* frame, NvDsCanContextResultMeta* res);
116 DS3D_EXPORT_API bool NvDs_CanContextIsRunning(DsCanContext* ctx);
117 DS3D_EXPORT_API ErrCode NvDs_CanContextStop(DsCanContext* ctx);
119 
121 
122 #endif // DS_APP_DEEPSTREAM_CAN_CONTEXT_H
NvDsCanContextConfig::srcFrameInfo
NvDsCanFrameInfo srcFrameInfo
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:79
NvDs_CanContextStop
DS3D_EXPORT_API ErrCode NvDs_CanContextStop(DsCanContext *ctx)
NvDsCanContextFrame
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:42
DS3D_EXTERN_C_BEGIN
#define DS3D_EXTERN_C_BEGIN
Definition: sources/includes/ds3d/common/defines.h:125
NVDS_MAKE_FOURCC
#define NVDS_MAKE_FOURCC(c0, c1, c2, c3)
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:95
NvDsCanSrcType
NvDsCanSrcType
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:53
NvDsCanContextConfig::cameraInfo
NvDsCanCameraInfo cameraInfo
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:78
NvDsCanContextFrame::bufLen
size_t bufLen
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:44
NvDsCanFrameInfo
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:60
NvDsCanContextFrame::buf
void * buf
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:43
NvDsCanContextTaskQuitCb
void(* NvDsCanContextTaskQuitCb)(void *usrData)
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:102
NvDsCanFormatGREY
const uint32_t NvDsCanFormatGREY
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:100
DS3D_EXPORT_API
#define DS3D_EXPORT_API
Definition: sources/includes/ds3d/common/defines.h:124
NvDsCanContextConfig::inferConfig
std::string inferConfig
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:88
ds3d::ErrCode
ErrCode
Definition: sources/includes/ds3d/common/common.h:43
NvDsCanContextFrame::fourcc
uint32_t fourcc
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:45
NvDsCanContextResultMeta
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:49
NvDs_CanContextDestroy
DS3D_EXPORT_API ErrCode NvDs_CanContextDestroy(DsCanContext *ctx)
NvDsCanContextConfig::srcUri
std::string srcUri
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:77
DS3D_EXTERN_C_END
#define DS3D_EXTERN_C_END
Definition: sources/includes/ds3d/common/defines.h:126
NvDsCanContextFrame::width
uint32_t width
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:46
NvDs_CanContextIsRunning
DS3D_EXPORT_API bool NvDs_CanContextIsRunning(DsCanContext *ctx)
NvDsCanCameraInfo
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:66
NvDsCanContextConfig::templateCustomLibProps
std::string templateCustomLibProps
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:86
NvDsCanContextConfigType
NvDsCanContextConfigType
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:37
NvDsCanSrcType::kNone
@ kNone
kNvDsCanResultMeta
const uint32_t kNvDsCanResultMeta
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:33
NvDsCanContextResultMeta::rotation
float rotation
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:50
NvDs_CanContextCreate
DS3D_EXPORT_API ErrCode NvDs_CanContextCreate(DsCanContext **ctx, const NvDsCanContextConfig *config)
NvDsCanSrcType::kUri
@ kUri
NvDsCanContextConfig::templateCustomLibName
std::string templateCustomLibName
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:85
NVDS_GST_CUSTOM_META
@ NVDS_GST_CUSTOM_META
Specifies the start of a range of enum values that represent types of NVIDIA-defined Gst metas.
Definition: sources/includes/nvdsmeta.h:179
NvDsCanSrcType::kBaslerCamera
@ kBaslerCamera
NvDsCanCameraInfo::pfsPath
std::string pfsPath
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:68
NvDsCanFormatRGBA
const uint32_t NvDsCanFormatRGBA
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:99
NvDsCanSrcType::kFrame
@ kFrame
NvDs_CanContextStart
DS3D_EXPORT_API ErrCode NvDs_CanContextStart(DsCanContext *ctx, NvDsCanContextTaskQuitCb cb, void *usrData)
NvDsCanContextConfigType::kConfigContent
@ kConfigContent
ds3d::State::kNone
@ kNone
NvDsCanContextConfig
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:74
NvDs_CanContextProcessFrame
DS3D_EXPORT_API ErrCode NvDs_CanContextProcessFrame(DsCanContext *ctx, const NvDsCanContextFrame *frame, NvDsCanContextResultMeta *res)
NvDsCanContextConfig::srcFrameRate
std::string srcFrameRate
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:80
NvDsCanCameraInfo::devSN
std::string devSN
Definition: sources/apps/sample_apps/deepstream-can-orientation-app/deepstream_can_context.hpp:67
ds3d
Definition: sources/includes/ds3d/common/abi_dataprocess.h:21
NvDs_CanContextParseConfig
DS3D_EXTERN_C_BEGIN DS3D_EXPORT_API ErrCode NvDs_CanContextParseConfig(NvDsCanContextConfig *config, const char *str, uint32_t len, NvDsCanContextConfigType type)
NvDsCanContextConfigType::kConfigPath
@ kConfigPath
ds3d::v2xinfer::format
static std::string format(const char *fmt,...)
Definition: sources/libs/ds3d/inference_custom_lib/ds3d_v2x_infer_custom_preprocess/tensor.hpp:26