TIOVX User Guide
tivx.h File Reference

Interface to TI extension APIs. More...

#include <VX/vx.h>
#include <VX/vx_khr_pipelining.h>
#include <VX/vx_khr_user_data_object.h>
#include <VX/vx_khr_bidirectional_parameters.h>
#include <TI/tivx_debug.h>
#include <TI/tivx_log_rt.h>
#include <TI/tivx_kernels.h>
#include <TI/tivx_nodes.h>
#include <TI/tivx_mem.h>
#include <TI/tivx_tensor.h>
#include <TI/tivx_ext_raw_image.h>
#include <TI/tivx_ext_super_node.h>
#include <TI/tivx_soc.h>

Go to the source code of this file.

Data Structures

struct  tivx_resource_stats_t
 Struct containing config parameters of given static resource. Allows for a log to be kept of the resources used throughout runtime. More...
 

Macros

#define TIVX_TARGET_MAX_NAME   (64u)
 Max possible name of a target.
 
#define TIVX_TARGET_HOST   "HOST"
 String to name a OpenVX Host. More...
 
#define TIVX_RESOURCE_NAME_MAX   (39u)
 Max size of macro.
 
#define TIVX_CONFIG_PATH_LENGTH   (512u)
 Max size of config file path.
 
#define TIVX_CONTROL_CMD_SEND_TO_ALL_REPLICATED_NODES   ((uint32_t)-1)
 When sending a control command to a replicated node, this can be used to send control command to all replicated node. More...
 
#define TIVX_GRAPH_MAX_SUPER_NODES   (8u)
 Max possible super nodes in graph.
 
#define TIVX_MAX_DSP_BAM_USER_PLUGINS   (8u)
 Max number of BAM user plugins on DSP (in addition to builtin vxlib plugins)
 
#define TIVX_SUPER_NODE_MAX_NODES   (16u)
 Max number of nodes per super node.
 
#define TIVX_SUPER_NODE_MAX_EDGES   (16u)
 Max number of edges per super node.
 
#define TIVX_SUPER_NODE_MAX_OBJECTS   (16u)
 Max number super node objects supported.
 
#define TIVX_PYRAMID_MAX_LEVELS_ORB   (17u)
 Max levels supported for the pyramid. More...
 
#define TIVX_MAX_KERNEL_ID   (VX_KERNEL_MASK)
 Max number of kernel ID's.
 
#define TIVX_MAX_LIBRARY_ID   (VX_LIBRARY(VX_LIBRARY_MASK))
 Max number of kernel library ID's.
 
#define TIVX_MAX_CONFIG_PARAM_OBJECTS   (12u)
 Max number of data objects that contribute to a configuration parameter's memory footprint.
 
#define TIVX_CONFIG_PARAM_OBJECT_TYPE_DIM   (2u)
 Number of dimensions of a configuration parameter's object type array.
 
#define dimof(x)   (sizeof(x)/sizeof(x[0]))
 Macro to find size of array.
 

Enumerations

enum  tivx_attribute_extensions_e {
  TIVX_NODE_TARGET_STRING = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0x0,
  TIVX_USER_DATA_OBJECT_VALID_SIZE = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0x1,
  TIVX_REFERENCE_TIMESTAMP = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0x2,
  TIVX_REFERENCE_INVALID = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0x3,
  TIVX_GRAPH_STREAM_EXECUTIONS = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0x4,
  TIVX_KERNEL_TIMEOUT = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0x5,
  TIVX_NODE_TIMEOUT = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0x6,
  TIVX_GRAPH_TIMEOUT = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0x7,
  TIVX_GRAPH_PIPELINE_DEPTH = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0x8,
  TIVX_CONTEXT_NUM_USER_KERNEL_ID = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0x9,
  TIVX_IMAGE_IMAGEPATCH_ADDRESSING = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0xa,
  TIVX_TENSOR_STRIDES = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0xb,
  TIVX_CONTEXT_NUM_USER_LIBRARY_ID = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0xc,
  TIVX_NODE_IS_TIMED_OUT = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0xd,
  TIVX_REFERENCE_BUFFER_IS_ALLOCATED = VX_ATTRIBUTE_BASE(VX_ID_TI, (vx_enum)0) + 0xe
}
 TI attribute extensions. More...
 
enum  tivx_df_image_e {
  TIVX_DF_IMAGE_P12 = VX_DF_IMAGE('P','0','1','2'),
  TIVX_DF_IMAGE_NV12_P12 = VX_DF_IMAGE('N','1','2','P'),
  TIVX_DF_IMAGE_RGB565 = VX_DF_IMAGE('R','5','6','5'),
  TIVX_DF_IMAGE_BGRX = VX_DF_IMAGE('B','G','R','A')
}
 Based on the VX_DF_IMAGE definition. More...
 
enum  tivx_status_e {
  TIVX_STATUS_BASE = -(vx_int32)100,
  TIVX_ERROR_EVENT_TIMEOUT = (vx_int32)(TIVX_STATUS_BASE) + 1
}
 The enumeration of all TIVX operational error codes. More...
 
enum  tivx_memory_logging_e {
  TIVX_MEM_LOG_DEFAULT = 0,
  TIVX_MEM_LOG_OBJECT_DESCRIPTOR = 1,
  TIVX_MEM_LOG_GLOBAL = 2,
  TIVX_MEM_LOG_ALL = 3
}
 Enumerations of memory consumption tool's display modes. More...
 

Functions

void tivxInit (void)
 Function to initialize OpenVX framework. More...
 
void tivxDeInit (void)
 Function to de-initialize OpenVX framework. More...
 
void tivxHostInit (void)
 Function to initialize OpenVX HOST side functionality. More...
 
void tivxHostDeInit (void)
 Function to de-initialize OpenVX HOST side functionality. More...
 
VX_API_ENTRY vx_status VX_API_CALL tivxAddKernelTarget (vx_kernel kernel, const char *target_name)
 Associate a target with a kernel. More...
 
VX_API_ENTRY vx_status VX_API_CALL tivxSetKernelSinkDepth (vx_kernel kernel, uint32_t num_sink_bufs)
 Set the number of sink buffers. More...
 
VX_API_ENTRY vx_status VX_API_CALL tivxRegisterModule (const char *name, vx_publish_kernels_f publish, vx_unpublish_kernels_f unpublish)
 Register publish and unpublish functions against a module name. More...
 
VX_API_ENTRY vx_status VX_API_CALL tivxUnRegisterModule (const char *name)
 UnRegister publish and unpublish functions if previously registered. More...
 
vx_enum tivxGetSelfCpuId (void)
 Return CPU ID of the CPU on which this API is called. More...
 
vx_status tivxQueryResourceStats (const char *resource_name, tivx_resource_stats_t *stats)
 Query resource for resource stats. More...
 
void tivxPrintAllResourceStats (void)
 Prints out resource stats.
 
vx_status tivxExportAllResourceMaxUsedValueToFile (void)
 Exports the max used values to a file. More...
 
vx_status tivxExportMemoryConsumption (char *outputFile, const char *unit, vx_enum displayMode)
 Exports memory consumption information to console or a specified file. Note that the object descriptor values returned by this API are local only to the process/core this is being called on. More...
 
vx_node tivxCreateNodeByKernelEnum (vx_graph graph, vx_enum kernelenum, vx_reference params[], vx_uint32 num)
 Utility function to create a node given parameter references and kernel enum. More...
 
vx_node tivxCreateNodeByKernelRef (vx_graph graph, vx_kernel kernel, vx_reference params[], vx_uint32 num)
 Utility function to create a node given parameter references and kernel reference. More...
 
