62 #ifndef _TIOVX_MODULES_TYPES 63 #define _TIOVX_MODULES_TYPES 66 #include <TI/tivx_fileio.h> 67 #include <TI/tivx_obj_desc.h> 79 #ifdef TIOVX_MODULE_DEBUG 80 #define TIOVX_MODULE_PRINTF(f_, ...) printf("[TIOVX_MODULES][DEBUG] %d: %s: "f_, __LINE__, __func__, ##__VA_ARGS__) 82 #define TIOVX_MODULE_PRINTF(f_, ...) 85 #define TIOVX_MODULE_ERROR(f_, ...) printf("[TIOVX_MODULES][ERROR] %d: %s: "f_, __LINE__, __func__, ##__VA_ARGS__) 87 #define CLR(o) memset(o, 0, sizeof(*o)) 89 #define TIOVX_MODULES_MAX_BUFQ_DEPTH (16u) 90 #define TIOVX_MODULES_MAX_NODE_INPUTS (16u) 91 #define TIOVX_MODULES_MAX_NODE_OUTPUTS (8u) 92 #define TIOVX_MODULES_MAX_NODES (128u) 93 #define TIOVX_MODULES_MAX_NUM_CHANNELS (16u) 94 #define TIOVX_MODULES_MAX_GRAPH_PARAMS (16u) 96 #define TIOVX_MODULES_MAX_TENSOR_DIMS (4u) 97 #define TIOVX_MODULES_MAX_TENSORS (8u) 98 #define TIOVX_MODULES_MAX_PARAMS (16u) 100 #define TIOVX_MODULES_DEFAULT_IMAGE_WIDTH (640) 101 #define TIOVX_MODULES_DEFAULT_IMAGE_HEIGHT (480) 102 #define TIOVX_MODULES_DEFAULT_COLOR_FORMAT (VX_DF_IMAGE_NV12) 104 #define TIOVX_MODULES_DEFAULT_BUFQ_DEPTH (2u) 105 #define TIOVX_MODULES_DEFAULT_NUM_CHANNELS (1u) 106 #define TIOVX_MODULES_MAX_REF_HANDLES (16u) 116 typedef struct _Pad Pad;
119 typedef struct _Buf Buf;
218 vx_status (*init_node)(NodeObj *node);
219 vx_status (*create_node)(NodeObj *node);
220 vx_status (*post_verify_graph)(NodeObj *node);
221 vx_status (*delete_node)(NodeObj *node);
222 vx_uint32 (*get_cfg_size)();
223 vx_uint32 (*get_priv_size)();
231 vx_char
name[VX_MAX_REFERENCE_NAME];
303 vx_int32 dim_sizes[TIVX_CONTEXT_MAX_TENSOR_DIMS];
336 #endif //_TIOVX_MODULES_TYPES vx_float32 scale
Definition: tiovx_modules_types.h:312
NodeCbs * cbs
Module call backs NodeCbs.
Definition: tiovx_modules_types.h:261
Buf * freeQ[TIOVX_MODULES_MAX_BUFQ_DEPTH]
Array that contains all free buffers _Buf.
Definition: tiovx_modules_types.h:156
vx_int32 datatype
Definition: tiovx_modules_types.h:304
vx_reference handle
0th handle of the object array
Definition: tiovx_modules_types.h:136
#define TIOVX_MODULES_MAX_BUFQ_DEPTH
Definition: tiovx_modules_types.h:89
#define TIOVX_MODULES_MAX_GRAPH_PARAMS
Definition: tiovx_modules_types.h:94
Definition: tiovx_modules_types.h:267
Definition: tiovx_modules_types.h:112
Structure describing a Buffer object.
Definition: tiovx_modules_types.h:125
vx_object_array arr
Object array for the buffer.
Definition: tiovx_modules_types.h:133
Definition: tiovx_modules_types.h:295
vx_int32 width
Definition: tiovx_modules_types.h:296
vx_int32 num_inputs
Number of inputs to the Node.
Definition: tiovx_modules_types.h:249
vx_int32 height
Definition: tiovx_modules_types.h:297
vx_int32 num_nodes
Number of nodes in the graph.
Definition: tiovx_modules_types.h:281
BufPool * pool
Bufferpool to which the buffer belongs to _BufPool.
Definition: tiovx_modules_types.h:127
vx_uint32 range
Definition: tiovx_modules_types.h:318
vx_graph_parameter_queue_params_t graph_params_list[TIOVX_MODULES_MAX_GRAPH_PARAMS]
Graph params list.
Definition: tiovx_modules_types.h:275
vx_int32 node_index
Index among all nodes in the graph.
Definition: tiovx_modules_types.h:243
vx_int32 enqueue_head
Head pointer for queue management.
Definition: tiovx_modules_types.h:165
vx_node tiovx_node
Actual OpenVx node.
Definition: tiovx_modules_types.h:246
vx_char name[VX_MAX_REFERENCE_NAME]
Name of the node.
Definition: tiovx_modules_types.h:231
Pad srcs[TIOVX_MODULES_MAX_NODE_OUTPUTS]
List of output pads _Pad.
Definition: tiovx_modules_types.h:258
vx_int32 color_format
Definition: tiovx_modules_types.h:310
vx_int32 num_dims
Definition: tiovx_modules_types.h:302
pthread_mutex_t lock
Definition: tiovx_modules_types.h:288
vx_int32 node_parameter_index
Node parameter index.
Definition: tiovx_modules_types.h:194
Definition: tiovx_modules_types.h:307
vx_size num_bins
Definition: tiovx_modules_types.h:316
void * node_priv
Pointer to private data managed by modules.
Definition: tiovx_modules_types.h:264
Structure describing a Pad.
Definition: tiovx_modules_types.h:180
vx_int32 num_outputs
Number of outputs to the Node.
Definition: tiovx_modules_types.h:252
Structure of function prototypes to be implemented by each module.
Definition: tiovx_modules_types.h:217
Definition: tiovx_modules_types.h:113
Buf bufs[TIOVX_MODULES_MAX_BUFQ_DEPTH]
List of buffers in the pool _Buf.
Definition: tiovx_modules_types.h:150
vx_int32 bufq_depth
Number of buffers in the pool.
Definition: tiovx_modules_types.h:153
pthread_mutex_t lock
Mutex for queue management.
Definition: tiovx_modules_types.h:174
vx_int32 levels
Definition: tiovx_modules_types.h:311
Pad * peer_pad
Peer pad to which the pad is connected to.
Definition: tiovx_modules_types.h:185
vx_int32 bufq_depth
Buffer queue depth.
Definition: tiovx_modules_types.h:204
vx_int32 free_count
Number of buffers that are free.
Definition: tiovx_modules_types.h:159
NodeObj node_list[TIOVX_MODULES_MAX_NODES]
List of nodes in the graph.
Definition: tiovx_modules_types.h:284
vx_int32 height
Definition: tiovx_modules_types.h:309
Definition: tiovx_modules_types.h:301
vx_int32 offset
Definition: tiovx_modules_types.h:317
tivx_raw_image_create_params_t params
Definition: tiovx_modules_types.h:292
vx_int32 buf_index
Index of the buffer with respect to all the buffers in the pool.
Definition: tiovx_modules_types.h:130
#define TIOVX_MODULES_MAX_NODES
Definition: tiovx_modules_types.h:92
#define TIOVX_MODULES_MAX_NODE_INPUTS
Definition: tiovx_modules_types.h:90
vx_int32 color_format
Definition: tiovx_modules_types.h:298
vx_int32 pad_index
Index among all the pads in the node with same direction.
Definition: tiovx_modules_types.h:191
Definition: tiovx_modules_types.h:315
Structure describing a Node.
Definition: tiovx_modules_types.h:229
vx_object_array exemplar_arr
Definition: tiovx_modules_types.h:211
vx_graph tiovx_graph
Actual OpenVX graph.
Definition: tiovx_modules_types.h:272
vx_reference exemplar
vx_reference that defines the data that this pad handles
Definition: tiovx_modules_types.h:210
vx_status tiovx_module_create_pad_exemplar(Pad *pad, vx_reference exemplar)
Definition: tiovx_modules.c:893
PAD_DIRECTION direction
Pad direction PAD_DIRECTION.
Definition: tiovx_modules_types.h:188
vx_enum schedule_mode
Definition: tiovx_modules_types.h:287
vx_int32 num_graph_params
Number of graph params.
Definition: tiovx_modules_types.h:278
Pad * pad
Pad with which the buffer pool is allocated for _Pad.
Definition: tiovx_modules_types.h:147
Structure describing a Buffer pool.
Definition: tiovx_modules_types.h:145
GraphObj * graph
Pointer to the parent Graph _GraphObj.
Definition: tiovx_modules_types.h:237
vx_context tiovx_context
OpenVX context used for creating all OpenVX references.
Definition: tiovx_modules_types.h:269
BufPool * buf_pool
Buffer pool allocated for this pad.
Definition: tiovx_modules_types.h:207
NodeObj * node
Node to which the pad belongs to _NodeObj.
Definition: tiovx_modules_types.h:182
vx_int32 num_channels
Number of channels.
Definition: tiovx_modules_types.h:139
vx_status tiovx_modules_link_pads(Pad *src_pad, Pad *sink_pad)
Function to link two pads.
Definition: tiovx_modules.c:553
vx_reference ref_list[TIOVX_MODULES_MAX_BUFQ_DEPTH]
Ref list for graph param.
Definition: tiovx_modules_types.h:171
vx_int32 graph_parameter_index
Graph parameter index.
Definition: tiovx_modules_types.h:197
vx_int32 node_type
Name type NODE_TYPES.
Definition: tiovx_modules_types.h:234
vx_int32 width
Definition: tiovx_modules_types.h:308
vx_int32 enqueue_tail
Tail pointer for queue management.
Definition: tiovx_modules_types.h:168
Pad sinks[TIOVX_MODULES_MAX_NODE_INPUTS]
List of input pads _Pad.
Definition: tiovx_modules_types.h:255
void * node_cfg
Copy of node cfg supplied during add node.
Definition: tiovx_modules_types.h:240
Definition: tiovx_modules_types.h:291
PAD_DIRECTION
Enum for pad directions.
Definition: tiovx_modules_types.h:111
vx_int32 num_channels
Number of channels.
Definition: tiovx_modules_types.h:200
#define TIOVX_MODULES_MAX_NODE_OUTPUTS
Definition: tiovx_modules_types.h:91
Buf * enqueuedQ[TIOVX_MODULES_MAX_BUFQ_DEPTH]
List of buffers that are enqueued _Buf.
Definition: tiovx_modules_types.h:162