ividanalytics.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00047 #ifndef ti_xdais_dm_IVIDANALYTICS_
00048 #define ti_xdais_dm_IVIDANALYTICS_
00049
00050 #include <ti/xdais/ialg.h>
00051 #include <ti/xdais/xdas.h>
00052 #include "xdm.h"
00053
00054 #ifdef __cplusplus
00055 extern "C" {
00056 #endif
00057
00060
00061 #define IVIDANALYTICS_EOK XDM_EOK
00062 #define IVIDANALYTICS_EFAIL XDM_EFAIL
00063 #define IVIDANALYTICS_EUNSUPPORTED XDM_EUNSUPPORTED
00065
00066
00070 #define IVIDANALYTICS_SETRULE XDM_CLASSCMDBASE
00071
00075 #define IVIDANALYTICS_CLEARRULE XDM_CLASSCMDBASE + 1
00076
00083 #define IVIDANALYTICS_MAXTARGETS 128
00084
00091 #define IVIDANALYTICS_MAXEVENTS 128
00092
00100 typedef enum {
00101 IVIDANALYTICS_MOTIONDETECT = 0,
00102 IVIDANALYTICS_OBJECTTRACKING = 1,
00104 IVIDANALYTICS_USERBASE = 16
00107 } IVIDANALYTICS_AnalysisMask;
00108
00109
00118 typedef struct IVIDANALYTICS_Grid {
00119
00120 XDAS_Int32 blockHeight;
00121 XDAS_Int32 blockWidth;
00122 XDAS_Int32 numBlockHorizontal;
00123 XDAS_Int32 numBlockVertical;
00125 XDM1_SingleBufDesc enableMaskArray;
00135 } IVIDANALYTICS_Grid;
00136
00143 typedef enum {
00144 IVIDANALYTICS_OBJECTTYPE_VEHICLE = 0,
00145 IVIDANALYTICS_OBJECTTYPE_HUMAN = 1,
00147 IVIDANALYTICS_OBJECTTYPE_USERBASE = 256
00150 } IVIDANALYTICS_ObjectType;
00151
00158 typedef enum {
00159 IVIDANALYTICS_ACTIONTYPE_LOITER = 0,
00160 IVIDANALYTICS_ACTIONTYPE_ENTER = 1,
00161 IVIDANALYTICS_ACTIONTYPE_EXIT = 2,
00162 IVIDANALYTICS_ACTIONTYPE_APPEAR = 3,
00163 IVIDANALYTICS_ACTIONTYPE_DISAPPEAR = 4,
00164 IVIDANALYTICS_ACTIONTYPE_CROSSL2R = 5,
00165 IVIDANALYTICS_ACTIONTYPE_CROSSR2L = 6,
00166 IVIDANALYTICS_ACTIONTYPE_CROSSU2D = 7,
00167 IVIDANALYTICS_ACTIONTYPE_CROSSD2U = 8,
00169 IVIDANALYTICS_ACTIONTYPE_USERBASE = 256
00172 } IVIDANALYTICS_ActionType;
00173
00174
00178 typedef struct IVIDANALYTICS_Rule{
00179 XDAS_Int32 size;
00180 XDAS_Int32 id;
00182 IVIDANALYTICS_ObjectType objectType;
00185 IVIDANALYTICS_ActionType actionType;
00188 } IVIDANALYTICS_Rule;
00189
00190
00195 typedef struct IVIDANALYTICS_Obj {
00196 struct IVIDANALYTICS_Fxns *fxns;
00197 } IVIDANALYTICS_Obj;
00198
00199
00203 typedef struct IVIDANALYTICS_Obj *IVIDANALYTICS_Handle;
00204
00205
00217 typedef enum {
00218 IVIDANALYTICS_VIEWSTATE_BAD = 0,
00219 IVIDANALYTICS_VIEWSTATE_GOOD = 1
00220 } IVIDANALYTICS_ViewState;
00221
00222
00229 typedef struct IVIDANALYTICS_Params {
00230 XDAS_Int32 size;
00231 XDAS_Int32 maxHeight;
00232 XDAS_Int32 maxWidth;
00233 XDAS_Int32 maxFrameRate;
00238 XDAS_Int32 dataEndianness;
00242 XDAS_Int32 inputChromaFormat;
00246 XDAS_Int32 maxRules;
00247 }IVIDANALYTICS_Params;
00248
00249
00264 typedef struct IVIDANALYTICS_DynamicParams {
00265 XDAS_Int32 size;
00266 IVIDANALYTICS_Grid *grid;
00267 XDM_Date date;
00269
00270
00271 IVIDANALYTICS_Rule rule;
00274 } IVIDANALYTICS_DynamicParams;
00275
00276
00285 typedef struct IVIDANALYTICS_InArgs {
00286 XDAS_Int32 size;
00287 XDM_Date date;
00288 }IVIDANALYTICS_InArgs;
00289
00290
00298 typedef struct IVIDANALYTICS_Status {
00299 XDAS_Int32 size;
00300 XDAS_Int32 extendedError;
00301 XDM1_BufDesc data;
00322 XDM_AlgBufInfo bufInfo;
00335 XDAS_Int32 viewState;
00339 } IVIDANALYTICS_Status;
00340
00341
00350 typedef struct IVIDANALYTICS_OutArgs {
00351 XDAS_Int32 size;
00352 XDAS_Int32 numTargets;
00353 XDM_Rect targets[IVIDANALYTICS_MAXTARGETS];
00360 XDAS_Int32 numEvents;
00362 XDAS_Int32 eventId[IVIDANALYTICS_MAXEVENTS];
00371 XDAS_Int32 extendedError;
00372 XDM_Date date;
00373 } IVIDANALYTICS_OutArgs;
00374
00375
00386 typedef IALG_Cmd IVIDANALYTICS_Cmd;
00387
00388
00392 typedef struct IVIDANALYTICS_Fxns {
00393 IALG_Fxns ialg;
00465 XDAS_Int32 (*process)(IVIDANALYTICS_Handle handle, XDM1_BufDesc *inBufs,
00466 XDM1_BufDesc *outBufs, IVIDANALYTICS_InArgs *inArgs,
00467 IVIDANALYTICS_OutArgs *outArgs);
00468
00469
00505 XDAS_Int32 (*control)(IVIDANALYTICS_Handle handle, IVIDANALYTICS_Cmd id,
00506 IVIDANALYTICS_DynamicParams *params, IVIDANALYTICS_Status *status);
00507
00508 } IVIDANALYTICS_Fxns;
00509
00510
00513 #ifdef __cplusplus
00514 }
00515 #endif
00516
00517 #endif
00518
00519
00520
00521