NVIDIA DeepStream SDK API Reference

7.1 Release
NvTrackerProc Class Reference

Detailed Description

Tracker process class.

Definition at line 30 of file nvtracker_proc.h.

Inheritance diagram for NvTrackerProc:
Collaboration diagram for NvTrackerProc:

Data Structures

struct  ClassInfo
 Object class information. More...
 
struct  DispatchInfo
 Info corresponding to each sub-batch thread. More...
 
struct  DispatchReq
 Per-sub-batch dispatch to low-level tracker lib. More...
 
struct  ProcParams
 Tracker data submitted for proceeding. More...
 

Public Member Functions

 NvTrackerProc ()
 
virtual ~NvTrackerProc ()
 
virtual bool init (const TrackerConfig &config)
 
virtual void deInit ()
 
virtual bool addSource (uint32_t sourceId)
 Tracker actions when a source is added to the pipeline. More...
 
virtual bool removeSource (uint32_t sourceId, bool removeObjectIdMapping=true)
 Tracker actions when a source is removed to the pipeline. More...
 
virtual bool resetSource (uint32_t sourceId)
 Tracker actions when a source is reset. More...
 
virtual bool submitInput (const InputParams &inputParams)
 Submit an input batch to tracker process queue. More...
 
virtual CompletionStatus waitForCompletion (InputParams &inputParams)
 Wait until a batch's process is done. More...
 
virtual bool flushReqs ()
 Flush the request to send the batch downstream. More...
 

Protected Types

typedef uint32_t BatchId
 Current batch ID. More...
 