vx_node tivxCreateNodeByKernelName (vx_graph graph, const char *kernel_name, vx_reference params[], vx_uint32 num)
 Utility function to create a node given parameter references and kernel name. More...
 
vx_bool tivxIsReferenceVirtual (vx_reference ref)
 Utility function to check if the given reference is virtual or not. More...
 
vx_reference tivxGetReferenceParent (vx_reference child_ref)
 Utility function to extract the parent reference from an element. More...
 
vx_bool tivxIsTargetEnabled (const char target_name[])
 Utility function to know if target is enabled or not. More...
 
uint64_t tivxPlatformGetTimeInUsecs (void)
 Get the time in micro seconds. More...
 
vx_status VX_API_CALL tivxExportGraphToDot (vx_graph graph, const char *output_file_path, const char *output_file_prefix)
 Export graph representation as DOT graph file. More...
 
vx_status VX_API_CALL tivxSetNodeParameterNumBufByIndex (vx_node node, vx_uint32 idx, vx_uint32 num_buf)
 Set number of buffers to allocate at output of a node parameter. More...
 
vx_status VX_API_CALL tivxGetNodeParameterNumBufByIndex (vx_node node, vx_uint32 idx, vx_uint32 *num_buf)
 Get number of buffers to allocate at output of a node parameter. More...
 
vx_status VX_API_CALL tivxSetGraphPipelineDepth (vx_graph graph, vx_uint32 pipeline_depth)
 Indicates to the implementation the depth of the graph pipeline. More...
 
vx_status VX_API_CALL tivxNodeSendCommand (vx_node node, uint32_t replicate_nodex_idx, uint32_t node_cmd_id, vx_reference ref[], uint32_t num_refs)
 Send node specific Control command. More...
 
vx_status VX_API_CALL tivxNodeSendCommandTimed (vx_node node, uint32_t replicate_nodex_idx, uint32_t node_cmd_id, vx_reference ref[], uint32_t num_refs, uint32_t timeout)
 Send node specific Control command. More...
 
vx_node tivxGraphGetNode (vx_graph graph, uint32_t idx)
 This API is used to get a reference to a node within a graph at a given index within the graph. More...
 
VX_API_ENTRY vx_status VX_API_CALL tivxSetUserDataObjectAttribute (vx_user_data_object user_data_object, vx_enum attribute, const void *ptr, vx_size size)
 Sets attributes on the user data object. More...
 
VX_API_ENTRY vx_status VX_API_CALL tivxSetNodeTileSize (vx_node node, vx_uint32 block_width, vx_uint32 block_height)
 Sets the tile size for a given node in a graph. This is only valid for BAM-enabled kernels on C66 DSP. More...
 
VX_API_ENTRY vx_status VX_API_CALL tivxSetReferenceAttribute (vx_reference ref, vx_enum attribute, const void *ptr, vx_size size)
 Sets reference attributes for the below enums: TIVX_REFERENCE_TIMESTAMP. More...
 
VX_API_ENTRY vx_bool VX_API_CALL tivxIsReferenceMetaFormatEqual (vx_reference ref1, vx_reference ref2)
 Check for equivalence between the meta formats of two reference objects. More...
 
VX_API_ENTRY vx_status VX_API_CALL tivxReferenceImportHandle (vx_reference ref, const void *addr[], const uint32_t size[], uint32_t num_entries)
 Updates a reference object with the supplied handles (pointers to memory). More...
 
VX_API_ENTRY vx_status VX_API_CALL tivxReferenceExportHandle (const vx_reference ref, void *addr[], uint32_t size[], uint32_t max_num_entries, uint32_t *num_entries)
 Exports the handles from a reference object. More...
 
VX_API_ENTRY vx_reference VX_API_CALL tivxCreateReferenceFromExemplar (vx_context context, vx_reference exemplar)
 Create reference from a exemplar object. More...
 

Detailed Description

Interface to TI extension APIs.

Definition in file tivx.h.