XDAIS  dais-x04
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Data Fields
IVIDDEC2FRONT_Fxns Struct Reference

Defines all of the operations on IVIDDEC2FRONT objects. More...

#include <ividdec2.h>

Collaboration diagram for IVIDDEC2FRONT_Fxns:
Collaboration graph

Data Fields

IALG_Fxns ialg
XDAS_Int32(* process )(IVIDDEC2FRONT_Handle handle, IVIDDEC2_InArgs *inArgs, XDM_Context *context, IVIDDEC2FRONT_OutArgs *outArgs)
 Basic video decoding call.
XDAS_Int32(* control )(IVIDDEC2FRONT_Handle handle, IVIDDEC2_Cmd id, IVIDDEC2_DynamicParams *params, XDM_Context *context, IVIDDEC2FRONT_Status *status)
 Control behavior of an algorithm.

Detailed Description

Defines all of the operations on IVIDDEC2FRONT objects.


Field Documentation

IALG_Fxns IVIDDEC2FRONT_Fxns::ialg

XDAIS algorithm interface.

See also:
IALG_Fxns
XDAS_Int32(* IVIDDEC2FRONT_Fxns::process)(IVIDDEC2FRONT_Handle handle, IVIDDEC2_InArgs *inArgs, XDM_Context *context, IVIDDEC2FRONT_OutArgs *outArgs)

Basic video decoding call.

Parameters:
[in]handleHandle to an algorithm instance.
[in]inArgsInput arguments. This is a required parameter.
[in,out]contextContext provided to, and managed by the split codec.
[out]outArgsOuput results. This is a required parameter.
Remarks:
process() is a blocking call. When process() returns, the algorithm's processing is complete.
The application must call IVIDDEC2FRONT::control() with XDM_GETCONTEXTINFO to obtain the minimum buffer sizes the codec requires.
context includes input and output buffers, intermediate buffers, and other values used by the codec. See XDM_Context for more details.
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_EOKSuccess.
IVIDDEC2_EFAILGeneral failure. See IVIDDEC2_Status::extendedError for more detailed further error conditions.
IVIDDEC2_EUNSUPPORTEDRequest is unsupported.
XDAS_Int32(* IVIDDEC2FRONT_Fxns::control)(IVIDDEC2FRONT_Handle handle, IVIDDEC2_Cmd id, IVIDDEC2_DynamicParams *params, XDM_Context *context, IVIDDEC2FRONT_Status *status)

Control behavior of an algorithm.

Parameters:
[in]handleHandle to an algorithm instance.
[in]idCommand id. See XDM_CmdId.
[in]paramsDynamic parameters. This is a required parameter.
[in,out]contextContext provided to, and managed by the split codec.
[out]statusOutput 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.
Remarks:
context may be NULL. The FRONT part of a codec may be capable of completely handling the control() command. The codec indicates this the application is sure the FRONT part of the codec can return and must point to a valid XDM_Context structure.
Return values:
IVIDDEC2_EOKSuccess.
IVIDDEC2_EFAILGeneral failure. See IVIDDEC2_Status::extendedError for more detailed further error conditions.
IVIDDEC2_EUNSUPPORTEDRequest is unsupported.

The documentation for this struct was generated from the following file:
Copyright 2013, Texas Instruments Incorporated