TIOVX User Guide
vx_khr_pipelining.h File Reference

The OpenVX Pipelining, Streaming and Batch Processing extension API. More...

#include <VX/vx.h>

Go to the source code of this file.

Data Structures

struct  vx_graph_parameter_queue_params_t
 Queueing parameters for a specific graph parameter. More...
 
struct  vx_graph_parameter_config_t
 Details for a specific graph parameter. More...
 
struct  vx_event_graph_parameter_consumed
 Parameter structure returned with event of type VX_EVENT_GRAPH_PARAMETER_CONSUMED. More...
 
struct  vx_event_graph_completed
 Parameter structure returned with event of type VX_EVENT_GRAPH_COMPLETED. More...
 
struct  vx_event_node_completed
 Parameter structure returned with event of type VX_EVENT_NODE_COMPLETED. More...
 
struct  vx_event_node_error
 Parameter structure returned with event of type VX_EVENT_NODE_ERROR. More...
 
struct  vx_event_user_event
 Parameter structure returned with event of type VX_EVENT_USER_EVENT. More...
 
union  vx_event_info_t
 Parameter structure associated with an event. Depends on type of the event. More...
 
struct  vx_event_t
 Data structure which holds event information. More...
 
struct  vx_kernel_parameter_config_t
 This data structure is used to return information about kernel parameters via the vxGetKernelParameterConfig API. More...
 

Macros

#define VX_LIBRARY_KHR_PIPELINING_EXTENSION   (0x1)
 The Pipelining, Streaming and Batch Processing Extension Library Set.
 

Enumerations

enum  vx_graph_schedule_mode_enum_e { VX_ENUM_GRAPH_SCHEDULE_MODE_TYPE = 0x21 }
 Extra enums. More...
 
enum  vx_graph_schedule_mode_type_e {
  VX_GRAPH_SCHEDULE_MODE_NORMAL = VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_GRAPH_SCHEDULE_MODE_TYPE) + 0x0,
  VX_GRAPH_SCHEDULE_MODE_QUEUE_AUTO = VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_GRAPH_SCHEDULE_MODE_TYPE) + 0x1,
  VX_GRAPH_SCHEDULE_MODE_QUEUE_MANUAL = VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_GRAPH_SCHEDULE_MODE_TYPE) + 0x2
}
 Type of graph scheduling mode. More...
 
enum  vx_graph_attribute_pipelining_e {
  VX_GRAPH_SCHEDULE_MODE = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_GRAPH) + 0x5,
  VX_GRAPH_TIMEOUT = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_GRAPH) + 0x6,
  VX_GRAPH_EVENT_TIMEOUT = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_GRAPH) + 0x7,
  VX_GRAPH_PIPELINE_DEPTH = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_GRAPH) + 0x8
}
 The graph attributes added by this extension. More...
 
enum  vx_reference_attribute_pipelining_e { VX_REFERENCE_ENQUEUE_COUNT = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_REFERENCE) + 0x3 }
 The reference attributes added by this extension. More...
 
enum  vx_event_enum_e { VX_ENUM_EVENT_TYPE = 0x22 }
 Extra type enum. More...
 
enum  vx_context_attribute_event_e { VX_CONTEXT_EVENT_TIMEOUT = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_CONTEXT) + 0x10 }
 The context attribute added by this extension. More...
 
enum  vx_event_type_e {
  VX_EVENT_GRAPH_PARAMETER_CONSUMED = VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_EVENT_TYPE) + 0x0,
  VX_EVENT_GRAPH_COMPLETED = VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_EVENT_TYPE) + 0x1,
  VX_EVENT_NODE_COMPLETED = VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_EVENT_TYPE) + 0x2,
  VX_EVENT_NODE_ERROR = VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_EVENT_TYPE) + 0x3,
  VX_EVENT_USER = VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_EVENT_TYPE) + 0x4
}
 Type of event that can be generated during system execution. More...
 
enum  vx_node_state_enum_e { VX_ENUM_NODE_STATE_TYPE = 0x23 }
 Extra enums. More...
 
enum  vx_node_state_e {
  VX_NODE_STATE_STEADY = VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_NODE_STATE_TYPE) + 0x0,
  VX_NODE_STATE_PIPEUP = VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_NODE_STATE_TYPE) + 0x1
}
 Node state. More...
 
enum  vx_node_attribute_streaming_e { VX_NODE_STATE = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_NODE) + 0x9 }
 The node attributes added by this extension. More...
 
enum  vx_kernel_attribute_streaming_e {
  VX_KERNEL_PIPEUP_OUTPUT_DEPTH = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_KERNEL) + 0x4,
  VX_KERNEL_PIPEUP_INPUT_DEPTH = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_KERNEL) + 0x5
}
 The kernel attributes added by this extension. More...
 

Functions

VX_API_ENTRY vx_status VX_API_CALL vxSetGraphScheduleConfig (vx_graph graph, vx_enum graph_schedule_mode, vx_uint32 graph_parameters_list_size, const vx_graph_parameter_queue_params_t graph_parameters_queue_params_list[])
 Sets the graph scheduler config. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxGetGraphParameterRefsList (vx_graph graph, vx_uint32 param, vx_uint32 ref_list_size, vx_reference refs_list[])
 Returns the list of references allowed for queueing on a particular graph parameter. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxAddReferencesToGraphParameterList (vx_graph graph, vx_uint32 graph_parameter_index, vx_uint32 number_to_add, const vx_reference new_references[])
 Allows more references to be added to the list of references that may be queued on a graph parameter. This functionality allows more references to be added to those already defined by the call to vxSetGraphScheduleConfig. The function may only be called after graph verification. References in the list should be checked for compatibility so that the graphs are guaranteed to run. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxGraphParameterEnqueueReadyRef (vx_graph graph, vx_uint32 graph_parameter_index, const vx_reference *refs, vx_uint32 num_refs)
 Enqueues new references into a graph parameter for processing. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxGraphParameterDequeueDoneRef (vx_graph graph, vx_uint32 graph_parameter_index, vx_reference *refs, vx_uint32 max_refs, vx_uint32 *num_refs)
 Dequeues 'consumed' references from a graph parameter. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxGraphParameterCheckDoneRef (vx_graph graph, vx_uint32 graph_parameter_index, vx_uint32 *num_refs)
 Checks and returns the number of references that are ready for dequeue. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxWaitEvent (vx_context context, vx_event_t *event, vx_bool do_not_block)
 Wait for a single event. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxEnableEvents (vx_context context)
 Enable event generation. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxDisableEvents (vx_context context)
 Disable event generation. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSendUserEvent (vx_context context, vx_uint32 app_value, const void *parameter)
 Generate user defined event. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxRegisterEvent (vx_reference ref, enum vx_event_type_e type, vx_uint32 param, vx_uint32 app_value)
 Register an event to be generated. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxRegisterGraphEvent (vx_reference graph_or_node, enum vx_event_type_e type, vx_uint32 param, vx_uint32 app_value)
 Registers an event for a specific graph. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxWaitGraphEvent (vx_graph graph, vx_event_t *event, vx_bool do_not_block)
 Waits for an event from a specific graph. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxEnableGraphEvents (vx_graph graph)
 Enables events from a specific graph. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxDisableGraphEvents (vx_graph graph)
 Disables events from a specific graph. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxSendUserGraphEvent (vx_graph graph, vx_uint32 app_value, const void *parameter)
 Generate user defined graph event. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxEnableGraphStreaming (vx_graph graph, vx_node trigger_node)
 Enable streaming mode of graph execution. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxStartGraphStreaming (vx_graph graph)
 Start streaming mode of graph execution. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxStopGraphStreaming (vx_graph graph)
 Stop streaming mode of graph execution. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxGetKernelParameterConfig (vx_kernel kernel, vx_uint32 num_params, vx_kernel_parameter_config_t parameter_config[])
 Returns the kernel parameter configuration. More...
 
