/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-mivisionx/checkouts/latest/amd_openvx/openvx/include/VX/vx_api.h File Reference

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-mivisionx/checkouts/latest/amd_openvx/openvx/include/VX/vx_api.h File Reference#

MIVisionX: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-mivisionx/checkouts/latest/amd_openvx/openvx/include/VX/vx_api.h File Reference
vx_api.h File Reference

The API definition for OpenVX. More...

Go to the source code of this file.

Macros

#define vxFormatArrayPointer(ptr, index, stride)    (&(((vx_uint8*)(ptr))[(index) * (stride)]))
 Accesses a specific indexed element in an array. More...
 
#define vxArrayItem(type, ptr, index, stride)    (*(type *)(vxFormatArrayPointer((ptr), (index), (stride))))
 Allows access to an array item as a typecast pointer deference. More...
 

Functions

VX_API_ENTRY vx_context VX_API_CALL vxCreateContext (void)
 Creates a vx_context. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxReleaseContext (vx_context *context)
 Releases the OpenVX object context. More...
 
VX_API_ENTRY vx_context VX_API_CALL vxGetContext (vx_reference reference)
 Retrieves the context from any reference from within a context. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryContext (vx_context context, vx_enum attribute, void *ptr, vx_size size)
 Queries the context for some specific information. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSetContextAttribute (vx_context context, vx_enum attribute, const void *ptr, vx_size size)
 Sets an attribute on the context. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxHint (vx_reference reference, vx_enum hint, const void *data, vx_size data_size)
 Provides a generic API to give platform-specific hints to the implementation. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxDirective (vx_reference reference, vx_enum directive)
 Provides a generic API to give platform-specific directives to the implementations. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxGetStatus (vx_reference reference)
 Provides a generic API to return status values from Object constructors if they fail. More...
 
VX_API_ENTRY vx_enum VX_API_CALL vxRegisterUserStruct (vx_context context, vx_size size)
 Registers user-defined structures to the context. More...
 
VX_API_ENTRY vx_enum VX_API_CALL vxRegisterUserStructWithName (vx_context context, vx_size size, const vx_char *type_name)
 Registers user-defined structures to the context, and associates a name to it. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxGetUserStructNameByEnum (vx_context context, vx_enum user_struct_type, vx_char *type_name, vx_size name_size)
 Returns the name of the user-defined structure associated with the enumeration given. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxGetUserStructEnumByName (vx_context context, const vx_char *type_name, vx_enum *user_struct_type)
 Returns the enum of the user-defined structure associated with the name given. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxAllocateUserKernelId (vx_context context, vx_enum *pKernelEnumId)
 Allocates and registers user-defined kernel enumeration to a context. The allocated enumeration is from available pool of 4096 enumerations reserved for dynamic allocation from VX_KERNEL_BASE(VX_ID_USER,0). More...
 
VX_API_ENTRY vx_status VX_API_CALL vxAllocateUserKernelLibraryId (vx_context context, vx_enum *pLibraryId)
 Allocates and registers user-defined kernel library ID to a context. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSetImmediateModeTarget (vx_context context, vx_enum target_enum, const char *target_string)
 Sets the default target of the immediate mode. Upon successful execution of this function any future execution of immediate mode function is attempted on the new default target of the context. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY 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 the original image. Updates to this image updates the parent image. The rectangle must be defined within the pixel space of the parent image. More...
 
VX_API_ENTRY vx_image VX_API_CALL vxCreateUniformImage (vx_context context, vx_uint32 width, vx_uint32 height, vx_df_image color, const vx_pixel_value_t *value)
 Creates a reference to an image object that has a singular, uniform value in all pixels. The uniform image created is read-only. More...
 
VX_API_ENTRY 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 setting the image width, height, or format. More...
 
VX_API_ENTRY vx_image VX_API_CALL vxCreateImageFromHandle (vx_context context, vx_df_image color, const vx_imagepatch_addressing_t addrs[], void *const ptrs[], vx_enum memory_type)
 Creates a reference to an image object that was externally allocated. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSwapImageHandle (vx_image image, void *const new_ptrs[], void *prev_ptrs[], vx_size num_planes)
 Swaps the image handle of an image previously created from handle. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryImage (vx_image image, vx_enum attribute, void *ptr, vx_size size)
 Retrieves various attributes of an image. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSetImageAttribute (vx_image image, vx_enum attribute, const void *ptr, vx_size size)
 Allows setting attributes on the image. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSetImagePixelValues (vx_image image, const vx_pixel_value_t *pixel_value)
 Initialize an image with the given pixel value. More...
 
VX_API_ENTRY 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 reference count is zero. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxGetValidRegionImage (vx_image image, vx_rectangle_t *rect)
 Retrieves the valid region of the image as a rectangle. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxCopyImagePatch (vx_image image, const vx_rectangle_t *image_rect, vx_uint32 image_plane_index, const vx_imagepatch_addressing_t *user_addr, void *user_ptr, vx_enum usage, vx_enum user_mem_type)
 Allows the application to copy a rectangular patch from/into an image object plane. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxMapImagePatch (vx_image image, const vx_rectangle_t *rect, vx_uint32 plane_index, vx_map_id *map_id, vx_imagepatch_addressing_t *addr, void **ptr, vx_enum usage, vx_enum mem_type, vx_uint32 flags)
 Allows the application to get direct access to a rectangular patch of an image object plane. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxUnmapImagePatch (vx_image image, vx_map_id map_id)
 Unmap and commit potential changes to a image object patch that were previously mapped. Unmapping an image patch invalidates the memory location from which the patch could be accessed by the application. Accessing this memory location after the unmap function completes has an undefined behavior. More...
 
VX_API_ENTRY vx_image VX_API_CALL vxCreateImageFromChannel (vx_image img, vx_enum channel)
 Create a sub-image from a single plane channel of another image. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSetImageValidRectangle (vx_image image, const vx_rectangle_t *rect)
 Sets the valid rectangle for an image according to a supplied rectangle. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxRegisterKernelLibrary (vx_context context, const vx_char *module, vx_publish_kernels_f publish, vx_unpublish_kernels_f unpublish)
 Registers a module with kernels in a context. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxLoadKernels (vx_context context, const vx_char *module)
 Loads a library of kernels, called module, into a context. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxUnloadKernels (vx_context context, const vx_char *module)
 Unloads all kernels from the OpenVX context that had been loaded from the module using the vxLoadKernels function. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY vx_kernel VX_API_CALL vxGetKernelByEnum (vx_context context, vx_enum kernel)
 Obtains a reference to the kernel using the vx_kernel_e enumeration. More...
 
VX_API_ENTRY 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, enum values, etc. More...
 
VX_API_ENTRY 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 reference count is zero. More...
 
VX_API_ENTRY vx_kernel VX_API_CALL vxAddUserKernel (vx_context context, const vx_char name[VX_MAX_KERNEL_NAME], vx_enum enumeration, vx_kernel_f func_ptr, vx_uint32 numParams, vx_kernel_validate_f validate, vx_kernel_initialize_f init, vx_kernel_deinitialize_f deinit)
 Allows users to add custom kernels to a context at run-time. More...
 
VX_API_ENTRY 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 used. Notice that the reference to the kernel created by vxAddUserKernel is still valid after the call to vxFinalizeKernel. If an error occurs, the kernel is not available for usage by the clients of OpenVX. Typically this is due to a mismatch between the number of parameters requested and given. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxRemoveKernel (vx_kernel kernel)
 Removes a custom kernel from its context and releases it. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSetKernelAttribute (vx_kernel kernel, vx_enum attribute, const void *ptr, vx_size size)
 Sets kernel attributes. More...
 
VX_API_ENTRY vx_parameter VX_API_CALL vxGetKernelParameterByIndex (vx_kernel kernel, vx_uint32 index)
 Retrieves a vx_parameter from a vx_kernel. More...
 
VX_API_ENTRY vx_graph VX_API_CALL vxCreateGraph (vx_context context)
 Creates an empty graph. More...
 
VX_API_ENTRY 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 count is zero. Once the reference count is zero, all node references in the graph are automatically released as well. Releasing the graph will only release the nodes if the nodes were not previously released by the application. Data referenced by those nodes may not be released as the user may still have references to the data. More...
 
VX_API_ENTRY 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 contract errors. If not verified, the graph verifies before being processed. More...
 
VX_API_ENTRY 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, then the implementation verifies the graph immediately. If verification fails this function returns a status identical to what vxVerifyGraph would return. After the graph verfies successfully then processing occurs. If the graph was previously verified via vxVerifyGraph or vxProcessGraph then the graph is processed. This function blocks until the graph is completed. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxScheduleGraph (vx_graph graph)
 Schedules a graph for future execution. If the graph has not been verified, then the implementation verifies the graph immediately. If verification fails this function returns a status identical to what vxVerifyGraph would return. After the graph verfies successfully then processing occurs. If the graph was previously verified via vxVerifyGraph or vxProcessGraph then the graph is processed. More...
 
VX_API_ENTRY 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 call to vxWaitGraph, then vxWaitGraph returns only when the last scheduled execution completes. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSetGraphAttribute (vx_graph graph, vx_enum attribute, const void *ptr, vx_size size)
 Allows the attributes of the Graph to be set to the provided value. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxAddParameterToGraph (vx_graph graph, vx_parameter parameter)
 Adds the given parameter extracted from a vx_node to the graph. More...
 
VX_API_ENTRY 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 originating node as well. More...
 
VX_API_ENTRY vx_parameter VX_API_CALL vxGetGraphParameterByIndex (vx_graph graph, vx_uint32 index)
 Retrieves a vx_parameter from a vx_graph. More...
 
VX_API_ENTRY vx_bool VX_API_CALL vxIsGraphVerified (vx_graph graph)
 Returns a Boolean to indicate the state of graph verification. More...
 
VX_API_ENTRY vx_node VX_API_CALL vxCreateGenericNode (vx_graph graph, vx_kernel kernel)
 Creates a reference to a node object for a given kernel. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY 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 reference count is zero. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxRemoveNode (vx_node *node)
 Removes a Node from its parent Graph and releases it. More...
 
VX_API_ENTRY 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 error and the user may clear the callback by passing a NULL pointer as the callback. More...
 
VX_API_ENTRY vx_nodecomplete_f VX_API_CALL vxRetrieveNodeCallback (vx_node node)
 Retrieves the current node callback function pointer set on the node. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSetNodeTarget (vx_node node, vx_enum target_enum, const char *target_string)
 Sets the node target to the provided value. A success invalidates the graph that the node belongs to (vxVerifyGraph must be called before the next execution) More...
 
VX_API_ENTRY vx_status VX_API_CALL vxReplicateNode (vx_graph graph, vx_node first_node, vx_bool replicate[], vx_uint32 number_of_parameters)
 Creates replicas of the same node first_node to process a set of objects stored in vx_pyramid or vx_object_array. first_node needs to have as parameter levels 0 of a vx_pyramid or the index 0 of a vx_object_array. Replica nodes are not accessible by the application through any means. An application request for removal of first_node from the graph will result in removal of all replicas. Any change of parameter or attribute of first_node will be propagated to the replicas. vxVerifyGraph shall enforce consistency of parameters and attributes in the replicas. More...
 
VX_API_ENTRY vx_parameter VX_API_CALL vxGetParameterByIndex (vx_node node, vx_uint32 index)
 Retrieves a vx_parameter from a vx_node. More...
 
VX_API_ENTRY 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 reference count is zero. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryParameter (vx_parameter parameter, vx_enum attribute, void *ptr, vx_size size)
 Allows the client to query a parameter to determine its meta-information. More...
 
VX_API_ENTRY 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 sub_node_parameters. More...
 
VX_API_ENTRY vx_scalar VX_API_CALL vxCreateScalarWithSize (vx_context context, vx_enum data_type, const void *ptr, vx_size size)
 Creates a reference to a scalar object. Also see sub_node_parameters. More...
 
VX_API_ENTRY vx_scalar VX_API_CALL vxCreateVirtualScalar (vx_graph graph, vx_enum data_type)
 Creates an opaque reference to a scalar object with no direct user access. More...
 
VX_API_ENTRY 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 reference count is zero. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryScalar (vx_scalar scalar, vx_enum attribute, void *ptr, vx_size size)
 Queries attributes from a scalar. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxCopyScalar (vx_scalar scalar, void *user_ptr, vx_enum usage, vx_enum user_mem_type)
 Allows the application to copy from/into a scalar object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxCopyScalarWithSize (vx_scalar scalar, vx_size size, void *user_ptr, vx_enum usage, vx_enum user_mem_type)
 Allows the application to copy from/into a scalar object with size. More...
 
VX_API_ENTRY 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 like count or type. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxReleaseReference (vx_reference *ref_ptr)
 Releases a reference. The reference may potentially refer to multiple OpenVX objects of different types. This function can be used instead of calling a specific release function for each individual object type (e.g. vxRelease<object>). The object will not be destroyed until its total reference count is zero. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxRetainReference (vx_reference ref)
 Increments the reference counter of an object This function is used to express the fact that the OpenVX object is referenced multiple times by an application. Each time this function is called for an object, the application will need to release the object one additional time before it can be destructed. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSetReferenceName (vx_reference ref, const vx_char *name)
 Name a reference. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryDelay (vx_delay delay, vx_enum attribute, void *ptr, vx_size size)
 Queries a vx_delay object attribute. More...
 
VX_API_ENTRY 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 reference count is zero. More...
 
VX_API_ENTRY vx_delay VX_API_CALL vxCreateDelay (vx_context context, vx_reference exemplar, vx_size num_slots)
 Creates a Delay object. More...
 
VX_API_ENTRY vx_reference VX_API_CALL vxGetReferenceFromDelay (vx_delay delay, vx_int32 index)
 Retrieves a reference to a delay slot object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxAgeDelay (vx_delay delay)
 Shifts the internal delay ring by one. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxRegisterAutoAging (vx_graph graph, vx_delay delay)
 Register a delay for auto-aging. More...
 
VX_API_ENTRY void VX_API_CALL vxAddLogEntry (vx_reference ref, vx_status status, const char *message,...)
 Adds a line to the log. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY vx_lut VX_API_CALL vxCreateLUT (vx_context context, vx_enum data_type, vx_size count)
 Creates LUT object of a given type. The value of VX_LUT_OFFSET is equal to 0 for data_type = VX_TYPE_UINT8, and (vx_uint32)(count/2) for VX_TYPE_INT16. More...
 
VX_API_ENTRY vx_lut VX_API_CALL vxCreateVirtualLUT (vx_graph graph, vx_enum data_type, vx_size count)
 Creates an opaque reference to a LUT object with no direct user access. More...
 
VX_API_ENTRY 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 reference count is zero. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryLUT (vx_lut lut, vx_enum attribute, void *ptr, vx_size size)
 Queries attributes from a LUT. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxCopyLUT (vx_lut lut, void *user_ptr, vx_enum usage, vx_enum user_mem_type)
 Allows the application to copy from/into a LUT object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxMapLUT (vx_lut lut, vx_map_id *map_id, void **ptr, vx_enum usage, vx_enum mem_type, vx_bitfield flags)
 Allows the application to get direct access to LUT object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxUnmapLUT (vx_lut lut, vx_map_id map_id)
 Unmap and commit potential changes to LUT object that was previously mapped. Unmapping a LUT invalidates the memory location from which the LUT data could be accessed by the application. Accessing this memory location after the unmap function completes has an undefined behavior. More...
 
VX_API_ENTRY 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] defined by a start offset and valid range, divided equally into numBins parts. More...
 
VX_API_ENTRY vx_distribution VX_API_CALL vxCreateVirtualDistribution (vx_graph graph, vx_size numBins, vx_int32 offset, vx_uint32 range)
 Creates an opaque reference to a 1D Distribution object without direct user access. More...
 
VX_API_ENTRY 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 total reference count is zero. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryDistribution (vx_distribution distribution, vx_enum attribute, void *ptr, vx_size size)
 Queries a Distribution object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxCopyDistribution (vx_distribution distribution, void *user_ptr, vx_enum usage, vx_enum user_mem_type)
 Allows the application to copy from/into a distribution object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxMapDistribution (vx_distribution distribution, vx_map_id *map_id, void **ptr, vx_enum usage, vx_enum mem_type, vx_bitfield flags)
 Allows the application to get direct access to distribution object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxUnmapDistribution (vx_distribution distribution, vx_map_id map_id)
 Unmap and commit potential changes to distribution object that was previously mapped. Unmapping a distribution invalidates the memory location from which the distribution data could be accessed by the application. Accessing this memory location after the unmap function completes has an undefined behavior. More...
 
VX_API_ENTRY vx_threshold VX_API_CALL vxCreateThresholdForImage (vx_context context, vx_enum thresh_type, vx_df_image input_format, vx_df_image output_format)
 Creates a threshold object and returns a reference to it. More...
 
VX_API_ENTRY vx_threshold VX_API_CALL vxCreateVirtualThresholdForImage (vx_graph graph, vx_enum thresh_type, vx_df_image input_format, vx_df_image output_format)
 Creates an opaque reference to a threshold object without direct user access. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxCopyThresholdValue (vx_threshold thresh, vx_pixel_value_t *value_ptr, vx_enum usage, vx_enum user_mem_type)
 Allows the application to copy the thresholding value from/into a threshold object with type VX_THRESHOLD_TYPE_BINARY. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxCopyThresholdRange (vx_threshold thresh, vx_pixel_value_t *lower_value_ptr, vx_pixel_value_t *upper_value_ptr, vx_enum usage, vx_enum user_mem_type)
 Allows the application to copy thresholding values from/into a threshold object with type VX_THRESHOLD_TYPE_RANGE. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxCopyThresholdOutput (vx_threshold thresh, vx_pixel_value_t *true_value_ptr, vx_pixel_value_t *false_value_ptr, vx_enum usage, vx_enum user_mem_type)
 Allows the application to copy the true and false output values from/into a threshold object. More...
 
VX_API_ENTRY 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 reference count is zero. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSetThresholdAttribute (vx_threshold thresh, vx_enum attribute, const void *ptr, vx_size size)
 Sets attributes on the threshold object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryThreshold (vx_threshold thresh, vx_enum attribute, void *ptr, vx_size size)
 Queries an attribute on the threshold object. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY vx_matrix VX_API_CALL vxCreateVirtualMatrix (vx_graph graph, vx_enum data_type, vx_size columns, vx_size rows)
 Creates an opaque reference to a matrix object without direct user access. More...
 
VX_API_ENTRY 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 reference count is zero. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryMatrix (vx_matrix mat, vx_enum attribute, void *ptr, vx_size size)
 Queries an attribute on the matrix object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxCopyMatrix (vx_matrix matrix, void *user_ptr, vx_enum usage, vx_enum user_mem_type)
 Allows the application to copy from/into a matrix object. More...
 
VX_API_ENTRY vx_matrix VX_API_CALL vxCreateMatrixFromPattern (vx_context context, vx_enum pattern, vx_size columns, vx_size rows)
 Creates a reference to a matrix object from a boolean pattern. More...
 
VX_API_ENTRY vx_matrix VX_API_CALL vxCreateMatrixFromPatternAndOrigin (vx_context context, vx_enum pattern, vx_size columns, vx_size rows, vx_size origin_col, vx_size origin_row)
 Creates a reference to a matrix object from a boolean pattern, with a user-specified origin. More...
 
VX_API_ENTRY vx_convolution VX_API_CALL vxCreateConvolution (vx_context context, vx_size columns, vx_size rows)
 Creates a reference to a convolution matrix object. More...
 
VX_API_ENTRY vx_convolution VX_API_CALL vxCreateVirtualConvolution (vx_graph graph, vx_size columns, vx_size rows)
 Creates an opaque reference to a convolution matrix object without direct user access. More...
 
VX_API_ENTRY 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 total reference count is zero. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSetConvolutionAttribute (vx_convolution conv, vx_enum attribute, const void *ptr, vx_size size)
 Sets attributes on the convolution object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxCopyConvolutionCoefficients (vx_convolution conv, void *user_ptr, vx_enum usage, vx_enum user_mem_type)
 Allows the application to copy coefficients from/into a convolution object. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY 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 reference count is zero. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryPyramid (vx_pyramid pyr, vx_enum attribute, void *ptr, vx_size size)
 Queries an attribute from an image pyramid. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY vx_remap VX_API_CALL vxCreateVirtualRemap (vx_graph graph, vx_uint32 src_width, vx_uint32 src_height, vx_uint32 dst_width, vx_uint32 dst_height)
 Creates an opaque reference to a remap table object without direct user access. More...
 
