NVIDIA DeepStream SDK API Reference

6.4 Release
nvtracker_proc.h
Go to the documentation of this file.
1 
12 #ifndef _NVTRACKERPROC_H
13 #define _NVTRACKERPROC_H
14 
15 #include <queue>
16 #include <map>
17 #include <mutex>
18 #include <condition_variable>
19 #include <thread>
20 #include <atomic>
21 
22 #include "nvdsmeta.h"
23 #include "invtracker_proc.h"
24 #include "convbufmanager.h"
25 #include "miscdatabufmanager.h"
26 #include "nvdstracker.h"
27 
30 {
31 public:
32  NvTrackerProc();
33  virtual ~NvTrackerProc();
34 
35  virtual bool init(const TrackerConfig& config);
36  virtual void deInit();
37 
39  virtual bool addSource(uint32_t sourceId);
41  virtual bool removeSource(uint32_t sourceId, bool removeObjectIdMapping=true);
43  virtual bool resetSource(uint32_t sourceId);
45  virtual bool submitInput(const InputParams& inputParams);
47  virtual CompletionStatus waitForCompletion(InputParams& inputParams);
49  virtual bool flushReqs();
50 
51 protected:
53  struct ClassInfo
54  {
57  std::string displayTextString;
58  std::string objLabel;
60  };
61 
63  std::map<int, ClassInfo> m_ClassInfoMap;
64 
66  typedef uint32_t BatchId;
67 
71  typedef uint64_t SurfaceStreamId;
73  typedef uint32_t StreamId;
75  typedef uint32_t SurfaceId;
77  typedef uint32_t SubBatchId;
81  bool m_Running = false;
83  std::atomic<bool> m_TrackerLibError;
84 
87 
90 
92  struct ProcParams
93  {
95  bool useConvBuf;
99  };
100 
102  std::queue<ProcParams> m_ProcQueue;
103  std::mutex m_ProcQueueLock;
104  std::condition_variable m_ProcQueueCond;
105  std::condition_variable m_BufQueueCond;
106 
108  std::map< BatchId, std::vector<SubBatchId> > m_PendingBatch;
110  std::mutex m_PendingBatchLock;
111 
113  std::map< BatchId, bool > m_ConvBufComplete;
114  std::mutex m_ConvBufLock;
115 
118  std::thread m_ProcessBatchThread;
119 
121  struct DispatchReq
122  {
125  std::map<SurfaceStreamId, NvDsFrameMeta *> subBatchFrameMap;
126  /* Tracker data for processing */
133  };
134 
137  {
139  std::thread sbThread;
140  bool running;
141  std::queue<DispatchReq> reqQueue;
142  std::mutex reqQueueLock;
143  std::condition_variable reqQueueCond;
144 
145  // FIXME: operator= needed but not used in meaningful way
147  {
148  return *this;
149  }
150  };
151 
153  std::map<SubBatchId, DispatchInfo> m_DispatchMap;
154  std::mutex m_DispatchMapLock;
156  std::map<SurfaceStreamId, SubBatchId> m_SsidSubBatchMap;
158  std::map<uint32_t, uint32_t> m_PadIndexSeqIndexMap;
162  void processSubBatch(DispatchInfo *pDispatchInfo);
165  bool dispatchSubBatches(ProcParams procParams);
166 
168  std::queue<InputParams> m_CompletionQueue;
170  std::condition_variable m_CompletionQueueCond;
171 
173  std::map<SurfaceStreamId, guint64> m_ObjectIdOffsetMap;
174 
177 
181  NvMOTContextHandle initTrackerContext(uint32_t sbId = 0);
183  bool initConvBufPool();
185  void deInitConvBufPool();
187  bool initMiscDataPool();
189  void deInitMiscDataPool();
191  bool initTrackerLib();
193  void deInitTrackerLib();
196  NvMOTTrackedObjBatch &procResult);
198  NvMOTTrackedObjBatch &procResult, uint32_t batchSize);
201  NvMOTTrackedObjBatch &procResult);
203  NvMOTTrackedObjBatch &procResult, uint32_t batchSize);
204 
205  void allocateConvexHullMemory(NvMOTTrackedObj *list, const uint32_t numAllocated);
206  void releaseConvexHullMemory(NvMOTTrackedObj *list, const uint32_t numAllocated);
207 
212  void queueFrames(const NvDsBatchMeta& batchMeta,
213  std::vector<std::map<SurfaceStreamId, NvDsFrameMeta *>>& batchList);
215  void fillMOTFrame(SurfaceStreamId ssId,
216  const ProcParams& procParams,
217  const NvDsFrameMeta& frameMeta,
218  NvMOTFrame& motFrame,
219  NvMOTTrackedObjList& trackedObjList);
221  void updateBatchMeta(const NvMOTTrackedObjBatch& procResult,
222  const ProcParams& procParams,
223  std::map<SurfaceStreamId, NvDsFrameMeta *>& frameMap);
225  void updateFrameMeta(NvDsFrameMeta* pFrameMeta,
226  const NvMOTTrackedObjList& objList,
227  const ProcParams& procParams);
229  void updatePastFrameMeta(
230  const std::vector<std::map<SurfaceStreamId, NvDsFrameMeta *>>& batchList,
232  ProcParams& procParams);
234  void updateUserMeta(
235  const std::vector<std::map<SurfaceStreamId, NvDsFrameMeta *>>& batchList,
236  ProcParams& procParams, NvTrackerMiscDataBuffer *pMiscDataBuf);
237  void updateUserMeta(
238  const std::vector<std::map<SurfaceStreamId, NvDsFrameMeta *>> &batchList,
239  ProcParams &procParams, NvTrackerMiscDataBuffer *pMiscDataBuf, TrackerMiscDataManager &miscDataMgr);
241  void updateObjectReidMeta(NvDsObjectMeta *pObjectMeta, NvMOTTrackedObj *pTrackedObj,
242  NvDsBatchMeta *pBatchMeta);
245  ProcParams& procParams);
247  void updateObjectProjectionMeta(NvDsObjectMeta *pObjectMeta, NvMOTTrackedObj *pTrackedObj,
248  NvDsBatchMeta *pBatchMeta, float scaleWidth, float scaleHeight);
249 
251  ProcParams& procParams);
252 
254  ProcParams& procParams);
255 
259  void processBatch();
260 
263  { return ( ((uint64_t)streamId << 32) | surfaceId ); };
264  StreamId getStreamId(SurfaceStreamId ssId) { return (StreamId)( ssId >> 32 ); };
265  SurfaceId getSurfaceId(SurfaceStreamId ssId) { return (SurfaceId)(ssId); };
266 
268  guint64 objectIdMapping(const guint64& objectId, const SurfaceStreamId& ssId);
270  void removeUntrackedObjects(NvDsFrameMeta* pFrameMeta);
276  bool clipBBox(uint32_t frameWidth, uint32_t frameHeight, float &left, float &top, float &width, float &height);
280  NvMOTContextHandle *pContextHandle,
281  NvMOTConfigResponse *pConfigResponse);
283  void (*m_TrackerLibDeInit) (NvMOTContextHandle contextHandle);
286  NvMOTProcessParams *pParams,
287  NvMOTTrackedObjBatch *pTrackedObjectsBatch);
290  NvMOTProcessParams *pParams,
291  NvMOTTrackerMiscData *pTrackerMiscData);
293  NvMOTStatus (*m_TrackerLibQuery) (uint16_t customConfigFilePathSize,
294  char* pCustomConfigFilePath,
295  NvMOTQuery *pQuery);
298  NvMOTStreamId streamIdMask);
300 };
301 
302 #endif
NvTrackerProc::~NvTrackerProc
virtual ~NvTrackerProc()
NvTrackerProc::m_ObjectIdOffsetMap
std::map< SurfaceStreamId, guint64 > m_ObjectIdOffsetMap
Object id mapping: {surface stream ID: object id offset}.
Definition: nvtracker_proc.h:173
NvTrackerProc::objectIdMapping
guint64 objectIdMapping(const guint64 &objectId, const SurfaceStreamId &ssId)
Object ID mapper to ensure ID starts from 0 after reset.
NvTrackerProc::m_DispatchMapLock
std::mutex m_DispatchMapLock
Definition: nvtracker_proc.h:154
InputParams
Copyright (c) 2019-2023, NVIDIA CORPORATION.
Definition: invtracker_proc.h:20
NvTrackerProc::ProcParams::pConvBuf
NvBufSurface * pConvBuf
Definition: nvtracker_proc.h:96
ConvBufManager
Definition: convbufmanager.h:28
_NvOSD_RectParams
Holds the box parameters of the box to be overlayed.
Definition: nvll_osd_struct.h:139
NvTrackerProc::updatePastFrameMeta
void updatePastFrameMeta(const std::vector< std::map< SurfaceStreamId, NvDsFrameMeta * >> &batchList, GstNvTrackerMiscDataObject *pGstObj, ProcParams &procParams)
Update past frame data.
NvTrackerProc::ClassInfo::displayTextString
std::string displayTextString
Definition: nvtracker_proc.h:57
NvTrackerProc::m_Config
TrackerConfig m_Config
Tracker processing config.
Definition: nvtracker_proc.h:79
NvTrackerProc::DispatchInfo
Info corresponding to each sub-batch thread.
Definition: nvtracker_proc.h:136
NvTrackerProc::m_ConvBufComplete
std::map< BatchId, bool > m_ConvBufComplete
Stores status of pending batches for buffer conversion.
Definition: nvtracker_proc.h:113
NvTrackerProc::updateBatchReidMeta
void updateBatchReidMeta(GstNvTrackerMiscDataObject *pGstObj, ProcParams &procParams)
Update batch reid meta.
NvTrackerProc::DispatchReq::procParams
ProcParams procParams
Definition: nvtracker_proc.h:127
NvTrackerProc::allocateProcessMemory
void allocateProcessMemory(NvMOTProcessParams &procInput, NvMOTTrackedObjBatch &procResult)
Allocate memory for low level library input.
convbufmanager.h
NvTrackerProc::m_TrackerLibRetrieveMiscData
NvMOTStatus(* m_TrackerLibRetrieveMiscData)(NvMOTContextHandle contextHandle, NvMOTProcessParams *pParams, NvMOTTrackerMiscData *pTrackerMiscData)
Low level lib process past frame.
Definition: nvtracker_proc.h:289
NvTrackerProc::m_DispatchMap
std::map< SubBatchId, DispatchInfo > m_DispatchMap
Mapping fron sub-batch id to corresponding thread info.
Definition: nvtracker_proc.h:153
NvBufSurfTransformSyncObj_t
struct NvBufSurfTransformSyncObj * NvBufSurfTransformSyncObj_t
Holds the information about synchronization objects for asynchronous transform/composite APIs.
Definition: nvbufsurftransform.h:282
NvTrackerProc::init
virtual bool init(const TrackerConfig &config)
NvTrackerProc::getStreamId
StreamId getStreamId(SurfaceStreamId ssId)
Definition: nvtracker_proc.h:264
NvTrackerProc::processBatch
void processBatch()
Function to pop batch from input queue, call low level lib to process and update meta data with track...
NvTrackerProc::queueFrames
void queueFrames(const NvDsBatchMeta &batchMeta, std::vector< std::map< SurfaceStreamId, NvDsFrameMeta * >> &batchList)
Functions to process a batch.
NvTrackerProc::releaseProcessMemory
void releaseProcessMemory(NvMOTProcessParams &procInput, NvMOTTrackedObjBatch &procResult)
Release input memory.
NvTrackerProc::m_PendingBatchLock
std::mutex m_PendingBatchLock
Definition: nvtracker_proc.h:110
NvBufSurface
Holds information about batched buffers.
Definition: nvbufsurface.h:503
NvTrackerProc::ClassInfo::uniqueComponentId
uint uniqueComponentId
Definition: nvtracker_proc.h:59
NvTrackerProc::SubBatchId
uint32_t SubBatchId
Sub batch ID.
Definition: nvtracker_proc.h:77
NvTrackerProc::m_TrackerLibInit
NvMOTStatus(* m_TrackerLibInit)(NvMOTConfig *pConfigIn, NvMOTContextHandle *pContextHandle, NvMOTConfigResponse *pConfigResponse)
Tracker low level library functions.
Definition: nvtracker_proc.h:279
NvTrackerProc::m_CompletionQueueCond
std::condition_variable m_CompletionQueueCond
Definition: nvtracker_proc.h:170
NvTrackerProc::updateBatchMeta
void updateBatchMeta(const NvMOTTrackedObjBatch &procResult, const ProcParams &procParams, std::map< SurfaceStreamId, NvDsFrameMeta * > &frameMap)
Update batch meta with tracking results.
NvTrackerProc::ProcParams::input
InputParams input
Definition: nvtracker_proc.h:94
NvTrackerProc::ProcParams::bufSetSyncObjs
NvBufSurfTransformSyncObj_t bufSetSyncObjs
Definition: nvtracker_proc.h:98
_NvMOTTrackedObjBatch
Holds a batch of lists of tracked objects.
Definition: nvdstracker.h:334
NvTrackerProc::deInitTrackerLib
void deInitTrackerLib()
Deinitialize low-level tracker lib.
TrackerMiscDataManager
Tracker misc data memory pool.
Definition: miscdatabufmanager.h:41
NvTrackerProc::m_PendingBatch
std::map< BatchId, std::vector< SubBatchId > > m_PendingBatch
Stores batches not finishing tracker proceeding.
Definition: nvtracker_proc.h:108
NvTrackerProc::releaseConvexHullMemory
void releaseConvexHullMemory(NvMOTTrackedObj *list, const uint32_t numAllocated)
NvTrackerProc::DispatchInfo::sbThread
std::thread sbThread
Definition: nvtracker_proc.h:139
NvTrackerProc::getSurfaceStreamId
SurfaceStreamId getSurfaceStreamId(StreamId streamId, SurfaceId surfaceId)
Getter.
Definition: nvtracker_proc.h:262
NvTrackerProc::dispatchSubBatches
bool dispatchSubBatches(ProcParams procParams)
Function to create sub-batches from a batch and submit to corresponding sub-batch queues.
NvTrackerProc::m_TrackerLibDeInit
void(* m_TrackerLibDeInit)(NvMOTContextHandle contextHandle)
Low level lib deinit.
Definition: nvtracker_proc.h:283
NvTrackerProc::ClassInfo::rectParams
NvOSD_RectParams rectParams
Definition: nvtracker_proc.h:55
NvTrackerProc::m_ConvBufLock
std::mutex m_ConvBufLock
Definition: nvtracker_proc.h:114
NvTrackerProc::m_MiscDataMgr
TrackerMiscDataManager m_MiscDataMgr
Buffer manager for misc data (user meta).
Definition: nvtracker_proc.h:89
NvTrackerProc::m_TrackerLibError
std::atomic< bool > m_TrackerLibError
Tracker lib encounters an error.
Definition: nvtracker_proc.h:83
NvTrackerProc::initTrackerLib
bool initTrackerLib()
Initialize low-level tracker lib.
NvTrackerProc::m_TrackerLibHandle
void * m_TrackerLibHandle
Low-level tracker lib API and support functions.
Definition: nvtracker_proc.h:176
_NvMOTFrame
Holds a frame containing the image and objects to be tracked.
Definition: nvdstracker.h:246
NvTrackerProc::updateShadowTrackMeta
void updateShadowTrackMeta(GstNvTrackerMiscDataObject *pGstObj, ProcParams &procParams)
NvTrackerProc::fillMOTFrame
void fillMOTFrame(SurfaceStreamId ssId, const ProcParams &procParams, const NvDsFrameMeta &frameMeta, NvMOTFrame &motFrame, NvMOTTrackedObjList &trackedObjList)
Fill input to low-level tracker lib.
NvTrackerProc::ProcParams
Tracker data submitted for proceeding.
Definition: nvtracker_proc.h:92
NvTrackerProc::ClassInfo::objLabel
std::string objLabel
Definition: nvtracker_proc.h:58
NvTrackerProc::DispatchReq::subBatchFrameMap
std::map< SurfaceStreamId, NvDsFrameMeta * > subBatchFrameMap
Map for frames present in a sub-batch.
Definition: nvtracker_proc.h:125
_NvMOTTrackedObj
Holds information about each tracked object.
Definition: nvdstracker.h:284
NvTrackerProc::m_BufQueueCond
std::condition_variable m_BufQueueCond
Definition: nvtracker_proc.h:105
NvTrackerProc::updateUserMeta
void updateUserMeta(const std::vector< std::map< SurfaceStreamId, NvDsFrameMeta * >> &batchList, ProcParams &procParams, NvTrackerMiscDataBuffer *pMiscDataBuf)
Update tracker user meta.
NvTrackerProc::SurfaceId
uint32_t SurfaceId
Surface type ID.
Definition: nvtracker_proc.h:75
NvTrackerProc::deInit
virtual void deInit()
NvTrackerProc::updateObjectProjectionMeta
void updateObjectProjectionMeta(NvDsObjectMeta *pObjectMeta, NvMOTTrackedObj *pTrackedObj, NvDsBatchMeta *pBatchMeta, float scaleWidth, float scaleHeight)
Update each object's model projection meta.
NvTrackerProc::m_TrackerLibProcess
NvMOTStatus(* m_TrackerLibProcess)(NvMOTContextHandle contextHandle, NvMOTProcessParams *pParams, NvMOTTrackedObjBatch *pTrackedObjectsBatch)
Low level lib process.
Definition: nvtracker_proc.h:285
NvTrackerProc::updateTerminatedTrackMeta
void updateTerminatedTrackMeta(GstNvTrackerMiscDataObject *pGstObj, ProcParams &procParams)
NvTrackerProc::m_ClassInfoMap
std::map< int, ClassInfo > m_ClassInfoMap
Info mapped per class.
Definition: nvtracker_proc.h:63
NvTrackerProc::BatchId
uint32_t BatchId
Current batch ID.
Definition: nvtracker_proc.h:66
NvTrackerProc::StreamId
uint32_t StreamId
Source stream ID.
Definition: nvtracker_proc.h:73
NvTrackerProc::allocatePastFrameMemory
NvDsTargetMiscDataBatch * allocatePastFrameMemory()
_NvMOTConfigResponse
Holds a tracker's configuration status.
Definition: nvdstracker.h:162
NvTrackerProc::ProcParams::useConvBuf
bool useConvBuf
Definition: nvtracker_proc.h:95
NvTrackerProc::m_CompletionQueue
std::queue< InputParams > m_CompletionQueue
Completions.
Definition: nvtracker_proc.h:168
NvTrackerProc::updateFrameMeta
void updateFrameMeta(NvDsFrameMeta *pFrameMeta, const NvMOTTrackedObjList &objList, const ProcParams &procParams)
Update each stream's frame meta with tracking results.
miscdatabufmanager.h
NvTrackerProc::ClassInfo::textParams
NvOSD_TextParams textParams
Definition: nvtracker_proc.h:56
NvTrackerProc
Copyright (c) 2019-2023, NVIDIA CORPORATION.
Definition: nvtracker_proc.h:29
_NvDsBatchMeta
Holds information about a formed batch containing frames from different sources.
Definition: nvdsmeta.h:240
NvTrackerProc::initConvBufPool
bool initConvBufPool()
Initialize surface transform buffer pool.
NvTrackerProc::m_ProcessBatchThread
std::thread m_ProcessBatchThread
Definition: nvtracker_proc.h:118
NvTrackerProc::DispatchReq::ssId
SurfaceStreamId ssId
Id of the stream to be removed.
Definition: nvtracker_proc.h:132
NvMOTStatus
NvMOTStatus
Defines generic status codes for tracking operations.
Definition: nvdstracker.h:180
CompletionStatus
CompletionStatus
Tracker process completion status.
Definition: invtracker_proc.h:29
NvMOTStreamId
uint64_t NvMOTStreamId
Definition: nvdstracker.h:44
NvTrackerProc::deInitConvBufPool
void deInitConvBufPool()
Deinitialize surface transform buffer pool.
NvTrackerProc::clipBBox
bool clipBBox(uint32_t frameWidth, uint32_t frameHeight, float &left, float &top, float &width, float &height)
Clip the bbox to be within the frame.
NvTrackerProc::m_CompletionQueueLock
std::mutex m_CompletionQueueLock
Definition: nvtracker_proc.h:169
NvTrackerProc::initTrackerContext
NvMOTContextHandle initTrackerContext(uint32_t sbId=0)
Internal initializing and release function.
_NvMOTProcessParams
Holds parameters for processing a batch.
Definition: nvdstracker.h:367
NvTrackerMiscDataBuffer
Copyright (c) 2023, NVIDIA CORPORATION.
Definition: miscdatabufmanager.h:25
NvTrackerProc::DispatchInfo::operator=
DispatchInfo & operator=(DispatchInfo const &rhs)
Definition: nvtracker_proc.h:146
NvTrackerProc::DispatchReq::batchId
BatchId batchId
Definition: nvtracker_proc.h:123
_NvMOTTrackedObjList
Holds a list of tracked objects.
Definition: nvdstracker.h:315
NvTrackerProc::m_TrackerLibQuery
NvMOTStatus(* m_TrackerLibQuery)(uint16_t customConfigFilePathSize, char *pCustomConfigFilePath, NvMOTQuery *pQuery)
Low level lib query.
Definition: nvtracker_proc.h:293
NvTrackerProc::flushReqs
virtual bool flushReqs()
Flush the request to send the batch downstream.
_NvMOTQuery
Definition: nvdstracker.h:373
NvTrackerProc::waitForCompletion
virtual CompletionStatus waitForCompletion(InputParams &inputParams)
Wait until a batch's process is done.
NvTrackerProc::m_ProcQueue
std::queue< ProcParams > m_ProcQueue
Input queue waiting for tracker proceeding.
Definition: nvtracker_proc.h:102
NvTrackerProc::DispatchInfo::running
bool running
Definition: nvtracker_proc.h:140
NvTrackerProc::DispatchInfo::reqQueueLock
std::mutex reqQueueLock
Definition: nvtracker_proc.h:142
NvTrackerProc::resetSource
virtual bool resetSource(uint32_t sourceId)
Tracker actions when a source is reset.
NvTrackerProc::deInitMiscDataPool
void deInitMiscDataPool()
Deinitialize misc data (user meta) buffer pool.
INvTrackerProc
Virtual base class for tracker plugin processing.
Definition: invtracker_proc.h:101
NvTrackerProc::m_TrackerLibRemoveStreams
NvMOTStatus(* m_TrackerLibRemoveStreams)(NvMOTContextHandle contextHandle, NvMOTStreamId streamIdMask)
Low level lib remove streams.
Definition: nvtracker_proc.h:297
NvTrackerProc::m_ConvBufMgr
ConvBufManager m_ConvBufMgr
Buffer manager for surface transformation.
Definition: nvtracker_proc.h:86
_NvOSD_TextParams
Holds parameters of text to be overlayed.
Definition: nvll_osd_struct.h:114
NvTrackerProc::ClassInfo
Object class information.
Definition: nvtracker_proc.h:53
NvTrackerProc::DispatchInfo::sbId
SubBatchId sbId
Definition: nvtracker_proc.h:138
NvTrackerProc::initMiscDataPool
bool initMiscDataPool()
Initialize misc data (user meta) buffer pool.
TrackerConfig
Tracker plugin config params.
Definition: invtracker_proc.h:50
GstNvTrackerMiscDataObject
GStreamer mini object for GStreamer pipeline to control tracker user meta.
Definition: miscdatabufmanager.h:110
_NvDsTargetMiscDataBatch
Batch of all streams of a given target misc output
Definition: nvds_tracker_meta.h:103
NvTrackerProc::m_Running
bool m_Running
Tracker lib is running.
Definition: nvtracker_proc.h:81
NvMOTContextHandle
struct NvMOTContext * NvMOTContextHandle
Definition: nvdstracker.h:418
NvTrackerProc::m_BatchContextHandle
NvMOTContextHandle m_BatchContextHandle
Batch dispatch to low-level tracker lib.
Definition: nvtracker_proc.h:117
NvTrackerProc::DispatchInfo::reqQueueCond
std::condition_variable reqQueueCond
Definition: nvtracker_proc.h:143
_NvDsFrameMeta
Holds metadata for a frame in a batch.
Definition: nvdsmeta.h:284
NvTrackerProc::m_BatchId
BatchId m_BatchId
Definition: nvtracker_proc.h:109
NvTrackerProc::removeSource
virtual bool removeSource(uint32_t sourceId, bool removeObjectIdMapping=true)
Tracker actions when a source is removed to the pipeline.
invtracker_proc.h
nvdsmeta.h
_NvMOTTrackerMiscData
Tracker misc data.
Definition: nvdstracker.h:349
NvTrackerProc::SurfaceStreamId
uint64_t SurfaceStreamId
Composition of unique ID for each surface from each source Some sources (e.g.
Definition: nvtracker_proc.h:71
NvTrackerProc::DispatchReq
Per-sub-batch dispatch to low-level tracker lib.
Definition: nvtracker_proc.h:121
NvTrackerProc::DispatchReq::removeSource
bool removeSource
Information for stream removal.
Definition: nvtracker_proc.h:130
NvTrackerProc::allocateConvexHullMemory
void allocateConvexHullMemory(NvMOTTrackedObj *list, const uint32_t numAllocated)
NvTrackerProc::m_SsidSubBatchMap
std::map< SurfaceStreamId, SubBatchId > m_SsidSubBatchMap
Mapping for streamID => SubBatchId.
Definition: nvtracker_proc.h:156
NvTrackerProc::ProcParams::batchId
BatchId batchId
Definition: nvtracker_proc.h:97
NvTrackerProc::updateObjectReidMeta
void updateObjectReidMeta(NvDsObjectMeta *pObjectMeta, NvMOTTrackedObj *pTrackedObj, NvDsBatchMeta *pBatchMeta)
Update each object's reid meta.
NvTrackerProc::NvTrackerProc
NvTrackerProc()
_NvMOTConfig
Holds a tracker configuration.
Definition: nvdstracker.h:110
NvTrackerProc::m_ProcQueueLock
std::mutex m_ProcQueueLock
Definition: nvtracker_proc.h:103
NvTrackerProc::m_PadIndexSeqIndexMap
std::map< uint32_t, uint32_t > m_PadIndexSeqIndexMap
Pad index(Source id) mapping: {Pad index(source id): sequence index in the sub-batch}.
Definition: nvtracker_proc.h:158
NvTrackerProc::m_ProcQueueCond
std::condition_variable m_ProcQueueCond
Definition: nvtracker_proc.h:104
NvTrackerProc::submitInput
virtual bool submitInput(const InputParams &inputParams)
Submit an input batch to tracker process queue.
NvTrackerProc::removeUntrackedObjects
void removeUntrackedObjects(NvDsFrameMeta *pFrameMeta)
Remove objects that don't need an ID.
NvTrackerProc::getSurfaceId
SurfaceId getSurfaceId(SurfaceStreamId ssId)
Definition: nvtracker_proc.h:265
nvdstracker.h
NvTrackerProc::addSource
virtual bool addSource(uint32_t sourceId)
Tracker actions when a source is added to the pipeline.
NvTrackerProc::DispatchInfo::reqQueue
std::queue< DispatchReq > reqQueue
Definition: nvtracker_proc.h:141
NvTrackerProc::processSubBatch
void processSubBatch(DispatchInfo *pDispatchInfo)
Function to pop sub-batch from queue, call low level lib to process and update meta data with trackin...
_NvDsObjectMeta
Holds metadata for an object in the frame.
Definition: nvdsmeta.h:342