#include <ividenc1.h>
Collaboration diagram for IVIDENC1_Fxns:
Data Fields | |
IALG_Fxns | ialg |
XDAS_Int32(* | process )(IVIDENC1_Handle handle, IVIDEO1_BufDescIn *inBufs, XDM_BufDesc *outBufs, IVIDENC1_InArgs *inArgs, IVIDENC1_OutArgs *outArgs) |
Basic video encoding call. | |
XDAS_Int32(* | control )(IVIDENC1_Handle handle, IVIDENC1_Cmd id, IVIDENC1_DynamicParams *params, IVIDENC1_Status *status) |
Control behavior of an algorithm. |
XDAS_Int32(* IVIDENC1_Fxns::process)(IVIDENC1_Handle handle, IVIDEO1_BufDescIn *inBufs, XDM_BufDesc *outBufs, IVIDENC1_InArgs *inArgs, IVIDENC1_OutArgs *outArgs) |
Basic video encoding call.
[in] | handle | Handle to an algorithm instance. |
[in,out] | inBufs | Input video 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. |
inBufs->numBufs
will indicate the total number of input buffers supplied for input frame, and conditionally, the encoders MB data buffer.If IVIDENC1_DynamicParams::mbDataFlag was set to XDAS_FALSE in a previous control() call, the application only needs to provide the input frame.
If IVIDENC1_DynamicParams::mbDataFlag was set to XDAS_TRUE in a previous control() call, inBufs->bufs
[inBufs->numBufs - 1] is a buffer descriptor containing stacked structures of the type IVIDENC1_MbData, one for each macro block.
inArgs
must not be NULL, and must point to a valid IVIDENC1_InArgs structure.
outArgs
must not be NULL, and must point to a valid IVIDENC1_OutArgs structure.
inBufs
must not be NULL, and must point to a valid IVIDEO1_BufDescIn structure.
inBufs->bufDesc
[0].bufs must not be NULL, and must point to a valid buffer of data that is at least inBufs->bufDesc
[0].bufSize bytes in length.
outBufs
must not be NULL, and must point to a valid XDM_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.
The buffers in inBuf
and outBuf
are physically contiguous and owned by the calling application.
inArgs
.
The algorithm must not modify the contents of 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.
The algorithm must appropriately set/clear the IVIDEO1_BufDescIn::bufDesc[].accessMask field in inBufs
to indicate the mode in which each of the buffers in inBufs
were read. For example, if the algorithm only read from inBufs.bufDesc
[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.
The buffers in inBufs
are owned by the calling application.
outBufs->bufs
[0] may contain the encoded data buffer. See IVIDENC1_OutArgs.encodedBufs for more details.
outBufs->bufs
[1], outBufs->bufs
[2], and outBufs->bufs
[3] are used when providing reconstruction buffers.
IVIDENC1_EOK | Success. | |
IVIDENC1_EFAIL | General failure. See IVIDENC1_Status::extendedError for more detailed further error conditions. | |
IVIDENC1_EUNSUPPORTED | Request is unsupported. |
XDAS_Int32(* IVIDENC1_Fxns::control)(IVIDENC1_Handle handle, IVIDENC1_Cmd id, IVIDENC1_DynamicParams *params, IVIDENC1_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 IVIDENC1_DynamicParams structure.
status
must not be NULL, and must point to a valid IVIDENC1_Status structure.
If a buffer is provided in the 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.
If a buffer was provided in the status->data
field, it is owned by the calling application.
IVIDENC1_EOK | Success. | |
IVIDENC1_EFAIL | General failure. See IVIDENC1_Status::extendedError for more detailed further error conditions. | |
IVIDENC1_EUNSUPPORTED | Request is unsupported. |