NVIDIA DeepStream SDK API Reference

9.1 Release
9.1/sources/gst-plugins/gst-nvtracker/gstnvtracker.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2016-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: Apache-2.0
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #ifndef __GST_NVTRACKER_H__
19 #define __GST_NVTRACKER_H__
20 
21 #include <gst/gst.h>
22 #include <gst/video/video.h>
23 #include <gst/video/gstvideofilter.h>
24 #include <sys/time.h>
25 
26 #include "gstnvdsmeta.h"
27 #include "invtracker_proc.h"
28 
29 using namespace std;
30 
31 G_BEGIN_DECLS
32 
33 /* #defines don't like whitespacey bits */
34 #define GST_TYPE_NVTRACKER \
35  (gst_nv_tracker_get_type())
36 #define GST_NVTRACKER(obj) \
37  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_NVTRACKER,GstNvTracker))
38 #define GST_NVTRACKER_CLASS(klass) \
39  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_NVTRACKER,GstNvTrackerClass))
40 #define GST_IS_NVTRACKER(obj) \
41  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_NVTRACKER))
42 #define GST_IS_NVTRACKER_CLASS(klass) \
43  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_NVTRACKER))
44 
45 
46 /* Version number of package */
47 #define VERSION "2.0.0"
48 #define PACKAGE_DESCRIPTION "Gstreamer plugin to track the objects"
49 /* Define under which licence the package has been released */
50 #define PACKAGE_LICENSE "Proprietary"
51 #define PACKAGE_NAME "GStreamer nvtracker Plugin"
52 /* Define to the home page for this package. */
53 #define PACKAGE_URL "http://nvidia.com/"
54 
55 typedef struct _GstNvTracker GstNvTracker;
57 
59 struct _GstNvTracker
60 {
61  GstBaseTransform parent_instance;
62 
63  GstPad *sinkpad, *srcpad;
64 
66  gboolean running;
67  TrackerConfig trackerConfig;
68  INvTrackerProc *trackerIface;
69 
70  GCond eventCondition;
71  GMutex eventLock;
72 
73  GThread *output_loop;
74 };
75 
76 struct _GstNvTrackerClass
77 {
78  GstBaseTransformClass parent_class;
79 };
80 
81 GType gst_nv_tracker_get_type (void);
82 
83 G_END_DECLS
84 
85 #endif /* __GST_NVTRACKER_H__ */
_GstNvTrackerClass
Definition: sources/gst-plugins/gst-nvtracker/gstnvtracker.h:76
gst_nv_tracker_get_type
GType gst_nv_tracker_get_type(void)
invtracker_proc.h
_GstNvTracker
Basic GStreamer class for tracker.
Definition: sources/gst-plugins/gst-nvtracker/gstnvtracker.h:59
INvTrackerProc
Virtual base class for tracker plugin processing.
Definition: sources/gst-plugins/gst-nvtracker/invtracker_proc.h:116
TrackerConfig
Tracker plugin config params.
Definition: sources/gst-plugins/gst-nvtracker/invtracker_proc.h:57