16 #ifndef __NVDSINFERSERVER_SURFACE_BUFS_H__
17 #define __NVDSINFERSERVER_SURFACE_BUFS_H__
20 #include <condition_variable>
64 return m_BufPtrs[batchIdx];
78 uint32_t m_ReservedSize{0};
80 std::vector<void*> m_BufPtrs;
87 std::vector<CUgraphicsResource> m_CudaResources;
88 std::vector<CUeglFrame> m_EglFrames;
99 mutableBufDesc().devId = devId;
102 mutableBufDesc().elementSize = 1;
103 m_BufSurface.gpuId = devId;
104 m_BufSurface.batchSize = maxBatchSize;
105 m_BufSurface.memType = memType;
108 assert(batchIdx < m_BufSurface.numFilled);
109 if (batchIdx >= m_BufSurface.numFilled)
111 return m_BufSurface.surfaceList[batchIdx].dataPtr;
116 m_Params.push_back(params);
117 m_CropRects.push_back(crop);
118 m_ScaleRatios.emplace_back(0, 0);
119 m_Offsets.emplace_back(0, 0);
120 m_BufSurface.surfaceList = &m_Params[0];
121 m_BufSurface.numFilled = (uint32_t)m_Params.size();
122 assert(m_BufSurface.numFilled <= m_BufSurface.batchSize);
123 setBatchSize(m_BufSurface.numFilled);
126 assert(batchIdx < (
int)m_Params.size());
127 return m_Params.at(batchIdx);
130 assert(batchIdx < (
int)m_CropRects.size());
131 return m_CropRects.at(batchIdx);
136 assert(batchIdx < (uint32_t)m_ScaleRatios.size());
137 std::tie(ratioX, ratioY) = m_ScaleRatios.at(batchIdx);
141 assert(batchIdx < (uint32_t)m_ScaleRatios.size());
142 m_ScaleRatios.at(batchIdx) = std::tie(ratioX, ratioY);
146 uint32_t& offsetTop) {
147 assert(batchIdx < (uint32_t)m_Offsets.size());
148 std::tie(offsetLeft, offsetTop) = m_Offsets.at(batchIdx);
151 void setOffsets(uint32_t batchIdx, uint32_t offsetLeft, uint32_t offsetTop) {
152 assert(batchIdx < (uint32_t)m_Offsets.size());
153 m_Offsets.at(batchIdx) = std::tie(offsetLeft, offsetTop);
158 std::vector<NvBufSurfaceParams> m_Params;
159 std::vector<NvBufSurfTransformRect> m_CropRects;
160 std::vector<std::tuple<double, double>> m_ScaleRatios;
161 std::vector<std::tuple<uint32_t, uint32_t>> m_Offsets;