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

Defines the run time output arguments for all IVIDDEC3 instance objects. More...

#include <ividdec3.h>

Collaboration diagram for IVIDDEC3_OutArgs:
Collaboration graph

Data Fields

XDAS_Int32 size
XDAS_Int32 extendedError
 Extended error information.
XDAS_Int32 bytesConsumed
XDAS_Int32 outputID [20]
IVIDEO2_BufDesc decodedBufs
XDAS_Int32 freeBufID [20]
XDAS_Int32 outBufsInUseFlag
XDAS_Int32 displayBufsMode
union {
   IVIDEO2_BufDesc   bufDesc [1]
   IVIDEO2_BufDesc *   pBufDesc [20]
displayBufs

Detailed Description

Defines the run time output arguments for all IVIDDEC3 instance objects.

Remarks:
This structure may be extended by individual codec implementations allowing customization with vendor specific parameters. The presence of vendor specific extensions will be detected by the value of the size parameter.
The size field must be correctly set by the caller. See https://processors.wiki.ti.com/index.php/Extending_data_structures_in_XDM for more details.
The size of this struct may vary when IVIDDEC3_OutArgs.displayBufsMode is set to IVIDDEC3_DISPLAYBUFS_EMBEDDED (see details in IVIDDEC3_OutArgs.displayBufs.bufDesc).
When IVIDDEC3_OutArgs.displayBufsMode is set to IVIDDEC3_DISPLAYBUFS_EMBEDDED, the number of elements in the IVIDDEC3_OutArgs.displayBufs.bufDesc array is a constant (and can be acquired by calling IVIDDEC3_Fxns.control() and looking in the IVIDDEC3_Status.maxOutArgsDisplayBufs field. Note that any extended fields follow the IVIDDEC3_OutArgs.displayBufs.bufDesc array.
See also:
IVIDDEC3_Fxns.process()

Field Documentation

XDAS_Int32 IVIDDEC3_OutArgs::size

Size of this structure in bytes. Because this structure can be extended, this field must be correctly set by the caller.

Remarks:
Extra care must be taken when setting this field as the size of even the base data can vary because of the IVIDDEC3_OutArgs.displayBufs field.
See also:
IVIDDEC3_OutArgs.displayBufs
XDAS_Int32 IVIDDEC3_OutArgs::extendedError

Extended error information.

Remarks:
When an internal error occurs, the algorithm will return an error return value (e.g. EFAIL, EUNSUPPORTED)
The value of each enum is the bit which is set.
Bits 31-16 are reserved. Bits 7-0 are codec and implementation specific.
The algorithm can set multiple bits to 1 based on conditions. e.g. it will set bits XDM_FATALERROR (fatal) and XDM_UNSUPPORTEDPARAM (unsupported params) in case of unsupported run time parameters.
This enumeration data type should not be used for storage, but rather only for its constant values.

See also:
XDM_ErrorBit
XDAS_Int32 IVIDDEC3_OutArgs::bytesConsumed

Number of bytes consumed.

XDAS_Int32 IVIDDEC3_OutArgs::outputID[20]

Output ID corresponding to displayBufs[].

Remarks:
A value of zero (0) indicates an invalid ID. The first zero entry in array will indicate end of valid outputIDs within the array. Hence the application can stop reading the array when it encounters the first zero entry.
See also:
IVIDDEC3_OutArgs.displayBufs
IVIDDEC3_InArgs.inputID
IVIDEO2_BufDesc IVIDDEC3_OutArgs::decodedBufs

The decoder fills this structure with buffer pointers to the decoded frame. Related information fields for the decoded frame are also populated.

When frame decoding is not complete, as indicated by IVIDDEC3_OutArgs.outBufsInUseFlag, the frame data in this structure will be incomplete. However, the algorithm will provide incomplete decoded frame data in case application wants to use it for error recovery purposes.

See also:
IVIDDEC3_OutArgs.outBufsInUseFlag
XDAS_Int32 IVIDDEC3_OutArgs::freeBufID[20]

This is an array of inputID's corresponding to the buffers that have been unlocked in the current process call.

Remarks:
Buffers returned to the application for display (via IVIDDEC3_OutArgs.displayBufs) continue to be owned by the algorithm until they are released - indicated by the ID being returned in this freeBuf array.
The buffers released by the algorithm are indicated by their non-zero ID (previously provided via IVIDDEC3_InArgs.inputID).
A value of zero (0) indicates an invalid ID. The first zero entry in array will indicate end of valid freeBufIDs within the array. Hence the application can stop searching the array when it encounters the first zero entry.
If no buffer was unlocked in the process call, freeBufID[0] will have a value of zero.
See also:
IVIDDEC3_InArgs.inputID
IVIDDEC3_OutArgs.displayBufs
XDAS_Int32 IVIDDEC3_OutArgs::outBufsInUseFlag

Flag to indicate that the outBufs provided with the IVIDDEC3_Fxns.process() call are in use. No outBufs are required to be supplied with the next IVIDDEC3_Fxns.process() call.

Remarks:
Valid values are XDAS_TRUE and XDAS_FALSE.
XDAS_Int32 IVIDDEC3_OutArgs::displayBufsMode

Indicates which mode the IVIDDEC3_OutArgs.displayBufs are presented in.

Remarks:
See the IVIDDEC3_DisplayBufsMode enum for the values this field may contain.
This will be set to the same value the application provided at creation time via IVIDDEC3_Params.displayBufsMode.
See also:
IVIDDEC3_Params.displayBufsMode
IVIDDEC3_DisplayBufsMode
IVIDEO2_BufDesc IVIDDEC3_OutArgs::bufDesc[1]

Array containing display frames corresponding to valid ID entries in the outputID[] array.

Remarks:
The number of elements in this array is not necessarily 1, and should be acquired by the app via the IVIDDEC3_Status.maxNumDisplayBufs field - acquired by calling IVIDDEC3_Fxns.control() with XDM_GETSTATUS. The application should acquire this prior to calling IVIDDEC3_Fxns.process().
Because of the variable size of this array, care must be taken when setting the IVIDDEC3_OutArgs.size field to include the complete size of this struct.
Entries in the array corresponding to invalid ID values (zero) in IVIDDEC3_OutArgs.outputID[] will set zero value for the following fields in the IVIDEO2_BufDesc structure: numPlanes, numMetaPlanes.
Implied by the previous remark, as this array corresponds to buffer IDs indicated by outputID[], elements of this array are undefined if the corresponding outputID[] element is zero (0).
IVIDEO2_BufDesc* IVIDDEC3_OutArgs::pBufDesc[20]

Array containing pointers to display frames corresponding to valid ID entries in the outputID[] array.

Remarks:
These buffers must be allocated by the application, and provided into this "outArgs" structure by the app.
union { ... } IVIDDEC3_OutArgs::displayBufs

Display Buffers union.

Remarks:
This field is complex. The value in IVIDDEC3_OutArgs.displayBufsMode indicates how the user should interact with this union field. If IVIDDEC3_OutArgs.displayBufsMode is IVIDDEC3_DISPLAYBUFS_EMBEDDED, this field should be referenced via the IVIDDEC3_OutArgs.bufDesc[] array who's number of elements is determined via the IVIDDEC3_OutArgs.outputID[] array. If this field is IVIDDEC3_DISPLAYBUFS_PTRS, this field should be referenced via the IVIDDEC3_OutArgs.pBufDesc[] array.
See also:
IVIDDEC3_OutArgs.bufDesc
IVIDDEC3_OutArgs.pBufDesc

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