18 #ifndef __NVDSINFERSERVER_POST_PROCESS_BUF_H__
19 #define __NVDSINFERSERVER_POST_PROCESS_BUF_H__
21 #include <condition_variable>
30 #include "infer_datatypes.h"
32 #include "infer_post_datatypes.h"
33 #include "nvdsinfer.h"
34 #include "nvdsinfer_custom_impl.h"
35 #include "nvdsinferserver_config.pb.h"
37 namespace ic = nvdsinferserver::config;
39 struct NvDsInferDBScan;
60 for (
auto& batch : m_Objects)
61 for (
auto&
object : batch)
66 void swapObjects(std::vector<std::vector<NvDsInferObject>>& objs)
70 m_BufPtrs.resize(m_Objects.size());
71 for (
size_t i = 0; i < m_BufPtrs.size(); ++i) {
74 bufPtr.
objects = m_Objects.at(i).data();
80 assert(batchIdx < (uint32_t)m_BufPtrs.size());
81 return (
void*)&m_BufPtrs.at(batchIdx);
85 std::vector<std::vector<NvDsInferObject>> m_Objects;
86 std::vector<NvDsInferDetectionOutput> m_BufPtrs;
98 elementSize :
sizeof(InferClassificationOutput),
103 m_BufPtrs.resize(batchSize);
108 assert(idx < m_BufPtrs.size());
109 return m_BufPtrs[idx];
114 assert(batchIdx < (uint32_t)m_BufPtrs.size());
115 return (
void*)&m_BufPtrs.at(batchIdx);
121 for (uint32_t i = 0; i < m_BufPtrs.size(); ++i) {
123 for (
size_t k = 0; k < data.attributes.size(); ++k) {
124 auto& attrib = data.attributes[k];
125 if (attrib.safeAttributeLabel.empty()) {
126 attrib.safeAttributeLabel =
safeStr(attrib.attributeLabel);
128 attrib.attributeLabel = (
char *) attrib.safeAttributeLabel.c_str();
134 std::vector<InferClassificationOutput> m_BufPtrs;
159 delete[] out.class_map;
165 assert(idx < m_BufPtrs.size());
166 return m_BufPtrs[idx];
171 assert(batchIdx < (uint32_t)m_BufPtrs.size());
172 return (
void*)&m_BufPtrs.at(batchIdx);
176 std::vector<NvDsInferSegmentationOutput> m_BufPtrs;
181 #endif // __NVDSINFERSERVER_POST_PROCESS_BUF_H__