VX_API_ENTRY 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 reference count is zero. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxMapRemapPatch (vx_remap remap, const vx_rectangle_t *rect, vx_map_id *map_id, vx_size *stride_y, void **ptr, vx_enum coordinate_type, vx_enum usage, vx_enum mem_type)
 Allows the application to get direct access to a rectangular patch of a remap object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxUnmapRemapPatch (vx_remap remap, vx_map_id map_id)
 Unmap and commit potential changes to a remap object patch that was previously mapped. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxCopyRemapPatch (vx_remap remap, const vx_rectangle_t *rect, vx_size user_stride_y, void *user_ptr, vx_enum user_coordinate_type, vx_enum usage, vx_enum user_mem_type)
 Allows the application to copy a rectangular patch from/into a remap object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryRemap (vx_remap table, vx_enum attribute, void *ptr, vx_size size)
 Queries attributes from a Remap table. More...
 
VX_API_ENTRY vx_array VX_API_CALL vxCreateArray (vx_context context, vx_enum item_type, vx_size capacity)
 Creates a reference to an Array object. More...
 
VX_API_ENTRY 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. More...
 
VX_API_ENTRY 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 reference count is zero. After returning from this function the reference is zeroed. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryArray (vx_array arr, vx_enum attribute, void *ptr, vx_size size)
 Queries the Array for some specific information. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxAddArrayItems (vx_array arr, vx_size count, const void *ptr, vx_size stride)
 Adds items to the Array. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxTruncateArray (vx_array arr, vx_size new_num_items)
 Truncates an Array (remove items from the end). More...
 
VX_API_ENTRY vx_status VX_API_CALL vxCopyArrayRange (vx_array array, vx_size range_start, vx_size range_end, vx_size user_stride, void *user_ptr, vx_enum usage, vx_enum user_mem_type)
 Allows the application to copy a range from/into an array object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxMapArrayRange (vx_array array, vx_size range_start, vx_size range_end, vx_map_id *map_id, vx_size *stride, void **ptr, vx_enum usage, vx_enum mem_type, vx_uint32 flags)
 Allows the application to get direct access to a range of an array object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxUnmapArrayRange (vx_array array, vx_map_id map_id)
 Unmap and commit potential changes to an array object range that was previously mapped. Unmapping an array range invalidates the memory location from which the range could be accessed by the application. Accessing this memory location after the unmap function completes has an undefined behavior. More...
 
VX_API_ENTRY vx_object_array VX_API_CALL vxCreateObjectArray (vx_context context, vx_reference exemplar, vx_size count)
 Creates a reference to an ObjectArray of count objects. More...
 
VX_API_ENTRY vx_object_array VX_API_CALL vxCreateVirtualObjectArray (vx_graph graph, vx_reference exemplar, vx_size count)
 Creates an opaque reference to a virtual ObjectArray with no direct user access. More...
 
VX_API_ENTRY vx_reference VX_API_CALL vxGetObjectArrayItem (vx_object_array arr, vx_uint32 index)
 Retrieves the reference to the OpenVX Object in location index of the ObjectArray. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxReleaseObjectArray (vx_object_array *arr)
 Releases a reference of an ObjectArray object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryObjectArray (vx_object_array arr, vx_enum attribute, void *ptr, vx_size size)
 Queries an atribute from the ObjectArray. More...
 
VX_API_ENTRY 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 validator. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSetMetaFormatFromReference (vx_meta_format meta, vx_reference exemplar)
 Set a meta format object from an exemplar data object reference. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryMetaFormatAttribute (vx_meta_format meta, vx_enum attribute, void *ptr, vx_size size)
 This function allows a user to query the attributes of a vx_meta_format object in a kernel parameter. More...
 
VX_API_ENTRY vx_tensor VX_API_CALL vxCreateTensor (vx_context context, vx_size number_of_dims, const vx_size *dims, vx_enum data_type, vx_int8 fixed_point_position)
 Creates an opaque reference to a tensor data buffer. More...
 
VX_API_ENTRY vx_object_array VX_API_CALL vxCreateImageObjectArrayFromTensor (vx_tensor tensor, const vx_rectangle_t *rect, vx_size array_size, vx_size jump, vx_df_image image_format)
 Creates an array of images into the multi-dimension data, this can be adjacent 2D images or not depending on the stride value. The stride value is representing bytes in the third dimension. The OpenVX image object that points to a three dimension data and access it as an array of images. This has to be portion of the third lowest dimension, and the stride correspond to that third dimension. The returned Object array is an array of images. Where the image data is pointing to a specific memory in the input tensor. More...
 
VX_API_ENTRY vx_tensor VX_API_CALL vxCreateTensorFromView (vx_tensor tensor, vx_size number_of_dims, const vx_size *view_start, const vx_size *view_end)
 Creates a tensor data from another tensor data given a view. This second reference refers to the data in the original tensor data. Updates to this tensor data updates the parent tensor data. The view must be defined within the dimensions of the parent tensor data. More...
 
VX_API_ENTRY vx_tensor VX_API_CALL vxCreateVirtualTensor (vx_graph graph, vx_size number_of_dims, const vx_size *dims, vx_enum data_type, vx_int8 fixed_point_position)
 Creates an opaque reference to a tensor data buffer with no direct user access. This function allows setting the tensor data dimensions or data format. More...
 
VX_API_ENTRY vx_tensor VX_API_CALL vxCreateTensorFromHandle (vx_context context, vx_size number_of_dims, const vx_size *dims, vx_enum data_type, vx_int8 fixed_point_position, const vx_size *stride, void *ptr, vx_enum memory_type)
 Creates a reference to an tensor object that was externally allocated. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSwapTensorHandle (vx_tensor tensor, void *new_ptr, void **prev_ptr)
 Swaps the tensor handle of an tensor previously created from handle. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxCopyTensorPatch (vx_tensor tensor, vx_size number_of_dims, const vx_size *view_start, const vx_size *view_end, const vx_size *user_stride, void *user_ptr, vx_enum usage, vx_enum user_memory_type)
 Allows the application to copy a view patch from/into an tensor object . More...
 
VX_API_ENTRY vx_status VX_API_CALL vxMapTensorPatch (vx_tensor tensor, vx_size number_of_dims, const vx_size *view_start, const vx_size *view_end, vx_map_id *map_id, vx_size *stride, void **ptr, vx_enum usage, vx_enum mem_type)
 Allows the application to get direct access to a patch of tensor object. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxUnmapTensorPatch (vx_tensor tensor, const vx_map_id map_id)
 Unmap and commit potential changes to a tensor object patch that was previously mapped. Unmapping a tensor patch invalidates the memory location from which the patch could be accessed by the application. Accessing this memory location after the unmap function completes has an undefined behavior. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxQueryTensor (vx_tensor tensor, vx_enum attribute, void *ptr, vx_size size)
 Retrieves various attributes of a tensor data. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxReleaseTensor (vx_tensor *tensor)
 Releases a reference to a tensor data object. The object may not be garbage collected until its total reference count is zero. More...
 

Detailed Description

The API definition for OpenVX.

Macro Definition Documentation

◆ vxArrayItem

#define vxArrayItem (   type,
  ptr,
  index,
  stride 
)     (*(type *)(vxFormatArrayPointer((ptr), (index), (stride))))

Allows access to an array item as a typecast pointer deference.

Parameters
[in]typeThe type of the item to access.
[in]ptrThe base pointer for the array range.
[in]indexThe index of the element, not byte, to access.
[in]strideThe 'number of bytes' between the beginning of two consecutive elements.

◆ vxFormatArrayPointer

#define vxFormatArrayPointer (   ptr,
  index,
  stride 
)     (&(((vx_uint8*)(ptr))[(index) * (stride)]))

Accesses a specific indexed element in an array.

Parameters
[in]ptrThe base pointer for the array range.
[in]indexThe index of the element, not byte, to access.
[in]strideThe 'number of bytes' between the beginning of two consecutive elements.

Function Documentation

◆ vxAddArrayItems()

VX_API_ENTRY vx_status VX_API_CALL vxAddArrayItems ( vx_array  arr,
vx_size  count,
const void *  ptr,
vx_size  stride 
)

Adds items to the Array.

This function increases the container size.

By default, the function does not reallocate memory, so if the container is already full (number of elements is equal to capacity) or it doesn't have enough space, the function returns VX_FAILURE error code.

Parameters
[in]arrThe reference to the Array.
[in]countThe total number of elements to insert.
[in]ptrThe location from which to read the input values.
[in]strideThe number of bytes between the beginning of two consecutive elements.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEarr is not a valid vx_array reference.
VX_FAILUREIf the Array is full.
VX_ERROR_INVALID_PARAMETERSIf any of the other parameters are incorrect.

◆ vxAddLogEntry()

VX_API_ENTRY void VX_API_CALL vxAddLogEntry ( vx_reference  ref,
vx_status  status,
const char *  message,
  ... 
)

Adds a line to the log.

Parameters
[in]refThe reference to add the log entry against. Some valid value must be provided.
[in]statusThe status code. VX_SUCCESS status entries are ignored and not added.
[in]messageThe human readable message to add to the log.
[in]...a list of variable arguments to the message.
Note
Messages may not exceed VX_MAX_LOG_MESSAGE_LEN bytes and will be truncated in the log if they exceed this limit.

◆ vxAddParameterToGraph()

VX_API_ENTRY vx_status VX_API_CALL vxAddParameterToGraph ( vx_graph  graph,
vx_parameter  parameter 
)

Adds the given parameter extracted from a vx_node to the graph.

Parameters
[in]graphThe graph reference that contains the node.
[in]parameterThe parameter reference to add to the graph from the node.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSParameter added to Graph; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEgraph is not a valid vx_graph reference or parameter is not a valid vx_parameter reference.
VX_ERROR_INVALID_PARAMETERSThe parameter is of a node not in this graph.

◆ vxAddParameterToKernel()

VX_API_ENTRY 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.

Parameters
[in]kernelThe reference to the kernel added with vxAddUserKernel.
[in]indexThe index of the parameter to add.
[in]dirThe direction of the parameter. This must be either VX_INPUT or VX_OUTPUT.
[in]data_typeThe type of parameter. This must be a value from vx_type_e.
[in]stateThe state of the parameter (required or not). This must be a value from vx_parameter_state_e.
Returns
A vx_status_e enumerated value.
Return values
VX_SUCCESSParameter is successfully set on kernel; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEkernel is not a valid vx_kernel reference.
VX_ERROR_INVALID_PARAMETERSIf the parameter is not valid for any reason.
Precondition
vxAddUserKernel

◆ vxAddUserKernel()

VX_API_ENTRY vx_kernel VX_API_CALL vxAddUserKernel ( vx_context  context,
const vx_char  name[VX_MAX_KERNEL_NAME],
vx_enum  enumeration,
vx_kernel_f  func_ptr,
vx_uint32  numParams,
vx_kernel_validate_f  validate,
vx_kernel_initialize_f  init,
vx_kernel_deinitialize_f  deinit 
)

Allows users to add custom kernels to a context at run-time.

Parameters
[in]contextThe reference to the context the kernel must be added to.
[in]nameThe string to use to match the kernel.
[in]enumerationThe enumerated value of the kernel to be used by clients.
[in]func_ptrThe process-local function pointer to be invoked.
[in]numParamsThe number of parameters for this kernel.
[in]validateThe pointer to vx_kernel_validate_f, which validates parameters to this kernel.
[in]initThe kernel initialization function.
[in]deinitThe kernel de-initialization function.
Returns
A vx_kernel reference. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxAgeDelay()

VX_API_ENTRY vx_status VX_API_CALL vxAgeDelay ( vx_delay  delay)

Shifts the internal delay ring by one.

This function performs a shift of the internal delay ring by one. This means that, the data originally at index 0 move to index -1 and so forth until index \( -count+1 \). The data originally at index \( -count+1 \) move to index 0. Here \( count \) is the number of slots in delay ring. When a delay is aged, any graph making use of this delay (delay object itself or data objects in delay slots) gets its data automatically updated accordingly.

Parameters
[in]delay
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSDelay was aged; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEdelay is not a valid vx_delay reference.

◆ vxAllocateUserKernelId()

VX_API_ENTRY vx_status VX_API_CALL vxAllocateUserKernelId ( vx_context  context,
vx_enum pKernelEnumId 
)

Allocates and registers user-defined kernel enumeration to a context. The allocated enumeration is from available pool of 4096 enumerations reserved for dynamic allocation from VX_KERNEL_BASE(VX_ID_USER,0).

Parameters
[in]contextThe reference to the implementation context.
[out]pKernelEnumIdpointer to return vx_enum for user-defined kernel.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEIf the context is not a valid vx_context reference.
VX_ERROR_NO_RESOURCESThe enumerations has been exhausted.

◆ vxAllocateUserKernelLibraryId()

VX_API_ENTRY vx_status VX_API_CALL vxAllocateUserKernelLibraryId ( vx_context  context,
vx_enum pLibraryId 
)

Allocates and registers user-defined kernel library ID to a context.

The allocated library ID is from available pool of library IDs (1..255) reserved for dynamic allocation. The returned libraryId can be used by user-kernel library developer to specify individual kernel enum IDs in a header file, shown below:

#define MY_KERNEL_ID1(libraryId) (VX_KERNEL_BASE(VX_ID_USER,libraryId) + 0);
#define MY_KERNEL_ID2(libraryId) (VX_KERNEL_BASE(VX_ID_USER,libraryId) + 1);
#define MY_KERNEL_ID3(libraryId) (VX_KERNEL_BASE(VX_ID_USER,libraryId) + 2);
Parameters
[in]contextThe reference to the implementation context.
[out]pLibraryIdpointer to vx_enum for user-kernel libraryId.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_NO_RESOURCESThe enumerations has been exhausted.

◆ vxAssignNodeCallback()

VX_API_ENTRY 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 error and the user may clear the callback by passing a NULL pointer as the callback.

Parameters
[in]nodeThe reference to the node.
[in]callbackThe callback to associate with completion of this specific node.
Warning
This must be used with extreme caution as it can ruin optimizations in the power/performance efficiency of a graph.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSCallback assigned; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEnode is not a valid vx_node reference.

◆ vxCopyArrayRange()

VX_API_ENTRY vx_status VX_API_CALL vxCopyArrayRange ( vx_array  array,
vx_size  range_start,
vx_size  range_end,
vx_size  user_stride,
void *  user_ptr,
vx_enum  usage,
vx_enum  user_mem_type 
)

Allows the application to copy a range from/into an array object.

Parameters
[in]arrayThe reference to the array object that is the source or the destination of the copy.
[in]range_startThe index of the first item of the array object to copy.
[in]range_endThe index of the item following the last item of the array object to copy. (range_end range_start) items are copied from index range_start included. The range must be within the bounds of the array: 0 <= range_start < range_end <= number of items in the array.
[in]user_strideThe number of bytes between the beginning of two consecutive items in the user memory pointed by user_ptr. The layout of the user memory must follow an item major order: user_stride >= element size in bytes.
[in]user_ptrThe address of the memory location where to store the requested data if the copy was requested in read mode, or from where to get the data to store into the array object if the copy was requested in write mode. The accessible memory must be large enough to contain the specified range with the specified stride: accessible memory in bytes >= (range_end range_start) * user_stride.
[in]usageThis declares the effect of the copy with regard to the array object using the vx_accessor_e enumeration. Only VX_READ_ONLY and VX_WRITE_ONLY are supported:
  • VX_READ_ONLY means that data are copied from the array object into the user memory.
  • VX_WRITE_ONLY means that data are copied into the array object from the user memory.
[in]user_mem_typeA vx_memory_type_e enumeration that specifies the memory type of the memory referenced by the user_addr.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_OPTIMIZED_AWAYThis is a reference to a virtual array that cannot be accessed by the application.
VX_ERROR_INVALID_REFERENCEarray is not a valid vx_array reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.

◆ vxCopyConvolutionCoefficients()

VX_API_ENTRY vx_status VX_API_CALL vxCopyConvolutionCoefficients ( vx_convolution  conv,
void *  user_ptr,
vx_enum  usage,
vx_enum  user_mem_type 
)

Allows the application to copy coefficients from/into a convolution object.

Parameters
[in]convThe reference to the convolution object that is the source or the destination of the copy.
[in]user_ptrThe address of the memory location where to store the requested coefficient data if the copy was requested in read mode, or from where to get the coefficient data to store into the convolution object if the copy was requested in write mode. In the user memory, the convolution coefficient data is structured as a row-major 2D array with elements of the type corresponding to VX_TYPE_CONVOLUTION, with a number of rows corresponding to VX_CONVOLUTION_ROWS and a number of columns corresponding to VX_CONVOLUTION_COLUMNS. The accessible memory must be large enough to contain this 2D array: accessible memory in bytes >= sizeof(data_element) * rows * columns.
[in]usageThis declares the effect of the copy with regard to the convolution object using the vx_accessor_e enumeration. Only VX_READ_ONLY and VX_WRITE_ONLY are supported:
  • VX_READ_ONLY means that data are copied from the convolution object into the user memory.
  • VX_WRITE_ONLY means that data are copied into the convolution object from the user memory.
[in]user_mem_typeA vx_memory_type_e enumeration that specifies the memory type of the memory referenced by the user_addr.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEconv is not a valid vx_convolution reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.

◆ vxCopyDistribution()

VX_API_ENTRY vx_status VX_API_CALL vxCopyDistribution ( vx_distribution  distribution,
void *  user_ptr,
vx_enum  usage,
vx_enum  user_mem_type 
)

Allows the application to copy from/into a distribution object.

Parameters
[in]distributionThe reference to the distribution object that is the source or the destination of the copy.
[in]user_ptrThe address of the memory location where to store the requested data if the copy was requested in read mode, or from where to get the data to store into the distribution object if the copy was requested in write mode. In the user memory, the distribution is represented as a vx_uint32 array with a number of elements equal to the value returned via VX_DISTRIBUTION_BINS. The accessible memory must be large enough to contain this vx_uint32 array: accessible memory in bytes >= sizeof(vx_uint32) * num_bins.
[in]usageThis declares the effect of the copy with regard to the distribution object using the vx_accessor_e enumeration. Only VX_READ_ONLY and VX_WRITE_ONLY are supported:
  • VX_READ_ONLY means that data are copied from the distribution object into the user memory.
  • VX_WRITE_ONLY means that data are copied into the distribution object from the user memory.
[in]user_mem_typeA vx_memory_type_e enumeration that specifies the memory type of the memory referenced by the user_addr.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEdistribution is not a valid vx_distribution reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.

◆ vxCopyImagePatch()

VX_API_ENTRY vx_status VX_API_CALL vxCopyImagePatch ( vx_image  image,
const vx_rectangle_t image_rect,
vx_uint32  image_plane_index,
const vx_imagepatch_addressing_t user_addr,
void *  user_ptr,
vx_enum  usage,
vx_enum  user_mem_type 
)

Allows the application to copy a rectangular patch from/into an image object plane.

Parameters
[in]imageThe reference to the image object that is the source or the destination of the copy.
[in]image_rectThe coordinates of the image patch. The patch must be within the bounds of the image. (start_x, start_y) gives the coordinates of the topleft pixel inside the patch, while (end_x, end_y) gives the coordinates of the bottomright element out of the patch. Must be 0 <= start < end <= number of pixels in the image dimension.
[in]image_plane_indexThe plane index of the image object that is the source or the destination of the patch copy.
[in]user_addrThe address of a structure describing the layout of the user memory location pointed by user_ptr. In the structure, only dim_x, dim_y, stride_x and stride_y fields must be provided, other fields are ignored by the function. The layout of the user memory must follow a row major order: stride_x >= pixel size in bytes, and stride_y >= stride_x * dim_x.
[in]user_ptrThe address of the memory location where to store the requested data if the copy was requested in read mode, or from where to get the data to store into the image object if the copy was requested in write mode. The accessible memory must be large enough to contain the specified patch with the specified layout: accessible memory in bytes >= (end_y - start_y) * stride_y.
[in]usageThis declares the effect of the copy with regard to the image object using the vx_accessor_e enumeration. For uniform images, only VX_READ_ONLY is supported. For other images, Only VX_READ_ONLY and VX_WRITE_ONLY are supported:
  • VX_READ_ONLY means that data is copied from the image object into the application memory
  • VX_WRITE_ONLY means that data is copied into the image object from the application memory
