CoreFlow 1.0.0
A modern orchestration and execution runtime
Loading...
Searching...
No Matches
Extension: Streaming API

The Streaming Extension. More...

Enumerations

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) + 0xA }
 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) + 0x5 ,
  VX_KERNEL_PIPEUP_INPUT_DEPTH = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_KERNEL) + 0x6
}
 The kernel attributes added by this extension. More...
 

Functions

VX_API_ENTRY vx_status VX_API_CALL vxEnableGraphStreaming (vx_graph graph, vx_node trigger_node)
 Enable streaming mode of graph execution.
 
VX_API_ENTRY vx_status VX_API_CALL vxStartGraphStreaming (vx_graph graph)
 Start streaming mode of graph execution.
 
VX_API_ENTRY vx_status VX_API_CALL vxStopGraphStreaming (vx_graph graph)
 Stop streaming mode of graph execution.
 

Detailed Description

The Streaming Extension.

Enumeration Type Documentation

◆ vx_kernel_attribute_streaming_e

#include <vx_khr_pipelining.h>

The kernel attributes added by this extension.

Enumerator
VX_KERNEL_PIPEUP_OUTPUT_DEPTH 

The pipeup output depth required by the kernel. This is called by kernels that need to be primed with multiple output buffers before it can begin to return them. A typical use case for this is a source node which needs to provide and retain multiple empty buffers to a camera driver to fill. The first time the graph is executed after vxVerifyGraph is called, the framework calls the node associated with this kernel (pipeup_output_depth - 1) times before 'expecting' a valid output and calling downstream nodes. During this PIPEUP state, the framework provides the same set of input parameters for each call, but provides different set of output parameters for each call. During the STEADY state, the kernel may return a different set of output parameters than was given during the execution callback. Read-write. Can be written only before user-kernel finalization. Use a vx_uint32 parameter.

Note
If not set, it will default to 1.
Setting a value less than 1 shall return VX_ERROR_INVALID_PARAMETERS
VX_KERNEL_PIPEUP_INPUT_DEPTH 

The pipeup input depth required by the kernel. This is called by kernels that need to retain one or more input buffers before it can begin to return them. A typical use case for this is a sink node which needs to provide and retain one or more filled buffers to a display driver to display. The first (pipeup_input_depth - 1) times the graph is executed after vxVerifyGraph is called, the framework calls the node associated with this kernel without 'expecting' an input to have been consumed and returned by the node. During this PIPEUP state, the framework does not reuse any of the input bufers it had given to this node. During the STEADY state, the kernel may return a different set of input parameters than was given during the execution callback. Read-write. Can be written only before user-kernel finalization. Use a vx_uint32 parameter.

Note
If not set, it will default to 1.
Setting a value less than 1 shall return VX_ERROR_INVALID_PARAMETERS

◆ vx_node_attribute_streaming_e

#include <vx_khr_pipelining.h>

The node attributes added by this extension.

Enumerator
VX_NODE_STATE 

Queries the state of the node. Read-only. See vx_graph_state_e enum.

◆ vx_node_state_e

#include <vx_khr_pipelining.h>

Node state.

Enumerator
VX_NODE_STATE_STEADY 

Node is in steady state (output expected for each invocation)

VX_NODE_STATE_PIPEUP 

Node is in pipeup state (output not expected for each invocation)

◆ vx_node_state_enum_e

#include <vx_khr_pipelining.h>

Extra enums.

Enumerator
VX_ENUM_NODE_STATE_TYPE 

Node state type enumeration.

Function Documentation

◆ vxEnableGraphStreaming()

VX_API_ENTRY vx_status VX_API_CALL vxEnableGraphStreaming ( vx_graph graph,
vx_node trigger_node )

#include <vx_khr_pipelining.h>

Enable streaming mode of graph execution.

This API enables streaming mode of graph execution on the given graph. The node given on the API is set as the trigger node. A trigger node is defined as the node whose completion causes a new execution of the graph to be triggered.

Parameters
graph[in] Reference to the graph to enable streaming mode of execution.
trigger_node[in][optional] Reference to the node to be used for trigger node of the graph.
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

◆ vxStartGraphStreaming()

VX_API_ENTRY vx_status VX_API_CALL vxStartGraphStreaming ( vx_graph graph)

#include <vx_khr_pipelining.h>

Start streaming mode of graph execution.

In streaming mode of graph execution, once an application starts graph execution further intervention of the application is not needed to re-schedule a graph; i.e. a graph re-schedules itself and executes continuously until streaming mode of execution is stopped.

When this API is called, the framework schedules the graph via vxScheduleGraph and returns. This graph gets re-scheduled continuously until vxStopGraphStreaming is called by the user or any of the graph nodes return error during execution.

The graph MUST be verified via vxVerifyGraph before calling this API. Also user application MUST ensure no previous executions of the graph are scheduled before calling this API.

After streaming mode of a graph has been started, a vxScheduleGraph should not be used on that graph by an application.

vxWaitGraph can be used as before to wait for all pending graph executions to complete.

Parameters
graph[in] Reference to the graph to start streaming mode of execution.
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.

◆ vxStopGraphStreaming()

VX_API_ENTRY vx_status VX_API_CALL vxStopGraphStreaming ( vx_graph graph)

#include <vx_khr_pipelining.h>

Stop streaming mode of graph execution.

This function blocks until graph execution is gracefully stopped at a logical boundary, for example, when all internally scheduled graph executions are completed.

Parameters
graph[in] Reference to the graph to stop streaming mode of execution.
Returns
A vx_status_e enumeration.
Return values
VX_SUCCESSNo errors; any other value indicates failure.
VX_FAILUREGraph is not started in streaming execution mode.
VX_ERROR_INVALID_REFERENCEgraph is not a valid reference.