typedef uint64_t SurfaceStreamId
 Composition of unique ID for each surface from each source Some sources (e.g. More...
 
typedef uint32_t StreamId
 Source stream ID. More...
 
typedef uint32_t SurfaceId
 Surface type ID. More...
 
typedef uint32_t SubBatchId
 sub-batch ID. More...
 
typedef uint32_t SeqIndex
 Sequence index in a sub-batch. More...
 

Protected Member Functions

void processSubBatch (DispatchInfo *pDispatchInfo)
 Function to pop sub-batch from queue, call low level lib to process and update meta data with tracking results for the sub-batch. More...
 
bool dispatchSubBatches (ProcParams procParams)
 Function to create sub-batches from a batch and submit to corresponding sub-batch queues. More...
 
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. More...
 
NvMOTContextHandle initTrackerContext (uint32_t sbId=0)
 Internal initializing and release function. More...
 
bool initConvBufPool ()
 Initialize surface transform buffer pool. More...
 
void deInitConvBufPool ()
 Deinitialize surface transform buffer pool. More...
 
bool initMiscDataPool ()
 Initialize misc data (user meta) buffer pool. More...
 
void deInitMiscDataPool ()
 Deinitialize misc data (user meta) buffer pool. More...
 
bool initTrackerLib ()
 Initialize low-level tracker lib. More...
 
void deInitTrackerLib ()
 Deinitialize low-level tracker lib. More...
 
bool initTrackerQuery (const std::vector< NvMOTContextHandle > &contextHandleList)
 Initialize parameter query from low-level tracker lib. More...
 
bool initTrackerQuery (const NvMOTContextHandle &contextHandleList, uint32_t sbId)
 Initialize parameter query from low-level tracker lib for a single sub-batch. More...
 
void allocateProcessMemory (NvMOTProcessParams &procInput, NvMOTTrackedObjBatch &procResult)
 Allocate memory for low level library input. More...
 
void allocateProcessMemory (NvMOTProcessParams &procInput, NvMOTTrackedObjBatch &procResult, uint32_t batchSize)
 
void releaseProcessMemory (NvMOTProcessParams &procInput, NvMOTTrackedObjBatch &procResult)
 Release input memory. More...
 
void releaseProcessMemory (NvMOTProcessParams &procInput, NvMOTTrackedObjBatch &procResult, uint32_t batchSize)
 
void allocateConvexHullMemory (NvMOTTrackedObj *list, const uint32_t numAllocated)
 
void releaseConvexHullMemory (NvMOTTrackedObj *list, const uint32_t numAllocated)
 
void queueFrames (const NvDsBatchMeta &batchMeta, std::vector< std::map< SurfaceStreamId, NvDsFrameMeta * >> &batchList)
 Functions to process a batch. More...
 
void fillMOTFrame (SurfaceStreamId ssId, const ProcParams &procParams, const NvDsFrameMeta &frameMeta, NvMOTFrame &motFrame, NvMOTTrackedObjList &trackedObjList)
 Fill input to low-level tracker lib. More...
 
void updateBatchMeta (const NvMOTTrackedObjBatch &procResult, const ProcParams &procParams, std::map< SurfaceStreamId, NvDsFrameMeta * > &frameMap)
 Update batch meta with tracking results. More...
 
void updateFrameMeta (NvDsFrameMeta *pFrameMeta, const NvMOTTrackedObjList &objList, const ProcParams &procParams)
 Update each stream's frame meta with tracking results. More...
 
void updatePastFrameMeta (const std::vector< std::map< SurfaceStreamId, NvDsFrameMeta * >> &batchList, GstNvTrackerMiscDataObject *pGstObj, ProcParams &procParams)
 Update past frame data. More...
 
void updateUserMeta (const std::vector< std::map< SurfaceStreamId, NvDsFrameMeta * >> &batchList, ProcParams &procParams, NvTrackerMiscDataBuffer *pMiscDataBuf)
 Update tracker user meta. More...
 
void updateUserMeta (const std::vector< std::map< SurfaceStreamId, NvDsFrameMeta * >> &batchList, ProcParams &procParams, NvTrackerMiscDataBuffer *pMiscDataBuf, TrackerMiscDataManager &miscDataMgr)
 
void updateObjectReidMeta (NvDsObjectMeta *pObjectMeta, NvMOTTrackedObj *pTrackedObj, NvDsBatchMeta *pBatchMeta)
 Update each object's reid meta. More...
 
void updateBatchReidMeta (GstNvTrackerMiscDataObject *pGstObj, ProcParams &procParams)
 Update batch reid meta. More...
 
void updateObjectProjectionMeta (NvDsObjectMeta *pObjectMeta, NvMOTTrackedObj *pTrackedObj, NvDsBatchMeta *pBatchMeta, float scaleWidth, float scaleHeight)
 Update each object's model projection meta. More...
 
void updateTerminatedTrackMeta (GstNvTrackerMiscDataObject *pGstObj, ProcParams &procParams)
 
void updateShadowTrackMeta (GstNvTrackerMiscDataObject *pGstObj, ProcParams &procParams)
 
void processBatch ()
 Function to pop batch from input queue, call low level lib to process and update meta data with tracking results. More...
 
SurfaceStreamId getSurfaceStreamId (StreamId streamId, SurfaceId surfaceId)
 Getter. More...
 
StreamId getStreamId (SurfaceStreamId ssId)
 
SurfaceId getSurfaceId (SurfaceStreamId ssId)
 
guint64 objectIdMapping (const guint64 &objectId, const SurfaceStreamId &ssId)
 Object ID mapper to ensure ID starts from 0 after reset. More...
 
void removeUntrackedObjects (NvDsFrameMeta *pFrameMeta)
 Remove objects that don't need an ID. More...
 
bool clipBBox (uint32_t frameWidth, uint32_t frameHeight, float &left, float &top, float &width, float &height)
 Clip the bbox to be within the frame. More...
 
NvDsTargetMiscDataBatchallocatePastFrameMemory ()
 

Protected Attributes

std::map< int, ClassInfom_ClassInfoMap
 Info mapped per class. More...
 
TrackerConfig m_Config
 Tracker processing config. More...
 
bool m_Running = false
 Tracker lib is running. More...
 
std::atomic< bool > m_TrackerLibError
 Tracker lib encounters an error. More...
 
ConvBufManager m_ConvBufMgr
 Buffer manager for surface transformation. More...
 
TrackerMiscDataManager m_MiscDataMgr
 Buffer manager for misc data (user meta). More...
 
std::queue< ProcParamsm_ProcQueue
 Input queue waiting for tracker proceeding. More...
 
std::mutex m_ProcQueueLock
 
std::condition_variable m_ProcQueueCond
 
std::condition_variable m_BufQueueCond
 
std::map< BatchId, std::vector< SubBatchId > > m_PendingBatch
 Stores batches not finishing tracker proceeding. More...
 
BatchId m_BatchId = 0
 
std::mutex m_PendingBatchLock
 
std::map< BatchId, bool > m_ConvBufComplete
 Stores status of pending batches for buffer conversion. More...
 
std::mutex m_ConvBufLock
 
NvMOTContextHandle m_BatchContextHandle = nullptr
 Batch dispatch to low-level tracker lib. More...
 
std::thread m_ProcessBatchThread
 
std::map< SubBatchId, DispatchInfom_DispatchMap
 Mapping from sub-batch id to corresponding thread info. More...
 
std::mutex m_DispatchMapLock
 
std::map< SurfaceStreamId, SubBatchIdm_SsidSubBatchMap
 Mapping for SurfaceStreamId => SubBatchId. More...
 
std::map< uint32_t, SeqIndexm_PadIndexSeqIndexMap
 Pad index(Source id) mapping: {Pad index(source id): sequence index in the sub-batch}. More...
 
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 allocations. More...
 
uint32_t m_MaxSubBatchSize = 0
 Max sub-batch size. More...
 
std::queue< InputParamsm_CompletionQueue
 Completions. More...
 
std::mutex m_CompletionQueueLock
 
std::condition_variable m_CompletionQueueCond
 
std::map< SurfaceStreamId, guint64 > m_ObjectIdOffsetMap
 Object id mapping: {surface stream ID: object id offset}. More...
 
std::map< uint32_t, SurfaceStreamIdm_PadIndexSsidMap
 Pad index to surface stream ID mapping. More...
 
void * m_TrackerLibHandle
 Low-level tracker lib API and support functions. More...
 
NvMOTStatus(* m_TrackerLibInit )(NvMOTConfig *pConfigIn, NvMOTContextHandle *pContextHandle, NvMOTConfigResponse *pConfigResponse)
 Tracker low level library functions. More...
 
void(* m_TrackerLibDeInit )(NvMOTContextHandle contextHandle)
 Low level lib deinit. More...
 
NvMOTStatus(* m_TrackerLibProcess )(NvMOTContextHandle contextHandle, NvMOTProcessParams *pParams, NvMOTTrackedObjBatch *pTrackedObjectsBatch)
 Low level lib process. More...
 
NvMOTStatus(* m_TrackerLibRetrieveMiscData )(NvMOTContextHandle contextHandle, NvMOTProcessParams *pParams, NvMOTTrackerMiscData *pTrackerMiscData)
 Low level lib process past frame. More...
 
NvMOTStatus(* m_TrackerLibQuery )(uint16_t customConfigFilePathSize, char *pCustomConfigFilePath, NvMOTQuery *pQuery)
 Low level lib query. More...
 
NvMOTStatus(* m_TrackerLibRemoveStreams )(NvMOTContextHandle contextHandle, NvMOTStreamId streamIdMask)
 Low level lib remove streams. More...
 

Member Typedef Documentation

◆ BatchId

typedef uint32_t NvTrackerProc::BatchId
protected

Current batch ID.

Definition at line 67 of file nvtracker_proc.h.

◆ SeqIndex

typedef uint32_t NvTrackerProc::SeqIndex
protected

Sequence index in a sub-batch.

i.e. "seq_index" in "NvMOTFrame"

Definition at line 80 of file nvtracker_proc.h.

◆ StreamId

typedef uint32_t NvTrackerProc::StreamId
protected

Source stream ID.

Definition at line 74 of file nvtracker_proc.h.

◆ SubBatchId

typedef uint32_t NvTrackerProc::SubBatchId
protected

sub-batch ID.

Definition at line 78 of file nvtracker_proc.h.

◆ SurfaceId

typedef uint32_t NvTrackerProc::SurfaceId
protected

Surface type ID.

Definition at line 76 of file nvtracker_proc.h.

◆ SurfaceStreamId

typedef uint64_t NvTrackerProc::SurfaceStreamId
protected

Composition of unique ID for each surface from each source Some sources (e.g.

360d) produce multiple surfaces per frame due to dewarping etc.

Definition at line 72 of file nvtracker_proc.h.

Constructor & Destructor Documentation

◆ NvTrackerProc()

NvTrackerProc::NvTrackerProc ( )

◆ ~NvTrackerProc()

virtual NvTrackerProc::~NvTrackerProc ( )
virtual

Member Function Documentation

◆ addSource()

virtual bool NvTrackerProc::addSource ( uint32_t  sourceId)
virtual

Tracker actions when a source is added to the pipeline.

Implements INvTrackerProc.

◆ allocateConvexHullMemory()

void NvTrackerProc::allocateConvexHullMemory ( NvMOTTrackedObj list,
const uint32_t  numAllocated 
)
protected

◆ allocatePastFrameMemory()

NvDsTargetMiscDataBatch* NvTrackerProc::allocatePastFrameMemory ( )
protected

◆ allocateProcessMemory() [1/2]

void NvTrackerProc::allocateProcessMemory ( NvMOTProcessParams procInput,
NvMOTTrackedObjBatch procResult 
)
protected

Allocate memory for low level library input.

◆ allocateProcessMemory() [2/2]

void NvTrackerProc::allocateProcessMemory ( NvMOTProcessParams procInput,
NvMOTTrackedObjBatch procResult,
uint32_t  batchSize 
)
protected

◆ clipBBox()

bool NvTrackerProc::clipBBox ( uint32_t  frameWidth,
uint32_t  frameHeight,
float &  left,
float &  top,
float &  width,
float &  height 
)
protected

Clip the bbox to be within the frame.

If the bbox is entirely outside, or shrinks to 0 in either dimension, then return false so it can be removed from the object list.

◆ deInit()

virtual void NvTrackerProc::deInit ( )
virtual

Implements INvTrackerProc.

◆ deInitConvBufPool()

void NvTrackerProc::deInitConvBufPool ( )
protected

Deinitialize surface transform buffer pool.

◆ deInitMiscDataPool()

void NvTrackerProc::deInitMiscDataPool ( )
protected

Deinitialize misc data (user meta) buffer pool.

◆ deInitTrackerLib()

void NvTrackerProc::deInitTrackerLib ( )
protected

Deinitialize low-level tracker lib.

◆ dispatchSubBatches()

bool NvTrackerProc::dispatchSubBatches ( ProcParams  procParams)
protected

Function to create sub-batches from a batch and submit to corresponding sub-batch queues.

◆ fillMOTFrame()

void NvTrackerProc::fillMOTFrame ( SurfaceStreamId  ssId,
const ProcParams procParams,
const NvDsFrameMeta frameMeta,
NvMOTFrame motFrame,
NvMOTTrackedObjList trackedObjList 
)
protected

Fill input to low-level tracker lib.

◆ flushReqs()

virtual bool NvTrackerProc::flushReqs ( )
virtual

Flush the request to send the batch downstream.

Implements INvTrackerProc.

◆ getStreamId()

StreamId NvTrackerProc::getStreamId ( SurfaceStreamId  ssId)
inlineprotected

Definition at line 297 of file nvtracker_proc.h.

◆ getSurfaceId()

SurfaceId NvTrackerProc::getSurfaceId ( SurfaceStreamId  ssId)
inlineprotected

Definition at line 298 of file nvtracker_proc.h.

◆ getSurfaceStreamId()

SurfaceStreamId NvTrackerProc::getSurfaceStreamId ( StreamId  streamId,
SurfaceId  surfaceId 
)
inlineprotected

Getter.

Definition at line 295 of file nvtracker_proc.h.

◆ init()

virtual bool NvTrackerProc::init ( const TrackerConfig config)
virtual

Implements INvTrackerProc.

◆ initConvBufPool()

bool NvTrackerProc::initConvBufPool ( )
protected

Initialize surface transform buffer pool.

◆ initMiscDataPool()

bool NvTrackerProc::initMiscDataPool ( )
protected

Initialize misc data (user meta) buffer pool.

◆ initTrackerContext()

NvMOTContextHandle NvTrackerProc::initTrackerContext ( uint32_t  sbId = 0)
protected

Internal initializing and release function.

initialize the batch context with low-level tracker lib.

◆ initTrackerLib()

bool NvTrackerProc::initTrackerLib ( )
protected

Initialize low-level tracker lib.

◆ initTrackerQuery() [1/2]

bool NvTrackerProc::initTrackerQuery ( const NvMOTContextHandle contextHandleList,
uint32_t  sbId 
)
protected

Initialize parameter query from low-level tracker lib for a single sub-batch.

Required when reinitializing a sub-batch

◆ initTrackerQuery() [2/2]

bool NvTrackerProc::initTrackerQuery ( const std::vector< NvMOTContextHandle > &  contextHandleList)
protected

Initialize parameter query from low-level tracker lib.

◆ mapStreamToSubBatch()

bool NvTrackerProc::mapStreamToSubBatch ( SurfaceStreamId  ssId,
uint32_t  pad_index,
bool  dynamicSubBatching 
)
protected

Fuction to map a stream with a specific (SurfaceStreamId, pad_index) to a sub-batch.

The mapping happens only the first time when a stream arrives and is stored in m_SsidSubBatchMap

◆ objectIdMapping()

guint64 NvTrackerProc::objectIdMapping ( const guint64 &  objectId,
const SurfaceStreamId ssId 
)
protected

Object ID mapper to ensure ID starts from 0 after reset.

◆ processBatch()

void NvTrackerProc::processBatch ( )
protected

Function to pop batch from input queue, call low level lib to process and update meta data with tracking results.

◆ processSubBatch()

void NvTrackerProc::processSubBatch ( DispatchInfo pDispatchInfo)
protected

Function to pop sub-batch from queue, call low level lib to process and update meta data with tracking results for the sub-batch.

◆ queueFrames()

void NvTrackerProc::queueFrames ( const NvDsBatchMeta batchMeta,
std::vector< std::map< SurfaceStreamId, NvDsFrameMeta * >> &  batchList 
)
protected

Functions to process a batch.

In case the batch contains two frames with the same ssId, sort the frames based on frameNum in ascending order.

◆ releaseConvexHullMemory()

void NvTrackerProc::releaseConvexHullMemory ( NvMOTTrackedObj list,
const uint32_t  numAllocated 
)
protected

◆ releaseProcessMemory() [1/2]

void NvTrackerProc::releaseProcessMemory ( NvMOTProcessParams procInput,
NvMOTTrackedObjBatch procResult 
)
protected

Release input memory.

◆ releaseProcessMemory() [2/2]

void NvTrackerProc::releaseProcessMemory ( NvMOTProcessParams procInput,
NvMOTTrackedObjBatch procResult,
uint32_t  batchSize 
)
protected

◆ removeSource()

virtual bool NvTrackerProc::removeSource ( uint32_t  sourceId,
bool  removeObjectIdMapping = true 
)
virtual

Tracker actions when a source is removed to the pipeline.

Implements INvTrackerProc.

◆ removeUntrackedObjects()

void NvTrackerProc::removeUntrackedObjects ( NvDsFrameMeta pFrameMeta)
protected

Remove objects that don't need an ID.

◆ resetSource()

virtual bool NvTrackerProc::resetSource ( uint32_t  sourceId)
virtual

Tracker actions when a source is reset.

Implements INvTrackerProc.

◆ submitInput()

virtual bool NvTrackerProc::submitInput ( const InputParams inputParams)
virtual

Submit an input batch to tracker process queue.

Implements INvTrackerProc.

◆ updateBatchMeta()

void NvTrackerProc::updateBatchMeta ( const NvMOTTrackedObjBatch procResult,
const ProcParams procParams,
std::map< SurfaceStreamId, NvDsFrameMeta * > &  frameMap 
)
protected

Update batch meta with tracking results.

◆ updateBatchReidMeta()

void NvTrackerProc::updateBatchReidMeta ( GstNvTrackerMiscDataObject pGstObj,
ProcParams procParams 
)
protected

Update batch reid meta.

◆ updateFrameMeta()

void NvTrackerProc::updateFrameMeta ( NvDsFrameMeta pFrameMeta,
const NvMOTTrackedObjList objList,
const ProcParams procParams 
)
protected

Update each stream's frame meta with tracking results.

◆ updateObjectProjectionMeta()

void NvTrackerProc::updateObjectProjectionMeta ( NvDsObjectMeta pObjectMeta,
NvMOTTrackedObj pTrackedObj,
NvDsBatchMeta pBatchMeta,
float  scaleWidth,
float  scaleHeight 
)
protected

Update each object's model projection meta.

◆ updateObjectReidMeta()

void NvTrackerProc::updateObjectReidMeta ( NvDsObjectMeta pObjectMeta,
NvMOTTrackedObj pTrackedObj,
NvDsBatchMeta pBatchMeta 
)
protected

Update each object's reid meta.

◆ updatePastFrameMeta()

void NvTrackerProc::updatePastFrameMeta ( const std::vector< std::map< SurfaceStreamId, NvDsFrameMeta * >> &  batchList,
GstNvTrackerMiscDataObject pGstObj,
ProcParams procParams 
)
protected

Update past frame data.

◆ updateShadowTrackMeta()

void NvTrackerProc::updateShadowTrackMeta ( GstNvTrackerMiscDataObject pGstObj,
ProcParams procParams 
)
protected

◆ updateTerminatedTrackMeta()

void NvTrackerProc::updateTerminatedTrackMeta ( GstNvTrackerMiscDataObject pGstObj,
ProcParams procParams 
)
protected

◆ updateUserMeta() [1/2]

void NvTrackerProc::updateUserMeta ( const std::vector< std::map< SurfaceStreamId, NvDsFrameMeta * >> &  batchList,
ProcParams procParams,
NvTrackerMiscDataBuffer pMiscDataBuf 
)
protected

Update tracker user meta.

◆ updateUserMeta() [2/2]

void NvTrackerProc::updateUserMeta ( const std::vector< std::map< SurfaceStreamId, NvDsFrameMeta * >> &  batchList,
ProcParams procParams,
NvTrackerMiscDataBuffer pMiscDataBuf,
TrackerMiscDataManager miscDataMgr 
)
protected

◆ waitForCompletion()

virtual CompletionStatus NvTrackerProc::waitForCompletion ( InputParams inputParams)
virtual

Wait until a batch's process is done.

Implements INvTrackerProc.

Field Documentation

◆ m_BatchContextHandle

NvMOTContextHandle NvTrackerProc::m_BatchContextHandle = nullptr
protected

Batch dispatch to low-level tracker lib.

Definition at line 120 of file nvtracker_proc.h.

◆ m_BatchId

BatchId NvTrackerProc::m_BatchId = 0
protected

Definition at line 112 of file nvtracker_proc.h.

◆ m_BufQueueCond

std::condition_variable NvTrackerProc::m_BufQueueCond
protected

Definition at line 108 of file nvtracker_proc.h.

◆ m_ClassInfoMap

std::map<int, ClassInfo> NvTrackerProc::m_ClassInfoMap
protected

Info mapped per class.

The key is class ID.

Definition at line 64 of file nvtracker_proc.h.

◆ m_CompletionQueue

std::queue<InputParams> NvTrackerProc::m_CompletionQueue
protected

Completions.

Definition at line 193 of file nvtracker_proc.h.

◆ m_CompletionQueueCond

std::condition_variable NvTrackerProc::m_CompletionQueueCond
protected

Definition at line 195 of file nvtracker_proc.h.

◆ m_CompletionQueueLock

std::mutex NvTrackerProc::m_CompletionQueueLock
protected

Definition at line 194 of file nvtracker_proc.h.

◆ m_Config

TrackerConfig NvTrackerProc::m_Config
protected

Tracker processing config.

Definition at line 82 of file nvtracker_proc.h.

◆ m_ConvBufComplete

std::map< BatchId, bool > NvTrackerProc::m_ConvBufComplete
protected

Stores status of pending batches for buffer conversion.

Definition at line 116 of file nvtracker_proc.h.

◆ m_ConvBufLock

std::mutex NvTrackerProc::m_ConvBufLock
protected

Definition at line 117 of file nvtracker_proc.h.

◆ m_ConvBufMgr

ConvBufManager NvTrackerProc::m_ConvBufMgr
protected

Buffer manager for surface transformation.

Definition at line 89 of file nvtracker_proc.h.

◆ m_DispatchMap

std::map<SubBatchId, DispatchInfo> NvTrackerProc::m_DispatchMap
protected

Mapping from sub-batch id to corresponding thread info.

Definition at line 160 of file nvtracker_proc.h.

◆ m_DispatchMapLock

std::mutex NvTrackerProc::m_DispatchMapLock
protected

Definition at line 161 of file nvtracker_proc.h.

◆ m_MaxSubBatchSize

uint32_t NvTrackerProc::m_MaxSubBatchSize = 0
protected

Max sub-batch size.

Definition at line 178 of file nvtracker_proc.h.

◆ m_MiscDataMgr

TrackerMiscDataManager NvTrackerProc::m_MiscDataMgr
protected

Buffer manager for misc data (user meta).

Definition at line 92 of file nvtracker_proc.h.

◆ m_ObjectIdOffsetMap

std::map<SurfaceStreamId, guint64> NvTrackerProc::m_ObjectIdOffsetMap
protected

Object id mapping: {surface stream ID: object id offset}.

Definition at line 198 of file nvtracker_proc.h.

◆ m_PadIndexSeqIndexMap

std::map<uint32_t, SeqIndex> NvTrackerProc::m_PadIndexSeqIndexMap
protected

Pad index(Source id) mapping: {Pad index(source id): sequence index in the sub-batch}.

Usage : This mapping is used for every input frame to fill "seq_index" value in "NvMOTFrame" before being passed to the low level tracker for processing

Definition at line 169 of file nvtracker_proc.h.

◆ m_PadIndexSsidMap

std::map<uint32_t, SurfaceStreamId> NvTrackerProc::m_PadIndexSsidMap
protected

Pad index to surface stream ID mapping.

Used in source removal

Definition at line 200 of file nvtracker_proc.h.

◆ m_PendingBatch

std::map< BatchId, std::vector<SubBatchId> > NvTrackerProc::m_PendingBatch
protected

Stores batches not finishing tracker proceeding.

Definition at line 111 of file nvtracker_proc.h.

◆ m_PendingBatchLock

std::mutex NvTrackerProc::m_PendingBatchLock
protected

Definition at line 113 of file nvtracker_proc.h.

◆ m_ProcessBatchThread

std::thread NvTrackerProc::m_ProcessBatchThread
protected

Definition at line 121 of file nvtracker_proc.h.

◆ m_ProcQueue

std::queue<ProcParams> NvTrackerProc::m_ProcQueue
protected

Input queue waiting for tracker proceeding.

Definition at line 105 of file nvtracker_proc.h.

◆ m_ProcQueueCond

std::condition_variable NvTrackerProc::m_ProcQueueCond
protected

Definition at line 107 of file nvtracker_proc.h.

◆ m_ProcQueueLock

std::mutex NvTrackerProc::m_ProcQueueLock
protected

Definition at line 106 of file nvtracker_proc.h.

◆ m_Running

bool NvTrackerProc::m_Running = false
protected

Tracker lib is running.

Definition at line 84 of file nvtracker_proc.h.

◆ m_SsidSubBatchMap

std::map<SurfaceStreamId, SubBatchId> NvTrackerProc::m_SsidSubBatchMap
protected

Mapping for SurfaceStreamId => SubBatchId.

Usage : Everytime a new batch arrives, this mapping is used to find the SubBatchId that should be used to process each frame in the batch based on the SurfaceStreamId of the frame

Definition at line 165 of file nvtracker_proc.h.

◆ m_SubBatchAllocationMap

std::map<SubBatchId, std::map<SeqIndex, std::pair<SurfaceStreamId, uint32_t> > > NvTrackerProc::m_SubBatchAllocationMap
protected

For dynamic/run-time mapping of source id(pad index) to sub-batches; maintain and update a map of allocations.

map <sub-batch id, map <seq index, pair <SurfaceStreamId, pad index > >> Usage : Keeps a track of used <SubBatchId, SeqIndex> slot Whenever a new source is added, it is assigned to a <SubBatchId, SeqIndex> pair and accordingly m_SubBatchAllocationMap is updated Similarly, when a source is removed, the corresponding entry is deleted from m_SubBatchAllocationMap

Definition at line 176 of file nvtracker_proc.h.

◆ m_TrackerLibDeInit

void(* NvTrackerProc::m_TrackerLibDeInit) (NvMOTContextHandle contextHandle)
protected

Low level lib deinit.

Definition at line 316 of file nvtracker_proc.h.

◆ m_TrackerLibError

std::atomic<bool> NvTrackerProc::m_TrackerLibError
protected

Tracker lib encounters an error.

Definition at line 86 of file nvtracker_proc.h.

◆ m_TrackerLibHandle

void* NvTrackerProc::m_TrackerLibHandle
protected

Low-level tracker lib API and support functions.

Definition at line 204 of file nvtracker_proc.h.

◆ m_TrackerLibInit

NvMOTStatus(* NvTrackerProc::m_TrackerLibInit) (NvMOTConfig *pConfigIn, NvMOTContextHandle *pContextHandle, NvMOTConfigResponse *pConfigResponse)
protected

Tracker low level library functions.

Low level lib init.

Definition at line 312 of file nvtracker_proc.h.

◆ m_TrackerLibProcess

NvMOTStatus(* NvTrackerProc::m_TrackerLibProcess) (NvMOTContextHandle contextHandle, NvMOTProcessParams *pParams, NvMOTTrackedObjBatch *pTrackedObjectsBatch)
protected

Low level lib process.

Definition at line 318 of file nvtracker_proc.h.

◆ m_TrackerLibQuery

NvMOTStatus(* NvTrackerProc::m_TrackerLibQuery) (uint16_t customConfigFilePathSize, char *pCustomConfigFilePath, NvMOTQuery *pQuery)
protected

Low level lib query.

Definition at line 326 of file nvtracker_proc.h.

◆ m_TrackerLibRemoveStreams

NvMOTStatus(* NvTrackerProc::m_TrackerLibRemoveStreams) (NvMOTContextHandle contextHandle, NvMOTStreamId streamIdMask)
protected

Low level lib remove streams.

Definition at line 330 of file nvtracker_proc.h.

◆ m_TrackerLibRetrieveMiscData

NvMOTStatus(* NvTrackerProc::m_TrackerLibRetrieveMiscData) (NvMOTContextHandle contextHandle, NvMOTProcessParams *pParams, NvMOTTrackerMiscData *pTrackerMiscData)
protected

Low level lib process past frame.

Definition at line 322 of file nvtracker_proc.h.


The documentation for this class was generated from the following file: