XDAIS
dais-x04
Main Page
Modules
Data Structures
Files
Related Pages
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Groups
Pages
packages
ti
xdais
dm
ividanalytics.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2006-2012, Texas Instruments Incorporated
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* * Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
*
12
* * Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
*
16
* * Neither the name of Texas Instruments Incorporated nor the names of
17
* its contributors may be used to endorse or promote products derived
18
* from this software without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
*
32
*/
33
47
#ifndef ti_xdais_dm_IVIDANALYTICS_
48
#define ti_xdais_dm_IVIDANALYTICS_
49
50
#include <
ti/xdais/ialg.h
>
51
#include <
ti/xdais/xdas.h
>
52
#include "
xdm.h
"
53
54
#ifdef __cplusplus
55
extern
"C"
{
56
#endif
57
60
61
#define IVIDANALYTICS_EOK XDM_EOK
62
#define IVIDANALYTICS_EFAIL XDM_EFAIL
63
#define IVIDANALYTICS_EUNSUPPORTED XDM_EUNSUPPORTED
65
/* IVIDANALYTICS-specific control commands */
66
70
#define IVIDANALYTICS_SETRULE XDM_CLASSCMDBASE
71
75
#define IVIDANALYTICS_CLEARRULE XDM_CLASSCMDBASE + 1
76
83
#define IVIDANALYTICS_MAXTARGETS 128
84
91
#define IVIDANALYTICS_MAXEVENTS 128
92
100
typedef
enum
{
101
IVIDANALYTICS_MOTIONDETECT
= 0,
102
IVIDANALYTICS_OBJECTTRACKING
= 1,
104
IVIDANALYTICS_USERBASE
= 16
107
}
IVIDANALYTICS_AnalysisMask
;
108
109
118
typedef
struct
IVIDANALYTICS_Grid
{
/* a grid/block is put on top of a video frame. Some blocks are MD-enabled, the others are MD-disabled... */
119
XDAS_Int32
blockHeight
;
120
XDAS_Int32
blockWidth
;
121
XDAS_Int32
numBlockHorizontal
;
122
XDAS_Int32
numBlockVertical
;
124
XDM1_SingleBufDesc
enableMaskArray
;
134
}
IVIDANALYTICS_Grid
;
135
142
typedef
enum
{
143
IVIDANALYTICS_OBJECTTYPE_VEHICLE
= 0,
144
IVIDANALYTICS_OBJECTTYPE_HUMAN
= 1,
146
IVIDANALYTICS_OBJECTTYPE_USERBASE
= 256
149
}
IVIDANALYTICS_ObjectType
;
150
157
typedef
enum
{
158
IVIDANALYTICS_ACTIONTYPE_LOITER
= 0,
159
IVIDANALYTICS_ACTIONTYPE_ENTER
= 1,
160
IVIDANALYTICS_ACTIONTYPE_EXIT
= 2,
161
IVIDANALYTICS_ACTIONTYPE_APPEAR
= 3,
162
IVIDANALYTICS_ACTIONTYPE_DISAPPEAR
= 4,
163
IVIDANALYTICS_ACTIONTYPE_CROSSL2R
= 5,
164
IVIDANALYTICS_ACTIONTYPE_CROSSR2L
= 6,
165
IVIDANALYTICS_ACTIONTYPE_CROSSU2D
= 7,
166
IVIDANALYTICS_ACTIONTYPE_CROSSD2U
= 8,
168
IVIDANALYTICS_ACTIONTYPE_USERBASE
= 256
171
}
IVIDANALYTICS_ActionType
;
172
173
177
typedef
struct
IVIDANALYTICS_Rule
{
178
XDAS_Int32
size
;
179
XDAS_Int32
id
;
181
IVIDANALYTICS_ObjectType
objectType
;
184
IVIDANALYTICS_ActionType
actionType
;
187
}
IVIDANALYTICS_Rule
;
188
189
194
typedef
struct
IVIDANALYTICS_Obj
{
195
struct
IVIDANALYTICS_Fxns
*
fxns
;
196
}
IVIDANALYTICS_Obj
;
197
198
202
typedef
struct
IVIDANALYTICS_Obj
*
IVIDANALYTICS_Handle
;
203
204
216
typedef
enum
{
217
IVIDANALYTICS_VIEWSTATE_BAD
= 0,
218
IVIDANALYTICS_VIEWSTATE_GOOD
= 1
219
}
IVIDANALYTICS_ViewState
;
220
221
228
typedef
struct
IVIDANALYTICS_Params
{
229
XDAS_Int32
size
;
230
XDAS_Int32
maxHeight
;
231
XDAS_Int32
maxWidth
;
232
XDAS_Int32
maxFrameRate
;
237
XDAS_Int32
dataEndianness
;
241
XDAS_Int32
inputChromaFormat
;
245
XDAS_Int32
maxRules
;
246
}
IVIDANALYTICS_Params
;
247
248
263
typedef
struct
IVIDANALYTICS_DynamicParams
{
264
XDAS_Int32
size
;
265
IVIDANALYTICS_Grid
*
grid
;
266
XDM_Date
date
;
268
/* Note, we've removed height & width - no way to change size at runtime - need to recreate the alg instance */
269
270
IVIDANALYTICS_Rule
rule
;
273
}
IVIDANALYTICS_DynamicParams
;
274
275
284
typedef
struct
IVIDANALYTICS_InArgs
{
285
XDAS_Int32
size
;
286
XDM_Date
date
;
287
}
IVIDANALYTICS_InArgs
;
288
289
297
typedef
struct
IVIDANALYTICS_Status
{
298
XDAS_Int32
size
;
299
XDAS_Int32
extendedError
;
300
XDM1_BufDesc
data
;
321
XDM_AlgBufInfo
bufInfo
;
334
XDAS_Int32
viewState
;
338
}
IVIDANALYTICS_Status
;
339
340
349
typedef
struct
IVIDANALYTICS_OutArgs
{
350
XDAS_Int32
size
;
351
XDAS_Int32
numTargets
;
352
XDM_Rect
targets
[
IVIDANALYTICS_MAXTARGETS
];
359
XDAS_Int32
numEvents
;
361
XDAS_Int32
eventId
[
IVIDANALYTICS_MAXEVENTS
];
370
XDAS_Int32
extendedError
;
371
XDM_Date
date
;
372
}
IVIDANALYTICS_OutArgs
;
373
374
385
typedef
IALG_Cmd
IVIDANALYTICS_Cmd
;
386
387
391
typedef
struct
IVIDANALYTICS_Fxns
{
392
IALG_Fxns
ialg
;
464
XDAS_Int32
(*
process
)(IVIDANALYTICS_Handle handle,
XDM1_BufDesc
*inBufs,
465
XDM1_BufDesc
*outBufs,
IVIDANALYTICS_InArgs
*inArgs,
466
IVIDANALYTICS_OutArgs
*outArgs);
467
468
504
XDAS_Int32
(*
control
)(IVIDANALYTICS_Handle handle, IVIDANALYTICS_Cmd id,
505
IVIDANALYTICS_DynamicParams
*params,
IVIDANALYTICS_Status
*status);
506
507
}
IVIDANALYTICS_Fxns
;
508
509
512
#ifdef __cplusplus
513
}
514
#endif
515
516
#endif
Copyright 2013, Texas Instruments Incorporated