24 #ifndef _OPENVX_API_H_
25 #define _OPENVX_API_H_
1846 #define vxFormatArrayPointer(ptr, index, stride) \
1847 (&(((vx_uint8*)(ptr))[(index) * (stride)]))
1857 #define vxArrayItem(type, ptr, index, stride) \
1858 (*(type *)(vxFormatArrayPointer((ptr), (index), (stride))))
struct _vx_image * vx_image
An opaque reference to an image.
vx_status VX_API_CALL vxReleaseArray(vx_array *arr)
Releases a reference of an Array object. The object may not be garbage collected until its total refe...
struct _vx_delay * vx_delay
The delay object. This is like a ring buffer of objects that is maintained by the OpenVX implementati...
vx_bool
A Boolean value. This allows 0 to be FALSE, as it is in C, and any non-zero to be TRUE...
vx_status VX_API_CALL vxGetRemapPoint(vx_remap table, vx_uint32 dst_x, vx_uint32 dst_y, vx_float32 *src_x, vx_float32 *src_y)
Retrieves the source pixel point from a destination pixel.
vx_threshold VX_API_CALL vxCreateThreshold(vx_context c, vx_enum thresh_type, vx_enum data_type)
Creates a reference to a threshold object of a given type.
vx_nodecomplete_f VX_API_CALL vxRetrieveNodeCallback(vx_node node)
Retrieves the current node callback function pointer set on the node.
vx_status VX_API_CALL vxQueryImage(vx_image image, vx_enum attribute, void *ptr, vx_size size)
Retrieves various attributes of an image.
vx_status VX_API_CALL vxAddParameterToGraph(vx_graph graph, vx_parameter parameter)
Adds the given parameter extracted from a vx_node to the graph.
vx_scalar VX_API_CALL vxCreateScalar(vx_context context, vx_enum data_type, const void *ptr)
Creates a reference to a scalar object. Also see Node Parameters.
vx_status VX_API_CALL vxWriteMatrix(vx_matrix mat, const void *array)
Sets the matrix data (copy)
vx_status VX_API_CALL vxSetGraphAttribute(vx_graph graph, vx_enum attribute, const void *ptr, vx_size size)
Allows the set to attributes on the Graph.
vx_status VX_API_CALL vxQueryConvolution(vx_convolution conv, vx_enum attribute, void *ptr, vx_size size)
Queries an attribute on the convolution matrix object.
vx_node VX_API_CALL vxCreateGenericNode(vx_graph graph, vx_kernel kernel)
Creates a reference to a node object for a given kernel.
struct _vx_array * vx_array
The Array Object. Array is a strongly-typed container for other data structures.
vx_kernel VX_API_CALL vxAddKernel(vx_context context, const vx_char name[VX_MAX_KERNEL_NAME], vx_enum enumeration, vx_kernel_f func_ptr, vx_uint32 numParams, vx_kernel_input_validate_f input, vx_kernel_output_validate_f output, vx_kernel_initialize_f init, vx_kernel_deinitialize_f deinit)
Allows users to add custom kernels to the known kernel database in OpenVX at run-time. This would primarily be used by the module function vxPublishKernels.
vx_status VX_API_CALL vxQueryDelay(vx_delay delay, vx_enum attribute, void *ptr, vx_size size)
Queries a vx_delay object attribute.
vx_status VX_API_CALL vxReleaseDistribution(vx_distribution *distribution)
Releases a reference to a distribution object. The object may not be garbage collected until its tota...
vx_kernel VX_API_CALL vxGetKernelByEnum(vx_context context, vx_enum kernel)
Obtains a reference to the kernel using the vx_kernel_e enumeration.
vx_status(VX_CALLBACK * vx_kernel_f)(vx_node node, const vx_reference *parameters, vx_uint32 num)
The pointer to the Host side kernel.
int16_t vx_int16
A 16-bit signed value.
size_t vx_size
A wrapper of size_t to keep the naming convention uniform.
vx_status VX_API_CALL vxSetNodeAttribute(vx_node node, vx_enum attribute, const void *ptr, vx_size size)
Allows a user to set attribute of a node before Graph Validation.
vx_parameter VX_API_CALL vxGetGraphParameterByIndex(vx_graph graph, vx_uint32 index)
Retrieves a vx_parameter from a vx_graph.
vx_status VX_API_CALL vxReleaseDelay(vx_delay *delay)
Releases a reference to a delay object. The object may not be garbage collected until its total refer...
vx_pyramid VX_API_CALL vxCreatePyramid(vx_context context, vx_size levels, vx_float32 scale, vx_uint32 width, vx_uint32 height, vx_df_image format)
Creates a reference to a pyramid object of the supplied number of levels.
vx_status VX_API_CALL vxSetImageAttribute(vx_image image, vx_enum attribute, const void *ptr, vx_size size)
Allows setting attributes on the image.
vx_kernel VX_API_CALL vxGetKernelByName(vx_context context, const vx_char *name)
Obtains a reference to a kernel using a string to specify the name.
int32_t vx_enum
Sets the standard enumeration type size to be a fixed quantity.
struct _vx_threshold * vx_threshold
The Threshold Object. A thresholding object contains the types and limit values of the thresholding r...
struct _vx_distribution * vx_distribution
The Distribution object. This has a user-defined number of bins over a user-defined range (within a u...
vx_status VX_API_CALL vxAccessArrayRange(vx_array arr, vx_size start, vx_size end, vx_size *stride, void **ptr, vx_enum usage)
Grants access to a sub-range of an Array. The number of elements in the sub-range is given by (end - ...
vx_reference VX_API_CALL vxGetReferenceFromDelay(vx_delay delay, vx_int32 index)
Retrieves a reference from a delay object.
vx_status VX_API_CALL vxQueryMatrix(vx_matrix mat, vx_enum attribute, void *ptr, vx_size size)
Queries an attribute on the matrix object.
vx_status VX_API_CALL vxQueryGraph(vx_graph graph, vx_enum attribute, void *ptr, vx_size size)
Allows the user to query attributes of the Graph.
vx_status VX_API_CALL vxReleaseScalar(vx_scalar *scalar)
Releases a reference to a scalar object. The object may not be garbage collected until its total refe...
struct _vx_parameter * vx_parameter
An opaque reference to a single parameter.
int32_t vx_int32
A 32-bit signed value.
vx_status VX_API_CALL vxReleaseLUT(vx_lut *lut)
Releases a reference to a LUT object. The object may not be garbage collected until its total referen...
vx_status VX_API_CALL vxSetConvolutionAttribute(vx_convolution conv, vx_enum attribute, const void *ptr, vx_size size)
Sets attributes on the convolution object.
vx_status VX_API_CALL vxAccessLUT(vx_lut lut, void **ptr, vx_enum usage)
Grants access to a LUT table and increments the object reference count in case of success...
vx_image VX_API_CALL vxCreateImageFromHandle(vx_context context, vx_df_image color, vx_imagepatch_addressing_t addrs[], void *ptrs[], vx_enum import_type)
Creates a reference to an image object that was externally allocated.
vx_action(VX_CALLBACK * vx_nodecomplete_f)(vx_node node)
A callback to the client after a particular node has completed.
vx_status VX_API_CALL vxQueryReference(vx_reference ref, vx_enum attribute, void *ptr, vx_size size)
Queries any reference type for some basic information (count, type).
vx_status VX_API_CALL vxProcessGraph(vx_graph graph)
This function causes the synchronous processing of a graph. If the graph has not been verified...
vx_size VX_API_CALL vxComputeImagePatchSize(vx_image image, const vx_rectangle_t *rect, vx_uint32 plane_index)
This computes the size needed to retrieve an image patch from an image.
char vx_char
An 8 bit ASCII character.
vx_bool VX_API_CALL vxIsGraphVerified(vx_graph graph)
Returns a Boolean to indicate the state of graph verification.
float vx_float32
A 32-bit float value.
vx_status VX_API_CALL vxReleaseContext(vx_context *context)
Releases the OpenVX object context.
vx_status VX_API_CALL vxReadMatrix(vx_matrix mat, void *array)
Gets the matrix data (copy).
vx_pyramid VX_API_CALL vxCreateVirtualPyramid(vx_graph graph, vx_size levels, vx_float32 scale, vx_uint32 width, vx_uint32 height, vx_df_image format)
Creates a reference to a virtual pyramid object of the supplied number of levels. ...
vx_enum vx_status
A formal status type with known fixed size.
vx_status VX_API_CALL vxQueryRemap(vx_remap r, vx_enum attribute, void *ptr, vx_size size)
Queries attributes from a Remap table.
vx_status VX_API_CALL vxRemoveKernel(vx_kernel kernel)
Removes a non-finalized vx_kernel from the vx_context and releases it. Once a vx_kernel has been fina...
vx_status VX_API_CALL vxQueryScalar(vx_scalar scalar, vx_enum attribute, void *ptr, vx_size size)
Queries attributes from a scalar.
struct _vx_context * vx_context
An opaque reference to the implementation context.
struct _vx_meta_format * vx_meta_format
This object is used by output validation functions to specify the meta data of the expected output da...
vx_status VX_API_CALL vxSetKernelAttribute(vx_kernel kernel, vx_enum attribute, const void *ptr, vx_size size)
Sets kernel attributes.
vx_status VX_API_CALL vxQueryThreshold(vx_threshold thresh, vx_enum attribute, void *ptr, vx_size size)
Queries an attribute on the threshold object.
vx_array VX_API_CALL vxCreateVirtualArray(vx_graph graph, vx_enum item_type, vx_size capacity)
Creates an opaque reference to a virtual Array with no direct user access.
vx_status VX_API_CALL vxCommitImagePatch(vx_image image, vx_rectangle_t *rect, vx_uint32 plane_index, vx_imagepatch_addressing_t *addr, const void *ptr)
This allows the User to commit a rectangular patch (subset) of an image from a single plane...
void(VX_CALLBACK * vx_log_callback_f)(vx_context context, vx_reference ref, vx_status status, const vx_char string[])
The log callback function.
struct _vx_reference * vx_reference
A generic opaque reference to any object within OpenVX.
vx_parameter VX_API_CALL vxGetKernelParameterByIndex(vx_kernel kernel, vx_uint32 index)
Retrieves a vx_parameter from a vx_kernel.
vx_status VX_API_CALL vxQueryContext(vx_context context, vx_enum attribute, void *ptr, vx_size size)
Queries the context for some specific information.
uint32_t vx_df_image
Used to hold a VX_DF_IMAGE code to describe the pixel format and color space.
vx_status VX_API_CALL vxQueryDistribution(vx_distribution distribution, vx_enum attribute, void *ptr, vx_size size)
Queries a Distribution object.
vx_convolution VX_API_CALL vxCreateConvolution(vx_context context, vx_size columns, vx_size rows)
Creates a reference to a convolution matrix object.
The addressing image patch structure is used by the Host only to address pixels in an image patch...
vx_image VX_API_CALL vxCreateImage(vx_context context, vx_uint32 width, vx_uint32 height, vx_df_image color)
Creates an opaque reference to an image buffer.
vx_status VX_API_CALL vxTruncateArray(vx_array arr, vx_size new_num_items)
Truncates an Array (remove items from the end).
vx_enum VX_API_CALL vxRegisterUserStruct(vx_context context, vx_size size)
Registers user-defined structures to the context.
vx_status(VX_CALLBACK * vx_kernel_deinitialize_f)(vx_node node, const vx_reference *parameters, vx_uint32 num)
The pointer to the kernel deinitializer. If the host code requires a call to deinitialize data during...
vx_status VX_API_CALL vxAgeDelay(vx_delay delay)
Ages the internal delay ring by one. This means that once this API is called the reference from index...
vx_image VX_API_CALL vxCreateUniformImage(vx_context context, vx_uint32 width, vx_uint32 height, vx_df_image color, const void *value)
Creates a reference to an image object that has a singular, uniform value in all pixels.
vx_status VX_API_CALL vxWaitGraph(vx_graph graph)
Waits for a specific graph to complete. If the graph has been scheduled multiple times since the last...
vx_status VX_API_CALL vxCommitDistribution(vx_distribution distribution, const void *ptr)
Commits the distribution objec> and decrements the object reference count in case of success...
vx_status VX_API_CALL vxAccessDistribution(vx_distribution distribution, void **ptr, vx_enum usage)
Grants access to a distribution object and increments the object reference count in case of success...
vx_status VX_API_CALL vxReadConvolutionCoefficients(vx_convolution conv, vx_int16 *array)
Gets the convolution data (copy).
vx_status VX_API_CALL vxReleaseGraph(vx_graph *graph)
Releases a reference to a graph. The object may not be garbage collected until its total reference co...
vx_status VX_API_CALL vxHint(vx_reference reference, vx_enum hint)
Provides a generic API to give platform-specific hints to the implementation.
struct _vx_pyramid * vx_pyramid
The Image Pyramid object. A set of scaled images.
vx_status VX_API_CALL vxQueryParameter(vx_parameter param, vx_enum attribute, void *ptr, vx_size size)
Allows the client to query a parameter to determine its meta-information.
vx_status VX_API_CALL vxWriteConvolutionCoefficients(vx_convolution conv, const vx_int16 *array)
Sets the convolution data (copy)
struct _vx_kernel * vx_kernel
An opaque reference to the descriptor of a kernel.
vx_status VX_API_CALL vxQueryArray(vx_array arr, vx_enum attribute, void *ptr, vx_size size)
Queries the Array for some specific information.
void VX_API_CALL vxAddLogEntry(vx_reference ref, vx_status status, const char *message,...)
Adds a line to the log.
void VX_API_CALL vxRegisterLogCallback(vx_context context, vx_log_callback_f callback, vx_bool reentrant)
Registers a callback facility to the OpenVX implementation to receive error logs. ...
vx_parameter VX_API_CALL vxGetParameterByIndex(vx_node node, vx_uint32 index)
Retrieves a vx_parameter from a vx_node.
vx_status VX_API_CALL vxReleaseRemap(vx_remap *table)
Releases a reference to a remap table object. The object may not be garbage collected until its total...
vx_status VX_API_CALL vxReleaseKernel(vx_kernel *kernel)
Release the reference to the kernel. The object may not be garbage collected until its total referenc...
vx_status VX_API_CALL vxAssignNodeCallback(vx_node node, vx_nodecomplete_f callback)
Assigns a callback to a node. If a callback already exists in this node, this function must return an...
vx_status VX_API_CALL vxQueryNode(vx_node node, vx_enum attribute, void *ptr, vx_size size)
Allows a user to query information out of a node.
The rectangle data structure that is shared with the users.
vx_status VX_API_CALL vxSetParameterByReference(vx_parameter parameter, vx_reference value)
Associates a parameter reference and a data reference with a kernel on a node.
vx_status VX_API_CALL vxWriteScalarValue(vx_scalar ref, const void *ptr)
Sets the scalar value in a reference.
vx_status VX_API_CALL vxReleaseThreshold(vx_threshold *thresh)
Releases a reference to a threshold object. The object may not be garbage collected until its total r...
vx_status VX_API_CALL vxQueryKernel(vx_kernel kernel, vx_enum attribute, void *ptr, vx_size size)
This allows the client to query the kernel to get information about the number of parameters...
vx_distribution VX_API_CALL vxCreateDistribution(vx_context context, vx_size numBins, vx_int32 offset, vx_uint32 range)
Creates a reference to a 1D Distribution of a consecutive interval [offset, offset + range - 1] defin...
vx_status VX_API_CALL vxLoadKernels(vx_context context, const vx_char *module)
Loads one or more kernels into the OpenVX context. This is the interface by which OpenVX is extensibl...
vx_status(VX_CALLBACK * vx_kernel_initialize_f)(vx_node node, const vx_reference *parameters, vx_uint32 num)
The pointer to the kernel initializer. If the host code requires a call to initialize data once all t...
vx_status VX_API_CALL vxFinalizeKernel(vx_kernel kernel)
This API is called after all parameters have been added to the kernel and the kernel is ready to be u...
vx_status VX_API_CALL vxCommitLUT(vx_lut lut, const void *ptr)
Commits the Lookup Table and decrements the object reference count in case of success.
void *VX_API_CALL vxFormatImagePatchAddress1d(void *ptr, vx_uint32 index, const vx_imagepatch_addressing_t *addr)
Accesses a specific indexed pixel in an image patch.
vx_status VX_API_CALL vxSetContextAttribute(vx_context context, vx_enum attribute, const void *ptr, vx_size size)
Sets an attribute on the context.
vx_lut VX_API_CALL vxCreateLUT(vx_context context, vx_enum data_type, vx_size count)
Creates LUT object of a given type.
vx_status VX_API_CALL vxGetValidRegionImage(vx_image image, vx_rectangle_t *rect)
Retrieves the valid region of the image as a rectangle.
vx_delay VX_API_CALL vxCreateDelay(vx_context context, vx_reference exemplar, vx_size slots)
Creates a Delay object.
vx_status VX_API_CALL vxSetRemapPoint(vx_remap table, vx_uint32 dst_x, vx_uint32 dst_y, vx_float32 src_x, vx_float32 src_y)
Assigns a destination pixel mapping to the source pixel.
vx_status VX_API_CALL vxSetThresholdAttribute(vx_threshold thresh, vx_enum attribute, const void *ptr, vx_size size)
Sets attributes on the threshold object.
struct _vx_convolution * vx_convolution
The Convolution Object. A user-defined convolution kernel of MxM elements.
vx_status VX_API_CALL vxQueryLUT(vx_lut lut, vx_enum attribute, void *ptr, vx_size size)
Queries attributes from a LUT.
#define VX_MAX_KERNEL_NAME
Defines the maximum string length of a kernel name to be added to OpenVX.
struct _vx_remap * vx_remap
The remap table Object. A remap table contains per-pixel mapping of output pixels to input pixels...
uint32_t vx_uint32
A 32-bit unsigned value.
vx_graph VX_API_CALL vxCreateGraph(vx_context context)
Creates an empty graph.
vx_status VX_API_CALL vxQueryPyramid(vx_pyramid pyr, vx_enum attribute, void *ptr, vx_size size)
Queries an attribute from an image pyramid.
vx_status(VX_CALLBACK * vx_kernel_output_validate_f)(vx_node node, vx_uint32 index, vx_meta_format meta)
The user-defined kernel node output parameter validation function. The function only needs to fill in...
vx_status(VX_CALLBACK * vx_kernel_input_validate_f)(vx_node node, vx_uint32 index)
The user-defined kernel node input parameter validation function.
vx_array VX_API_CALL vxCreateArray(vx_context context, vx_enum item_type, vx_size capacity)
Creates a reference to an Array object.
vx_status VX_API_CALL vxCommitArrayRange(vx_array arr, vx_size start, vx_size end, const void *ptr)
Commits data back to the Array object.
vx_status VX_API_CALL vxReadScalarValue(vx_scalar ref, void *ptr)
Gets the scalar value out of a reference.
vx_status VX_API_CALL vxDirective(vx_reference reference, vx_enum directive)
Provides a generic API to give platform-specific directives to the implementations.
vx_status VX_API_CALL vxVerifyGraph(vx_graph graph)
Verifies the state of the graph before it is executed. This is useful to catch programmer errors and ...
vx_status VX_API_CALL vxScheduleGraph(vx_graph graph)
Schedules a graph for future execution.
vx_context VX_API_CALL vxCreateContext()
Creates a vx_context.
vx_status VX_API_CALL vxReleaseParameter(vx_parameter *param)
Releases a reference to a parameter object. The object may not be garbage collected until its total r...
struct _vx_graph * vx_graph
An opaque reference to a graph.
vx_status VX_API_CALL vxRemoveNode(vx_node *node)
Removes a Node from its parent Graph and releases it.
vx_status VX_API_CALL vxReleaseNode(vx_node *node)
Releases a reference to a Node object. The object may not be garbage collected until its total refere...
vx_status VX_API_CALL vxReleasePyramid(vx_pyramid *pyr)
Releases a reference to a pyramid object. The object may not be garbage collected until its total ref...
vx_image VX_API_CALL vxCreateImageFromROI(vx_image img, const vx_rectangle_t *rect)
Creates an image from another image given a rectangle. This second reference refers to the data in th...
struct _vx_node * vx_node
An opaque reference to a kernel node.
vx_status VX_API_CALL vxReleaseImage(vx_image *image)
Releases a reference to an image object. The object may not be garbage collected until its total refe...
vx_context VX_API_CALL vxGetContext(vx_reference reference)
Retrieves the context from any reference from within a context.
vx_status VX_API_CALL vxSetParameterByIndex(vx_node node, vx_uint32 index, vx_reference value)
Sets the specified parameter data for a kernel on the node.
vx_image VX_API_CALL vxGetPyramidLevel(vx_pyramid pyr, vx_uint32 index)
Retrieves a level of the pyramid as a vx_image, which can be used elsewhere in OpenVX. A call to vxReleaseImage is necessary to release an image for each call of vxGetPyramidLevel.
vx_remap VX_API_CALL vxCreateRemap(vx_context context, vx_uint32 src_width, vx_uint32 src_height, vx_uint32 dst_width, vx_uint32 dst_height)
Creates a remap table object.
vx_status VX_API_CALL vxAddParameterToKernel(vx_kernel kernel, vx_uint32 index, vx_enum dir, vx_enum data_type, vx_enum state)
Allows users to set the signatures of the custom kernel.
vx_status VX_API_CALL vxSetMetaFormatAttribute(vx_meta_format meta, vx_enum attribute, const void *ptr, vx_size size)
This function allows a user to set the attributes of a vx_meta_format object in a kernel output valid...
vx_image VX_API_CALL vxCreateVirtualImage(vx_graph graph, vx_uint32 width, vx_uint32 height, vx_df_image color)
Creates an opaque reference to an image buffer with no direct user access. This function allows setti...
struct _vx_matrix * vx_matrix
The Matrix Object. An MxN matrix of some unit type.
vx_status VX_API_CALL vxSetGraphParameterByIndex(vx_graph graph, vx_uint32 index, vx_reference value)
Sets a reference to the parameter on the graph. The implementation must set this parameter on the ori...
void *VX_API_CALL vxFormatImagePatchAddress2d(void *ptr, vx_uint32 x, vx_uint32 y, const vx_imagepatch_addressing_t *addr)
Accesses a specific pixel at a 2d coordinate in an image patch.
struct _vx_scalar * vx_scalar
An opaque reference to a scalar.
vx_status VX_API_CALL vxAccessImagePatch(vx_image image, const vx_rectangle_t *rect, vx_uint32 plane_index, vx_imagepatch_addressing_t *addr, void **ptr, vx_enum usage)
Allows the User to extract a rectangular patch (subset) of an image from a single plane...
vx_status VX_API_CALL vxReleaseMatrix(vx_matrix *mat)
Releases a reference to a matrix object. The object may not be garbage collected until its total refe...
struct _vx_lut * vx_lut
The Look-Up Table (LUT) Object.
vx_status VX_API_CALL vxGetStatus(vx_reference reference)
Provides a generic API to return status values from Object constructors if they fail.
vx_matrix VX_API_CALL vxCreateMatrix(vx_context c, vx_enum data_type, vx_size columns, vx_size rows)
Creates a reference to a matrix object.
vx_status VX_API_CALL vxReleaseConvolution(vx_convolution *conv)
Releases the reference to a convolution matrix. The object may not be garbage collected until its tot...
vx_status VX_API_CALL vxAddArrayItems(vx_array arr, vx_size count, const void *ptr, vx_size stride)
Adds items to the Array.