Appendix B. Return Codes
Prev |  | Next

## Appendix B. Return Codes

This appendix explains the return codes that are used with the Video Library for Indigo2 IMPACT Video. The return code is accessible through the `vlGetErrno()` routine; see also `vlPerror()` and `vlStrError()`.

VLSuccess

The Video Library routine completed without error.

VLBadAccess

The client attempted to perform an operation that is illegal given the state of the client, the node, or the path. This error is returned, for example, if the client attempts to add a node to a path that has been set up, or call `vlSetControl()` on a path with control usage est to VL_READ_ONLY.

VLBadAlloc

The Video Library could not allocate the system resources required for the requested operation, for example, memory and semaphores. If the source of the error is not evident (that is, sufficient physical memory and paging space was present), report this error to technical support.

VLBadAtom

The server does not recognize the value specified by the atom parameter in the request as a valid atom ID.

VLBadBuffer

The value of the buffer parameter is not a ring buffer ID recognized by the Video Library.

VLBadControl

The value specified by the control parameter is not recognized by the node the request was made to. The node to which the request was made does not recognize the value specified by the control parameter for `vlSetControl()` or `vlGetControl()`.

VLBadDevice

The server does not recognize the value specified by the device parameter in the request as a valid device ID. See also VLBadMatch.

VLBadImplementation

An internal processing error occurred. Report the error and the context in which it occurred to Customer Service.

VLBadIoctl

An error occurred between the video daemon and the device driver associated with the video device. This error can result from an invalid parameter setting in `vlSetControl()`, although it can also represent an internal processing error. This error should be reported to technical support.

VLBadLength

The video daemon received a request with an invalid length. Report this internal processing error to Customer Support.

VLBadMatch

The arguments specified for the node, path, or device parameters are not consistent. The node may not reside on the path, or the path may not reside on the device.

VLBadNode

The server does not recognize the value specified by the node parameter in the request as a valid node ID. See also VLBadMatch.

VLBadPath

The server does not recognize the value specified by the path parameter in the request as a valid path. See also VLBadMatch.

VLBadPort

The value specified by the port parameter is not a recognized port on the associated node.

VLBadRequest

The daemon has received a bad request code. Report this internal processing error to technical support.

VLBadServer

The value of the server parameter is not a server ID recognized by the Video Library.

VLBadSize

The size of the ring buffer elements associated with a memory node are not compatible with the size of a video unit (field or frame), given the node's control settings.

VLBadValue

The value of a parameter is invalid. When generated by `vlGetControl()`, VLBadValue can indicate that the incorrect control value type was used, that the value is not within the range for the control, or that the node cannot accept the specified value due to a conflict with other node settings.

VLBadWinAlloc

`vlSetupPaths()` can return this code if there is insufficient screen space to place a screen source or drain. See Appendix C, “Indigo2 IMPACT Video Nodes and Their Controls,” for placement constraints.

VLBufferTooSmall

The size of the ring buffer elements associated with a memory node are smaller than the size of a video unit (field or frame) given the node's control settings.

VLInputsNotLocked

The processing element associated with a node cannot lock to the input signal. This code may indicate that no signal is present or that the supplied video signal uses a different timing standard than that expected by the node (see VL_TIMING on the input or device node).

VLNoRoute

`vlSetConnection()` can return this error if no route could be found from the source (node, port) to the drain (node, port). The probable reason is that all connector resources are in use.

VLNotEnoughSpace

The supplied data region did not contain enough space to hold the information returned by the server.

VLNotSupported

`vlSetConnection()` or `vlGetConnection()` can return this code if the video device does not support explicit connections.

VLPathInUse

This error is generated if a required resource, for example a node (`vlSetupPaths()`) or a connector (`vlSetConnection()`) cannot be acquired.

- In the case of `vlSetupPaths()`, the node cannot be acquired because the path has requested VL_SHARE stream usage while another path has the required nodes with a stream of VL_LOCK, or the path has requested VL_SHARE control usage while another path has the required nodes with a control usage of VL_LOCK.

- For `vlSetConnection()`, the paths using the required connector could not be preempted because the application has requested that no preemption occur, or because a path using the connector has stream usage set to VL_LOCK.

VLSetupFailed

A general failure occurred during a `vlSetupPaths()` request. If multiple paths were specified for `vlSetupPaths()`, some or none of the paths may have been set up. In addition, some paths may have been preempted in order to set up those paths.

It is recommended that the application set up the paths again to stream usage VL_READ_ONLY and control usage VL_READ_ONLY or VL_SHARE in order to reset the state of all paths. This combination of control and stream usage is guaranteed to succeed.

VLValueOutOfRange

The control value specified for a `vlSetControl()` operation is not within the range accepted by the node. The value was adjusted before being set. (Compare with VLBadValue, where the control's value is not changed at all.) Use the `vlGetControlInfo()` routine to retrieve the valid ranges for the control.

Prev | Table of Contents | Next
Appendix A. Video Basics |  | Appendix C. Indigo2 IMPACT Video Nodes and Their Controls