NVIDIA DeepStream SDK API Reference

7.0 Release
nvtracker_proc.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2019-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11  */
12 
13 #ifndef _NVTRACKERPROC_H
14 #define _NVTRACKERPROC_H
15 
16 #include <queue>
17 #include <map>
18 #include <mutex>
19 #include <condition_variable>
20 #include <thread>
21 #include <atomic>
22 
23 #include "nvdsmeta.h"
24 #include "invtracker_proc.h"
25 #include "convbufmanager.h"
26 #include "miscdatabufmanager.h"
27 #include "nvdstracker.h"
28 
31 {
32 public:
33  NvTrackerProc();
34  virtual ~NvTrackerProc();
35 
36  virtual bool init(const TrackerConfig& config);
37  virtual void deInit();
38 
40  virtual bool addSource(uint32_t sourceId);
42  virtual bool removeSource(uint32_t sourceId, bool removeObjectIdMapping=true);
44  virtual bool resetSource(uint32_t sourceId);
46  virtual bool submitInput(const InputParams& inputParams);
48  virtual CompletionStatus waitForCompletion(InputParams& inputParams);
50  virtual bool flushReqs();
51 
52 protected:
54  struct ClassInfo
55  {
58  std::string displayTextString;
59  std::string objLabel;
61  };
62 
64  std::map<int, ClassInfo> m_ClassInfoMap;
65 
67  typedef uint32_t BatchId;
68 
72  typedef uint64_t SurfaceStreamId;
74  typedef uint32_t StreamId;
76  typedef uint32_t SurfaceId;
78  typedef uint32_t SubBatchId;
80  typedef uint32_t SeqIndex;
84  bool m_Running = false;
86  std::atomic<bool> m_TrackerLibError;
87 
90 
93 
95  struct ProcParams
96  {
98  bool useConvBuf;
102  };
103 
105  std::queue<ProcParams> m_ProcQueue;
106  std::mutex m_ProcQueueLock;
107  std::condition_variable m_ProcQueueCond;
108  std::condition_variable m_BufQueueCond;
109 
111  std::map< BatchId, std::vector<SubBatchId> > m_PendingBatch;
113  std::mutex m_PendingBatchLock;
114 
116  std::map< BatchId, bool > m_ConvBufComplete;
117  std::mutex m_ConvBufLock;
118 
121  std::thread m_ProcessBatchThread;
122  /******************************************************************************************************
123  * NOTE : Data structures and variables declared below are used for sub-batch processing.
124  * To get more insights into sub-batches feature implementation, please refer to the
125  * detailed documentation and examples elaborated at the end of nvtracker_proc.cpp
126  * ******************************************************************************************************/
127 
129  struct DispatchReq
130  {
133  std::map<SurfaceStreamId, NvDsFrameMeta *> subBatchFrameMap;
134  /* Tracker data for processing */
138  bool removeSource;
141  };
144  {
146  std::thread sbThread;
147  bool running;
148  std::queue<DispatchReq> reqQueue;
149  std::mutex reqQueueLock;
150  std::condition_variable reqQueueCond;
152 
153  // FIXME: operator= needed but not used in meaningful way
155  {
156  return *this;
157  }
158  };
160  std::map<SubBatchId, DispatchInfo> m_DispatchMap;
161  std::mutex m_DispatchMapLock;
165  std::map<SurfaceStreamId, SubBatchId> m_SsidSubBatchMap;
169  std::map<uint32_t, SeqIndex> m_PadIndexSeqIndexMap;
176  std::map<SubBatchId, std::map<SeqIndex, std::pair<SurfaceStreamId, uint32_t>>> m_SubBatchAllocationMap;
178  uint32_t m_MaxSubBatchSize = 0;
182  void processSubBatch(DispatchInfo *pDispatchInfo);
185  bool dispatchSubBatches(ProcParams procParams);
188  bool mapStreamToSubBatch(SurfaceStreamId ssId, uint32_t pad_index, bool dynamicSubBatching);
189 
190  /******************************************************************************************************/
191 
193  std::queue<InputParams> m_CompletionQueue;
195  std::condition_variable m_CompletionQueueCond;
196 
198  std::map<SurfaceStreamId, guint64> m_ObjectIdOffsetMap;
199 
202 
206  NvMOTContextHandle initTrackerContext(uint32_t sbId = 0);
208  bool initConvBufPool();
210  void deInitConvBufPool();
212  bool initMiscDataPool();
214  void deInitMiscDataPool();
216  bool initTrackerLib();
218  void deInitTrackerLib();
220  bool initTrackerQuery(const std::vector<NvMOTContextHandle>& contextHandleList);
223  bool initTrackerQuery(const NvMOTContextHandle& contextHandleList, uint32_t sbId);
226  NvMOTTrackedObjBatch &procResult);
228  NvMOTTrackedObjBatch &procResult, uint32_t batchSize);
231  NvMOTTrackedObjBatch &procResult);
233  NvMOTTrackedObjBatch &procResult, uint32_t batchSize);
234 
235  void allocateConvexHullMemory(NvMOTTrackedObj *list, const uint32_t numAllocated);
236  void releaseConvexHullMemory(NvMOTTrackedObj *list, const uint32_t numAllocated);
237 
242  void queueFrames(const NvDsBatchMeta& batchMeta,
243  std::vector<std::map<SurfaceStreamId, NvDsFrameMeta *>>& batchList);
245  void fillMOTFrame(SurfaceStreamId ssId,
246  const ProcParams& procParams,
247  const NvDsFrameMeta& frameMeta,
248  NvMOTFrame& motFrame,
249  NvMOTTrackedObjList& trackedObjList);
251  void updateBatchMeta(const NvMOTTrackedObjBatch& procResult,
252  const ProcParams& procParams,
253  std::map<SurfaceStreamId, NvDsFrameMeta *>& frameMap);
255  void updateFrameMeta(NvDsFrameMeta* pFrameMeta,
256  const NvMOTTrackedObjList& objList,
257  const ProcParams& procParams);
259  void updatePastFrameMeta(
260  const std::vector<std::map<SurfaceStreamId, NvDsFrameMeta *>>& batchList,
262  ProcParams& procParams);
264  void updateUserMeta(
265  const std::vector<std::map<SurfaceStreamId, NvDsFrameMeta *>>& batchList,
266  ProcParams& procParams, NvTrackerMiscDataBuffer *pMiscDataBuf);
267  void updateUserMeta(
268  const std::vector<std::map<SurfaceStreamId, NvDsFrameMeta *>> &batchList,
269  ProcParams &procParams, NvTrackerMiscDataBuffer *pMiscDataBuf, TrackerMiscDataManager &miscDataMgr);
271  void updateObjectReidMeta(NvDsObjectMeta *pObjectMeta, NvMOTTrackedObj *pTrackedObj,
272  NvDsBatchMeta *pBatchMeta);
275  ProcParams& procParams);
277  void updateObjectProjectionMeta(NvDsObjectMeta *pObjectMeta, NvMOTTrackedObj *pTrackedObj,
278  NvDsBatchMeta *pBatchMeta, float scaleWidth, float scaleHeight);
279 
281  ProcParams& procParams);
282 
284  ProcParams& procParams);
285 
289  void processBatch();
290 
293  { return ( ((uint64_t)streamId << 32) | surfaceId ); };
294  StreamId getStreamId(SurfaceStreamId ssId) { return (StreamId)( ssId >> 32 ); };
295  SurfaceId getSurfaceId(SurfaceStreamId ssId) { return (SurfaceId)(ssId); };
296 
298  guint64 objectIdMapping(const guint64& objectId, const SurfaceStreamId& ssId);
300  void removeUntrackedObjects(NvDsFrameMeta* pFrameMeta);
306  bool clipBBox(uint32_t frameWidth, uint32_t frameHeight, float &left, float &top, float &width, float &height);
310  NvMOTContextHandle *pContextHandle,
311  NvMOTConfigResponse *pConfigResponse);
313  void (*m_TrackerLibDeInit) (NvMOTContextHandle contextHandle);
316  NvMOTProcessParams *pParams,
317  NvMOTTrackedObjBatch *pTrackedObjectsBatch);
320  NvMOTProcessParams *pParams,
321  NvMOTTrackerMiscData *pTrackerMiscData);
323  NvMOTStatus (*m_TrackerLibQuery) (uint16_t customConfigFilePathSize,
324  char* pCustomConfigFilePath,
325  NvMOTQuery *pQuery);
328  NvMOTStreamId streamIdMask);
330 };
331 
332 #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:198
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:161
InputParams
Input data for tracker plugin.
Definition: invtracker_proc.h:22
NvTrackerProc::ProcParams::pConvBuf
NvBufSurface * pConvBuf
Definition: nvtracker_proc.h:99
ConvBufManager
Definition: convbufmanager.h:28
_NvOSD_RectParams
Holds the box parameters of the box to be overlayed.
Definition: nvll_osd_struct.h:140
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:58
NvTrackerProc::m_Config
TrackerConfig m_Config
Tracker processing config.
Definition: nvtracker_proc.h:82
NvTrackerProc::DispatchInfo
Info corresponding to each sub-batch thread.
Definition: nvtracker_proc.h:143
NvTrackerProc::m_ConvBufComplete
std::map< BatchId, bool > m_ConvBufComplete
Stores status of pending batches for buffer conversion.
Definition: nvtracker_proc.h:116
NvTrackerProc::updateBatchReidMeta
void updateBatchReidMeta(GstNvTrackerMiscDataObject *pGstObj, ProcParams &procParams)
Update batch reid meta.
NvTrackerProc::DispatchReq::procParams
ProcParams procParams
Definition: nvtracker_proc.h:139
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:319
NvTrackerProc::m_DispatchMap
std::map< SubBatchId, DispatchInfo > m_DispatchMap
Mapping from sub-batch id to corresponding thread info.
Definition: nvtracker_proc.h:160
NvBufSurfTransformSyncObj_t
struct NvBufSurfTransformSyncObj * NvBufSurfTransformSyncObj_t
Holds the information about synchronization objects for asynchronous transform/composite APIs.
Definition: nvbufsurftransform.h:287
NvTrackerProc::mapStreamToSubBatch
bool mapStreamToSubBatch(SurfaceStreamId ssId, uint32_t pad_index, bool dynamicSubBatching)
Fuction to map a stream with a specific (SurfaceStreamId, pad_index) to a sub-batch.
NvTrackerProc::init
virtual bool init(const TrackerConfig &config)
NvTrackerProc::getStreamId
StreamId getStreamId(SurfaceStreamId ssId)
Definition: nvtracker_proc.h:294
NvTrackerProc::processBatch
void processBatch()
Function to pop batch from input queue, call low level lib to process and update meta data with track...
NvTrackerProc::m_SubBatchAllocationMap
std::map< SubBatchId, std::map< SeqIndex, std::pair< SurfaceStreamId, uint32_t > > > m_SubBatchAllocationMap
For dynamic/run-time mapping of source id(pad index) to sub-batches; maintain and update a map of all...
Definition: nvtracker_proc.h:176
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:113
NvBufSurface
Holds information about batched buffers.
Definition: nvbufsurface.h:509
NvTrackerProc::ClassInfo::uniqueComponentId
uint uniqueComponentId
Definition: nvtracker_proc.h:60
NvTrackerProc::SubBatchId
uint32_t SubBatchId
sub-batch ID.
Definition: nvtracker_proc.h:78
NvTrackerProc::m_TrackerLibInit
NvMOTStatus(* m_TrackerLibInit)(NvMOTConfig *pConfigIn, NvMOTContextHandle *pContextHandle, NvMOTConfigResponse *pConfigResponse)
Tracker low level library functions.
Definition: nvtracker_proc.h:309
NvTrackerProc::m_CompletionQueueCond
std::condition_variable m_CompletionQueueCond
Definition: nvtracker_proc.h:195
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:97
NvTrackerProc::ProcParams::bufSetSyncObjs
NvBufSurfTransformSyncObj_t bufSetSyncObjs
Definition: nvtracker_proc.h:101
_NvMOTTrackedObjBatch
Holds a batch of lists of tracked objects.
Definition: nvdstracker.h:327
NvTrackerProc::deInitTrackerLib
void deInitTrackerLib()
Deinitialize low-level tracker lib.
TrackerMiscDataManager
Tracker misc data memory pool.
Definition: miscdatabufmanager.h:43
NvTrackerProc::m_PendingBatch
std::map< BatchId, std::vector< SubBatchId > > m_PendingBatch
Stores batches not finishing tracker proceeding.
Definition: nvtracker_proc.h:111
NvTrackerProc::releaseConvexHullMemory
void releaseConvexHullMemory(NvMOTTrackedObj *list, const uint32_t numAllocated)
NvTrackerProc::DispatchInfo::sbThread
std::thread sbThread
Definition: nvtracker_proc.h:146
NvTrackerProc::getSurfaceStreamId
SurfaceStreamId getSurfaceStreamId(StreamId streamId, SurfaceId surfaceId)
Getter.
Definition: nvtracker_proc.h:292
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:313
NvTrackerProc::ClassInfo::rectParams
NvOSD_RectParams rectParams
Definition: nvtracker_proc.h:56
NvTrackerProc::m_ConvBufLock
std::mutex m_ConvBufLock
Definition: nvtracker_proc.h:117
NvTrackerProc::m_MiscDataMgr
TrackerMiscDataManager m_MiscDataMgr
Buffer manager for misc data (user meta).
Definition: nvtracker_proc.h:92
NvTrackerProc::m_TrackerLibError
std::atomic< bool > m_TrackerLibError
Tracker lib encounters an error.
Definition: nvtracker_proc.h:86
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:201
_NvMOTFrame
Holds a frame containing the image and objects to be tracked.
Definition: nvdstracker.h:239
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:95
NvTrackerProc::ClassInfo::objLabel
std::string objLabel
Definition: nvtracker_proc.h:59
NvTrackerProc::DispatchReq::subBatchFrameMap
std::map< SurfaceStreamId, NvDsFrameMeta * > subBatchFrameMap
Map for frames present in a sub-batch.
Definition: nvtracker_proc.h:137
_NvMOTTrackedObj
Holds information about each tracked object.
Definition: nvdstracker.h:277
NvTrackerProc::m_BufQueueCond
std::condition_variable m_BufQueueCond
Definition: nvtracker_proc.h:108
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:76
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:315
NvTrackerProc::m_PadIndexSeqIndexMap
std::map< uint32_t, SeqIndex > m_PadIndexSeqIndexMap
Pad index(Source id) mapping: {Pad index(source id): sequence index in the sub-batch}.
Definition: nvtracker_proc.h:169
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:64
NvTrackerProc::BatchId
uint32_t BatchId
Current batch ID.
Definition: nvtracker_proc.h:67
NvTrackerProc::StreamId
uint32_t StreamId
Source stream ID.
Definition: nvtracker_proc.h:74
NvTrackerProc::allocatePastFrameMemory
NvDsTargetMiscDataBatch * allocatePastFrameMemory()
_NvMOTConfigResponse
Holds a tracker's configuration status.
Definition: nvdstracker.h:155
NvTrackerProc::initTrackerQuery
bool initTrackerQuery(const std::vector< NvMOTContextHandle > &contextHandleList)
Initialize parameter query from low-level tracker lib.
NvTrackerProc::ProcParams::useConvBuf
bool useConvBuf
Definition: nvtracker_proc.h:98
NvTrackerProc::m_CompletionQueue
std::queue< InputParams > m_CompletionQueue
Completions.
Definition: nvtracker_proc.h:193
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:57
NvTrackerProc
Tracker process class.
Definition: nvtracker_proc.h:30
NvTrackerProc::m_MaxSubBatchSize
uint32_t m_MaxSubBatchSize
Max sub-batch size.
Definition: nvtracker_proc.h:178
_NvDsBatchMeta
Holds information about a formed batch containing frames from different sources.
Definition: nvdsmeta.h:241
NvTrackerProc::initConvBufPool
bool initConvBufPool()
Initialize surface transform buffer pool.
NvTrackerProc::m_ProcessBatchThread
std::thread m_ProcessBatchThread
Definition: nvtracker_proc.h:121
NvTrackerProc::DispatchReq::ssId
SurfaceStreamId ssId
Id of the stream to be removed.
Definition: nvtracker_proc.h:144
NvMOTStatus
NvMOTStatus
Defines generic status codes for tracking operations.
Definition: nvdstracker.h:173
CompletionStatus
CompletionStatus
Tracker process completion status.
Definition: invtracker_proc.h:31
NvMOTStreamId
uint64_t NvMOTStreamId
Definition: nvdstracker.h:45
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:194
NvTrackerProc::initTrackerContext
NvMOTContextHandle initTrackerContext(uint32_t sbId=0)
Internal initializing and release function.
_NvMOTProcessParams
Holds parameters for processing a batch.
Definition: nvdstracker.h:360
NvTrackerMiscDataBuffer
Tracker misc data buffer for a batch.
Definition: miscdatabufmanager.h:27
NvTrackerProc::DispatchInfo::operator=
DispatchInfo & operator=(DispatchInfo const &rhs)
Definition: nvtracker_proc.h:154
NvTrackerProc::DispatchReq::batchId
BatchId batchId
Definition: nvtracker_proc.h:135
_NvMOTTrackedObjList
Holds a list of tracked objects.
Definition: nvdstracker.h:308
NvTrackerProc::m_TrackerLibQuery
NvMOTStatus(* m_TrackerLibQuery)(uint16_t customConfigFilePathSize, char *pCustomConfigFilePath, NvMOTQuery *pQuery)
Low level lib query.
Definition: nvtracker_proc.h:323
NvTrackerProc::flushReqs
virtual bool flushReqs()
Flush the request to send the batch downstream.
_NvMOTQuery
Definition: nvdstracker.h:372
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:105
NvTrackerProc::DispatchInfo::running
bool running
Definition: nvtracker_proc.h:147
NvTrackerProc::DispatchInfo::reqQueueLock
std::mutex reqQueueLock
Definition: nvtracker_proc.h:149
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:108
NvTrackerProc::m_TrackerLibRemoveStreams
NvMOTStatus(* m_TrackerLibRemoveStreams)(NvMOTContextHandle contextHandle, NvMOTStreamId streamIdMask)
Low level lib remove streams.
Definition: nvtracker_proc.h:327
NvTrackerProc::SeqIndex
uint32_t SeqIndex
Sequence index in a sub-batch.
Definition: nvtracker_proc.h:80
NvTrackerProc::m_ConvBufMgr
ConvBufManager m_ConvBufMgr
Buffer manager for surface transformation.
Definition: nvtracker_proc.h:89
_NvOSD_TextParams
Holds parameters of text to be overlayed.
Definition: nvll_osd_struct.h:115
NvTrackerProc::DispatchInfo::contextHandle
NvMOTContextHandle contextHandle
Definition: nvtracker_proc.h:151
NvTrackerProc::ClassInfo
Object class information.
Definition: nvtracker_proc.h:54
NvTrackerProc::DispatchInfo::sbId
SubBatchId sbId
Definition: nvtracker_proc.h:145
NvTrackerProc::initMiscDataPool
bool initMiscDataPool()
Initialize misc data (user meta) buffer pool.
TrackerConfig
Tracker plugin config params.
Definition: invtracker_proc.h:52
GstNvTrackerMiscDataObject
GStreamer mini object for GStreamer pipeline to control tracker user meta.
Definition: miscdatabufmanager.h:112
_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:84
NvMOTContextHandle
struct NvMOTContext * NvMOTContextHandle
Definition: nvdstracker.h:370
NvTrackerProc::m_BatchContextHandle
NvMOTContextHandle m_BatchContextHandle
Batch dispatch to low-level tracker lib.
Definition: nvtracker_proc.h:120
NvTrackerProc::DispatchInfo::reqQueueCond
std::condition_variable reqQueueCond
Definition: nvtracker_proc.h:150
_NvDsFrameMeta
Holds metadata for a frame in a batch.
Definition: nvdsmeta.h:285
NvTrackerProc::m_BatchId
BatchId m_BatchId
Definition: nvtracker_proc.h:112
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:342
NvTrackerProc::SurfaceStreamId
uint64_t SurfaceStreamId
Composition of unique ID for each surface from each source Some sources (e.g.
Definition: nvtracker_proc.h:72
NvTrackerProc::DispatchReq
Per-sub-batch dispatch to low-level tracker lib.
Definition: nvtracker_proc.h:129
NvTrackerProc::DispatchReq::removeSource
bool removeSource
Information for stream removal.
Definition: nvtracker_proc.h:142
NvTrackerProc::allocateConvexHullMemory
void allocateConvexHullMemory(NvMOTTrackedObj *list, const uint32_t numAllocated)
NvTrackerProc::m_SsidSubBatchMap
std::map< SurfaceStreamId, SubBatchId > m_SsidSubBatchMap
Mapping for SurfaceStreamId => SubBatchId.
Definition: nvtracker_proc.h:165
NvTrackerProc::ProcParams::batchId
BatchId batchId
Definition: nvtracker_proc.h:100
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:103
NvTrackerProc::m_ProcQueueLock
std::mutex m_ProcQueueLock
Definition: nvtracker_proc.h:106
NvTrackerProc::m_ProcQueueCond
std::condition_variable m_ProcQueueCond
Definition: nvtracker_proc.h:107
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:295
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:148
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:343