Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00047 #ifndef ti_xdais_dm_IVIDDEC3_
00048 #define ti_xdais_dm_IVIDDEC3_
00049
00050 #include <ti/xdais/ialg.h>
00051 #include <ti/xdais/xdas.h>
00052 #include "xdm.h"
00053 #include "ivideo.h"
00054
00055 #ifdef __cplusplus
00056 extern "C" {
00057 #endif
00058
00061
00062 #define IVIDDEC3_EOK XDM_EOK
00063 #define IVIDDEC3_EFAIL XDM_EFAIL
00064 #define IVIDDEC3_EUNSUPPORTED XDM_EUNSUPPORTED
00070 typedef struct IVIDDEC3_Obj {
00071 struct IVIDDEC3_Fxns *fxns;
00072 } IVIDDEC3_Obj;
00073
00074
00078 typedef struct IVIDDEC3_Obj *IVIDDEC3_Handle;
00079
00080
00089 typedef enum {
00090 IVIDDEC3_DISPLAY_DELAY_AUTO = -1,
00091 IVIDDEC3_DECODE_ORDER = 0,
00092 IVIDDEC3_DISPLAY_DELAY_1 = 1,
00093 IVIDDEC3_DISPLAY_DELAY_2 = 2,
00094 IVIDDEC3_DISPLAY_DELAY_3 = 3,
00095 IVIDDEC3_DISPLAY_DELAY_4 = 4,
00096 IVIDDEC3_DISPLAY_DELAY_5 = 5,
00097 IVIDDEC3_DISPLAY_DELAY_6 = 6,
00098 IVIDDEC3_DISPLAY_DELAY_7 = 7,
00099 IVIDDEC3_DISPLAY_DELAY_8 = 8,
00100 IVIDDEC3_DISPLAY_DELAY_9 = 9,
00101 IVIDDEC3_DISPLAY_DELAY_10 = 10,
00102 IVIDDEC3_DISPLAY_DELAY_11 = 11,
00103 IVIDDEC3_DISPLAY_DELAY_12 = 12,
00104 IVIDDEC3_DISPLAY_DELAY_13 = 13,
00105 IVIDDEC3_DISPLAY_DELAY_14 = 14,
00106 IVIDDEC3_DISPLAY_DELAY_15 = 15,
00107 IVIDDEC3_DISPLAY_DELAY_16 = 16,
00108 IVIDDEC3_DISPLAYDELAY_DEFAULT = IVIDDEC3_DISPLAY_DELAY_AUTO
00109 } IVIDDEC3_displayDelay;
00110
00117 typedef struct IVIDDEC3_Params {
00118 XDAS_Int32 size;
00119 XDAS_Int32 maxHeight;
00120 XDAS_Int32 maxWidth;
00121 XDAS_Int32 maxFrameRate;
00126 XDAS_Int32 maxBitRate;
00130 XDAS_Int32 dataEndianness;
00134 XDAS_Int32 forceChromaFormat;
00138 XDAS_Int32 operatingMode;
00142 XDAS_Int32 displayDelay;
00146 XDAS_Int32 inputDataMode;
00165 XDAS_Int32 outputDataMode;
00180 XDAS_Int32 numInputDataUnits;
00191 XDAS_Int32 numOutputDataUnits;
00202 XDAS_Int32 errorInfoMode;
00207 XDAS_Int32 displayBufsMode;
00218 XDAS_Int32 metadataType[IVIDEO_MAX_NUM_METADATA_PLANES];
00223 } IVIDDEC3_Params;
00224
00225
00240 typedef struct IVIDDEC3_DynamicParams {
00241 XDAS_Int32 size;
00242 XDAS_Int32 decodeHeader;
00246 XDAS_Int32 displayWidth;
00251 XDAS_Int32 frameSkipMode;
00255 XDAS_Int32 newFrameFlag;
00267 XDM_DataSyncPutFxn putDataFxn;
00281 XDM_DataSyncHandle putDataHandle;
00303 XDM_DataSyncGetFxn getDataFxn;
00316 XDM_DataSyncHandle getDataHandle;
00337 XDM_DataSyncPutBufferFxn putBufferFxn;
00351 XDM_DataSyncHandle putBufferHandle;
00373 XDAS_Int32 lateAcquireArg;
00402 } IVIDDEC3_DynamicParams;
00403
00404
00413 typedef struct IVIDDEC3_InArgs {
00414 XDAS_Int32 size;
00415 XDAS_Int32 numBytes;
00418 XDAS_Int32 inputID;
00437 } IVIDDEC3_InArgs;
00438
00439
00447 typedef struct IVIDDEC3_Status {
00448 XDAS_Int32 size;
00449 XDAS_Int32 extendedError;
00450 XDM1_SingleBufDesc data;
00471 XDAS_Int32 maxNumDisplayBufs;
00477 XDAS_Int32 maxOutArgsDisplayBufs;
00488 XDAS_Int32 outputHeight;
00489 XDAS_Int32 outputWidth;
00490 XDAS_Int32 frameRate;
00495 XDAS_Int32 bitRate;
00496 XDAS_Int32 contentType;
00500 XDAS_Int32 sampleAspectRatioHeight;
00501 XDAS_Int32 sampleAspectRatioWidth;
00502 XDAS_Int32 bitRange;
00503 XDAS_Int32 forceChromaFormat;
00507 XDAS_Int32 operatingMode;
00511 XDAS_Int32 frameOrder;
00517 XDAS_Int32 inputDataMode;
00522 XDAS_Int32 outputDataMode;
00527 XDM1_AlgBufInfo bufInfo;
00538 XDAS_Int32 numInputDataUnits;
00551 XDAS_Int32 numOutputDataUnits;
00563 XDAS_Int32 configurationID;
00575 XDAS_Int32 metadataType[IVIDEO_MAX_NUM_METADATA_PLANES];
00580 IVIDDEC3_DynamicParams decDynamicParams;
00587 } IVIDDEC3_Status;
00588
00589
00599 typedef enum {
00600 IVIDDEC3_DISPLAYBUFS_EMBEDDED = 1,
00611 IVIDDEC3_DISPLAYBUFS_PTRS = 2
00632 } IVIDDEC3_DisplayBufsMode;
00633
00634
00656 typedef struct IVIDDEC3_OutArgs {
00657 XDAS_Int32 size;
00668 XDAS_Int32 extendedError;
00669 XDAS_Int32 bytesConsumed;
00670 XDAS_Int32 outputID[IVIDEO2_MAX_IO_BUFFERS];
00685 IVIDEO2_BufDesc decodedBufs;
00701 XDAS_Int32 freeBufID[IVIDEO2_MAX_IO_BUFFERS];
00738 XDAS_Int32 outBufsInUseFlag;
00747 XDAS_Int32 displayBufsMode;
00764 union {
00765 IVIDEO2_BufDesc bufDesc[1];
00806 IVIDEO2_BufDesc *pBufDesc[IVIDEO2_MAX_IO_BUFFERS];
00816 } displayBufs;
00842 } IVIDDEC3_OutArgs;
00843
00844
00855 typedef IALG_Cmd IVIDDEC3_Cmd;
00856
00857
00861 typedef struct IVIDDEC3_Fxns {
00862 IALG_Fxns ialg;
00959 XDAS_Int32 (*process)(IVIDDEC3_Handle handle, XDM2_BufDesc *inBufs,
00960 XDM2_BufDesc *outBufs, IVIDDEC3_InArgs *inArgs,
00961 IVIDDEC3_OutArgs *outArgs);
00962
00963
00999 XDAS_Int32 (*control)(IVIDDEC3_Handle handle, IVIDDEC3_Cmd id,
01000 IVIDDEC3_DynamicParams *params, IVIDDEC3_Status *status);
01001
01002 } IVIDDEC3_Fxns;
01003
01004
01007 #ifdef __cplusplus
01008 }
01009 #endif
01010
01011 #endif
01012
01013
01014
01015
01016