CoreFlow 1.0.0
A modern orchestration and execution runtime
Loading...
Searching...
No Matches

The Public Delay API. More...

Typedefs

typedef struct Delay * vx_delay
 The delay object. This is like a ring buffer of objects that is maintained by the OpenVX implementation.
 

Enumerations

enum  vx_delay_attribute_e {
  VX_DELAY_TYPE = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_DELAY) + 0x0 ,
  VX_DELAY_SLOTS = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_DELAY) + 0x1
}
 The delay attribute list. More...
 

Functions

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.
 
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.
 
VX_API_ENTRY vx_delay VX_API_CALL vxCreateDelay (vx_context context, vx_reference exemplar, vx_size num_slots)
 Creates a Delay object.
 
VX_API_ENTRY vx_reference VX_API_CALL vxGetReferenceFromDelay (vx_delay delay, vx_int32 index)
 Retrieves a reference to a delay slot object.
 
VX_API_ENTRY vx_status VX_API_CALL vxAgeDelay (vx_delay delay)
 Shifts the internal delay ring by one.
 

Detailed Description

The Public Delay API.

Typedef Documentation

◆ vx_delay

typedef struct Delay* vx_delay

#include <vx_types.h>

The delay object. This is like a ring buffer of objects that is maintained by the OpenVX implementation.

See also
vxCreateDelay

Enumeration Type Documentation

◆ vx_delay_attribute_e

#include <vx_types.h>

The delay attribute list.

Enumerator
VX_DELAY_TYPE 

The type of objects in the delay. Read-only. Use a vx_enum parameter.

VX_DELAY_SLOTS 

The number of items in the delay. Read-only. Use a vx_size parameter.

Function Documentation

◆ vxAgeDelay()

#include <vx_api.h>

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.
Examples
optical_flow.cpp.

◆ vxCreateDelay()

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

#include <vx_api.h>

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.
Examples
optical_flow.cpp.

◆ vxGetReferenceFromDelay()

VX_API_ENTRY vx_reference VX_API_CALL vxGetReferenceFromDelay ( vx_delay delay,
vx_int32 index )

#include <vx_api.h>

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.
Examples
optical_flow.cpp.

◆ vxQueryDelay()

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

#include <vx_api.h>

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.

◆ vxReleaseDelay()

VX_API_ENTRY vx_status VX_API_CALL vxReleaseDelay ( vx_delay * delay)

#include <vx_api.h>

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.
Examples
optical_flow.cpp.