TIOVX User Guide
tivx_objects.h
1 /*
2 *
3 * Copyright (c) 2017 Texas Instruments Incorporated
4 *
5 * All rights reserved not granted herein.
6 *
7 * Limited License.
8 *
9 * Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
10 * license under copyrights and patents it now or hereafter owns or controls to make,
11 * have made, use, import, offer to sell and sell ("Utilize") this software subject to the
12 * terms herein. With respect to the foregoing patent license, such license is granted
13 * solely to the extent that any such patent is necessary to Utilize the software alone.
14 * The patent license shall not apply to any combinations which include this software,
15 * other than combinations with devices manufactured by or for TI ("TI Devices").
16 * No hardware patent is licensed hereunder.
17 *
18 * Redistributions must preserve existing copyright notices and reproduce this license
19 * (including the above copyright notice and the disclaimer and (if applicable) source
20 * code license limitations below) in the documentation and/or other materials provided
21 * with the distribution
22 *
23 * Redistribution and use in binary form, without modification, are permitted provided
24 * that the following conditions are met:
25 *
26 * * No reverse engineering, decompilation, or disassembly of this software is
27 * permitted with respect to any software provided in binary form.
28 *
29 * * any redistribution and use are licensed by TI for use only with TI Devices.
30 *
31 * * Nothing shall obligate TI to provide you with source code for the software
32 * licensed and provided to you in object code.
33 *
34 * If software source code is provided to you, modification and redistribution of the
35 * source code are permitted provided that the following conditions are met:
36 *
37 * * any redistribution and use of the source code, including any resulting derivative
38 * works, are licensed by TI for use only with TI Devices.
39 *
40 * * any redistribution and use of any object code compiled from the source code
41 * and any resulting derivative works, are licensed by TI for use only with TI Devices.
42 *
43 * Neither the name of Texas Instruments Incorporated nor the names of its suppliers
44 *
45 * may be used to endorse or promote products derived from this software without
46 * specific prior written permission.
47 *
48 * DISCLAIMER.
49 *
50 * THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
51 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
52 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
53 * IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
54 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
55 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
56 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
57 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
58 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
59 * OF THE POSSIBILITY OF SUCH DAMAGE.
60 *
61 */
62 
63 
64 
65 
66 #ifndef TIVX_OBJECTS_H_
67 #define TIVX_OBJECTS_H_
68 
69 #include <vx_internal.h>
70 
71 #ifdef __cplusplus
72 extern "C" {
73 #endif
74 
80 typedef struct _tivx_object_t
81 {
82  tivx_meta_format_t meta_format[TIVX_META_FORMAT_MAX_OBJECTS];
84  vx_bool isMfUse[TIVX_META_FORMAT_MAX_OBJECTS];
87  tivx_context_t context[TIVX_CONTEXT_MAX_OBJECTS];
89  vx_bool isContextUse[TIVX_CONTEXT_MAX_OBJECTS];
92  tivx_graph_t graph[TIVX_GRAPH_MAX_OBJECTS];
94  vx_bool isGraphUse[TIVX_GRAPH_MAX_OBJECTS];
97  tivx_node_t node[TIVX_NODE_MAX_OBJECTS];
99  vx_bool isNodeUse[TIVX_NODE_MAX_OBJECTS];
102  tivx_kernel_t kernel[TIVX_KERNEL_MAX_OBJECTS];
104  vx_bool isKernelUse[TIVX_KERNEL_MAX_OBJECTS];
107  tivx_array_t array[TIVX_ARRAY_MAX_OBJECTS];
109  vx_bool isArrayUse[TIVX_ARRAY_MAX_OBJECTS];
112  tivx_user_data_object_t user_data_object[TIVX_USER_DATA_OBJECT_MAX_OBJECTS];
114  vx_bool isUserDataObjectUse[TIVX_USER_DATA_OBJECT_MAX_OBJECTS];
117  tivx_raw_image_t raw_image[TIVX_RAW_IMAGE_MAX_OBJECTS];
119  vx_bool isRawImageUse[TIVX_RAW_IMAGE_MAX_OBJECTS];
127  tivx_convolution_t convolution[TIVX_CONVOLUTION_MAX_OBJECTS];
129  vx_bool isConvolutionUse[TIVX_CONVOLUTION_MAX_OBJECTS];
132  tivx_delay_t delay[TIVX_DELAY_MAX_OBJECTS];
134  vx_bool isDelayUse[TIVX_DELAY_MAX_OBJECTS];
137  tivx_distribution_t distribution[TIVX_DISTRIBUTION_MAX_OBJECTS];
139  vx_bool isDistributionUse[TIVX_DISTRIBUTION_MAX_OBJECTS];
142  tivx_image_t image[TIVX_IMAGE_MAX_OBJECTS];
144  vx_bool isImageUse[TIVX_IMAGE_MAX_OBJECTS];
147  tivx_lut_t lut[TIVX_LUT_MAX_OBJECTS];
149  vx_bool isLutUse[TIVX_LUT_MAX_OBJECTS];
152  tivx_matrix_t matrix[TIVX_MATRIX_MAX_OBJECTS];
154  vx_bool isMatrixUse[TIVX_MATRIX_MAX_OBJECTS];
157  tivx_pyramid_t pyramid[TIVX_PYRAMID_MAX_OBJECTS];
159  vx_bool isPyramidUse[TIVX_PYRAMID_MAX_OBJECTS];
162  tivx_remap_t remap[TIVX_REMAP_MAX_OBJECTS];
164  vx_bool isRemapUse[TIVX_REMAP_MAX_OBJECTS];
167  tivx_scalar_t scalar[TIVX_SCALAR_MAX_OBJECTS];
169  vx_bool isScalarUse[TIVX_SCALAR_MAX_OBJECTS];
172  tivx_threshold_t threshold[TIVX_THRESHOLD_MAX_OBJECTS];
174  vx_bool isThresholdUse[TIVX_THRESHOLD_MAX_OBJECTS];
177  tivx_error_t error[TIVX_ERROR_MAX_OBJECTS];
179  vx_bool isErrorUse[TIVX_ERROR_MAX_OBJECTS];
182  tivx_objarray_t obj_array[TIVX_OBJ_ARRAY_MAX_OBJECTS];
184  vx_bool isObjArrUse[TIVX_OBJ_ARRAY_MAX_OBJECTS];
187  tivx_tensor_t tensor[TIVX_TENSOR_MAX_OBJECTS];
189  vx_bool isTensorUse[TIVX_TENSOR_MAX_OBJECTS];
192  tivx_parameter_t parameter[TIVX_PARAMETER_MAX_OBJECTS];
194  vx_bool isParameterUse[TIVX_PARAMETER_MAX_OBJECTS];
196  tivx_data_ref_queue_t data_ref_q[TIVX_DATA_REF_Q_MAX_OBJECTS];
198  vx_bool isDataRefQUse[TIVX_DATA_REF_Q_MAX_OBJECTS];
200 } tivx_object_t;
201 
208 
215 
220 
225 
229 vx_status ownCheckUseFlag(vx_bool inUse[], uint32_t num_ele, uint32_t *error_index);
230 
234 void ownInitUseFlag(vx_bool inUse[], uint32_t num_ele);
235 
236 #ifdef __cplusplus
237 }
238 #endif
239 
240 #endif
vx_bool
Kernel object internal state.
Definition: vx_kernel.h:60
The top level context data for the entire OpenVX instance.
Definition: vx_context.h:75
Delay object internal state.
Definition: vx_delay.h:47
Image object internal state.
int32_t vx_enum
vx_status ownObjectDeInit(void)
De-Initialize object module.
Image object internal state.
Definition: vx_image.h:56
vx_status ownObjectFree(vx_reference ref)
Free memory for a reference.
vx_enum vx_status
Distribution object internal state.
Lut object internal state.
Definition: vx_lut.h:39
#define TIVX_SUPER_NODE_MAX_OBJECTS
Max number super node objects supported.
Definition: tivx.h:156
Image object internal state.
struct _vx_reference * vx_reference
vx_status ownCheckUseFlag(vx_bool inUse[], uint32_t num_ele, uint32_t *error_index)
Check flag for if the element is in use.
vx_reference ownObjectAlloc(vx_enum reftype)
Alloc memory for a reference of specified type.
Remap object internal state.
Definition: vx_remap.h:37
Pyramid object internal state.
Definition: vx_pyramid.h:38
Structure to hold all framework objects.
Definition: tivx_objects.h:80
Convolution object internal state.
The top level data for graph object.
Definition: vx_graph.h:104
Scalar object internal state.
Definition: vx_scalar.h:39
object array internal state
Definition: vx_objarray.h:39
Parameter object internal state.
Definition: vx_parameter.h:39
User data object internal state.
Data Ref Queue internal state.
void ownInitUseFlag(vx_bool inUse[], uint32_t num_ele)
Initialize the array for flagging what is in use.
Meta Format object internal state.
The internal representation of the error object.
Definition: vx_error.h:35
The internal representation of a node.
Definition: vx_node.h:45
Threshold object internal state.
Definition: vx_threshold.h:39
Matrix object internal state.
Definition: vx_matrix.h:39
The top level TI OpenVX implementation header.
Array object internal state.
Definition: vx_array.h:54
vx_status ownObjectInit(void)
Initialize object module.
Tensor object internal state.
Definition: vx_tensor.h:101