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 XDAS_Int32 blockHeight;
00120 XDAS_Int32 blockWidth;
00121 XDAS_Int32 numBlockHorizontal;
00122 XDAS_Int32 numBlockVertical;
00124 XDM1_SingleBufDesc enableMaskArray;
00134 } IVIDANALYTICS_Grid;
00135
00142 typedef enum {
00143 IVIDANALYTICS_OBJECTTYPE_VEHICLE = 0,
00144 IVIDANALYTICS_OBJECTTYPE_HUMAN = 1,
00146 IVIDANALYTICS_OBJECTTYPE_USERBASE = 256
00149 } IVIDANALYTICS_ObjectType;
00150
00157 typedef enum {
00158 IVIDANALYTICS_ACTIONTYPE_LOITER = 0,
00159 IVIDANALYTICS_ACTIONTYPE_ENTER = 1,
00160 IVIDANALYTICS_ACTIONTYPE_EXIT = 2,
00161 IVIDANALYTICS_ACTIONTYPE_APPEAR = 3,
00162 IVIDANALYTICS_ACTIONTYPE_DISAPPEAR = 4,
00163 IVIDANALYTICS_ACTIONTYPE_CROSSL2R = 5,
00164 IVIDANALYTICS_ACTIONTYPE_CROSSR2L = 6,
00165 IVIDANALYTICS_ACTIONTYPE_CROSSU2D = 7,
00166 IVIDANALYTICS_ACTIONTYPE_CROSSD2U = 8,
00168 IVIDANALYTICS_ACTIONTYPE_USERBASE = 256
00171 } IVIDANALYTICS_ActionType;
00172
00173
00177 typedef struct IVIDANALYTICS_Rule{
00178 XDAS_Int32 size;
00179 XDAS_Int32 id;
00181 IVIDANALYTICS_ObjectType objectType;
00184 IVIDANALYTICS_ActionType actionType;
00187 } IVIDANALYTICS_Rule;
00188
00189
00194 typedef struct IVIDANALYTICS_Obj {
00195 struct IVIDANALYTICS_Fxns *fxns;
00196 } IVIDANALYTICS_Obj;
00197
00198
00202 typedef struct IVIDANALYTICS_Obj *IVIDANALYTICS_Handle;
00203
00204
00216 typedef enum {
00217 IVIDANALYTICS_VIEWSTATE_BAD = 0,
00218 IVIDANALYTICS_VIEWSTATE_GOOD = 1
00219 } IVIDANALYTICS_ViewState;
00220
00221
00228 typedef struct IVIDANALYTICS_Params {
00229 XDAS_Int32 size;
00230 XDAS_Int32 maxHeight;
00231 XDAS_Int32 maxWidth;
00232 XDAS_Int32 maxFrameRate;
00237 XDAS_Int32 dataEndianness;
00241 XDAS_Int32 inputChromaFormat;
00245 XDAS_Int32 maxRules;
00246 }IVIDANALYTICS_Params;
00247
00248
00263 typedef struct IVIDANALYTICS_DynamicParams {
00264 XDAS_Int32 size;
00265 IVIDANALYTICS_Grid *grid;
00266 XDM_Date date;
00268
00269
00270 IVIDANALYTICS_Rule rule;
00273 } IVIDANALYTICS_DynamicParams;
00274
00275
00284 typedef struct IVIDANALYTICS_InArgs {
00285 XDAS_Int32 size;
00286 XDM_Date date;
00287 }IVIDANALYTICS_InArgs;
00288
00289
00297 typedef struct IVIDANALYTICS_Status {
00298 XDAS_Int32 size;
00299 XDAS_Int32 extendedError;
00300 XDM1_BufDesc data;
00321 XDM_AlgBufInfo bufInfo;
00334 XDAS_Int32 viewState;
00338 } IVIDANALYTICS_Status;
00339
00340
00349 typedef struct IVIDANALYTICS_OutArgs {
00350 XDAS_Int32 size;
00351 XDAS_Int32 numTargets;
00352 XDM_Rect targets[IVIDANALYTICS_MAXTARGETS];
00359 XDAS_Int32 numEvents;
00361 XDAS_Int32 eventId[IVIDANALYTICS_MAXEVENTS];
00370 XDAS_Int32 extendedError;
00371 XDM_Date date;
00372 } IVIDANALYTICS_OutArgs;
00373
00374
00385 typedef IALG_Cmd IVIDANALYTICS_Cmd;
00386
00387
00391 typedef struct IVIDANALYTICS_Fxns {
00392 IALG_Fxns ialg;
00464 XDAS_Int32 (*process)(IVIDANALYTICS_Handle handle, XDM1_BufDesc *inBufs,
00465 XDM1_BufDesc *outBufs, IVIDANALYTICS_InArgs *inArgs,
00466 IVIDANALYTICS_OutArgs *outArgs);
00467
00468
00504 XDAS_Int32 (*control)(IVIDANALYTICS_Handle handle, IVIDANALYTICS_Cmd id,
00505 IVIDANALYTICS_DynamicParams *params, IVIDANALYTICS_Status *status);
00506
00507 } IVIDANALYTICS_Fxns;
00508
00509
00512 #ifdef __cplusplus
00513 }
00514 #endif
00515
00516 #endif
00517
00518
00519
00520
00521