The OpenVX Specification  dba1aa3

Detailed Description

Defines the Delay Object interface.

A Delay is an opaque object that contains a manually-controlled, temporally-delayed list of objects. A Delay cannot be an output of a kernel. Also, aging of a Delay (see vxAgeDelay) cannot be performed during graph execution. Supported delay object types include:

Typedefs

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

Enumerations

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

Functions

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

Typedef Documentation

typedef struct _vx_delay* vx_delay

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

See also
vxCreateDelay

Definition at line 223 of file vx_types.h.

Enumeration Type Documentation

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.

Definition at line 1388 of file vx_types.h.

Function Documentation

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