#ifndef __GST_DSOSD_H__ #define __GST_DSOSD_H__ #include #include #include #include #include "nvbufsurface.h" #include "nvbufsurftransform.h" #include "gst-nvquery.h" #include "gstnvdsmeta.h" /* Package and library details required for plugin_init */ #define PACKAGE "dsosd" #define VERSION "1.0" #define LICENSE "Proprietary" #define DESCRIPTION "NVIDIA osd plugin for integration with DeepStream on DGPU" #define BINARY_PACKAGE "NVIDIA DeepStream 3rdparty IP integration osd plugin" #define URL "http://nvidia.com/" G_BEGIN_DECLS /* Standard boilerplate stuff */ typedef struct _GstDsOsd GstDsOsd; typedef struct _GstDsOsdClass GstDsOsdClass; /* Standard boilerplate stuff */ #define GST_TYPE_DSOSD (gst_dsosd_get_type()) #define GST_DSOSD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DSOSD,GstDsOsd)) #define GST_DSOSD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DSOSD,GstDsOsdClass)) #define GST_DSOSD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GST_TYPE_DSOSD, GstDsOsdClass)) #define GST_IS_DSOSD(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DSOSD)) #define GST_IS_DSOSD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DSOSD)) #define GST_DSOSD_CAST(obj) ((GstDsOsd *)(obj)) struct _GstDsOsd { GstBaseTransform base_trans; // Unique ID of the element. The labels generated by the element will be // updated at index `unique_id` of attr_info array in NvDsObjectParams. guint unique_id; // Frame number of the current input buffer guint64 frame_num; // Input video info (resolution, color format, framerate, etc) GstVideoInfo video_info; // Amount of objects processed in single call to algorithm guint batch_size; // GPU ID on which we expect to execute the task guint gpu_id; void *nvosd_ctx; NvOSD_FrameRectParams frame_rect_params; NvOSD_FrameTextParams frame_text_params; }; // Boiler plate stuff struct _GstDsOsdClass { GstBaseTransformClass parent_class; }; GType gst_dsosd_get_type(void); G_END_DECLS #endif /* __GST_DSOSD_H__ */