[in]user_mem_typeA vx_memory_type_e enumeration that specifies the memory type of the memory referenced by the user_addr.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_OPTIMIZED_AWAYThis is a reference to a virtual image that cannot be accessed by the application.
VX_ERROR_INVALID_REFERENCEimage is not a valid vx_image reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.
Note
The application may ask for data outside the bounds of the valid region, but such data has an undefined value.
Some special restrictions apply to VX_DF_IMAGE_U1 images.

◆ vxCopyLUT()

VX_API_ENTRY vx_status VX_API_CALL vxCopyLUT ( vx_lut  lut,
void *  user_ptr,
vx_enum  usage,
vx_enum  user_mem_type 
)

Allows the application to copy from/into a LUT object.

Parameters
[in]lutThe reference to the LUT object that is the source or the destination of the copy.
[in]user_ptrThe address of the memory location where to store the requested data if the copy was requested in read mode, or from where to get the data to store into the LUT object if the copy was requested in write mode. In the user memory, the LUT is represented as a array with elements of the type corresponding to VX_LUT_TYPE, and with a number of elements equal to the value returned via VX_LUT_COUNT. The accessible memory must be large enough to contain this array: accessible memory in bytes >= sizeof(data_element) * count.
[in]usageThis declares the effect of the copy with regard to the LUT object using the vx_accessor_e enumeration. Only VX_READ_ONLY and VX_WRITE_ONLY are supported:
  • VX_READ_ONLY means that data are copied from the LUT object into the user memory.
  • VX_WRITE_ONLY means that data are copied into the LUT object from the user memory.
[in]user_mem_typeA vx_memory_type_e enumeration that specifies the memory type of the memory referenced by the user_addr.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCElut is not a valid vx_lut reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.

◆ vxCopyMatrix()

VX_API_ENTRY vx_status VX_API_CALL vxCopyMatrix ( vx_matrix  matrix,
void *  user_ptr,
vx_enum  usage,
vx_enum  user_mem_type 
)

Allows the application to copy from/into a matrix object.

Parameters
[in]matrixThe reference to the matrix object that is the source or the destination of the copy.
[in]user_ptrThe address of the memory location where to store the requested data if the copy was requested in read mode, or from where to get the data to store into the matrix object if the copy was requested in write mode. In the user memory, the matrix is structured as a row-major 2D array with elements of the type corresponding to VX_MATRIX_TYPE, with a number of rows corresponding to VX_MATRIX_ROWS and a number of columns corresponding to VX_MATRIX_COLUMNS. The accessible memory must be large enough to contain this 2D array: accessible memory in bytes >= sizeof(data_element) * rows * columns.
[in]usageThis declares the effect of the copy with regard to the matrix object using the vx_accessor_e enumeration. Only VX_READ_ONLY and VX_WRITE_ONLY are supported:
  • VX_READ_ONLY means that data are copied from the matrix object into the user memory.
  • VX_WRITE_ONLY means that data are copied into the matrix object from the user memory.
[in]user_mem_typeA vx_memory_type_e enumeration that specifies the memory type of the memory referenced by the user_addr.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEmatrix is not a valid vx_matrix reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.

◆ vxCopyRemapPatch()

VX_API_ENTRY vx_status VX_API_CALL vxCopyRemapPatch ( vx_remap  remap,
const vx_rectangle_t rect,
vx_size  user_stride_y,
void *  user_ptr,
vx_enum  user_coordinate_type,
vx_enum  usage,
vx_enum  user_mem_type 
)

Allows the application to copy a rectangular patch from/into a remap object.

The patch is specified within the destination dimensions and its data provide the corresponding coordinate within the source dimensions. The patch in user memory is a 2D array of elements of the type associated with the coordinate_type parameter (i.e., vx_coordinates2df_t for VX_TYPE_COORDINATES2DF). The memory layout of this array follows a row-major order where rows are compact (without any gap between elements), and where the potential padding after each line is determined by the user_stride_y parameter.

Parameters
[in]remapThe reference to the remap object that is the source or the destination of the patch copy.
[in]rectThe coordinates of remap patch. The patch must be specified within the bounds of the remap destination dimensions (VX_REMAP_DESTINATION_WIDTH x VX_REMAP_DESTINATION_HEIGHT). (start_x, start_y) gives the coordinate of the topleft element inside the patch, while (end_x, end_y) gives the coordinate of the bottomright element out of the patch.
[in]user_stride_yThe difference between the address of the first element of two successive lines of the remap patch in user memory (pointed by user_ptr). The layout of the user memory must follow a row major order and user_stride_y must follow the following rule : user_stride_y >= sizeof(<ELEMENT_TYPE>) * (rect->end_x - rect->start_x).
[in]user_ptrThe address of the user memory location where to store the requested remap data if the copy was requested in read mode, or from where to get the remap data to store into the remap object if the copy was requested in write mode. user_ptr is the address of the the top-left element of the remap patch. The accessible user memory must be large enough to contain the specified patch with the specified layout: accessible memory in bytes >= (rect->end_y - rect->start_y) * user_stride_y.
[in]user_coordinate_typeThis declares the type of the source coordinate remap data in the user memory. It must be VX_TYPE_COORDINATES2DF.
[in]usageThis declares the effect of the copy with regard to the remap object using the vx_accessor_e enumeration. Only VX_READ_ONLY and VX_WRITE_ONLY are supported:
  • VX_READ_ONLY means that data is copied from the remap object into the user memory pointer by user_ptr. The potential padding after each line in user memory will stay unchanged.
  • VX_WRITE_ONLY means that data is copied into the remap object from the user memory.
[in]user_mem_typeA vx_memory_type_e enumeration that specifies the type of the memory pointer by user_ptr.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEremap is not a valid vx_remap reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.

◆ vxCopyScalar()

VX_API_ENTRY vx_status VX_API_CALL vxCopyScalar ( vx_scalar  scalar,
void *  user_ptr,
vx_enum  usage,
vx_enum  user_mem_type 
)

Allows the application to copy from/into a scalar object.

Parameters
[in]scalarThe reference to the scalar object that is the source or the destination of the copy.
[in]user_ptrThe address of the memory location where to store the requested data if the copy was requested in read mode, or from where to get the data to store into the scalar object if the copy was requested in write mode. In the user memory, the scalar is a variable of the type corresponding to VX_SCALAR_TYPE. The accessible memory must be large enough to contain this variable.
[in]usageThis declares the effect of the copy with regard to the scalar object using the vx_accessor_e enumeration. Only VX_READ_ONLY and VX_WRITE_ONLY are supported:
  • VX_READ_ONLY means that data are copied from the scalar object into the user memory.
  • VX_WRITE_ONLY means that data are copied into the scalar object from the user memory.
[in]user_mem_typeA vx_memory_type_e enumeration that specifies the memory type of the memory referenced by the user_addr.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEscalar is not a valid vx_scalar reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.

◆ vxCopyScalarWithSize()

VX_API_ENTRY vx_status VX_API_CALL vxCopyScalarWithSize ( vx_scalar  scalar,
vx_size  size,
void *  user_ptr,
vx_enum  usage,
vx_enum  user_mem_type 
)

Allows the application to copy from/into a scalar object with size.

Parameters
[in]scalarThe reference to the scalar object that is the source or the destination of the copy.
[in]sizeThe size in bytes of the container to which user_ptr points.
[in]user_ptrThe address of the memory location where to store the requested data if the copy was requested in read mode, or from where to get the data to store into the scalar object if the copy was requested in write mode. In the user memory, the scalar is a variable of the type corresponding to VX_SCALAR_TYPE. The accessible memory must be large enough to contain this variable.
[in]usageThis declares the effect of the copy with regard to the scalar object using the vx_accessor_e enumeration. Only VX_READ_ONLY and VX_WRITE_ONLY are supported:
  • VX_READ_ONLY means that data are copied from the scalar object into the user memory.
  • VX_WRITE_ONLY means that data are copied into the scalar object from the user memory.
[in]user_mem_typeA vx_memory_type_e enumeration that specifies the memory type of the memory referenced by the user_addr.
Returns
A vx_status_e enumeration.
Return values
VX_ERROR_INVALID_REFERENCEThe scalar reference is not actually a scalar reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.

◆ vxCopyTensorPatch()

VX_API_ENTRY vx_status VX_API_CALL vxCopyTensorPatch ( vx_tensor  tensor,
vx_size  number_of_dims,
const vx_size view_start,
const vx_size view_end,
const vx_size user_stride,
void *  user_ptr,
vx_enum  usage,
vx_enum  user_memory_type 
)

Allows the application to copy a view patch from/into an tensor object .

Parameters
[in]tensorThe reference to the tensor object that is the source or the destination of the copy.
[in]number_of_dimsNumber of patch dimension. Error return if 0 or greater than number of tensor dimensions. If smaller than number of tensor dimensions, the lower dimensions are assumed.
[in]view_startArray of patch start points in each dimension
[in]view_endArray of patch end points in each dimension
[in]user_strideArray of user memory strides in each dimension
[in]user_ptrThe address of the memory location where to store the requested data if the copy was requested in read mode, or from where to get the data to store into the tensor object if the copy was requested in write mode. The accessible memory must be large enough to contain the specified patch with the specified layout:
accessible memory in bytes >= (end[last_dimension] - start[last_dimension]) * stride[last_dimension].
The layout of the user memory must follow a row major order.
[in]usageThis declares the effect of the copy with regard to the tensor object using the vx_accessor_e enumeration. Only VX_READ_ONLY and VX_WRITE_ONLY are supported:
  • VX_READ_ONLY means that data is copied from the tensor object into the application memory
  • VX_WRITE_ONLY means that data is copied into the tensor object from the application memory
[in]user_memory_typeA vx_memory_type_e enumeration that specifies the memory type of the memory referenced by the user_addr.
Returns
A vx_status_e enumeration.
Return values
VX_ERROR_OPTIMIZED_AWAYThis is a reference to a virtual tensor that cannot be accessed by the application.
VX_ERROR_INVALID_REFERENCEThe tensor reference is not actually an tensor reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.

◆ vxCopyThresholdOutput()

VX_API_ENTRY vx_status VX_API_CALL vxCopyThresholdOutput ( vx_threshold  thresh,
vx_pixel_value_t true_value_ptr,
vx_pixel_value_t false_value_ptr,
vx_enum  usage,
vx_enum  user_mem_type 
)

Allows the application to copy the true and false output values from/into a threshold object.

Parameters
[in]threshThe reference to the threshold object that is the source or the destination of the copy.
[in,out]true_value_ptrThe address of the memory location where to store the true output value if the copy was requested in read mode, or from where to get the true output value to store into the threshold object if the copy was requested in write mode.
[in,out]false_value_ptrThe address of the memory location where to store the false output value if the copy was requested in read mode, or from where to get the false output value to store into the threshold object if the copy was requested in write mode.
[in]usageThis declares the effect of the copy with regard to the threshold object using the vx_accessor_e enumeration. Only VX_READ_ONLY and VX_WRITE_ONLY are supported:
  • VX_READ_ONLY means that true and false output values are copied from the threshold object into the user memory. After the copy, only the field of (*true_value_ptr) and (*false_value_ptr) unions that corresponds to the output image format of the threshold object is meaningful.
  • VX_WRITE_ONLY means the field of the (*true_value_ptr) and (*false_value_ptr) unions corresponding to the output format of the threshold object is copied into the threshold object.
[in]user_mem_typeA vx_memory_type_e enumeration that specifies the type of the memory referenced by true_value_ptr and false_value_ptr.
Returns
A vx_status_e enumeration.
Return values
VX_ERROR_INVALID_REFERENCEThe threshold reference is not actually a threshold reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.

◆ vxCopyThresholdRange()

VX_API_ENTRY vx_status VX_API_CALL vxCopyThresholdRange ( vx_threshold  thresh,
vx_pixel_value_t lower_value_ptr,
vx_pixel_value_t upper_value_ptr,
vx_enum  usage,
vx_enum  user_mem_type 
)

Allows the application to copy thresholding values from/into a threshold object with type VX_THRESHOLD_TYPE_RANGE.

Parameters
[in]threshThe reference to the threshold object that is the source or the destination of the copy.
[in,out]lower_value_ptrThe address of the memory location where to store the lower thresholding value if the copy was requested in read mode, or from where to get the lower thresholding value to store into the threshold object if the copy was requested in write mode.
[in,out]upper_value_ptrThe address of the memory location where to store the upper thresholding value if the copy was requested in read mode, or from where to get the upper thresholding value to store into the threshold object if the copy was requested in write mode.
[in]usageThis declares the effect of the copy with regard to the threshold object using the vx_accessor_e enumeration. Only VX_READ_ONLY and VX_WRITE_ONLY are supported:
  • VX_READ_ONLY means that thresholding values are copied from the threshold object into the user memory. After the copy, only the field of (*lower_value_ptr) and (*upper_value_ptr) unions that corresponds to the input image format of the threshold object is meaningful.
  • VX_WRITE_ONLY means the field of the (*lower_value_ptr) and (*upper_value_ptr) unions corresponding to the input format of the threshold object is copied into the threshold object.
[in]user_mem_typeA vx_memory_type_e enumeration that specifies the type of the memory referenced by lower_value_ptr and upper_value_ptr.
Returns
A vx_status_e enumeration.
Return values
VX_ERROR_INVALID_REFERENCEThe threshold reference is not actually a threshold reference.
VX_ERROR_NOT_COMPATIBLEThe threshold object doesn't have type VX_THRESHOLD_TYPE_RANGE
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.

◆ vxCopyThresholdValue()

VX_API_ENTRY vx_status VX_API_CALL vxCopyThresholdValue ( vx_threshold  thresh,
vx_pixel_value_t value_ptr,
vx_enum  usage,
vx_enum  user_mem_type 
)

Allows the application to copy the thresholding value from/into a threshold object with type VX_THRESHOLD_TYPE_BINARY.

Parameters
[in]threshThe reference to the threshold object that is the source or the destination of the copy.
[in,out]value_ptrThe address of the memory location where to store the thresholding value if the copy was requested in read mode, or from where to get the thresholding value to store into the threshold object if the copy was requested in write mode.
[in]usageThis declares the effect of the copy with regard to the threshold object using the vx_accessor_e enumeration. Only VX_READ_ONLY and VX_WRITE_ONLY are supported:
  • VX_READ_ONLY means that the thresholding value is copied from the threshold object into the user memory. After the copy, only the field of the (*value_ptr) union that corresponds to the input image format of the threshold object is meaningful.
  • VX_WRITE_ONLY means the field of the (*value_ptr) union corresponding to the input format of the threshold object is copied into the threshold object.
[in]user_mem_typeA vx_memory_type_e enumeration that specifies the type of the memory referenced by value_ptr.
Returns
A vx_status_e enumeration.
Return values
VX_ERROR_INVALID_REFERENCEThe threshold reference is not actually a threshold reference.
VX_ERROR_NOT_COMPATIBLEThe threshold object doesn't have type VX_THRESHOLD_TYPE_BINARY
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.

◆ vxCreateArray()

VX_API_ENTRY vx_array VX_API_CALL vxCreateArray ( vx_context  context,
vx_enum  item_type,
vx_size  capacity 
)

Creates a reference to an Array object.

User must specify the Array capacity (i.e., the maximal number of items that the array can hold).

Parameters
[in]contextThe reference to the overall Context.
[in]item_typeThe type of data to hold. Must be greater than VX_TYPE_INVALID and less than or equal to VX_TYPE_VENDOR_STRUCT_END. Or must be a vx_enum returned from vxRegisterUserStruct.
[in]capacityThe maximal number of items that the array can hold. This value must be greater than zero.
Returns
An array reference vx_array. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateContext()

VX_API_ENTRY vx_context VX_API_CALL vxCreateContext ( void  )

Creates a vx_context.

This creates a top-level object context for OpenVX.

Note
This is required to do anything else.
Returns
The reference to the implementation context vx_context. Any possible errors preventing a successful creation should be checked using vxGetStatus.
Postcondition
vxReleaseContext

◆ vxCreateConvolution()

VX_API_ENTRY vx_convolution VX_API_CALL vxCreateConvolution ( vx_context  context,
vx_size  columns,
vx_size  rows 
)

Creates a reference to a convolution matrix object.

Parameters
[in]contextThe reference to the overall context.
[in]columnsThe columns dimension of the convolution. Must be odd and greater than or equal to 3 and less than the value returned from VX_CONTEXT_CONVOLUTION_MAX_DIMENSION.
[in]rowsThe rows dimension of the convolution. Must be odd and greater than or equal to 3 and less than the value returned from VX_CONTEXT_CONVOLUTION_MAX_DIMENSION.
Returns
A convolution reference vx_convolution. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateDelay()

VX_API_ENTRY vx_delay VX_API_CALL vxCreateDelay ( vx_context  context,
vx_reference  exemplar,
vx_size  num_slots 
)

Creates a Delay object.

This function creates a delay object with num_slots slots. Each slot contains a clone of the exemplar. The clones only inherit the metadata of the exemplar. The data content of the exemplar is ignored and the clones have their data undefined at delay creation time. The function does not alter the exemplar. Also, it doesn't retain or release the reference to the exemplar.

Note
For the definition of metadata attributes see vxSetMetaFormatAttribute.
Parameters
[in]contextThe reference to the context.
[in]exemplarThe exemplar object. Supported exemplar object types are:
[in]num_slotsThe number of objects in the delay. This value must be greater than zero.
Returns
A delay reference vx_delay. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateDistribution()

VX_API_ENTRY 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] defined by a start offset and valid range, divided equally into numBins parts.

Parameters
[in]contextThe reference to the overall context.
[in]numBinsThe number of bins in the distribution.
[in]offsetThe start offset into the range value that marks the begining of the 1D Distribution.
[in]rangeThe total number of the consecutive values of the distribution interval.
Returns
A distribution reference vx_distribution. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateGenericNode()

VX_API_ENTRY vx_node VX_API_CALL vxCreateGenericNode ( vx_graph  graph,
vx_kernel  kernel 
)

Creates a reference to a node object for a given kernel.

This node has no references assigned as parameters after completion. The client is then required to set these parameters manually by vxSetParameterByIndex. When clients supply their own node creation functions (for use with User Kernels), this is the API to use along with the parameter setting API.

Parameters
[in]graphThe reference to the graph in which this node exists.
[in]kernelThe kernel reference to associate with this new node.
Returns
A node reference vx_node. Any possible errors preventing a successful creation should be checked using vxGetStatus.
Note
A call to this API sets all parameters to NULL.
Postcondition
Call vxSetParameterByIndex for as many parameters as needed to be set.

◆ vxCreateGraph()

VX_API_ENTRY vx_graph VX_API_CALL vxCreateGraph ( vx_context  context)

Creates an empty graph.

Parameters
[in]contextThe reference to the implementation context.
Returns
A graph reference vx_graph. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateImage()

VX_API_ENTRY 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.

Not guaranteed to exist until the vx_graph containing it has been verified.

Parameters
[in]contextThe reference to the implementation context.
[in]widthThe image width in pixels. The image in the formats of VX_DF_IMAGE_NV12, VX_DF_IMAGE_NV21, VX_DF_IMAGE_IYUV, VX_DF_IMAGE_UYVY, VX_DF_IMAGE_YUYV must have even width.
[in]heightThe image height in pixels. The image in the formats of VX_DF_IMAGE_NV12, VX_DF_IMAGE_NV21, VX_DF_IMAGE_IYUV must have even height.
[in]colorThe VX_DF_IMAGE (vx_df_image_e) code that represents the format of the image and the color space.
Returns
An image reference vx_image. Any possible errors preventing a successful creation should be checked using vxGetStatus.
See also
vxMapImagePatch to obtain direct memory access to the image data.

◆ vxCreateImageFromChannel()

VX_API_ENTRY vx_image VX_API_CALL vxCreateImageFromChannel ( vx_image  img,
vx_enum  channel 
)

