17 #ifndef __NVDSINFERSERVER_SURFACE_BUFS_H__
18 #define __NVDSINFERSERVER_SURFACE_BUFS_H__
21 #include <condition_variable>
65 return m_BufPtrs[batchIdx];
78 return (
char*)m_BufPtrs[batchIdx] - (
char*)m_BufPtrs[0];
95 uint32_t m_ReservedSize{0};
97 std::vector<void*> m_BufPtrs;
104 std::vector<CUgraphicsResource> m_CudaResources;
105 std::vector<CUeglFrame> m_EglFrames;
116 mutableBufDesc().devId = devId;
119 mutableBufDesc().elementSize = 1;
120 m_BufSurface.gpuId = devId;
121 m_BufSurface.batchSize = maxBatchSize;
122 m_BufSurface.memType = memType;
125 assert(batchIdx < m_BufSurface.numFilled);
126 if (batchIdx >= m_BufSurface.numFilled)
128 return m_BufSurface.surfaceList[batchIdx].dataPtr;
137 assert(batchIdx < m_BufSurface.numFilled);
138 if (batchIdx >= m_BufSurface.numFilled)
140 if (m_BufSurface.isContiguous) {
141 return (
char *)m_BufSurface.surfaceList[batchIdx].dataPtr -
142 (
char *)m_BufSurface.surfaceList[0].dataPtr;
150 m_Params.push_back(params);
151 m_CropRects.push_back(crop);
152 m_ScaleRatios.emplace_back(0, 0);
153 m_Offsets.emplace_back(0, 0);
154 m_BufSurface.surfaceList = &m_Params[0];
155 m_BufSurface.numFilled = (uint32_t)m_Params.size();
156 assert(m_BufSurface.numFilled <= m_BufSurface.batchSize);
157 setBatchSize(m_BufSurface.numFilled);
160 assert(batchIdx < (
int)m_Params.size());
161 return m_Params.at(batchIdx);
164 assert(batchIdx < (
int)m_CropRects.size());
165 return m_CropRects.at(batchIdx);
170 assert(batchIdx < (uint32_t)m_ScaleRatios.size());
171 std::tie(ratioX, ratioY) = m_ScaleRatios.at(batchIdx);
175 assert(batchIdx < (uint32_t)m_ScaleRatios.size());
176 m_ScaleRatios.at(batchIdx) = std::tie(ratioX, ratioY);
180 uint32_t& offsetTop) {
181 assert(batchIdx < (uint32_t)m_Offsets.size());
182 std::tie(offsetLeft, offsetTop) = m_Offsets.at(batchIdx);
185 void setOffsets(uint32_t batchIdx, uint32_t offsetLeft, uint32_t offsetTop) {
186 assert(batchIdx < (uint32_t)m_Offsets.size());
187 m_Offsets.at(batchIdx) = std::tie(offsetLeft, offsetTop);
192 std::vector<NvBufSurfaceParams> m_Params;
193 std::vector<NvBufSurfTransformRect> m_CropRects;
194 std::vector<std::tuple<double, double>> m_ScaleRatios;
195 std::vector<std::tuple<uint32_t, uint32_t>> m_Offsets;