XDAIS
dais-x04
|
Defines all of the operations on IVIDDEC3 objects. More...
#include <ividdec3.h>
Data Fields | |
IALG_Fxns | ialg |
XDAS_Int32(* | process )(IVIDDEC3_Handle handle, XDM2_BufDesc *inBufs, XDM2_BufDesc *outBufs, IVIDDEC3_InArgs *inArgs, IVIDDEC3_OutArgs *outArgs) |
Basic video decoding call. | |
XDAS_Int32(* | control )(IVIDDEC3_Handle handle, IVIDDEC3_Cmd id, IVIDDEC3_DynamicParams *params, IVIDDEC3_Status *status) |
Control behavior of an algorithm. |
Defines all of the operations on IVIDDEC3 objects.
XDAS_Int32(* IVIDDEC3_Fxns::process)(IVIDDEC3_Handle handle, XDM2_BufDesc *inBufs, XDM2_BufDesc *outBufs, IVIDDEC3_InArgs *inArgs, IVIDDEC3_OutArgs *outArgs) |
Basic video decoding call.
[in] | handle | Handle to an algorithm instance. |
[in,out] | inBufs | Input buffer descriptors. |
[in,out] | outBufs | Output buffer descriptors. The algorithm may modify the output buffer pointers. |
[in] | inArgs | Input arguments. This is a required parameter. |
[out] | outArgs | Ouput results. This is a required parameter. |
outArgs->decodedBufs
) and display buffers (outArgs->displayBufs
) could still be returned. The codec can indicate that buffers are available by not setting the XDM_ISFATALERROR bit in the respective displayBufs
and decodedBufs
extendedError
field if the buffers contain valid data.outArgs->decodedBufs
and outArgs->displayBufs
buffers are not valid, even if the codec's process() call returns IVIDDEC3_EFAIL, it must also be sure to set the XDM_ISFATALERROR bit in the respective extendedError
fields. Failure to do so may result in applications accessing these buffers and causing system instability.inArgs
must not be NULL, and must point to a valid IVIDDEC3_InArgs structure.outArgs
must not be NULL, and must point to a valid IVIDDEC3_OutArgs structure.inBufs
must not be NULL, and must point to a valid XDM2_BufDesc structure.inBufs->descs
[0].buf must not be NULL, and must point to a valid buffer of data that is at least inBufs->descs
[0].bufSize bytes in length.inBufs
) or .outputDataMode (for outBufs
) set to operate in "subframe mode" (e.g. data sync mode), the appropriate .descs[].usageMode field(s)'s XDM_MEMUSAGE_DATASYNC bit must be set. See XDM_MemoryUsageMode for more details.outBufs
must not be NULL, and must point to a valid XDM2_BufDesc structure.outBufs->buf
[0] must not be NULL, and must point to a valid buffer of data that is at least outBufs->bufSizes
[0] bytes in length.inBufs
and outBufs
are physically contiguous and owned by the calling application.inArgs
.inBufs
, with the exception of inBufs.bufDesc
[].accessMask. That is, the data and buffers pointed to by these parameters must be treated as read-only.inBufs->descs
[].accessMask and appropriately indicate the mode in which each of the buffers in inBufs
were read. For example, if the algorithm only read from inBufs.descs
[0].buf using the algorithm processor, it could utilize XDM_SETACCESSMODE_READ to update the appropriate accessMask
fields. The application may utilize these returned values to appropriately manage cache.inBufs
are owned by the calling application.IVIDDEC3_EOK | Success. |
IVIDDEC3_EFAIL | General failure. See IVIDDEC3_Status::extendedError for more detailed further error conditions. |
IVIDDEC3_EUNSUPPORTED | Request is unsupported. |
XDAS_Int32(* IVIDDEC3_Fxns::control)(IVIDDEC3_Handle handle, IVIDDEC3_Cmd id, IVIDDEC3_DynamicParams *params, IVIDDEC3_Status *status) |
Control behavior of an algorithm.
[in] | handle | Handle to an algorithm instance. |
[in] | id | Command id. See XDM_CmdId. |
[in] | params | Dynamic parameters. This is a required parameter. |
[out] | status | Output results. This is a required parameter. |
handle
must be a valid algorithm instance handle.params
must not be NULL, and must point to a valid IVIDDEC3_DynamicParams structure.status
must not be NULL, and must point to a valid IVIDDEC3_Status structure.status->data
field, it must be physically contiguous and owned by the calling application.params
. That is, the data pointed to by this parameter must be treated as read-only.status->data
field, it is owned by the calling application.IVIDDEC3_EOK | Success. |
IVIDDEC3_EFAIL | General failure. See IVIDDEC3_Status::extendedError for more detailed further error conditions. |
IVIDDEC3_EUNSUPPORTED | Request is unsupported. |