Defines all of the operations on IVIDDEC2FRONT objects.
More...
#include <ividdec2.h>
Detailed Description
Defines all of the operations on IVIDDEC2FRONT objects.
Field Documentation
XDAIS algorithm interface.
- See also:
- IALG_Fxns
Basic video decoding call.
- Parameters:
-
[in] | handle | Handle to an algorithm instance. |
[in] | inArgs | Input arguments. This is a required parameter. |
[in,out] | context | Context provided to, and managed by the split codec. |
[out] | outArgs | Ouput results. This is a required parameter. |
- Precondition:
context->numInBufs
will indicate the total number of input buffers supplied for input frame, and conditionally, the encoders MB data buffer.
-
If IVIDDEC2_DynamicParams::mbDataFlag was set to XDAS_FALSE in a previous control() call, the application only needs to provide buffers for reconstruction frames.
-
If IVIDDEC2_DynamicParams::mbDataFlag was set to XDAS_TRUE in a previous control() call,
context->outBufs
[context->numOutBufs - 1] is a buffer descriptor into which the algorithm will write MB data for each macro block. The size of the MB data buffer will vary based on the decoder type. H.264 may generate N264 bytes per MB, while Mpeg2 may generate NMP2 bytes. The exact size of the buffers should be obtained by calling the algorithm's control() method with XDM_GETBUFINFO.
-
inArgs
must not be NULL, and must point to a valid IVIDDEC2_InArgs structure.
-
outArgs
must not be NULL, and must point to a valid IVIDDEC2FRONT_OutArgs structure.
-
context
must not be NULL, and must point to a valid XDM_Context structure.
-
context->inBufs
[0].buf must not be NULL, and must point to a valid buffer of data that is at least context->inBufs
[0].bufSize bytes in length.
-
context->outBufs
[0] must not be NULL, and must point to a valid buffer of data that is at least context->outBufs
[0].bufSize bytes in length.
-
context->numInOutBufs
must be zero (0).
-
The buffers in
context->inBufs
and context->outBufs
are physically contiguous and owned by the calling application.
- Postcondition:
- The algorithm must not modify the contents of
inArgs
.
-
The algorithm must not modify the contents of
context->inBufs
, with the exception of context->inBufs
[].accessMask. That is, the data and buffers pointed to by these parameters must be treated as read-only.
-
The algorithm must modify the contents of
context->inBufs
[].accessMask and appropriately indicate the mode in which each of the buffers in context->inBufs
were read. For example, if the algorithm only read from context->inBufs
[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
context->inBufs
and context->outBufs
are not owned by the calling application.
-
The buffers in
context->algContext
and context->intermediateBufs
[] are owned by the calling application, but must be provided - unmodified - to the next part in this split codec.
- Return values:
-
| IVIDDEC2_EOK | Success. |
| IVIDDEC2_EFAIL | General failure. See IVIDDEC2_Status::extendedError for more detailed further error conditions. |
| IVIDDEC2_EUNSUPPORTED | Request is unsupported. |
Control behavior of an algorithm.
- Parameters:
-
[in] | handle | Handle to an algorithm instance. |
[in] | id | Command id. See XDM_CmdId. |
[in] | params | Dynamic parameters. This is a required parameter. |
[in,out] | context | Context provided to, and managed by the split codec. |
[out] | status | Output results. This is a required parameter. |
- Precondition:
handle
must be a valid algorithm instance handle.
-
params
must not be NULL, and must point to a valid IVIDDEC2_DynamicParams structure.
-
status
must not be NULL, and must point to a valid IVIDDEC2FRONT_Status structure.
-
If a buffer is provided in the
status->data
field, it must be physically contiguous and owned by the calling application.
- Postcondition:
- The algorithm must not modify the contents of
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.
- Return values:
-
| IVIDDEC2_EOK | Success. |
| IVIDDEC2_EFAIL | General failure. See IVIDDEC2_Status::extendedError for more detailed further error conditions. |
| IVIDDEC2_EUNSUPPORTED | Request is unsupported. |
The documentation for this struct was generated from the following file: