13 #ifndef __NVDSINFERSERVER_POST_PROCESS_BUF_H__
14 #define __NVDSINFERSERVER_POST_PROCESS_BUF_H__
16 #include <condition_variable>
30 #include "nvdsinferserver_config.pb.h"
32 namespace ic = nvdsinferserver::config;
34 struct NvDsInferDBScan;
55 for (
auto& batch : m_Objects)
56 for (
auto&
object : batch)
61 void swapObjects(std::vector<std::vector<NvDsInferObject>>& objs)
65 m_BufPtrs.resize(m_Objects.size());
66 for (
size_t i = 0; i < m_BufPtrs.size(); ++i) {
69 bufPtr.
objects = m_Objects.at(i).data();
75 assert(batchIdx < (uint32_t)m_BufPtrs.size());
76 return (
void*)&m_BufPtrs.at(batchIdx);
80 std::vector<std::vector<NvDsInferObject>> m_Objects;
81 std::vector<NvDsInferDetectionOutput> m_BufPtrs;
93 elementSize :
sizeof(InferClassificationOutput),
98 m_BufPtrs.resize(batchSize);
103 assert(idx < m_BufPtrs.size());
104 return m_BufPtrs[idx];
109 assert(batchIdx < (uint32_t)m_BufPtrs.size());
110 return (
void*)&m_BufPtrs.at(batchIdx);
116 for (uint32_t i = 0; i < m_BufPtrs.size(); ++i) {
118 for (
size_t k = 0; k < data.attributes.size(); ++k) {
119 auto& attrib = data.attributes[k];
120 if (attrib.safeAttributeLabel.empty()) {
121 attrib.safeAttributeLabel =
safeStr(attrib.attributeLabel);
123 attrib.attributeLabel = (
char *) attrib.safeAttributeLabel.c_str();
129 std::vector<InferClassificationOutput> m_BufPtrs;
154 delete[] out.class_map;
160 assert(idx < m_BufPtrs.size());
161 return m_BufPtrs[idx];
166 assert(batchIdx < (uint32_t)m_BufPtrs.size());
167 return (
void*)&m_BufPtrs.at(batchIdx);
171 std::vector<NvDsInferSegmentationOutput> m_BufPtrs;
176 #endif // __NVDSINFERSERVER_POST_PROCESS_BUF_H__