![]() |
![]() |
Codec Engine Application Programming Interface (API)
ce-w08
|
Defines all of the operations on IVIDENC2 objects. More...
#include <ividenc2.h>
Data Fields | |
IALG_Fxns | ialg |
XDAS_Int32(* | process )(IVIDENC2_Handle handle, IVIDEO2_BufDesc *inBufs, XDM2_BufDesc *outBufs, IVIDENC2_InArgs *inArgs, IVIDENC2_OutArgs *outArgs) |
Basic video encoding call. | |
XDAS_Int32(* | control )(IVIDENC2_Handle handle, IVIDENC2_Cmd id, IVIDENC2_DynamicParams *params, IVIDENC2_Status *status) |
Control behavior of an algorithm. |
Defines all of the operations on IVIDENC2 objects.
IALG_Fxns IVIDENC2_Fxns::ialg |
XDAIS algorithm interface.
@sa IALG_Fxns
XDAS_Int32(* IVIDENC2_Fxns::process)(IVIDENC2_Handle handle, IVIDEO2_BufDesc *inBufs, XDM2_BufDesc *outBufs, IVIDENC2_InArgs *inArgs, IVIDENC2_OutArgs *outArgs) |
Basic video encoding call.
@param[in] handle Handle to an algorithm instance. @param[in,out] inBufs Input video buffer descriptors. @param[in,out] outBufs Output buffer descriptors. The algorithm may modify the output buffer pointers. @param[in] inArgs Input arguments. This is a required parameter. @param[out] outArgs Ouput results. This is a required parameter. @remarks process() is a blocking call. When process() returns, the algorithm's processing is complete. @pre @c inBufs must not be NULL, and must point to a valid IVIDEO2_BufDesc structure. @pre @c inBufs->numPlanes will indicate the total number of input buffers supplied for input frame in the @c inBufs->planeDesc[] array. @pre @c inBufs->numMetaPlanes will indicate the total number of input buffers supplied for meta data planes in the @c inBufs->metadataPlaneDesc[] array. @pre @c outBufs must not be NULL, and must point to a valid XDM2_BufDesc structure. @pre @c outBufs->buf[0] must not be NULL, and must point to a valid buffer of data that is at least @c outBufs->bufSizes[0] bytes in length. @pre @c inArgs must not be NULL, and must point to a valid IVIDENC2_InArgs structure. @pre @c outArgs must not be NULL, and must point to a valid IVIDENC2_OutArgs structure. @pre The buffers in @c inBuf and @c outBuf are physically contiguous and owned by the calling application. @post The algorithm <b>must not</b> modify the contents of @c inArgs. @post The algorithm <b>must not</b> modify the contents of @c inBufs, with the exception of @c inBufs.bufDesc[].accessMask. That is, the data and buffers pointed to by these parameters must be treated as read-only. @post The algorithm <b>must</b> appropriately set/clear the IVIDEO2_BufDesc.planeDesc[].accessMask and IVIDEO2_BufDesc.metadataPlaneDesc[].accessMask fields in @c inBufs to indicate the mode in which each of the respective buffers were read. For example, if the algorithm only read from @c inBufs.planeDesc[0].buf using the algorithm processor, it could utilize #XDM_SETACCESSMODE_READ to update the appropriate @c accessMask fields. The application <i>may</i> utilize these returned values to appropriately manage cache. @post The buffers in @c inBufs are owned by the calling application. @retval #IVIDENC2_EOK \copybrief IVIDENC2_EOK
Success.
IVIDENC2_EFAIL | General failure. See IVIDENC2_Status.extendedError for more detailed further error conditions. |
IVIDENC2_EUNSUPPORTED | Request is unsupported. \xrefitem todo 9. |
XDAS_Int32(* IVIDENC2_Fxns::control)(IVIDENC2_Handle handle, IVIDENC2_Cmd id, IVIDENC2_DynamicParams *params, IVIDENC2_Status *status) |
Control behavior of an algorithm.
@param[in] handle Handle to an algorithm instance. @param[in] id Command id. See #XDM_CmdId. @param[in] params Dynamic parameters. This is a required parameter. @param[out] status Output results. This is a required parameter. @pre @c handle must be a valid algorithm instance handle. @pre @c params must not be NULL, and must point to a valid IVIDENC2_DynamicParams structure. @pre @c status must not be NULL, and must point to a valid IVIDENC2_Status structure. @pre If a buffer is provided in the @c status->data field, it must be physically contiguous and owned by the calling application. @post The algorithm <b>must not</b> modify the contents of @c params. That is, the data pointed to by this parameter must be treated as read-only. @post If a buffer was provided in the @c status->data field, it is owned by the calling application. @retval #IVIDENC2_EOK \copybrief IVIDENC2_EOK
Success.
IVIDENC2_EFAIL | General failure. See IVIDENC2_Status.extendedError for more detailed further error conditions. |
IVIDENC2_EUNSUPPORTED | Request is unsupported. |