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