Create a sub-image from a single plane channel of another image.

The sub-image refers to the data in the original image. Updates to this image update the parent image and reversely.

The function supports only channels that occupy an entire plane of a multi-planar images, as listed below. Other cases are not supported. VX_CHANNEL_Y from YUV4, IYUV, NV12, NV21 VX_CHANNEL_U from YUV4, IYUV VX_CHANNEL_V from YUV4, IYUV

Parameters
[in]imgThe reference to the parent image.
[in]channelThe vx_channel_e channel to use.
Returns
An image reference vx_image to the sub-image. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateImageFromHandle()

VX_API_ENTRY vx_image VX_API_CALL vxCreateImageFromHandle ( vx_context  context,
vx_df_image  color,
const vx_imagepatch_addressing_t  addrs[],
void *const  ptrs[],
vx_enum  memory_type 
)

Creates a reference to an image object that was externally allocated.

Parameters
[in]contextThe reference to the implementation context.
[in]colorSee the vx_df_image_e codes. This mandates the number of planes needed to be valid in the addrs and ptrs arrays based on the format given.
[in]addrs[]The array of image patch addressing structures that define the dimension and stride of the array of pointers. See note below.
[in]ptrs[]The array of platform-defined references to each plane. See note below.
[in]memory_typevx_memory_type_e. When giving VX_MEMORY_TYPE_HOST the ptrs array is assumed to be HOST accessible pointers to memory.
Returns
An image reference vx_image. Any possible errors preventing a successful creation should be checked using vxGetStatus.
Note
The user must call vxMapImagePatch prior to accessing the pixels of an image, even if the image was created via vxCreateImageFromHandle. Reads or writes to memory referenced by ptrs[ ] after calling vxCreateImageFromHandle without first calling vxMapImagePatch will result in undefined behavior. The property of addr[] and ptrs[] arrays is kept by the caller (It means that the implementation will make an internal copy of the provided information. addr and ptrs can then simply be application's local variables). Only dim_x, dim_y, stride_x and stride_y fields of the vx_imagepatch_addressing_t need to be provided by the application. Other fields (step_x, step_y, scale_x & scale_y) are ignored by this function. The layout of the imported memory must follow a row-major order. In other words, stride_x should be sufficiently large so that there is no overlap between data elements corresponding to different pixels, and stride_y >= stride_x * dim_x.

In order to release the image back to the application we should use vxSwapImageHandle. An exception is for VX_DF_IMAGE_U1 images where stride_x == 0 and instead stride_y >= ⌈dim_x / 8⌉.

Import type of the created image is available via the image attribute vx_image_attribute_e parameter.

◆ vxCreateImageFromROI()

VX_API_ENTRY 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 the original image. Updates to this image updates the parent image. The rectangle must be defined within the pixel space of the parent image.

Parameters
[in]imgThe reference to the parent image.
[in]rectThe region of interest rectangle. Must contain points within the parent image pixel space.
Returns
An image reference vx_image to the sub-image. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateImageObjectArrayFromTensor()

VX_API_ENTRY vx_object_array VX_API_CALL vxCreateImageObjectArrayFromTensor ( vx_tensor  tensor,
const vx_rectangle_t rect,
vx_size  array_size,
vx_size  jump,
vx_df_image  image_format 
)

Creates an array of images into the multi-dimension data, this can be adjacent 2D images or not depending on the stride value. The stride value is representing bytes in the third dimension. The OpenVX image object that points to a three dimension data and access it as an array of images. This has to be portion of the third lowest dimension, and the stride correspond to that third dimension. The returned Object array is an array of images. Where the image data is pointing to a specific memory in the input tensor.

Parameters
[in]tensorThe tensor data from which to extract the images. Has to be a 3d tensor.
[in]rectImage coordinates within tensor data.
[in]array_sizeNumber of images to extract.
[in]jumpDelta between two images in the array.
[in]image_formatThe requested image format. Should match the tensor data's data type.
Returns
An array of images pointing to the tensor data's data.

◆ vxCreateLUT()

VX_API_ENTRY vx_lut VX_API_CALL vxCreateLUT ( vx_context  context,
vx_enum  data_type,
vx_size  count 
)

Creates LUT object of a given type. The value of VX_LUT_OFFSET is equal to 0 for data_type = VX_TYPE_UINT8, and (vx_uint32)(count/2) for VX_TYPE_INT16.

Parameters
[in]contextThe reference to the context.
[in]data_typeThe type of data stored in the LUT.
[in]countThe number of entries desired.
Note
data_type can only be VX_TYPE_UINT8 or VX_TYPE_INT16. If data_type is VX_TYPE_UINT8, count should be not greater than 256. If data_type is VX_TYPE_INT16, count should not be greater than 65536.
Returns
An LUT reference vx_lut. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateMatrix()

VX_API_ENTRY 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.

Parameters
[in]cThe reference to the overall context.
[in]data_typeThe vx_type_e that represents the data type of the matrix data elements.
[in]columnsThe first dimensionality.
[in]rowsThe second dimensionality.
Returns
An matrix reference vx_matrix. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateMatrixFromPattern()

VX_API_ENTRY vx_matrix VX_API_CALL vxCreateMatrixFromPattern ( vx_context  context,
vx_enum  pattern,
vx_size  columns,
vx_size  rows 
)

Creates a reference to a matrix object from a boolean pattern.

See also
vxCreateMatrixFromPatternAndOrigin for a description of the matrix patterns.
Parameters
[in]contextThe reference to the overall context.
[in]patternThe pattern of the matrix. See VX_MATRIX_PATTERN.
[in]columnsThe first dimensionality.
[in]rowsThe second dimensionality.
Returns
A matrix reference vx_matrix of type VX_TYPE_UINT8. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateMatrixFromPatternAndOrigin()

VX_API_ENTRY vx_matrix VX_API_CALL vxCreateMatrixFromPatternAndOrigin ( vx_context  context,
vx_enum  pattern,
vx_size  columns,
vx_size  rows,
vx_size  origin_col,
vx_size  origin_row 
)

Creates a reference to a matrix object from a boolean pattern, with a user-specified origin.

The matrix created by this function is of type VX_TYPE_UINT8, with the value 0 representing False, and the value 255 representing True. It supports the patterns as described below:

  • VX_PATTERN_BOX is a matrix with dimensions equal to the given number of rows and columns, and all cells equal to 255. Dimensions of 3x3 and 5x5 must be supported.
  • VX_PATTERN_CROSS is a matrix with dimensions equal to the given number of rows and columns, which both must be odd numbers. All cells in the center row and center column are equal to 255, and the rest are equal to zero. Dimensions of 3x3 and 5x5 must be supported.
  • VX_PATTERN_DISK is a matrix with dimensions equal to the given number of rows (R) and columns (C), where R and C are odd and cell (c, r) is 255 if:
    (r-R/2 + 0.5)^2 / (R/2)^2 + (c-C/2 + 0.5)^2/(C/2)^2 is less than or equal to 1,
    and 0 otherwise.

A matrix created from pattern is read-only. The behavior when attempting to modify such a matrix is undefined.

Parameters
[in]contextThe reference to the overall context.
[in]patternThe pattern of the matrix. See VX_MATRIX_PATTERN.
[in]columnsThe first dimensionality.
[in]rowsThe second dimensionality.
[in]origin_colThe origin (first dimensionality).
[in]origin_rowThe origin (second dimensionality).
Returns
A matrix reference vx_matrix of type VX_TYPE_UINT8. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateObjectArray()

VX_API_ENTRY vx_object_array VX_API_CALL vxCreateObjectArray ( vx_context  context,
vx_reference  exemplar,
vx_size  count 
)

Creates a reference to an ObjectArray of count objects.

It uses the metadata of the exemplar to determine the object attributes, ignoring the object data. It does not alter the exemplar or keep or release the reference to the exemplar. For the definition of supported attributes see vxSetMetaFormatAttribute. In case the exemplar is a virtual object it must be of immutable metadata, thus it is not allowed to be dimensionless or formatless.

Parameters
[in]contextThe reference to the overall Context.
[in]exemplarThe exemplar object that defines the metadata of the created objects in the ObjectArray.
[in]countNumber of Objects to create in the ObjectArray. This value must be greater than zero.
Returns
An ObjectArray reference vx_object_array. Any possible errors preventing a successful creation should be checked using vxGetStatus. Data objects are not initialized by this function.

◆ vxCreatePyramid()

VX_API_ENTRY 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.

Parameters
[in]contextThe reference to the overall context.
[in]levelsThe number of levels desired. This is required to be a non-zero value.
[in]scaleUsed to indicate the scale between pyramid levels. This is required to be a non-zero positive value. VX_SCALE_PYRAMID_HALF and VX_SCALE_PYRAMID_ORB must be supported.
[in]widthThe width of the 0th level image in pixels.
[in]heightThe height of the 0th level image in pixels.
[in]formatThe format of all images in the pyramid. NV12, NV21, IYUV, UYVY and YUYV formats are not supported.
Returns
A pyramid reference vx_pyramid containing the sub-images. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateRemap()

VX_API_ENTRY 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.

Parameters
[in]contextThe reference to the overall context.
[in]src_widthWidth of the source image in pixel.
[in]src_heightHeight of the source image in pixels.
[in]dst_widthWidth of the destination image in pixels.
[in]dst_heightHeight of the destination image in pixels.
Returns
A remap reference vx_remap. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateScalar()

VX_API_ENTRY 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 sub_node_parameters.

Parameters
[in]contextThe reference to the system context.
[in]data_typeThe type of data to hold. Must be greater than VX_TYPE_INVALID and less than or equal to VX_TYPE_VENDOR_STRUCT_END. Or must be a vx_enum returned from vxRegisterUserStruct.
[in]ptrThe pointer to the initial value of the scalar or NULL. If NULL, the initial value of the scalar, if any, is implementation dependent.
Returns
A scalar reference vx_scalar. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateScalarWithSize()

VX_API_ENTRY vx_scalar VX_API_CALL vxCreateScalarWithSize ( vx_context  context,
vx_enum  data_type,
const void *  ptr,
vx_size  size 
)

Creates a reference to a scalar object. Also see sub_node_parameters.

Parameters
[in]contextThe reference to the system context.
[in]data_typeThe type of data to hold. Must be greater than VX_TYPE_INVALID and less than or equal to VX_TYPE_VENDOR_STRUCT_END. Or must be a vx_enum returned from vxRegisterUserStruct.
[in]ptrThe pointer to the initial value of the scalar.
[in]sizeSize of data at ptr in bytes.
Returns
A scalar reference vx_scalar. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateTensor()

VX_API_ENTRY vx_tensor VX_API_CALL vxCreateTensor ( vx_context  context,
vx_size  number_of_dims,
const vx_size dims,
vx_enum  data_type,
vx_int8  fixed_point_position 
)

Creates an opaque reference to a tensor data buffer.

Not guaranteed to exist until the vx_graph containing it has been verified. Since functions using tensors, need to understand the context of each dimension. We describe a layout of the dimensions in each function using tensors. That layout is not mandatory. It is done specifically to explain the functions and not to mandate layout. Different implementation may have different layout. Therefore the layout description is logical and not physical. It refers to the order of dimensions given in this function.

Parameters
[in]contextThe reference to the implementation context.
[in]number_of_dimsThe number of dimensions.
[in]dimsDimensions sizes in elements.
[in]data_typeThe vx_type_e that represents the data type of the tensor data elements.
[in]fixed_point_positionSpecifies the fixed point position when the input element type is integer. if 0, calculations are performed in integer math.
Returns
A tensor data reference. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateTensorFromHandle()

VX_API_ENTRY vx_tensor VX_API_CALL vxCreateTensorFromHandle ( vx_context  context,
vx_size  number_of_dims,
const vx_size dims,
vx_enum  data_type,
vx_int8  fixed_point_position,
const vx_size stride,
void *  ptr,
vx_enum  memory_type 
)

Creates a reference to an tensor object that was externally allocated.

Parameters
[in]contextThe reference to the implementation context.
[in]number_of_dimsThe number of dimensions.
[in]dimsDimensions sizes in elements.
[in]data_typeThe vx_type_e that represents the data type of the tensor data elements.
[in]fixed_point_positionSpecifies the fixed point position when the input element type is integer. if 0, calculations are performed in integer math.
[in]strideAn array of stride in all dimensions in bytes. The stride value at index 0 must be size of the tensor data element type.
[in]ptrThe platform-defined reference to tensor. See note below.
[in]memory_typevx_memory_type_e. When giving VX_MEMORY_TYPE_HOST the ptr is assumed to be HOST accessible pointer to memory.
Returns
A tensor data reference. Any possible errors preventing a successful creation should be checked using vxGetStatus.
Note
The user must call vxMapTensorPatch prior to accessing the elements of a tensor, even if the tensor was created via vxCreateTensorFromHandle. Reads or writes to memory referenced by ptr after calling vxCreateTensorFromHandle without first calling vxMapTensorPatch will result in undefined behavior. The property of stride[] and ptr is kept by the caller (It means that the implementation will make an internal copy of the provided information. stride and ptr can then simply be application's local variables).

In order to release the tensor back to the application we should use vxSwapTensorHandle.

◆ vxCreateTensorFromView()

VX_API_ENTRY vx_tensor VX_API_CALL vxCreateTensorFromView ( vx_tensor  tensor,
vx_size  number_of_dims,
const vx_size view_start,
const vx_size view_end 
)

Creates a tensor data from another tensor data given a view. This second reference refers to the data in the original tensor data. Updates to this tensor data updates the parent tensor data. The view must be defined within the dimensions of the parent tensor data.

Parameters
[in]tensorThe reference to the parent tensor data.
[in]number_of_dimsNumber of dimensions in the view. Error return if 0 or greater than number of tensor dimensions. If smaller than number of tensor dimensions, the lower dimensions are assumed.
[in]view_startView start coordinates
[in]view_endView end coordinates
Returns
The reference to the sub-tensor. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateThresholdForImage()

VX_API_ENTRY vx_threshold VX_API_CALL vxCreateThresholdForImage ( vx_context  context,
vx_enum  thresh_type,
vx_df_image  input_format,
vx_df_image  output_format 
)

Creates a threshold object and returns a reference to it.

The threshold object defines the parameters of a thresholding operation to an input image, that generates an output image that can have a different format. The thresholding 'false' or 'true' output values are specified per pixel channels of the output format and can be modified with vxCopyThresholdOutput. The default 'false' output value of pixels channels should be 0, and the default 'true' value should be non-zero. For standard image formats, default output pixel values are defined as following:

◆ vxCreateUniformImage()

VX_API_ENTRY vx_image VX_API_CALL vxCreateUniformImage ( vx_context  context,
vx_uint32  width,
vx_uint32  height,
vx_df_image  color,
const vx_pixel_value_t value 
)

Creates a reference to an image object that has a singular, uniform value in all pixels. The uniform image created is read-only.

Parameters
[in]contextThe reference to the implementation context.
[in]widthThe image width in pixels. The image in the formats of VX_DF_IMAGE_NV12, VX_DF_IMAGE_NV21, VX_DF_IMAGE_IYUV, VX_DF_IMAGE_UYVY, VX_DF_IMAGE_YUYV must have even width.
[in]heightThe image height in pixels. The image in the formats of VX_DF_IMAGE_NV12, VX_DF_IMAGE_NV21, VX_DF_IMAGE_IYUV must have even height.
[in]colorThe VX_DF_IMAGE (vx_df_image_e) code that represents the format of the image and the color space.
[in]valueThe pointer to the pixel value to which to set all pixels. See vx_pixel_value_t.
Returns
An image reference vx_image. Any possible errors preventing a successful creation should be checked using vxGetStatus.
See also
vxMapImagePatch to obtain direct memory access to the image data.
Note
vxMapImagePatch and vxUnmapImagePatch may be called with a uniform image reference.

◆ vxCreateVirtualArray()

VX_API_ENTRY 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.

Virtual Arrays are useful when item type or capacity are unknown ahead of time and the Array is used as internal graph edge. Virtual arrays are scoped within the parent graph only.

All of the following constructions are allowed.

vx_graph graph = vxCreateGraph(context);
vx_array virt[] = {
vxCreateVirtualArray(graph, 0, 0), // totally unspecified
vxCreateVirtualArray(graph, VX_TYPE_KEYPOINT, 0), // unspecified capacity
vxCreateVirtualArray(graph, VX_TYPE_KEYPOINT, 1000), // no access
};
VX_API_ENTRY vx_context VX_API_CALL vxCreateContext(void)
Creates a vx_context.
VX_API_ENTRY vx_graph VX_API_CALL vxCreateGraph(vx_context context)
Creates an empty graph.
VX_API_ENTRY 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.
struct _vx_context * vx_context
An opaque reference to the implementation context.
Definition: vx_types.h:218
@ VX_TYPE_KEYPOINT
A vx_keypoint_t.
Definition: vx_types.h:348
struct _vx_graph * vx_graph
An opaque reference to a graph.
Definition: vx_types.h:211
struct _vx_array * vx_array
The Array Object. Array is a strongly-typed container for other data structures.
Definition: vx_types.h:275
Parameters
[in]graphThe reference to the parent graph.
[in]item_typeThe type of data to hold. Must be greater than VX_TYPE_INVALID and less than or equal to VX_TYPE_VENDOR_STRUCT_END. Or must be a vx_enum returned from vxRegisterUserStruct. This may to set to zero to indicate an unspecified item type.
[in]capacityThe maximal number of items that the array can hold. This may be to set to zero to indicate an unspecified capacity.
See also
vxCreateArray for a type list.
Returns
A array reference vx_array. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateVirtualConvolution()

VX_API_ENTRY vx_convolution VX_API_CALL vxCreateVirtualConvolution ( vx_graph  graph,
vx_size  columns,
vx_size  rows 
)

Creates an opaque reference to a convolution matrix object without direct user access.

Parameters
[in]graphThe reference to the parent graph.
[in]columnsThe columns dimension of the convolution. Must be odd and greater than or equal to 3 and less than the value returned from VX_CONTEXT_CONVOLUTION_MAX_DIMENSION.
[in]rowsThe rows dimension of the convolution. Must be odd and greater than or equal to 3 and less than the value returned from VX_CONTEXT_CONVOLUTION_MAX_DIMENSION.
See also
vxCreateConvolution
Returns
A convolution reference vx_convolution. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateVirtualDistribution()

VX_API_ENTRY vx_distribution VX_API_CALL vxCreateVirtualDistribution ( vx_graph  graph,
vx_size  numBins,
vx_int32  offset,
vx_uint32  range 
)

Creates an opaque reference to a 1D Distribution object without direct user access.

Parameters
[in]graphThe reference to the parent graph.
[in]numBinsThe number of bins in the distribution.
[in]offsetThe start offset into the range value that marks the begining of the 1D Distribution.
[in]rangeThe total number of the consecutive values of the distribution interval.
See also
vxCreateDistribution
Returns
A distribution reference vx_distribution. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateVirtualImage()

VX_API_ENTRY 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 setting the image width, height, or format.

Virtual data objects allow users to connect various nodes within a graph via data references without access to that data, but they also permit the implementation to take maximum advantage of possible optimizations. Use this API to create a data reference to link two or more nodes together when the intermediate data are not required to be accessed by outside entities. This API in particular allows the user to define the image format of the data without requiring the exact dimensions. Virtual objects are scoped within the graph they are declared a part of, and can't be shared outside of this scope. All of the following constructions of virtual images are valid.

vx_graph graph = vxCreateGraph(context);
vx_image virt[] = {
vxCreateVirtualImage(graph, 0, 0, VX_DF_IMAGE_U8), // no specified dimension
vxCreateVirtualImage(graph, 320, 240, VX_DF_IMAGE_VIRT), // no specified format
vxCreateVirtualImage(graph, 640, 480, VX_DF_IMAGE_U8), // no user access
};
VX_API_ENTRY 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...
@ VX_DF_IMAGE_VIRT
A virtual image of no defined type.
Definition: vx_types.h:707
@ VX_DF_IMAGE_U8
A single plane of unsigned 8-bit data. The range of data is not specified, as it may be extracted fro...
Definition: vx_types.h:750
struct _vx_image * vx_image
An opaque reference to an image.
Definition: vx_types.h:182
Parameters
[in]graphThe reference to the parent graph.
[in]widthThe width of the image in pixels. A value of zero informs the interface that the value is unspecified. The image in the formats of VX_DF_IMAGE_NV12, VX_DF_IMAGE_NV21, VX_DF_IMAGE_IYUV, VX_DF_IMAGE_UYVY, VX_DF_IMAGE_YUYV must have even width.
[in]heightThe height of the image in pixels. A value of zero informs the interface that the value is unspecified. The image in the formats of VX_DF_IMAGE_NV12, VX_DF_IMAGE_NV21, VX_DF_IMAGE_IYUV must have even height.
[in]colorThe VX_DF_IMAGE (vx_df_image_e) code that represents the format of the image and the color space. A value of VX_DF_IMAGE_VIRT informs the interface that the format is unspecified.
Returns
An image reference vx_image. Any possible errors preventing a successful creation should be checked using vxGetStatus.
Note
Passing this reference to vxMapImagePatch will return an error.

◆ vxCreateVirtualLUT()

VX_API_ENTRY vx_lut VX_API_CALL vxCreateVirtualLUT ( vx_graph  graph,
vx_enum  data_type,
vx_size  count 
)

Creates an opaque reference to a LUT object with no direct user access.

Parameters
[in]graphThe reference to the parent graph.
[in]data_typeThe type of data stored in the LUT.
[in]countThe number of entries desired.
See also
vxCreateLUT
Note
data_type can only be VX_TYPE_UINT8 or VX_TYPE_INT16. If data_type is VX_TYPE_UINT8, count should be not greater than 256. If data_type is VX_TYPE_INT16, count should not be greater than 65536.
Returns
An LUT reference vx_lut. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateVirtualMatrix()

VX_API_ENTRY vx_matrix VX_API_CALL vxCreateVirtualMatrix ( vx_graph  graph,
vx_enum  data_type,
vx_size  columns,
vx_size  rows 
)

Creates an opaque reference to a matrix object without direct user access.

Parameters
[in]graphThe reference to the parent graph.
[in]data_typeThe vx_type_e that represents the data type of the matrix data elements.
[in]columnsThe first dimensionality.
[in]rowsThe second dimensionality.
See also
vxCreateMatrix
Returns
An matrix reference vx_matrix. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateVirtualObjectArray()

VX_API_ENTRY vx_object_array VX_API_CALL vxCreateVirtualObjectArray ( vx_graph  graph,
vx_reference  exemplar,
vx_size  count 
)

Creates an opaque reference to a virtual ObjectArray with no direct user access.

This function creates an ObjectArray of count objects with similar behavior as vxCreateObjectArray. The only difference is that the objects that are created are virtual in the given graph.

Parameters
[in]graphReference to the graph where to create the virtual ObjectArray.
[in]exemplarThe exemplar object that defines the type of object in the ObjectArray. Only exemplar type of vx_image, vx_array and vx_pyramid are allowed.
[in]countNumber of Objects to create in the ObjectArray.
Returns
A ObjectArray reference vx_object_array. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateVirtualPyramid()

VX_API_ENTRY 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.

Virtual Pyramids can be used to connect Nodes together when the contents of the pyramids will not be accessed by the user of the API. All of the following constructions are valid:

vx_graph graph = vxCreateGraph(context);
vx_pyramid virt[] = {
vxCreateVirtualPyramid(graph, 4, VX_SCALE_PYRAMID_HALF, 0, 0, VX_DF_IMAGE_VIRT), // no dimension and format specified for level 0
vxCreateVirtualPyramid(graph, 4, VX_SCALE_PYRAMID_HALF, 640, 480, VX_DF_IMAGE_VIRT), // no format specified.
vxCreateVirtualPyramid(graph, 4, VX_SCALE_PYRAMID_HALF, 640, 480, VX_DF_IMAGE_U8), // no access
};
VX_API_ENTRY 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.
#define VX_SCALE_PYRAMID_HALF
Use to indicate a half-scale pyramid.
Definition: vx_types.h:1640
struct _vx_pyramid * vx_pyramid
The Image Pyramid object. A set of scaled images.
Definition: vx_types.h:251
Parameters
[in]graphThe reference to the parent graph.
[in]levelsThe number of levels desired. This is required to be a non-zero value.
[in]scaleUsed to indicate the scale between pyramid levels. This is required to be a non-zero positive value. VX_SCALE_PYRAMID_HALF and VX_SCALE_PYRAMID_ORB must be supported.
[in]widthThe width of the 0th level image in pixels. This may be set to zero to indicate to the interface that the value is unspecified.
[in]heightThe height of the 0th level image in pixels. This may be set to zero to indicate to the interface that the value is unspecified.
[in]formatThe format of all images in the pyramid. This may be set to VX_DF_IMAGE_VIRT to indicate that the format is unspecified.
Returns
A pyramid reference vx_pyramid. Any possible errors preventing a successful creation should be checked using vxGetStatus.
Note
Images extracted with vxGetPyramidLevel behave as Virtual Images and cause vxMapImagePatch to return errors.

◆ vxCreateVirtualRemap()

VX_API_ENTRY vx_remap VX_API_CALL vxCreateVirtualRemap ( vx_graph  graph,
vx_uint32  src_width,
vx_uint32  src_height,
vx_uint32  dst_width,
vx_uint32  dst_height 
)

Creates an opaque reference to a remap table object without direct user access.

Parameters
[in]graphThe reference to the parent graph.
[in]src_widthWidth of the source image in pixel.
[in]src_heightHeight of the source image in pixels.
[in]dst_widthWidth of the destination image in pixels.
[in]dst_heightHeight of the destination image in pixels.
See also
vxCreateRemap
Returns
A remap reference vx_remap. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateVirtualScalar()

VX_API_ENTRY vx_scalar VX_API_CALL vxCreateVirtualScalar ( vx_graph  graph,
vx_enum  data_type 
)

Creates an opaque reference to a scalar object with no direct user access.

Parameters
[in]graphThe reference to the parent graph.
[in]data_typeThe type of data to hold. Must be greater than VX_TYPE_INVALID and less than or equal to VX_TYPE_VENDOR_STRUCT_END. Or must be a vx_enum returned from vxRegisterUserStruct.
See also
vxCreateScalar
Returns
A scalar reference vx_scalar. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxCreateVirtualTensor()

VX_API_ENTRY vx_tensor VX_API_CALL vxCreateVirtualTensor ( vx_graph  graph,
vx_size  number_of_dims,
const vx_size dims,
vx_enum  data_type,
vx_int8  fixed_point_position 
)

Creates an opaque reference to a tensor data buffer with no direct user access. This function allows setting the tensor data dimensions or data format.

Virtual data objects allow users to connect various nodes within a graph via data references without access to that data, but they also permit the implementation to take maximum advantage of possible optimizations. Use this API to create a data reference to link two or more nodes together when the intermediate data are not required to be accessed by outside entities. This API in particular allows the user to define the tensor data format of the data without requiring the exact dimensions. Virtual objects are scoped within the graph they are declared a part of, and can't be shared outside of this scope. Since functions using tensors, need to understand the context of each dimension. We describe a layout of the dimensions in each function. That layout is not mandated. It is done specifically to explain the functions and not to mandate layout. Different implementation may have different layout. Therfore the layout description is logical and not physical. It refers to the order of dimensions given in vxCreateTensor and vxCreateVirtualTensor.

Parameters
[in]graphThe reference to the parent graph.
[in]number_of_dimsThe number of dimensions.
[in]dimsDimensions sizes in elements.
[in]data_typeThe vx_type_e that represents the data type of the tensor data elements.
[in]fixed_point_positionSpecifies the fixed point position when the input element type is integer. If 0, calculations are performed in integer math.
Returns
A tensor data reference.Any possible errors preventing a successful creation should be checked using vxGetStatus.
Note
Passing this reference to vxCopyTensorPatch will return an error.

◆ vxCreateVirtualThresholdForImage()

VX_API_ENTRY vx_threshold VX_API_CALL vxCreateVirtualThresholdForImage ( vx_graph  graph,
vx_enum  thresh_type,
vx_df_image  input_format,
vx_df_image  output_format 
)

Creates an opaque reference to a threshold object without direct user access.

Parameters
[in]graphThe reference to the parent graph.
[in]thresh_typeThe type of thresholding operation.
[in]input_formatThe format of images that will be used as input of the thresholding operation.
[in]output_formatThe format of images that will be generated by the thresholding operation.
See also
vxCreateThresholdForImage
Returns
A threshold reference vx_threshold. Any possible errors preventing a successful creation should be checked using vxGetStatus.

◆ vxDirective()

VX_API_ENTRY vx_status VX_API_CALL vxDirective ( vx_reference  reference,
vx_enum  directive 
)

Provides a generic API to give platform-specific directives to the implementations.

Parameters
[in]referenceThe reference to the object to set the directive on. This could be vx_context, vx_graph, vx_node, vx_image, vx_array, or any other reference.
[in]directiveThe directive to set. See vx_directive_e.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEreference is not a valid vx_reference reference.
VX_ERROR_NOT_SUPPORTEDIf the directive is not supported.
Note
The performance counter directives are only available for the reference vx_context. Error VX_ERROR_NOT_SUPPORTED is returned when used with any other reference.

◆ vxFinalizeKernel()

VX_API_ENTRY 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 used. Notice that the reference to the kernel created by vxAddUserKernel is still valid after the call to vxFinalizeKernel. If an error occurs, the kernel is not available for usage by the clients of OpenVX. Typically this is due to a mismatch between the number of parameters requested and given.

Parameters
[in]kernelThe reference to the loaded kernel from vxAddUserKernel.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEkernel is not a valid vx_kernel reference.
Precondition
vxAddUserKernel and vxAddParameterToKernel

◆ vxFormatImagePatchAddress1d()

VX_API_ENTRY 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.

Parameters
[in]ptrThe base pointer of the patch as returned from vxMapImagePatch.
[in]indexThe 0 based index of the pixel count in the patch. Indexes increase horizontally by 1 then wrap around to the next row.
[in]addrThe pointer to the addressing mode information returned from vxMapImagePatch.
Returns
void * Returns the pointer to the specified pixel.
Precondition
vxMapImagePatch
Note
Some special restrictions apply to VX_DF_IMAGE_U1 images.

◆ vxFormatImagePatchAddress2d()

VX_API_ENTRY 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.

Parameters
[in]ptrThe base pointer of the patch as returned from vxMapImagePatch.
[in]xThe x dimension within the patch.
[in]yThe y dimension within the patch.
[in]addrThe pointer to the addressing mode information returned from vxMapImagePatch.
Returns
void * Returns the pointer to the specified pixel.
Precondition
vxMapImagePatch
Note
Some special restrictions apply to VX_DF_IMAGE_U1 images.

◆ vxGetContext()

VX_API_ENTRY vx_context VX_API_CALL vxGetContext ( vx_reference  reference)

Retrieves the context from any reference from within a context.

Parameters
[in]referenceThe reference from which to extract the context.
Returns
The overall context that created the particular reference. Any possible errors preventing a successful completion of this function should be checked using vxGetStatus.

◆ vxGetGraphParameterByIndex()

VX_API_ENTRY vx_parameter VX_API_CALL vxGetGraphParameterByIndex ( vx_graph  graph,
vx_uint32  index 
)

Retrieves a vx_parameter from a vx_graph.

Parameters
[in]graphThe graph.
[in]indexThe index of the parameter.
Returns
vx_parameter reference. Any possible errors preventing a successful function completion should be checked using vxGetStatus.

◆ vxGetKernelByEnum()

VX_API_ENTRY vx_kernel VX_API_CALL vxGetKernelByEnum ( vx_context  context,
vx_enum  kernel 
)

Obtains a reference to the kernel using the vx_kernel_e enumeration.

Enum values above the standard set are assumed to apply to loaded libraries.

Parameters
[in]contextThe reference to the implementation context.
[in]kernelA value from vx_kernel_e or a vendor or client-defined value.
Returns
A vx_kernel reference. Any possible errors preventing a successful completion of the function should be checked using vxGetStatus.
Precondition
vxLoadKernels if the kernel is not provided by the OpenVX implementation.

◆ vxGetKernelByName()

VX_API_ENTRY 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.

User Kernels follow a "dotted" heirarchical syntax. For example: "com.company.example.xyz". The following are strings specifying the kernel names:

org.khronos.openvx.color_convert

org.khronos.openvx.channel_extract

org.khronos.openvx.channel_combine

org.khronos.openvx.sobel_3x3

org.khronos.openvx.magnitude

org.khronos.openvx.phase

org.khronos.openvx.scale_image

org.khronos.openvx.table_lookup

org.khronos.openvx.histogram

org.khronos.openvx.equalize_histogram

org.khronos.openvx.absdiff

org.khronos.openvx.mean_stddev

org.khronos.openvx.threshold

org.khronos.openvx.integral_image

org.khronos.openvx.dilate_3x3

org.khronos.openvx.erode_3x3

org.khronos.openvx.median_3x3

org.khronos.openvx.box_3x3

org.khronos.openvx.gaussian_3x3

org.khronos.openvx.custom_convolution

org.khronos.openvx.gaussian_pyramid

org.khronos.openvx.minmaxloc

org.khronos.openvx.convertdepth

org.khronos.openvx.canny_edge_detector

org.khronos.openvx.and

org.khronos.openvx.or

org.khronos.openvx.xor

org.khronos.openvx.not

org.khronos.openvx.multiply

org.khronos.openvx.add

org.khronos.openvx.subtract

org.khronos.openvx.warp_affine

org.khronos.openvx.warp_perspective

org.khronos.openvx.harris_corners

org.khronos.openvx.fast_corners

org.khronos.openvx.optical_flow_pyr_lk

org.khronos.openvx.remap

org.khronos.openvx.halfscale_gaussian

org.khronos.openvx.laplacian_pyramid

org.khronos.openvx.laplacian_reconstruct

org.khronos.openvx.non_linear_filter

org.khronos.openvx.match_template

org.khronos.openvx.lbp

org.khronos.openvx.hough_lines_p

org.khronos.openvx.tensor_multiply

org.khronos.openvx.tensor_add

org.khronos.openvx.tensor_subtract

org.khronos.openvx.tensor_table_lookup

org.khronos.openvx.tensor_transpose

org.khronos.openvx.tensor_convert_depth

org.khronos.openvx.tensor_matrix_multiply

org.khronos.openvx.copy

org.khronos.openvx.non_max_suppression

org.khronos.openvx.scalar_operation

org.khronos.openvx.hog_features

org.khronos.openvx.hog_cells

org.khronos.openvx.bilateral_filter

org.khronos.openvx.select

org.khronos.openvx.min

org.khronos.openvx.max

org.khronos.openvx.weighted_average

Parameters
[in]contextThe reference to the implementation context.
[in]nameThe string of the name of the kernel to get.
Returns
A kernel reference. Any possible errors preventing a successful completion of the function should be checked using vxGetStatus.
Precondition
vxLoadKernels if the kernel is not provided by the OpenVX implementation.
Note
User Kernels should follow a "dotted" hierarchical syntax. For example: "com.company.example.xyz".

◆ vxGetKernelParameterByIndex()

VX_API_ENTRY vx_parameter VX_API_CALL vxGetKernelParameterByIndex ( vx_kernel  kernel,
vx_uint32  index 
)

Retrieves a vx_parameter from a vx_kernel.

Parameters
[in]kernelThe reference to the kernel.
[in]indexThe index of the parameter.
Returns
A vx_parameter reference. Any possible errors preventing a successful completion of the function should be checked using vxGetStatus.

◆ vxGetObjectArrayItem()

VX_API_ENTRY vx_reference VX_API_CALL vxGetObjectArrayItem ( vx_object_array  arr,
vx_uint32  index 
)

Retrieves the reference to the OpenVX Object in location index of the ObjectArray.

This is a vx_reference, which can be used elsewhere in OpenVX. A call to vxRelease<Object> or vxReleaseReference is necessary to release the Object for each call to this function.

Parameters
[in]arrThe ObjectArray.
[in]indexThe index of the object in the ObjectArray.
Returns
A reference to an OpenVX data object. Any possible errors preventing a successful completion of the function should be checked using vxGetStatus.

◆ vxGetParameterByIndex()

VX_API_ENTRY vx_parameter VX_API_CALL vxGetParameterByIndex ( vx_node  node,
vx_uint32  index 
)

Retrieves a vx_parameter from a vx_node.

Parameters
[in]nodeThe node from which to extract the parameter.
[in]indexThe index of the parameter to which to get a reference.
Returns
A parameter reference vx_parameter. Any possible errors preventing a successful completion of the function should be checked using vxGetStatus.

◆ vxGetPyramidLevel()

VX_API_ENTRY 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.

Parameters
[in]pyrThe pyramid object.
[in]indexThe index of the level, such that index is less than levels.
Returns
A vx_image reference. Any possible errors preventing a successful function completion should be checked using vxGetStatus.

◆ vxGetReferenceFromDelay()

VX_API_ENTRY vx_reference VX_API_CALL vxGetReferenceFromDelay ( vx_delay  delay,
vx_int32  index 
)

Retrieves a reference to a delay slot object.

Parameters
[in]delayThe reference to the delay object.
[in]indexThe index of the delay slot from which to extract the object reference.
Returns
vx_reference. Any possible errors preventing a successful completion of the function should be checked using vxGetStatus.
Note
The delay index is in the range \( [-count+1,0] \). 0 is always the current object.
A reference retrieved with this function must not be given to its associated release API (e.g. vxReleaseImage) unless vxRetainReference is used.

◆ vxGetStatus()

VX_API_ENTRY vx_status VX_API_CALL vxGetStatus ( vx_reference  reference)

Provides a generic API to return status values from Object constructors if they fail.

Note
Users do not need to strictly check every object creator as the errors should properly propagate and be detected during verification time or run-time.
vx_image img = vxCreateImage(context, 639, 480, VX_DF_IMAGE_UYVY);
// status == VX_ERROR_INVALID_DIMENSIONS
VX_API_ENTRY 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_API_ENTRY vx_status VX_API_CALL vxGetStatus(vx_reference reference)
Provides a generic API to return status values from Object constructors if they fail.
VX_API_ENTRY 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.
struct _vx_reference * vx_reference
A generic opaque reference to any object within OpenVX.
Definition: vx_types.h:145
@ VX_DF_IMAGE_UYVY
A single plane of 32-bit macro pixel of U0, Y0, V0, Y1 bytes. This uses the BT709 full range by defau...
Definition: vx_types.h:728
vx_enum vx_status
A formal status type with known fixed size.
Definition: vx_types.h:445
Precondition
Appropriate Object Creator function.
Postcondition
Appropriate Object Release function.
Parameters
[in]referenceThe reference to check for construction errors.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
*Some error occurred, please check enumeration list and constructor.

◆ vxGetUserStructEnumByName()

VX_API_ENTRY vx_status VX_API_CALL vxGetUserStructEnumByName ( vx_context  context,
const vx_char type_name,
vx_enum user_struct_type 
)

Returns the enum of the user-defined structure associated with the name given.

Parameters
[in]contextThe reference to the implementation context.
[in]type_namePointer to the '\0' terminated string that identifies the user struct type. The length of the string shall be lower than VX_MAX_REFERENCE_NAME bytes.
[out]user_struct_typeThe enumeration value of the user struct
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESStype_name was valid, and enumeration was found and returned
VX_FAILUREtype_name does not match any user struct enumeration.
Precondition
vxRegisterUserStructWithName should be called for this user struct.

◆ vxGetUserStructNameByEnum()

VX_API_ENTRY vx_status VX_API_CALL vxGetUserStructNameByEnum ( vx_context  context,
vx_enum  user_struct_type,
vx_char type_name,
vx_size  name_size 
)

Returns the name of the user-defined structure associated with the enumeration given.

Parameters
[in]contextThe reference to the implementation context.
[out]user_struct_typeName of the user struct
[in]type_nameThe enumeration value of the user struct
[in]name_sizeThe size of allocated buffer pointed to by type_name
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSuser_struct_type was valid, and name was found and returned
VX_ERROR_INVALID_PARAMETERSuser_struct_type was not a valid user struct enumeration.
VX_ERROR_NO_MEMORYname_size is too small to hold the name of the user struct type.
VX_FAILUREuser_struct_type does not have an associated type name.
Precondition
vxRegisterUserStructWithName should be called for this user struct.

◆ vxGetValidRegionImage()

VX_API_ENTRY vx_status VX_API_CALL vxGetValidRegionImage ( vx_image  image,
vx_rectangle_t rect 
)

Retrieves the valid region of the image as a rectangle.

Parameters
[in]imageThe image from which to retrieve the valid region.
[out]rectThe destination rectangle.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEimage is not a valid vx_image reference.
VX_ERROR_INVALID_PARAMETERSInvalid rect.
Note
This rectangle can be passed directly to vxMapImagePatch to get the full valid region of the image.
Some special restrictions apply to VX_DF_IMAGE_U1 images.

◆ vxHint()

VX_API_ENTRY vx_status VX_API_CALL vxHint ( vx_reference  reference,
vx_enum  hint,
const void *  data,
vx_size  data_size 
)

Provides a generic API to give platform-specific hints to the implementation.

Parameters
[in]referenceThe reference to the object to hint at. This could be vx_context, vx_graph, vx_node, vx_image, vx_array, or any other reference.
[in]hintA vx_hint_e hint to give to a vx_context. This is a platform-specific optimization or implementation mechanism.
[in]dataOptional vendor specific data.
[in]data_sizeSize of the data structure data.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEreference is not a valid vx_reference reference.
VX_ERROR_NOT_SUPPORTEDIf the hint is not supported.

◆ vxIsGraphVerified()

VX_API_ENTRY vx_bool VX_API_CALL vxIsGraphVerified ( vx_graph  graph)

Returns a Boolean to indicate the state of graph verification.

Parameters
[in]graphThe reference to the graph to check.
Returns
A vx_bool value.
Return values
vx_true_eThe graph is verified.
vx_false_eThe graph is not verified. It must be verified before execution either through vxVerifyGraph or automatically through vxProcessGraph or vxScheduleGraph.

◆ vxLoadKernels()

VX_API_ENTRY vx_status VX_API_CALL vxLoadKernels ( vx_context  context,
const vx_char module 
)

Loads a library of kernels, called module, into a context.

The module must be registered by vxRegisterKernelLibrary if it is not a dynamic library or the module must be a dynamic library with by convention, two exported functions named vxPublishKernels and vxUnpublishKernels.

vxPublishKernels must have type vx_publish_kernels_f, and must add kernels to the context by calling vxAddUserKernel for each new kernel. vxPublishKernels is called by vxLoadKernels.

vxUnpublishKernels must have type vx_unpublish_kernels_f, and must remove kernels from the context by calling vxRemoveKernel for each kernel the vxPublishKernels has added. vxUnpublishKernels is called by vxUnloadKernels.

Note
When all references to loaded kernels are released, the module may be automatically unloaded.
Parameters
[in]contextThe reference to the context the kernels must be added to.
[in]moduleThe short name of the module to load. On systems where there are specific naming conventions for modules, the name passed should ignore such conventions. For example: libxyz.so should be passed as just xyz and the implementation will do the right thing that the platform requires.
Note
This API uses the system pre-defined paths for modules.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEcontext is not a valid vx_context reference.
VX_ERROR_INVALID_PARAMETERSIf any of the other parameters are incorrect.
Precondition
vxRegisterKernelLibrary if the module is not a dynamic library
See also
vxGetKernelByName

◆ vxMapArrayRange()

VX_API_ENTRY vx_status VX_API_CALL vxMapArrayRange ( vx_array  array,
vx_size  range_start,
vx_size  range_end,
vx_map_id map_id,
vx_size stride,
void **  ptr,
vx_enum  usage,
vx_enum  mem_type,
vx_uint32  flags 
)

Allows the application to get direct access to a range of an array object.

Parameters
[in]arrayThe reference to the array object that contains the range to map.
[in]range_startThe index of the first item of the array object to map.
[in]range_endThe index of the item following the last item of the array object to map. (range_end range_start) items are mapped, starting from index range_start included. The range must be within the bounds of the array: Must be 0 <= range_start < range_end <= number of items.
[out]map_idThe address of a vx_map_id variable where the function returns a map identifier.
  • (*map_id) must eventually be provided as the map_id parameter of a call to vxUnmapArrayRange.
[out]strideThe address of a vx_size variable where the function returns the memory layout of the mapped array range. The function sets (*stride) to the number of bytes between the beginning of two consecutive items. The application must consult (*stride) to access the array items starting from address (*ptr). The layout of the mapped array follows an item major order: (*stride) >= item size in bytes.
[out]ptrThe address of a pointer that the function sets to the address where the requested data can be accessed. The returned (*ptr) address is only valid between the call to the function and the corresponding call to vxUnmapArrayRange.
[in]usageThis declares the access mode for the array range, using the vx_accessor_e enumeration.
  • VX_READ_ONLY: after the function call, the content of the memory location pointed by (*ptr) contains the array range data. Writing into this memory location is forbidden and its behavior is undefined.
  • VX_READ_AND_WRITE: after the function call, the content of the memory location pointed by (*ptr) contains the array range data; writing into this memory is allowed only for the location of items and will result in a modification of the affected items in the array object once the range is unmapped. Writing into a gap between items (when (*stride) > item size in bytes) is forbidden and its behavior is undefined.
  • VX_WRITE_ONLY: after the function call, the memory location pointed by (*ptr) contains undefined data; writing each item of the range is required prior to unmapping. Items not written by the application before unmap will become undefined after unmap, even if they were well defined before map. Like for VX_READ_AND_WRITE, writing into a gap between items is forbidden and its behavior is undefined.
[in]mem_typeA vx_memory_type_e enumeration that specifies the type of the memory where the array range is requested to be mapped.
[in]flagsAn integer that allows passing options to the map operation. Use the vx_map_flag_e enumeration.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_OPTIMIZED_AWAYThis is a reference to a virtual array that cannot be accessed by the application.
VX_ERROR_INVALID_REFERENCEarray is not a valid vx_array reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.
Postcondition
vxUnmapArrayRange with same (*map_id) value.

◆ vxMapDistribution()

VX_API_ENTRY vx_status VX_API_CALL vxMapDistribution ( vx_distribution  distribution,
vx_map_id map_id,
void **  ptr,
vx_enum  usage,
vx_enum  mem_type,
vx_bitfield  flags 
)

Allows the application to get direct access to distribution object.

Parameters
[in]distributionThe reference to the distribution object to map.
[out]map_idThe address of a vx_map_id variable where the function returns a map identifier.
  • (*map_id) must eventually be provided as the map_id parameter of a call to vxUnmapDistribution.
[out]ptrThe address of a pointer that the function sets to the address where the requested data can be accessed. In the mapped memory area, data are structured as a vx_uint32 array with a number of elements equal to the value returned via VX_DISTRIBUTION_BINS. Each element of this array corresponds to a bin of the distribution, with a range-major ordering. Accessing the memory out of the bound of this array is forbidden and has an undefined behavior. The returned (*ptr) address is only valid between the call to the function and the corresponding call to vxUnmapDistribution.
[in]usageThis declares the access mode for the distribution, using the vx_accessor_e enumeration.
  • VX_READ_ONLY: after the function call, the content of the memory location pointed by (*ptr) contains the distribution data. Writing into this memory location is forbidden and its behavior is undefined.
  • VX_READ_AND_WRITE: after the function call, the content of the memory location pointed by (*ptr) contains the distribution data; writing into this memory is allowed only for the location of bins and will result in a modification of the affected bins in the distribution object once the distribution is unmapped.
  • VX_WRITE_ONLY: after the function call, the memory location pointed by (*ptr) contains undefined data; writing each bin of distribution is required prior to unmapping. Bins not written by the application before unmap will become undefined after unmap, even if they were well defined before map.
[in]mem_typeA vx_memory_type_e enumeration that specifies the type of the memory where the distribution is requested to be mapped.
[in]flagsAn integer that allows passing options to the map operation. Use 0 for this option.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEdistribution is not a valid vx_distribution reference. reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.
Postcondition
vxUnmapDistribution with same (*map_id) value.

◆ vxMapImagePatch()

VX_API_ENTRY vx_status VX_API_CALL vxMapImagePatch ( vx_image  image,
const vx_rectangle_t rect,
vx_uint32  plane_index,
vx_map_id map_id,
vx_imagepatch_addressing_t addr,
void **  ptr,
vx_enum  usage,
vx_enum  mem_type,
vx_uint32  flags 
)

Allows the application to get direct access to a rectangular patch of an image object plane.

Parameters
[in]imageThe reference to the image object that contains the patch to map.
[in]rectThe coordinates of image patch. The patch must be within the bounds of the image. (start_x, start_y) gives the coordinate of the topleft element inside the patch, while (end_x, end_y) give the coordinate of the bottomright element out of the patch. Must be 0 <= start < end.
[in]plane_indexThe plane index of the image object to be accessed.
[out]map_idThe address of a vx_map_id variable where the function returns a map identifier.
  • (*map_id) must eventually be provided as the map_id parameter of a call to vxUnmapImagePatch.
[out]addrThe address of a vx_imagepatch_addressing_t structure describing the memory layout of the image patch to access. The function fills the structure pointed by addr with the layout information that the application must consult to access the pixel data at address (*ptr). The layout of the mapped memory follows a row-major order: stride_x>0, stride_y>0 and stride_y >= stride_x * dim_x. An exception is for VX_DF_IMAGE_U1 where stride_x == 0, stride_x_bits > 0 and stride_y {geq} (stride_x_bits * dim_x + 7) / 8 (i.e., at least the number of bytes needed to hold dim_x pixels). If the image object being accessed was created via vxCreateImageFromHandle, then the returned memory layout will be the identical to that of the addressing structure provided when vxCreateImageFromHandle was called.
[out]ptrThe address of a pointer that the function sets to the address where the requested data can be accessed. This returned (*ptr) address is only valid between the call to this function and the corresponding call to vxUnmapImagePatch. If image was created via vxCreateImageFromHandle then the returned address (*ptr) will be the address of the patch in the original pixel buffer provided when image was created.
[in]usageThis declares the access mode for the image patch, using the vx_accessor_e enumeration. For uniform images, only VX_READ_ONLY is supported.
  • VX_READ_ONLY: after the function call, the content of the memory location pointed by (*ptr) contains the image patch data. Writing into this memory location is forbidden and its behavior is undefined.
  • VX_READ_AND_WRITE: after the function call, the content of the memory location pointed by (*ptr) contains the image patch data; writing into this memory is allowed only for the location of pixels only and will result in a modification of the written pixels in the image object once the patch is unmapped. Writing into a gap between pixels (when addr->stride_x > pixel size in bytes or addr->stride_y > addr->stride_x*addr->dim_x) is forbidden and its behavior is undefined.
  • VX_WRITE_ONLY: after the function call, the memory location pointed by (*ptr) contains undefined data; writing each pixel of the patch is required prior to unmapping. Pixels not written by the application before unmap will become undefined after unmap, even if they were well defined before map. Like for VX_READ_AND_WRITE, writing into a gap between pixels is forbidden and its behavior is undefined.
[in]mem_typeA vx_memory_type_e enumeration that specifies the type of the memory where the image patch is requested to be mapped.
[in]flagsAn integer that allows passing options to the map operation. Use the vx_map_flag_e enumeration.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_OPTIMIZED_AWAYThis is a reference to a virtual image that cannot be accessed by the application.
VX_ERROR_INVALID_REFERENCEimage is not a valid vx_image reference. reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.
Note
The user may ask for data outside the bounds of the valid region, but such data has an undefined value.
Postcondition
vxUnmapImagePatch with same (*map_id) value.

◆ vxMapLUT()

VX_API_ENTRY vx_status VX_API_CALL vxMapLUT ( vx_lut  lut,
vx_map_id map_id,
void **  ptr,
vx_enum  usage,
vx_enum  mem_type,
vx_bitfield  flags 
)

Allows the application to get direct access to LUT object.

Parameters
[in]lutThe reference to the LUT object to map.
[out]map_idThe address of a vx_map_id variable where the function returns a map identifier.
  • (*map_id) must eventually be provided as the map_id parameter of a call to vxUnmapLUT.
[out]ptrThe address of a pointer that the function sets to the address where the requested data can be accessed. In the mapped memory area, the LUT data are structured as an array with elements of the type corresponding to VX_LUT_TYPE, with a number of elements equal to the value returned via VX_LUT_COUNT. Accessing the memory out of the bound of this array is forbidden and has an undefined behavior. The returned (*ptr) address is only valid between the call to the function and the corresponding call to vxUnmapLUT.
[in]usageThis declares the access mode for the LUT, using the vx_accessor_e enumeration.
  • VX_READ_ONLY: after the function call, the content of the memory location pointed by (*ptr) contains the LUT data. Writing into this memory location is forbidden and its behavior is undefined.
  • VX_READ_AND_WRITE: after the function call, the content of the memory location pointed by (*ptr) contains the LUT data; writing into this memory is allowed only for the location of entries and will result in a modification of the affected entries in the LUT object once the LUT is unmapped.
  • VX_WRITE_ONLY: after the function call, the memory location pointed by(*ptr) contains undefined data; writing each entry of LUT is required prior to unmapping. Entries not written by the application before unmap will become undefined after unmap, even if they were well defined before map.
[in]mem_typeA vx_memory_type_e enumeration that specifies the type of the memory where the LUT is requested to be mapped.
[in]flagsAn integer that allows passing options to the map operation. Use 0 for this option.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCElut is not a valid vx_lut reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.
Postcondition
vxUnmapLUT with same (*map_id) value.

◆ vxMapRemapPatch()

VX_API_ENTRY vx_status VX_API_CALL vxMapRemapPatch ( vx_remap  remap,
const vx_rectangle_t rect,
vx_map_id map_id,
vx_size stride_y,
void **  ptr,
vx_enum  coordinate_type,
vx_enum  usage,
vx_enum  mem_type 
)

Allows the application to get direct access to a rectangular patch of a remap object.

The patch is specified within the destination dimensions and its data provide the corresponding coordinate within the source dimensions. The patch is mapped as a 2D array of elements of the type associated with the coordinate_type parameter (i.e., vx_coordinates2df_t for VX_TYPE_COORDINATES2DF). The memory layout of the mapped 2D array follows a row-major order where rows are compact (without any gap between elements), and where the potential padding after each lines is determined by (* stride_y).

Parameters
[in]remapThe reference to the remap object that contains the patch to map.
[in]rectThe coordinates of remap patch. The patch must be specified within the bounds of the remap destination dimensions (VX_REMAP_DESTINATION_WIDTH x VX_REMAP_DESTINATION_HEIGHT). (start_x, start_y) gives the coordinate of the topleft element inside the patch, while (end_x, end_y) gives the coordinate of the bottomright element out of the patch.
[out]map_idThe address of a vx_map_id variable where the function returns a map identifier.
  • (*map_id) must eventually be provided as the map_id parameter of a call to vxUnmapRemapPatch.
[out]stride_yThe address of a vx_size variable where the function returns the difference between the address of the first element of two successive lines in the mapped remap patch. The stride value follows the following rule : (*stride_y) >= sizeof(<ELEMENT_TYPE>) * (rect->end_x - rect->start_x)
[out]ptrThe address of a pointer where the function returns where remap patch data can be accessed. (*ptr) is the address of the the top-left element of the remap patch. The returned (*ptr) address is only valid between the call to this function and the corresponding call to vxUnmapRemapPatch.
[in]coordinate_typeThis declares the type of the source coordinate data that the application wants to access in the remap patch. It must be VX_TYPE_COORDINATES2DF.
[in]usageThis declares the access mode for the remap patch, using the vx_accessor_e enumeration.
  • VX_READ_ONLY: after the function call, the content of the memory location pointed by (*ptr) contains the remap patch data. Writing into this memory location is forbidden and its behavior is undefined.
  • VX_READ_AND_WRITE: after the function call, the content of the memory location pointed by (*ptr) contains the remap patch data; writing into this memory is allowed for the location of elements only and will result in a modification of the written elements in the remap object once the patch is unmapped. Writing into a gap between element lines (when (*stride_y) > sizeof(<ELEMENT_TYPE>) * (rect->end_x - rect->start_x)) is forbidden and its behavior is undefined.
  • VX_WRITE_ONLY: after the function call, the memory location pointed by (*ptr) contains undefined data; writing each element of the patch is required prior to unmapping. Elements not written by the application before unmap will become undefined after unmap, even if they were well defined before map. Like for VX_READ_AND_WRITE, writing into a gap between element lines is forbidden and its behavior is undefined.
[in]mem_typeA vx_memory_type_e enumeration that specifies the type of the memory where the remap patch is requested to be mapped.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEremap is not a valid vx_remap reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.
Postcondition
vxUnmapRemapPatch with same (*map_id) value.

◆ vxMapTensorPatch()

VX_API_ENTRY vx_status VX_API_CALL vxMapTensorPatch ( vx_tensor  tensor,
vx_size  number_of_dims,
const vx_size view_start,
const vx_size view_end,
vx_map_id map_id,
vx_size stride,
void **  ptr,
vx_enum  usage,
vx_enum  mem_type 
)

Allows the application to get direct access to a patch of tensor object.

Parameters
[in]tensorThe reference to the tensor object that is the source or the destination for direct access.
[in]number_of_dimsThe number of dimensions. Must be same as tensor number_of_dims.
[in]view_startArray of patch start points in each dimension. This is optional parameter and will be zero when NULL.
[in]view_endArray of patch end points in each dimension. This is optional parameter and will be dims[] of tensor when NULL.
[out]map_idThe address of a vx_map_id variable where the function returns a map identifier.
  • (*map_id) must eventually be provided as the map_id parameter of a call to vxUnmapTensorPatch.
[out]strideAn array of stride in all dimensions in bytes. The stride value at index 0 must be size of the tensor data element type.
[out]ptrThe address of a pointer that the function sets to the address where the requested data can be accessed. The returned (*ptr) address is only valid between the call to the function and the corresponding call to vxUnmapTensorPatch.
[in]usageThis declares the access mode for the tensor patch, using the vx_accessor_e enumeration.
  • VX_READ_ONLY: after the function call, the content of the memory location pointed by (*ptr) contains the tensor patch data. Writing into this memory location is forbidden and its behavior is undefined.
  • VX_READ_AND_WRITE : after the function call, the content of the memory location pointed by (*ptr) contains the tensor patch data; writing into this memory is allowed only for the location of items and will result in a modification of the affected items in the tensor object once the range is unmapped. Writing into a gap between items (when (*stride) > item size in bytes) is forbidden and its behavior is undefined.
  • VX_WRITE_ONLY: after the function call, the memory location pointed by (*ptr) contains undefined data; writing each item of the range is required prior to unmapping. Items not written by the application before unmap will become undefined after unmap, even if they were well defined before map. Like for VX_READ_AND_WRITE, writing into a gap between items is forbidden and its behavior is undefined.
[in]mem_typeA vx_memory_type_e enumeration that specifies the type of the memory where the tensor patch is requested to be mapped.
Returns
A vx_status_e enumeration.
Return values
VX_ERROR_OPTIMIZED_AWAYThis is a reference to a virtual tensor that cannot be accessed by the application.
VX_ERROR_INVALID_REFERENCEThe tensor reference is not actually an tensor reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.
VX_ERROR_NO_MEMORYInternal memory allocation failed.
Postcondition
vxUnmapTensorPatch with same (*map_id) value.

◆ vxProcessGraph()

VX_API_ENTRY 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, then the implementation verifies the graph immediately. If verification fails this function returns a status identical to what vxVerifyGraph would return. After the graph verfies successfully then processing occurs. If the graph was previously verified via vxVerifyGraph or vxProcessGraph then the graph is processed. This function blocks until the graph is completed.

Parameters
[in]graphThe graph to execute.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSGraph has been processed; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEgraph is not a valid vx_graph reference.
VX_FAILUREA catastrophic error occurred during processing.

◆ vxQueryArray()

VX_API_ENTRY vx_status VX_API_CALL vxQueryArray ( vx_array  arr,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Queries the Array for some specific information.

Parameters
[in]arrThe reference to the Array.
[in]attributeThe attribute to query. Use a vx_array_attribute_e.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEarr is not a valid vx_array reference.
VX_ERROR_NOT_SUPPORTEDIf the attribute is not a value supported on this implementation.
VX_ERROR_INVALID_PARAMETERSIf any of the other parameters are incorrect.

◆ vxQueryContext()

VX_API_ENTRY vx_status VX_API_CALL vxQueryContext ( vx_context  context,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Queries the context for some specific information.

Parameters
[in]contextThe reference to the context.
[in]attributeThe attribute to query. Use a vx_context_attribute_e.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEcontext is not a valid vx_context reference.
VX_ERROR_INVALID_PARAMETERSIf any of the other parameters are incorrect.
VX_ERROR_NOT_SUPPORTEDIf the attribute is not supported on this implementation.

◆ vxQueryConvolution()

VX_API_ENTRY 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.

Parameters
[in]convThe convolution matrix object to set.
[in]attributeThe attribute to query. Use a vx_convolution_attribute_e enumeration.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEconv is not a valid vx_convolution reference.

◆ vxQueryDelay()

VX_API_ENTRY vx_status VX_API_CALL vxQueryDelay ( vx_delay  delay,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Queries a vx_delay object attribute.

Parameters
[in]delayThe reference to a delay object.
[in]attributeThe attribute to query. Use a vx_delay_attribute_e enumeration.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEdelay is not a valid vx_delay reference.

◆ vxQueryDistribution()

VX_API_ENTRY vx_status VX_API_CALL vxQueryDistribution ( vx_distribution  distribution,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Queries a Distribution object.

Parameters
[in]distributionThe reference to the distribution to query.
[in]attributeThe attribute to query. Use a vx_distribution_attribute_e enumeration.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEdistribution is not a valid vx_distribution reference.

◆ vxQueryGraph()

VX_API_ENTRY 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.

Parameters
[in]graphThe reference to the created graph.
[in]attributeThe vx_graph_attribute_e type needed.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEgraph is not a valid vx_graph reference.

◆ vxQueryImage()

VX_API_ENTRY vx_status VX_API_CALL vxQueryImage ( vx_image  image,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Retrieves various attributes of an image.

Parameters
[in]imageThe reference to the image to query.
[in]attributeThe attribute to query. Use a vx_image_attribute_e.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEimage is not a valid vx_image reference.
VX_ERROR_INVALID_PARAMETERSIf any of the other parameters are incorrect.
VX_ERROR_NOT_SUPPORTEDIf the attribute is not supported on this implementation.

◆ vxQueryKernel()

VX_API_ENTRY 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, enum values, etc.

Parameters
[in]kernelThe kernel reference to query.
[in]attributeThe attribute to query. Use a vx_kernel_attribute_e.
[out]ptrThe pointer to the location at which to store the resulting value.
[in]sizeThe size of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEkernel is not a valid vx_kernel reference.
VX_ERROR_INVALID_PARAMETERSIf any of the other parameters are incorrect.
VX_ERROR_NOT_SUPPORTEDIf the attribute value is not supported in this implementation.

◆ vxQueryLUT()

VX_API_ENTRY vx_status VX_API_CALL vxQueryLUT ( vx_lut  lut,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Queries attributes from a LUT.

Parameters
[in]lutThe LUT to query.
[in]attributeThe attribute to query. Use a vx_lut_attribute_e enumeration.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCElut is not a valid vx_lut reference.

◆ vxQueryMatrix()

VX_API_ENTRY vx_status VX_API_CALL vxQueryMatrix ( vx_matrix  mat,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Queries an attribute on the matrix object.

Parameters
[in]matThe matrix object to set.
[in]attributeThe attribute to query. Use a vx_matrix_attribute_e enumeration.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEmat is not a valid vx_matrix reference.

◆ vxQueryMetaFormatAttribute()

VX_API_ENTRY vx_status VX_API_CALL vxQueryMetaFormatAttribute ( vx_meta_format  meta,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

This function allows a user to query the attributes of a vx_meta_format object in a kernel parameter.

The vx_meta_format object contains two types of information: data object meta data and some specific information that defines how the valid region of an image changes

The meta data attributes that can be queried are identified by this list:

◆ vxQueryNode()

VX_API_ENTRY 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.

Parameters
[in]nodeThe reference to the node to query.
[in]attributeUse vx_node_attribute_e value to query for information.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytesin bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEnode is not a valid vx_node reference.
VX_ERROR_INVALID_PARAMETERSThe type or size is incorrect.

◆ vxQueryObjectArray()

VX_API_ENTRY vx_status VX_API_CALL vxQueryObjectArray ( vx_object_array  arr,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Queries an atribute from the ObjectArray.

Parameters
[in]arrThe reference to the ObjectArray.
[in]attributeThe attribute to query. Use a vx_object_array_attribute_e.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEarr is not a valid vx_object_array reference.
VX_ERROR_NOT_SUPPORTEDIf the attribute is not a value supported on this implementation.
VX_ERROR_INVALID_PARAMETERSIf any of the other parameters are incorrect.

◆ vxQueryParameter()

VX_API_ENTRY vx_status VX_API_CALL vxQueryParameter ( vx_parameter  parameter,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Allows the client to query a parameter to determine its meta-information.

Parameters
[in]parameterThe reference to the parameter.
[in]attributeThe attribute to query. Use a vx_parameter_attribute_e.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEparameter is not a valid vx_parameter reference.

◆ vxQueryPyramid()

VX_API_ENTRY vx_status VX_API_CALL vxQueryPyramid ( vx_pyramid  pyr,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Queries an attribute from an image pyramid.

Parameters
[in]pyrThe pyramid to query.
[in]attributeThe attribute for which to query. Use a vx_pyramid_attribute_e enumeration.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEpyr is not a valid vx_pyramid reference.

◆ vxQueryReference()

VX_API_ENTRY 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 like count or type.

Parameters
[in]refThe reference to query.
[in]attributeThe value for which to query. Use vx_reference_attribute_e.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEref is not a valid vx_reference reference.

◆ vxQueryRemap()

VX_API_ENTRY vx_status VX_API_CALL vxQueryRemap ( vx_remap  table,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Queries attributes from a Remap table.

Parameters
[in]tableThe remap to query.
[in]attributeThe attribute to query. Use a vx_remap_attribute_e enumeration.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEtable is not a valid vx_remap reference.

◆ vxQueryScalar()

VX_API_ENTRY vx_status VX_API_CALL vxQueryScalar ( vx_scalar  scalar,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Queries attributes from a scalar.

Parameters
[in]scalarThe scalar object.
[in]attributeThe enumeration to query. Use a vx_scalar_attribute_e enumeration.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEscalar is not a valid vx_scalar reference.

◆ vxQueryTensor()

VX_API_ENTRY vx_status VX_API_CALL vxQueryTensor ( vx_tensor  tensor,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Retrieves various attributes of a tensor data.

Parameters
[in]tensorThe reference to the tensor data to query.
[in]attributeThe attribute to query. Use a vx_tensor_attribute_e.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors.
VX_ERROR_INVALID_REFERENCEIf data is not a vx_tensor.
VX_ERROR_INVALID_PARAMETERSIf any of the other parameters are incorrect.

◆ vxQueryThreshold()

VX_API_ENTRY vx_status VX_API_CALL vxQueryThreshold ( vx_threshold  thresh,
vx_enum  attribute,
void *  ptr,
vx_size  size 
)

Queries an attribute on the threshold object.

Parameters
[in]threshThe threshold object to set.
[in]attributeThe attribute to query. Use a vx_threshold_attribute_e enumeration.
[out]ptrThe location at which to store the resulting value.
[in]sizeThe size of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEthresh is not a valid vx_threshold reference.

◆ vxRegisterAutoAging()

VX_API_ENTRY vx_status VX_API_CALL vxRegisterAutoAging ( vx_graph  graph,
vx_delay  delay 
)

Register a delay for auto-aging.

This function registers a delay object to be auto-aged by the graph. This delay object will be automatically aged after each successful completion of this graph. Aging of a delay object cannot be called during graph execution. A graph abandoned due to a node callback will trigger an auto-aging.

If a delay is registered for auto-aging multiple times in a same graph, the delay will be only aged a single time at each graph completion. If a delay is registered for auto-aging in multiple graphs, this delay will aged automatically after each successful completion of any of these graphs.

Parameters
[in]graphThe graph to which the delay is registered for auto-aging.
[in]delayThe delay to automatically age.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEgraph is not a valid vx_graph reference, or delay is not a valid vx_delay reference.

◆ vxRegisterKernelLibrary()

VX_API_ENTRY vx_status VX_API_CALL vxRegisterKernelLibrary ( vx_context  context,
const vx_char module,
vx_publish_kernels_f  publish,
vx_unpublish_kernels_f  unpublish 
)

Registers a module with kernels in a context.

This function registers the appropriate publish and unpublish functions with the module name if the module is not a dynamic library, so vxLoadKernels and vxUnloadKernels can be called.

Parameters
[in]contextThe reference to the context the kernels must be added to.
[in]moduleThe short name of the module to load.
[in]publishmust add kernels to the context by calling vxAddUserKernel for each new kernel. It is called by vxLoadKernels.
[in]unpublishmust remove kernels from the context by calling vxRemoveKernel for each kernel the vxPublishKernels has added. It is called by vxUnloadKernels.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEcontext is not a valid vx_context reference.
VX_ERROR_INVALID_PARAMETERSIf any of the other parameters are incorrect.
See also
vxLoadKernels

◆ vxRegisterLogCallback()

VX_API_ENTRY 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.

Parameters
[in]contextThe overall context to OpenVX.
[in]callbackThe callback function. If NULL, the previous callback is removed.
[in]reentrantIf reentrancy flag is vx_true_e, then the callback may be entered from multiple simultaneous tasks or threads (if the host OS supports this).

◆ vxRegisterUserStruct()

VX_API_ENTRY vx_enum VX_API_CALL vxRegisterUserStruct ( vx_context  context,
vx_size  size 
)

Registers user-defined structures to the context.

Parameters
[in]contextThe reference to the implementation context.
[in]sizeThe size of user struct in bytes.
Returns
A vx_enum value that is a type given to the User to refer to their custom structure when declaring a vx_array of that structure.
Return values
VX_TYPE_INVALIDIf the namespace of types has been exhausted.
Note
This call should only be used once within the lifetime of a context for a specific structure.

◆ vxRegisterUserStructWithName()

VX_API_ENTRY vx_enum VX_API_CALL vxRegisterUserStructWithName ( vx_context  context,
vx_size  size,
const vx_char type_name 
)

Registers user-defined structures to the context, and associates a name to it.

Parameters
[in]contextThe reference to the implementation context.
[in]sizeThe size of user struct in bytes.
[in]type_namePointer to the '\0' terminated string that identifies the user struct type. The string is copied by the function so that it stays the property of the caller. NULL means that the user struct is not named. The length of the string shall be lower than VX_MAX_REFERENCE_NAME bytes.
Returns
A vx_enum value that is a type given to the User to refer to their custom structure when declaring a vx_array of that structure.
Return values
VX_TYPE_INVALIDIf the namespace of types has been exhausted.
Note
This call should only be used once within the lifetime of a context for a specific structure.

◆ vxReleaseArray()

VX_API_ENTRY 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 reference count is zero. After returning from this function the reference is zeroed.

Parameters
[in]arrThe pointer to the Array to release.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEarr is not a valid vx_array reference.

◆ vxReleaseContext()

VX_API_ENTRY vx_status VX_API_CALL vxReleaseContext ( vx_context context)

Releases the OpenVX object context.

All reference counted objects are garbage-collected by the return of this call. No calls are possible using the parameter context after the context has been released until a new reference from vxCreateContext is returned. All outstanding references to OpenVX objects from this context are invalid after this call.

Parameters
[in]contextThe pointer to the reference to the context.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEcontext is not a valid vx_context reference.
Precondition
vxCreateContext

◆ vxReleaseConvolution()

VX_API_ENTRY 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 total reference count is zero.

Parameters
[in]convThe pointer to the convolution matrix to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEconv is not a valid vx_convolution reference.

◆ vxReleaseDelay()

VX_API_ENTRY 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 reference count is zero.

Parameters
[in]delayThe pointer to the delay object reference to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEdelay is not a valid vx_delay reference.

◆ vxReleaseDistribution()

VX_API_ENTRY 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 total reference count is zero.

Parameters
[in]distributionThe reference to the distribution to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEdistribution is not a valid vx_distribution reference.

◆ vxReleaseGraph()

VX_API_ENTRY 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 count is zero. Once the reference count is zero, all node references in the graph are automatically released as well. Releasing the graph will only release the nodes if the nodes were not previously released by the application. Data referenced by those nodes may not be released as the user may still have references to the data.

Parameters
[in]graphThe pointer to the graph to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEgraph is not a valid vx_graph reference.

◆ vxReleaseImage()

VX_API_ENTRY 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 reference count is zero.

An implementation may defer the actual object destruction after its total reference count is zero (potentially until context destruction). Thus, releasing an image created from handle (see vxCreateImageFromHandle) and all others objects that may reference it (nodes, ROI, or channel for instance) are not sufficient to get back the ownership of the memory referenced by the current image handle. The only way for this is to call vxSwapImageHandle) before releasing the image.

Parameters
[in]imageThe pointer to the image to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEimage is not a valid vx_image reference.

◆ vxReleaseKernel()

VX_API_ENTRY 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 reference count is zero.

Parameters
[in]kernelThe pointer to the kernel reference to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEkernel is not a valid vx_kernel reference.

◆ vxReleaseLUT()

VX_API_ENTRY 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 reference count is zero.

Parameters
[in]lutThe pointer to the LUT to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCElut is not a valid vx_lut reference.

◆ vxReleaseMatrix()

VX_API_ENTRY 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 reference count is zero.

Parameters
[in]matThe matrix reference to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEmat is not a valid vx_matrix reference.

◆ vxReleaseNode()

VX_API_ENTRY 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 reference count is zero.

Parameters
[in]nodeThe pointer to the reference of the node to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEnode is not a valid vx_node reference.

◆ vxReleaseObjectArray()

VX_API_ENTRY vx_status VX_API_CALL vxReleaseObjectArray ( vx_object_array arr)

Releases a reference of an ObjectArray object.

The object may not be garbage collected until its total reference and its contained objects count is zero. After returning from this function the reference is zeroed/cleared.

Parameters
[in]arrThe pointer to the ObjectArray to release.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEarr is not a valid vx_object_array reference.

◆ vxReleaseParameter()

VX_API_ENTRY 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 reference count is zero.

Parameters
[in]paramThe pointer to the parameter to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEparam is not a valid vx_parameter reference.

◆ vxReleasePyramid()

VX_API_ENTRY 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 reference count is zero.

Parameters
[in]pyrThe pointer to the pyramid to release.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEpyr is not a valid vx_pyramid reference.
Postcondition
After returning from this function the reference is zeroed.

◆ vxReleaseReference()

VX_API_ENTRY vx_status VX_API_CALL vxReleaseReference ( vx_reference ref_ptr)

Releases a reference. The reference may potentially refer to multiple OpenVX objects of different types. This function can be used instead of calling a specific release function for each individual object type (e.g. vxRelease<object>). The object will not be destroyed until its total reference count is zero.

Note
After returning from this function the reference is zeroed.
Parameters
[in]ref_ptrThe pointer to the reference of the object to release.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEref_ptr is not a valid vx_reference reference.

◆ vxReleaseRemap()

VX_API_ENTRY 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 reference count is zero.

Parameters
[in]tableThe pointer to the remap table to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEtable is not a valid vx_remap reference.

◆ vxReleaseScalar()

VX_API_ENTRY 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 reference count is zero.

Parameters
[in]scalarThe pointer to the scalar to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEscalar is not a valid vx_scalar reference.

◆ vxReleaseTensor()

VX_API_ENTRY vx_status VX_API_CALL vxReleaseTensor ( vx_tensor tensor)

Releases a reference to a tensor data object. The object may not be garbage collected until its total reference count is zero.

Parameters
[in]tensorThe pointer to the tensor data to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; all other values indicate failure
*An error occurred. See vx_status_e.

◆ vxReleaseThreshold()

VX_API_ENTRY 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 reference count is zero.

Parameters
[in]threshThe pointer to the threshold to release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEthresh is not a valid vx_threshold reference.

◆ vxRemoveKernel()

VX_API_ENTRY vx_status VX_API_CALL vxRemoveKernel ( vx_kernel  kernel)

Removes a custom kernel from its context and releases it.

Parameters
[in]kernelThe reference to the kernel to remove. Returned from vxAddUserKernel.
Note
Any kernel enumerated in the base standard cannot be removed; only kernels added through vxAddUserKernel can be removed.
Returns
A vx_status_e enumeration. The function returns to the application full control over the memory resources provided at the kernel creation time.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEkernel is not a valid vx_kernel reference.
VX_ERROR_INVALID_PARAMETERSIf a base kernel is passed in.
VX_FAILUREIf the application has not released all references to the kernel object OR if the application has not released all references to a node that is using this kernel OR if the application has not released all references to a graph which has nodes that is using this kernel.

◆ vxRemoveNode()

VX_API_ENTRY vx_status VX_API_CALL vxRemoveNode ( vx_node node)

Removes a Node from its parent Graph and releases it.

Parameters
[in]nodeThe pointer to the node to remove and release.
Postcondition
After returning from this function the reference is zeroed.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEnode is not a valid vx_node reference.

◆ vxReplicateNode()

VX_API_ENTRY vx_status VX_API_CALL vxReplicateNode ( vx_graph  graph,
vx_node  first_node,
vx_bool  replicate[],
vx_uint32  number_of_parameters 
)

Creates replicas of the same node first_node to process a set of objects stored in vx_pyramid or vx_object_array. first_node needs to have as parameter levels 0 of a vx_pyramid or the index 0 of a vx_object_array. Replica nodes are not accessible by the application through any means. An application request for removal of first_node from the graph will result in removal of all replicas. Any change of parameter or attribute of first_node will be propagated to the replicas. vxVerifyGraph shall enforce consistency of parameters and attributes in the replicas.

Parameters
[in]graphThe reference to the graph.
[in]first_nodeThe reference to the node in the graph that will be replicated.
[in]replicatean array of size equal to the number of node parameters, vx_true_e for the parameters that should be iterated over (should be a reference to a vx_pyramid or a vx_object_array), vx_false_e for the parameters that should be the same across replicated nodes and for optional parameters that are not used. Should be vx_true_e for all output parameters.
[in]number_of_parametersnumber of elements in the replicate array
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEgraph is not a valid vx_graph reference, or first_node is not a valid vx_node reference.
VX_ERROR_NOT_COMPATIBLEAt least one of replicated parameters is not of level 0 of a pyramid or at index 0 of an object array.
VX_FAILUREIf the node does not belong to the graph, or the number of objects in the parent objects of inputs and output are not the same.

◆ vxRetainReference()

VX_API_ENTRY vx_status VX_API_CALL vxRetainReference ( vx_reference  ref)

Increments the reference counter of an object This function is used to express the fact that the OpenVX object is referenced multiple times by an application. Each time this function is called for an object, the application will need to release the object one additional time before it can be destructed.

Parameters
[in]refThe reference to retain.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEref is not a valid vx_reference reference.

◆ vxRetrieveNodeCallback()

VX_API_ENTRY vx_nodecomplete_f VX_API_CALL vxRetrieveNodeCallback ( vx_node  node)

Retrieves the current node callback function pointer set on the node.

Parameters
[in]nodeThe reference to the vx_node object.
Returns
vx_nodecomplete_f The pointer to the callback function.
Return values
NULLNo callback is set.
*The node callback function.

◆ vxScheduleGraph()

VX_API_ENTRY vx_status VX_API_CALL vxScheduleGraph ( vx_graph  graph)

Schedules a graph for future execution. If the graph has not been verified, then the implementation verifies the graph immediately. If verification fails this function returns a status identical to what vxVerifyGraph would return. After the graph verfies successfully then processing occurs. If the graph was previously verified via vxVerifyGraph or vxProcessGraph then the graph is processed.

Parameters
[in]graphThe graph to schedule.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSThe graph has been scheduled; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEgraph is not a valid vx_graph reference.
VX_ERROR_NO_RESOURCESThe graph cannot be scheduled now.
VX_ERROR_NOT_SUFFICIENTThe graph is not verified and has failed forced verification.

◆ vxSetContextAttribute()

VX_API_ENTRY vx_status VX_API_CALL vxSetContextAttribute ( vx_context  context,
vx_enum  attribute,
const void *  ptr,
vx_size  size 
)

Sets an attribute on the context.

Parameters
[in]contextThe handle to the overall context.
[in]attributeThe attribute to set from vx_context_attribute_e.
[in]ptrThe pointer to the data to which to set the attribute.
[in]sizeThe size in bytes of the data to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEcontext is not a valid vx_context reference.
VX_ERROR_INVALID_PARAMETERSIf any of the other parameters are incorrect.
VX_ERROR_NOT_SUPPORTEDIf the attribute is not settable.

◆ vxSetConvolutionAttribute()

VX_API_ENTRY vx_status VX_API_CALL vxSetConvolutionAttribute ( vx_convolution  conv,
vx_enum  attribute,
const void *  ptr,
vx_size  size 
)

Sets attributes on the convolution object.

Parameters
[in]convThe coordinates object to set.
[in]attributeThe attribute to modify. Use a vx_convolution_attribute_e enumeration.
[in]ptrThe pointer to the value to which to set the attribute.
[in]sizeThe size in bytes of the data pointed to by ptr.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEconv is not a valid vx_convolution reference.

◆ vxSetGraphAttribute()

VX_API_ENTRY vx_status VX_API_CALL vxSetGraphAttribute ( vx_graph  graph,
vx_enum  attribute,
const void *  ptr,
vx_size  size 
)

Allows the attributes of the Graph to be set to the provided value.

Parameters
[in]graphThe reference to the graph.
[in]attributeThe vx_graph_attribute_e type needed.
[in]ptrThe location from which to read the value.
[in]sizeThe size in bytes of the container to which ptr points.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEgraph is not a valid vx_graph reference.

◆ vxSetGraphParameterByIndex()

VX_API_ENTRY 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 originating node as well.

Parameters
[in]graphThe graph reference.
[in]indexThe parameter index.
[in]valueThe reference to set to the parameter.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSParameter set to Graph; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEgraph is not a valid vx_graph reference or value is not a valid vx_reference.
VX_ERROR_INVALID_PARAMETERSThe parameter index is out of bounds or the dir parameter is incorrect.

◆ vxSetImageAttribute()

VX_API_ENTRY vx_status VX_API_CALL vxSetImageAttribute ( vx_image  image,
vx_enum  attribute,
const void *  ptr,
vx_size  size 
)

Allows setting attributes on the image.

Parameters
[in]imageThe reference to the image on which to set the attribute.
[in]attributeThe attribute to set. Use a vx_image_attribute_e enumeration.
[in]ptrThe pointer to the location from which to read the value.
[in]sizeThe size in bytes of the object pointed to by ptr.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEimage is not a valid vx_image reference.
VX_ERROR_INVALID_PARAMETERSIf any of the other parameters are incorrect.

◆ vxSetImagePixelValues()

VX_API_ENTRY vx_status VX_API_CALL vxSetImagePixelValues ( vx_image  image,
const vx_pixel_value_t pixel_value 
)

Initialize an image with the given pixel value.

Parameters
[in]imageThe reference to the image to initialize.
[in]pixel_valueThe pointer to the constant pixel value to initialize all image pixels. See vx_pixel_value_t.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors.
VX_ERROR_INVALID_REFERENCEIf the image is a uniform image, a virtual image, or not a vx_image.
VX_ERROR_INVALID_PARAMETERSIf any of the other parameters are incorrect.
Note
All pixels of the entire image are initialized to the indicated pixel value, independently from the valid region. The valid region of the image is unaffected by this function. The image remains mutable after the call to this function, so its pixels and mutable attributes may be changed by subsequent functions.

◆ vxSetImageValidRectangle()

VX_API_ENTRY vx_status VX_API_CALL vxSetImageValidRectangle ( vx_image  image,
const vx_rectangle_t rect 
)

Sets the valid rectangle for an image according to a supplied rectangle.

Note
Setting or changing the valid region from within a user node by means other than the call-back, for example by calling vxSetImageValidRectangle, might result in an incorrect valid region calculation by the framework.
Parameters
[in]imageThe reference to the image.
[in]rectThe value to be set to the image valid rectangle. A NULL indicates that the valid region is the entire image.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEimage is not a valid vx_image reference.
VX_ERROR_INVALID_PARAMETERSThe rect does not define a proper valid rectangle.

◆ vxSetImmediateModeTarget()

VX_API_ENTRY vx_status VX_API_CALL vxSetImmediateModeTarget ( vx_context  context,
vx_enum  target_enum,
const char *  target_string 
)

Sets the default target of the immediate mode. Upon successful execution of this function any future execution of immediate mode function is attempted on the new default target of the context.

Parameters
[in]contextThe reference to the implementation context.
[in]target_enumThe default immediate mode target enum to be set to the vx_context object. Use a vx_target_e.
[in]target_stringThe target name ASCII string. This contains a valid value when target_enum is set to VX_TARGET_STRING, otherwise it is ignored.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSDefault target set; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEIf the context is not a valid vx_context reference.
VX_ERROR_NOT_SUPPORTEDIf the specified target is not supported in this context.

◆ vxSetKernelAttribute()

VX_API_ENTRY vx_status VX_API_CALL vxSetKernelAttribute ( vx_kernel  kernel,
vx_enum  attribute,
const void *  ptr,
vx_size  size 
)

Sets kernel attributes.

Parameters
[in]kernelThe reference to the kernel.
[in]attributeThe enumeration of the attributes. See vx_kernel_attribute_e.
[in]ptrThe pointer to the location from which to read the attribute.
[in]sizeThe size in bytes of the data area indicated by ptr in bytes.
Note
After a kernel has been passed to vxFinalizeKernel, no attributes can be altered.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEkernel is not a valid vx_kernel reference.

◆ vxSetMetaFormatAttribute()

VX_API_ENTRY 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 validator.

The vx_meta_format object contains two types of information: data object meta data and some specific information that defines how the valid region of an image changes

The meta data attributes that can be set are identified by this list:

◆ vxSetMetaFormatFromReference()

VX_API_ENTRY vx_status VX_API_CALL vxSetMetaFormatFromReference ( vx_meta_format  meta,
vx_reference  exemplar 
)

Set a meta format object from an exemplar data object reference.

This function sets a vx_meta_format object from the meta data of the exemplar

Parameters
[in]metaThe meta format object to set
[in]exemplarThe exemplar data object.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSThe meta format was correctly set; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEmeta is not a valid vx_meta_format reference, or exemplar is not a valid vx_reference reference.

◆ vxSetNodeAttribute()

VX_API_ENTRY 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.

Parameters
[in]nodeThe reference to the node to set.
[in]attributeUse vx_node_attribute_e value to set the desired attribute.
[in]ptrThe pointer to the desired value of the attribute.
[in]sizeThe size in bytes of the objects to which ptr points.
Note
Some attributes are inherited from the vx_kernel, which was used to create the node. Some of these can be overridden using this API, notably VX_NODE_LOCAL_DATA_SIZE and VX_NODE_LOCAL_DATA_PTR.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSThe attribute was set; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEnode is not a valid vx_node reference.
VX_ERROR_INVALID_PARAMETERSsize is not correct for the type needed.

◆ vxSetNodeTarget()

VX_API_ENTRY vx_status VX_API_CALL vxSetNodeTarget ( vx_node  node,
vx_enum  target_enum,
const char *  target_string 
)

Sets the node target to the provided value. A success invalidates the graph that the node belongs to (vxVerifyGraph must be called before the next execution)

Parameters
[in]nodeThe reference to the vx_node object.
[in]target_enumThe target enum to be set to the vx_node object. Use a vx_target_e.
[in]target_stringThe target name ASCII string. This contains a valid value when target_enum is set to VX_TARGET_STRING, otherwise it is ignored.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNode target set; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEnode is not a valid vx_node reference.
VX_ERROR_NOT_SUPPORTEDIf the node kernel is not supported by the specified target.

◆ vxSetParameterByIndex()

VX_API_ENTRY 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.

Parameters
[in]nodeThe node that contains the kernel.
[in]indexThe index of the parameter desired.
[in]valueThe desired value of the parameter.
Note
A user may not provide a NULL value for a mandatory parameter of this API.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEnode is not a valid vx_node reference, or value is not a valid vx_reference reference.
See also
vxSetParameterByReference

◆ vxSetParameterByReference()

VX_API_ENTRY 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.

Parameters
[in]parameterThe reference to the kernel parameter.
[in]valueThe value to associate with the kernel parameter.
Note
A user may not provide a NULL value for a mandatory parameter of this API.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEparameter is not a valid vx_parameter reference, or value is not a valid vx_reference reference..
See also
vxGetParameterByIndex

◆ vxSetReferenceName()

VX_API_ENTRY vx_status VX_API_CALL vxSetReferenceName ( vx_reference  ref,
const vx_char name 
)

Name a reference.

This function is used to associate a name to a referenced object. This name can be used by the OpenVX implementation in log messages and any other reporting mechanisms.

The OpenVX implementation will not check if the name is unique in the reference scope (context or graph). Several references can then have the same name.

Parameters
[in]refThe reference to the object to be named.
[in]namePointer to the '\0' terminated string that identifies the referenced object. The string is copied by the function so that it stays the property of the caller. NULL means that the reference is not named. The length of the string shall be lower than VX_MAX_REFERENCE_NAME bytes.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEref is not a valid vx_reference reference.

◆ vxSetThresholdAttribute()

VX_API_ENTRY vx_status VX_API_CALL vxSetThresholdAttribute ( vx_threshold  thresh,
vx_enum  attribute,
const void *  ptr,
vx_size  size 
)

Sets attributes on the threshold object.

Parameters
[in]threshThe threshold object to set.
[in]attributeThe attribute to modify. Use a vx_threshold_attribute_e enumeration.
[in]ptrThe pointer to the value to which to set the attribute.
[in]sizeThe size of the data pointed to by ptr.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEthresh is not a valid vx_threshold reference.

◆ vxSwapImageHandle()

VX_API_ENTRY vx_status VX_API_CALL vxSwapImageHandle ( vx_image  image,
void *const  new_ptrs[],
void *  prev_ptrs[],
vx_size  num_planes 
)

Swaps the image handle of an image previously created from handle.

This function sets the new image handle (i.e. pointer to all image planes) and returns the previous one.

Once this function call has completed, the application gets back the ownership of the memory referenced by the previous handle. This memory contains up-to-date pixel data, and the application can safely reuse or release it.

The memory referenced by the new handle must have been allocated consistently with the image properties since the import type, memory layout and dimensions are unchanged (see addrs, color, and memory_type in vxCreateImageFromHandle).

All images created from ROI or channel with this image as parent or ancestor will automatically use the memory referenced by the new handle.

The behavior of vxSwapImageHandle when called from a user node is undefined.

Parameters
[in]imageThe reference to an image created from handle
[in]new_ptrs[]pointer to a caller owned array that contains the new image handle (image plane pointers)
  • new_ptrs is non NULL. new_ptrs[i] must be non NULL for each i such as 0 < i < nbPlanes, otherwise, this is an error. The address of the storage memory for image plane i is set to new_ptrs[i]
  • new_ptrs is NULL: the previous image storage memory is reclaimed by the caller, while no new handle is provided.
[out]prev_ptrs[]pointer to a caller owned array in which the application returns the previous image handle
  • prev_ptrs is non NULL. prev_ptrs must have at least as many elements as the number of image planes. For each i such as 0 < i < nbPlanes , prev_ptrs[i] is set to the address of the previous storage memory for plane i.
  • prev_ptrs NULL: the previous handle is not returned.
[in]num_planesNumber of planes in the image. This must be set equal to the number of planes of the input image. The number of elements in new_ptrs and prev_ptrs arrays must be equal to or greater than num_planes. If either array has more than num_planes elements, the extra elements are ignored. If either array is smaller than num_planes, the results are undefined.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors.
VX_ERROR_INVALID_REFERENCEimage is not a valid vx_image reference. reference.
VX_ERROR_INVALID_PARAMETERSThe image was not created from handle or the content of new_ptrs is not valid.
VX_FAILUREThe image was already being accessed.

◆ vxSwapTensorHandle()

VX_API_ENTRY vx_status VX_API_CALL vxSwapTensorHandle ( vx_tensor  tensor,
void *  new_ptr,
void **  prev_ptr 
)

Swaps the tensor handle of an tensor previously created from handle.

This function sets the new tensor handle and returns the previous one.

Once this function call has completed, the application gets back the ownership of the memory referenced by the previous handle. This memory contains up-to-date tensor data, and the application can safely reuse or release it.

The memory referenced by the new handle must have been allocated consistently with the tensor properties since the import type, memory layout and dimensions are unchanged (see stride and memory_type in vxCreateTensorFromHandle).

All tensors created from view with this tensor as parent or ancestor will automatically use the memory referenced by the new handle.

The behavior of vxSwapTensorHandle when called from a user node is undefined.

Parameters
[in]tensorThe reference to an tensor created from handle.
[in]new_ptrnew tensor handle If new_ptr is NULL, If the new_ptr is NULL, the previous tensor storage memory is reclaimed by the caller, while no new handle is provided.
[out]prev_ptrpointer to return the previous tensor handle. If prev_ptr is NULL, the previous handle is not returned.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors.
VX_ERROR_INVALID_REFERENCEtensor is not a valid vx_tensor reference. reference.
VX_ERROR_INVALID_PARAMETERSThe tensor was not created from handle or the content of new_ptr is not valid.
VX_FAILUREThe tensor was already being accessed.

◆ vxTruncateArray()

VX_API_ENTRY vx_status VX_API_CALL vxTruncateArray ( vx_array  arr,
vx_size  new_num_items 
)

Truncates an Array (remove items from the end).

Parameters
[in,out]arrThe reference to the Array.
[in]new_num_itemsThe new number of items for the Array.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEarr is not a valid vx_array reference.
VX_ERROR_INVALID_PARAMETERSThe new_size is greater than the current size.

◆ vxUnloadKernels()

VX_API_ENTRY vx_status VX_API_CALL vxUnloadKernels ( vx_context  context,
const vx_char module 
)

Unloads all kernels from the OpenVX context that had been loaded from the module using the vxLoadKernels function.

The kernel unloading is performed by calling the vxUnpublishKernels exported function of the module.

Note
vxUnpublishKernels is defined in the description of vxLoadKernels.
Parameters
[in]contextThe reference to the context the kernels must be removed from.
[in]moduleThe short name of the module to unload. On systems where there are specific naming conventions for modules, the name passed should ignore such conventions. For example: libxyz.so should be passed as just xyz and the implementation will do the right thing that the platform requires.
Note
This API uses the system pre-defined paths for modules.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEcontext is not a valid vx_context reference.
VX_ERROR_INVALID_PARAMETERSIf any of the other parameters are incorrect.
See also
vxLoadKernels

◆ vxUnmapArrayRange()

VX_API_ENTRY vx_status VX_API_CALL vxUnmapArrayRange ( vx_array  array,
vx_map_id  map_id 
)

Unmap and commit potential changes to an array object range that was previously mapped. Unmapping an array range invalidates the memory location from which the range could be accessed by the application. Accessing this memory location after the unmap function completes has an undefined behavior.

Parameters
[in]arrayThe reference to the array object to unmap.
[out]map_idThe unique map identifier that was returned when calling vxMapArrayRange .
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEarray is not a valid vx_array reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.
Precondition
vxMapArrayRange returning the same map_id value

◆ vxUnmapDistribution()

VX_API_ENTRY vx_status VX_API_CALL vxUnmapDistribution ( vx_distribution  distribution,
vx_map_id  map_id 
)

Unmap and commit potential changes to distribution object that was previously mapped. Unmapping a distribution invalidates the memory location from which the distribution data could be accessed by the application. Accessing this memory location after the unmap function completes has an undefined behavior.

Parameters
[in]distributionThe reference to the distribution object to unmap.
[out]map_idThe unique map identifier that was returned when calling vxMapDistribution .
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEdistribution is not a valid vx_distribution reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.
Precondition
vxMapDistribution returning the same map_id value

◆ vxUnmapImagePatch()

VX_API_ENTRY vx_status VX_API_CALL vxUnmapImagePatch ( vx_image  image,
vx_map_id  map_id 
)

Unmap and commit potential changes to a image object patch that were previously mapped. Unmapping an image patch invalidates the memory location from which the patch could be accessed by the application. Accessing this memory location after the unmap function completes has an undefined behavior.

Parameters
[in]imageThe reference to the image object to unmap.
[out]map_idThe unique map identifier that was returned by vxMapImagePatch .
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEimage is not a valid vx_image reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.
Precondition
vxMapImagePatch with same map_id value

◆ vxUnmapLUT()

VX_API_ENTRY vx_status VX_API_CALL vxUnmapLUT ( vx_lut  lut,
vx_map_id  map_id 
)

Unmap and commit potential changes to LUT object that was previously mapped. Unmapping a LUT invalidates the memory location from which the LUT data could be accessed by the application. Accessing this memory location after the unmap function completes has an undefined behavior.

Parameters
[in]lutThe reference to the LUT object to unmap.
[out]map_idThe unique map identifier that was returned when calling vxMapLUT .
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCElut is not a valid vx_lut reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.
Precondition
vxMapLUT returning the same map_id value

◆ vxUnmapRemapPatch()

VX_API_ENTRY vx_status VX_API_CALL vxUnmapRemapPatch ( vx_remap  remap,
vx_map_id  map_id 
)

Unmap and commit potential changes to a remap object patch that was previously mapped.

Unmapping a remap patch invalidates the memory location from which the patch could be accessed by the application. Accessing this memory location after the unmap function completes has an undefined behavior.

Parameters
[in]remapThe reference to the remap object to unmap.
[out]map_idThe unique map identifier that was returned by vxMapRemapPatch .
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEremap is not a valid vx_remap reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.
Precondition
vxMapRemapPatch with same map_id value

◆ vxUnmapTensorPatch()

VX_API_ENTRY vx_status VX_API_CALL vxUnmapTensorPatch ( vx_tensor  tensor,
const vx_map_id  map_id 
)

Unmap and commit potential changes to a tensor object patch that was previously mapped. Unmapping a tensor patch invalidates the memory location from which the patch could be accessed by the application. Accessing this memory location after the unmap function completes has an undefined behavior.

Parameters
[in]tensorThe reference to the tensor object to unmap.
[in]map_idThe unique map identifier that was returned when calling vxMapTensorPatch .
Returns
A vx_status_e enumeration.
Return values
VX_ERROR_INVALID_REFERENCEThe tensor reference is not actually an tensor reference.
VX_ERROR_INVALID_PARAMETERSAn other parameter is incorrect.
Precondition
vxMapTensorPatch returning the same map_id value

◆ vxVerifyGraph()

VX_API_ENTRY 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 contract errors. If not verified, the graph verifies before being processed.

Precondition
Memory for data objects is not guarenteed to exist before this call.
Postcondition
After this call data objects exist unless the implementation optimized them out.
Parameters
[in]graphThe reference to the graph to verify.
Returns
A status code for graphs with more than one error; it is undefined which error will be returned. Register a log callback using vxRegisterLogCallback to receive each specific error in the graph.
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEgraph is not a valid vx_graph reference.
VX_ERROR_MULTIPLE_WRITERSIf the graph contains more than one writer to any data object.
VX_ERROR_INVALID_NODEIf a node in the graph is invalid or failed be created.
VX_ERROR_INVALID_GRAPHIf the graph contains cycles or some other invalid topology.
VX_ERROR_INVALID_TYPEIf any parameter on a node is given the wrong type.
VX_ERROR_INVALID_VALUEIf any value of any parameter is out of bounds of specification.
VX_ERROR_INVALID_FORMATIf the image format is not compatible.
See also
vxProcessGraph

◆ vxWaitGraph()

VX_API_ENTRY 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 call to vxWaitGraph, then vxWaitGraph returns only when the last scheduled execution completes.

Parameters
[in]graphThe graph to wait on.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSThe graph has successfully completed execution and its outputs are the valid results of the most recent execution; any other value indicates failure.
VX_ERROR_INVALID_REFERENCEgraph is not a valid vx_graph reference.
VX_FAILUREAn error occurred or the graph was never scheduled. Output data of the graph is undefined.
Precondition
vxScheduleGraph