123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- /*
- * Copyright (c) 2018-2020, NVIDIA CORPORATION. All rights reserved.
- *
- * NVIDIA Corporation and its licensors retain all intellectual property
- * and proprietary rights in and to this software, related documentation
- * and any modifications thereto. Any use, reproduction, disclosure or
- * distribution of this software and related documentation without an express
- * license agreement from NVIDIA Corporation is strictly prohibited.
- *
- */
- /**
- * @file
- * <b>NVIDIA DeepStream: Metadata Extension Structures</b>
- *
- * @b Description: This file defines the NVIDIA DeepStream metadata structures
- * used to describe metadata objects.
- */
- /**
- * @defgroup metadata_extensions Metadata Extension Structures
- *
- * Defines metadata structures used to describe metadata objects.
- *
- * @ingroup NvDsMetaApi
- * @{
- */
- #ifndef NVDSMETA_H_
- #define NVDSMETA_H_
- #include <glib.h>
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- /**
- * Defines event type flags.
- */
- typedef enum NvDsEventType {
- NVDS_EVENT_ENTRY,
- NVDS_EVENT_EXIT,
- NVDS_EVENT_MOVING,
- NVDS_EVENT_STOPPED,
- NVDS_EVENT_EMPTY,
- NVDS_EVENT_PARKED,
- NVDS_EVENT_RESET,
- /** Reserved for future use. Custom events must be assigned values
- greater than this. */
- NVDS_EVENT_RESERVED = 0x100,
- /** Specifies a custom event. */
- NVDS_EVENT_CUSTOM = 0x101,
- NVDS_EVENT_FORCE32 = 0x7FFFFFFF
- } NvDsEventType;
- /**
- * Defines object type flags.
- */
- typedef enum NvDsObjectType {
- NVDS_OBJECT_TYPE_VEHICLE,
- NVDS_OBJECT_TYPE_PERSON,
- NVDS_OBJECT_TYPE_FACE,
- NVDS_OBJECT_TYPE_BAG,
- NVDS_OBJECT_TYPE_BICYCLE,
- NVDS_OBJECT_TYPE_ROADSIGN,
- /** Reserved for future use. Custom objects must be assigned values
- greater than this. */
- NVDS_OBJECT_TYPE_RESERVED = 0x100,
- /** Specifies a custom object. */
- NVDS_OBJECT_TYPE_CUSTOM = 0x101,
- /** "object" key will be missing in the schema */
- NVDS_OBJECT_TYPE_UNKNOWN = 0x102,
- NVDS_OBEJCT_TYPE_FORCE32 = 0x7FFFFFFF
- } NvDsObjectType;
- /**
- * Defines payload type flags.
- */
- typedef enum NvDsPayloadType {
- NVDS_PAYLOAD_DEEPSTREAM,
- NVDS_PAYLOAD_DEEPSTREAM_MINIMAL,
- /** Reserved for future use. Custom payloads must be assigned values
- greater than this. */
- NVDS_PAYLOAD_RESERVED = 0x100,
- /** Specifies a custom payload. You must implement the nvds_msg2p_*
- interface. */
- NVDS_PAYLOAD_CUSTOM = 0x101,
- NVDS_PAYLOAD_FORCE32 = 0x7FFFFFFF
- } NvDsPayloadType;
- /**
- * Holds a rectangle's position and size.
- */
- typedef struct NvDsRect {
- float top; /**< Holds the position of rectangle's top in pixels. */
- float left; /**< Holds the position of rectangle's left side in pixels. */
- float width; /**< Holds the rectangle's width in pixels. */
- float height; /**< Holds the rectangle's height in pixels. */
- } NvDsRect;
- /**
- * Holds geolocation parameters.
- */
- typedef struct NvDsGeoLocation {
- gdouble lat; /**< Holds the location's latitude. */
- gdouble lon; /**< Holds the location's longitude. */
- gdouble alt; /**< Holds the location's altitude. */
- } NvDsGeoLocation;
- /**
- * Hold a coordinate's position.
- */
- typedef struct NvDsCoordinate {
- gdouble x; /**< Holds the coordinate's X position. */
- gdouble y; /**< Holds the coordinate's Y position. */
- gdouble z; /**< Holds the coordinate's Z position. */
- } NvDsCoordinate;
- /**
- * Holds an object's signature.
- */
- typedef struct NvDsObjectSignature {
- /** Holds a pointer to an array of signature values. */
- gdouble *signature;
- /** Holds the number of signature values in @a signature. */
- guint size;
- } NvDsObjectSignature;
- /**
- * Holds a vehicle object's parameters.
- */
- typedef struct NvDsVehicleObject {
- gchar *type; /**< Holds a pointer to the type of the vehicle. */
- gchar *make; /**< Holds a pointer to the make of the vehicle. */
- gchar *model; /**< Holds a pointer to the model of the vehicle. */
- gchar *color; /**< Holds a pointer to the color of the vehicle. */
- gchar *region; /**< Holds a pointer to the region of the vehicle. */
- gchar *license; /**< Holds a pointer to the license number of the vehicle.*/
- } NvDsVehicleObject;
- /**
- * Holds a person object's parameters.
- */
- typedef struct NvDsPersonObject {
- gchar *gender; /**< Holds a pointer to the person's gender. */
- gchar *hair; /**< Holds a pointer to the person's hair color. */
- gchar *cap; /**< Holds a pointer to the type of cap the person is
- wearing, if any. */
- gchar *apparel; /**< Holds a pointer to a description of the person's
- apparel. */
- guint age; /**< Holds the person's age. */
- } NvDsPersonObject;
- /**
- * Holds a face object's parameters.
- */
- typedef struct NvDsFaceObject {
- gchar *gender; /**< Holds a pointer to the person's gender. */
- gchar *hair; /**< Holds a pointer to the person's hair color. */
- gchar *cap; /**< Holds a pointer to the type of cap the person
- is wearing, if any. */
- gchar *glasses; /**< Holds a pointer to the type of glasses the person
- is wearing, if any. */
- gchar *facialhair;/**< Holds a pointer to the person's facial hair color. */
- gchar *name; /**< Holds a pointer to the person's name. */
- gchar *eyecolor; /**< Holds a pointer to the person's eye color. */
- guint age; /**< Holds the person's age. */
- } NvDsFaceObject;
- /**
- * Holds event message meta data.
- *
- * You can attach various types of objects (vehicle, person, face, etc.)
- * to an event by setting a pointer to the object in @a extMsg.
- *
- * Similarly, you can attach a custom object to an event by setting a pointer to the object in @a extMsg.
- * A custom object must be handled by the metadata parsing module accordingly.
- */
- typedef struct NvDsEventMsgMeta {
- /** Holds the event's type. */
- NvDsEventType type;
- /** Holds the object's type. */
- NvDsObjectType objType;
- /** Holds the object's bounding box. */
- NvDsRect bbox;
- /** Holds the object's geolocation. */
- NvDsGeoLocation location;
- /** Holds the object's coordinates. */
- NvDsCoordinate coordinate;
- /** Holds the object's signature. */
- NvDsObjectSignature objSignature;
- /** Holds the object's class ID. */
- gint objClassId;
- /** Holds the ID of the sensor that generated the event. */
- gint sensorId;
- /** Holds the ID of the analytics module that generated the event. */
- gint moduleId;
- /** Holds the ID of the place related to the object. */
- gint placeId;
- /** Holds the ID of the component (plugin) that generated this event. */
- gint componentId;
- /** Holds the video frame ID of this event. */
- gint frameId;
- /** Holds the confidence level of the inference. */
- gdouble confidence;
- /** Holds the object's tracking ID. */
- gint trackingId;
- /** Holds a pointer to the generated event's timestamp. */
- gchar *ts;
- /** Holds a pointer to the detected or inferred object's ID. */
- gchar *objectId;
- /** Holds a pointer to a string containing the sensor's identity. */
- gchar *sensorStr;
- /** Holds a pointer to a string containing other attributes associated with
- the object. */
- gchar *otherAttrs;
- /** Holds a pointer to the name of the video file. */
- gchar *videoPath;
- /** Holds a pointer to event message meta data. This can be used to hold
- data that can't be accommodated in the existing fields, or an associated
- object (representing a vehicle, person, face, etc.). */
- gpointer extMsg;
- /** Holds the size of the custom object at @a extMsg. */
- guint extMsgSize;
-
- /*My data*/
- guint occupancy;
- guint source_id;
- guint lccum_cnt_entry;
- guint lccum_cnt_exit;
- } NvDsEventMsgMeta;
- /**
- * Holds event information.
- */
- typedef struct _NvDsEvent {
- /** Holds the type of event. */
- NvDsEventType eventType;
- /** Holds a pointer to event metadata. */
- NvDsEventMsgMeta *metadata;
- } NvDsEvent;
- /**
- * Holds payload metadata.
- */
- typedef struct NvDsPayload {
- /** Holds a pointer to the payload. */
- gpointer payload;
- /** Holds the size of the payload. */
- guint payloadSize;
- /** Holds the ID of the component (plugin) which attached the payload
- (optional). */
- guint componentId;
- } NvDsPayload;
- #ifdef __cplusplus
- }
- #endif
- #endif /* NVDSMETA_H_ */
- /** @} */
|