NVIDIA DeepStream SDK API Reference

6.4 Release
miscdatabufmanager.h
Go to the documentation of this file.
1 
11 #ifndef _MISCDATABUFMANAGER_H
12 #define _MISCDATABUFMANAGER_H
13 
14 #include <queue>
15 #include <mutex>
16 #include <vector>
17 #include <condition_variable>
18 #include <chrono>
19 
20 #include <gst/gst.h>
21 
22 #include "nvdstracker.h"
23 
26 {
37 
38 };
39 
42 {
43 public:
47  bool init(uint32_t batchSize, uint32_t gpuId,
48  uint32_t maxTargetsPerStream, uint32_t maxShadowTrackingAge,
49  uint32_t reidFeatureSize, uint32_t maxBufferPoolSize, bool pastFrame,
50  bool outputReidTensor,
51  bool outputTerminatedTracks,
52  bool outputShadowTracks,
53  uint32_t maxTerminatedFrameHistory);
59  void deInit();
60 
61 
62 private:
64  bool m_IntentionallyEmpty;
65  bool m_PastFrame;
66  bool m_OutputReidTensor;
67  bool m_OutputTerminatedTracks;
68  bool m_OutputShadowTracks;
70  std::mutex m_Mutex;
71  std::condition_variable m_Cond;
73  std::queue<NvTrackerMiscDataBuffer *> m_FreeQueue;
75  std::vector<NvTrackerMiscDataBuffer *> m_BufferSet;
77  bool isQueueFull() { return m_BufferSet.size() == m_FreeQueue.size(); }
79  void allocatePastFrame(NvTrackerMiscDataBuffer *pNewBuf,
80  uint32_t batchSize, uint32_t maxTargetsPerStream, uint32_t maxShadowTrackingAge);
82  void releasePastFrame(NvTrackerMiscDataBuffer *pBuffer);
84  void resetPastFrame(NvTrackerMiscDataBuffer *pBuffer);
86  void allocateReid(NvTrackerMiscDataBuffer *pNewBuf,
87  uint32_t batchSize, uint32_t maxTargetsPerStream,
88  uint32_t reidFeatureSize);
90  void releaseReid(NvTrackerMiscDataBuffer *pBuffer);
92  void resetReid(NvTrackerMiscDataBuffer *pBuffer);
94  void allocateTerminatedTracks(NvTrackerMiscDataBuffer *pNewBuf,
95  uint32_t batchSize, uint32_t maxTargetsPerStream, uint32_t maxTermTrackFrameHistory);
97  void releaseTerminatedTracks(NvTrackerMiscDataBuffer *pBuffer);
99  void resetTerminatedTracks(NvTrackerMiscDataBuffer *pBuffer);
101  void allocateShadowTracks(NvTrackerMiscDataBuffer *pNewBuf,
102  uint32_t batchSize, uint32_t maxTargetsPerStream );
104  void releaseShadowTracks(NvTrackerMiscDataBuffer *pBuffer);
106  void resetShadowTracks(NvTrackerMiscDataBuffer *pBuffer);
107 };
108 
111 {
113  GstMiniObject mini_object;
118 };
119 
120 #endif
TrackerMiscDataManager::init
bool init(uint32_t batchSize, uint32_t gpuId, uint32_t maxTargetsPerStream, uint32_t maxShadowTrackingAge, uint32_t reidFeatureSize, uint32_t maxBufferPoolSize, bool pastFrame, bool outputReidTensor, bool outputTerminatedTracks, bool outputShadowTracks, uint32_t maxTerminatedFrameHistory)
Initialize buffer pool based on tracker size information.
GstNvTrackerMiscDataObject::mini_object
GstMiniObject mini_object
GStreamer mini object for refcount.
Definition: miscdatabufmanager.h:113
NvTrackerMiscDataBuffer::terminatedTrackBatch
NvDsTargetMiscDataBatch terminatedTrackBatch
Terminated Objects .
Definition: miscdatabufmanager.h:34
TrackerMiscDataManager::returnBuffer
void returnBuffer(NvTrackerMiscDataBuffer *data)
Return buffer to pool.
TrackerMiscDataManager::deInit
void deInit()
Release buffer pool.
TrackerMiscDataManager
Tracker misc data memory pool.
Definition: miscdatabufmanager.h:41
TrackerMiscDataManager::pop
NvTrackerMiscDataBuffer * pop()
Pop a buffer from pool.
NvTrackerMiscDataBuffer::reidTensorBatch
NvDsReidTensorBatch reidTensorBatch
ReID tensor.
Definition: miscdatabufmanager.h:32
GstNvTrackerMiscDataObject::misc_data_manager
TrackerMiscDataManager * misc_data_manager
Pointer to user misc data buffer pool.
Definition: miscdatabufmanager.h:115
NvTrackerMiscDataBuffer::pastFrameObjBatch
NvDsTargetMiscDataBatch pastFrameObjBatch
Past frame objects.
Definition: miscdatabufmanager.h:28
TrackerMiscDataManager::TrackerMiscDataManager
TrackerMiscDataManager()
GstNvTrackerMiscDataObject::misc_data_buffer
NvTrackerMiscDataBuffer * misc_data_buffer
Pointer to current buffer.
Definition: miscdatabufmanager.h:117
NvTrackerMiscDataBuffer
Copyright (c) 2023, NVIDIA CORPORATION.
Definition: miscdatabufmanager.h:25
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
NvTrackerMiscDataBuffer::shadowTracksBatch
NvDsTargetMiscDataBatch shadowTracksBatch
Shadow Objects .
Definition: miscdatabufmanager.h:36
nvdstracker.h
NvTrackerMiscDataBuffer::trajectoryBatch
NvDsTrajectoryBatch trajectoryBatch
Target trajectories.
Definition: miscdatabufmanager.h:30
_NvDsReidTensorBatch
ReID tensor of the batch.
Definition: nvds_tracker_meta.h:118
TrackerMiscDataManager::~TrackerMiscDataManager
~TrackerMiscDataManager()