VX_API_ENTRY vx_status VX_API_CALL vxGetGraphParameterConfig (vx_graph graph, vx_uint32 num_params, vx_graph_parameter_config_t parameter_config[])
 Returns the graph parameter configuration. More...
 

Detailed Description

The OpenVX Pipelining, Streaming and Batch Processing extension API.

Definition in file vx_khr_pipelining.h.

Function Documentation

◆ vxRegisterGraphEvent()

VX_API_ENTRY vx_status VX_API_CALL vxRegisterGraphEvent ( vx_reference  graph_or_node,
enum vx_event_type_e  type,
vx_uint32  param,
vx_uint32  app_value 
)

Registers an event for a specific graph.

Parameters
[in]graph_or_nodethe graph or node for which the event will be registered
[in]typeonly [VX_EVENT_GRAPH_PARAMETER_CONSUMED] and [VX_EVENT_GRAPH_COMPLETED] are supported if graph_or_node is a vx_graph, and [VX_EVENT_NODE_COMPLETED] or [VX_EVENT_NODE_ERROR] if graph_or_node is a vx_node
[in]paramSpecifies the graph parameter index when type is VX_EVENT_GRAPH_PARAMETER_CONSUMED
[in]app_valueApplication-specified value that will be returned to user as part of vx_event_t.app_value field. Stored by the implementation but not used for any other purpose.
Returns
a vx_status value.
Return values
VX_SUCCESSthe event was registered
VX_ERROR_NOT_SUPPORTEDtype is not equal to [VX_EVENT_GRAPH_PARAMETER_CONSUMED], [VX_EVENT_GRAPH_COMPLETED], [VX_EVENT_NODE_COMPLETED] or [VX_EVENT_NODE_ERROR] or the graph is already verified.
VX_ERROR_INVALID_PARAMETERSparam out of range
VX_ERROR_INVALID_REFERENCEgraph_or_node is not a valid graph or node reference

It is not an error to call this twice for the same graph parameter; in that case the stored app_value will be updated. Notice that there is only one app_value per graph parameter.

◆ vxWaitGraphEvent()

VX_API_ENTRY vx_status VX_API_CALL vxWaitGraphEvent ( vx_graph  graph,
vx_event_t event,
vx_bool  do_not_block 
)

Waits for an event from a specific graph.

Parameters
[in]graphthe graph from which events are expected
[out]eventpointer to a data structure that will hold information about the received event
[in]do_not_blockWhen the value is vx_true_e the API does not block and only checks for the condition
Returns
a vx_status value.
Return values
VX_SUCCESSan event was received
VX_FAILUREno event was received
VX_ERROR_TIMEOUTThe attribute VX_GRAPH_EVENT_TIMEOUT was not set to VX_TIMEOUT_WAIT_FOREVER and the function call has not returned after VX_GRAPH_EVENT_TIMEOUT milliseconds. No event is received.
VX_ERROR_INVALID_REFERENCEgraph was not a valid graph reference or event was NULL

◆ vxEnableGraphEvents()

VX_API_ENTRY vx_status VX_API_CALL vxEnableGraphEvents ( vx_graph  graph)

Enables events from a specific graph.

Parameters
[in]graphthe graph for which events are to be enabled
Returns
a vx_status value.
Return values
VX_SUCCESSevents were enabled
VX_ERROR_INVALID_REFERENCEgraph was not a valid graph reference

◆ vxDisableGraphEvents()

VX_API_ENTRY vx_status VX_API_CALL vxDisableGraphEvents ( vx_graph  graph)

Disables events from a specific graph.

Parameters
[in]graphthe graph for which events are to be disabled
Returns
a vx_status value.
Return values
VX_SUCCESSevents were disabled
VX_ERROR_INVALID_REFERENCEgraph was not a valid graph reference