ividdec3.h
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
00059
00062
00063 #define IVIDDEC3_EOK XDM_EOK
00064 #define IVIDDEC3_EFAIL XDM_EFAIL
00065 #define IVIDDEC3_EUNSUPPORTED XDM_EUNSUPPORTED
00071 typedef struct IVIDDEC3_Obj {
00072 struct IVIDDEC3_Fxns *fxns;
00073 } IVIDDEC3_Obj;
00074
00075
00079 typedef struct IVIDDEC3_Obj *IVIDDEC3_Handle;
00080
00081
00090 typedef enum {
00091 IVIDDEC3_DISPLAY_DELAY_AUTO = -1,
00092 IVIDDEC3_DECODE_ORDER = 0,
00093 IVIDDEC3_DISPLAY_DELAY_1 = 1,
00094 IVIDDEC3_DISPLAY_DELAY_2 = 2,
00095 IVIDDEC3_DISPLAY_DELAY_3 = 3,
00096 IVIDDEC3_DISPLAY_DELAY_4 = 4,
00097 IVIDDEC3_DISPLAY_DELAY_5 = 5,
00098 IVIDDEC3_DISPLAY_DELAY_6 = 6,
00099 IVIDDEC3_DISPLAY_DELAY_7 = 7,
00100 IVIDDEC3_DISPLAY_DELAY_8 = 8,
00101 IVIDDEC3_DISPLAY_DELAY_9 = 9,
00102 IVIDDEC3_DISPLAY_DELAY_10 = 10,
00103 IVIDDEC3_DISPLAY_DELAY_11 = 11,
00104 IVIDDEC3_DISPLAY_DELAY_12 = 12,
00105 IVIDDEC3_DISPLAY_DELAY_13 = 13,
00106 IVIDDEC3_DISPLAY_DELAY_14 = 14,
00107 IVIDDEC3_DISPLAY_DELAY_15 = 15,
00108 IVIDDEC3_DISPLAY_DELAY_16 = 16,
00109 IVIDDEC3_DISPLAYDELAY_DEFAULT = IVIDDEC3_DISPLAY_DELAY_AUTO
00110 } IVIDDEC3_displayDelay;
00111
00118 typedef struct IVIDDEC3_Params {
00119 XDAS_Int32 size;
00120 XDAS_Int32 maxHeight;
00121 XDAS_Int32 maxWidth;
00122 XDAS_Int32 maxFrameRate;
00127 XDAS_Int32 maxBitRate;
00131 XDAS_Int32 dataEndianness;
00135 XDAS_Int32 forceChromaFormat;
00139 XDAS_Int32 operatingMode;
00143 XDAS_Int32 displayDelay;
00147 XDAS_Int32 inputDataMode;
00166 XDAS_Int32 outputDataMode;
00181 XDAS_Int32 numInputDataUnits;
00192 XDAS_Int32 numOutputDataUnits;
00203 XDAS_Int32 errorInfoMode;
00208 XDAS_Int32 displayBufsMode;
00219 XDAS_Int32 metadataType[IVIDEO_MAX_NUM_METADATA_PLANES];
00224 } IVIDDEC3_Params;
00225
00226
00241 typedef struct IVIDDEC3_DynamicParams {
00242 XDAS_Int32 size;
00243 XDAS_Int32 decodeHeader;
00247 XDAS_Int32 displayWidth;
00252 XDAS_Int32 frameSkipMode;
00256 XDAS_Int32 newFrameFlag;
00268 XDM_DataSyncPutFxn putDataFxn;
00282 XDM_DataSyncHandle putDataHandle;
00304 XDM_DataSyncGetFxn getDataFxn;
00317 XDM_DataSyncHandle getDataHandle;
00338 XDM_DataSyncPutBufferFxn putBufferFxn;
00352 XDM_DataSyncHandle putBufferHandle;
00374 XDAS_Int32 lateAcquireArg;
00403 } IVIDDEC3_DynamicParams;
00404
00405
00414 typedef struct IVIDDEC3_InArgs {
00415 XDAS_Int32 size;
00416 XDAS_Int32 numBytes;
00419 XDAS_Int32 inputID;
00438 } IVIDDEC3_InArgs;
00439
00440
00448 typedef struct IVIDDEC3_Status {
00449 XDAS_Int32 size;
00450 XDAS_Int32 extendedError;
00451 XDM1_SingleBufDesc data;
00472 XDAS_Int32 maxNumDisplayBufs;
00478 XDAS_Int32 maxOutArgsDisplayBufs;
00489 XDAS_Int32 outputHeight;
00490 XDAS_Int32 outputWidth;
00491 XDAS_Int32 frameRate;
00496 XDAS_Int32 bitRate;
00497 XDAS_Int32 contentType;
00501 XDAS_Int32 sampleAspectRatioHeight;
00502 XDAS_Int32 sampleAspectRatioWidth;
00503 XDAS_Int32 bitRange;
00504 XDAS_Int32 forceChromaFormat;
00508 XDAS_Int32 operatingMode;
00512 XDAS_Int32 frameOrder;
00518 XDAS_Int32 inputDataMode;
00523 XDAS_Int32 outputDataMode;
00528 XDM1_AlgBufInfo bufInfo;
00539 XDAS_Int32 numInputDataUnits;
00552 XDAS_Int32 numOutputDataUnits;
00564 XDAS_Int32 configurationID;
00576 XDAS_Int32 metadataType[IVIDEO_MAX_NUM_METADATA_PLANES];
00581 IVIDDEC3_DynamicParams decDynamicParams;
00588 } IVIDDEC3_Status;
00589
00590
00600 typedef enum {
00601 IVIDDEC3_DISPLAYBUFS_EMBEDDED = 1,
00612 IVIDDEC3_DISPLAYBUFS_PTRS = 2
00633 } IVIDDEC3_DisplayBufsMode;
00634
00635
00657 typedef struct IVIDDEC3_OutArgs {
00658 XDAS_Int32 size;
00669 XDAS_Int32 extendedError;
00670 XDAS_Int32 bytesConsumed;
00671 XDAS_Int32 outputID[IVIDEO2_MAX_IO_BUFFERS];
00686 IVIDEO2_BufDesc decodedBufs;
00702 XDAS_Int32 freeBufID[IVIDEO2_MAX_IO_BUFFERS];
00739 XDAS_Int32 outBufsInUseFlag;
00748 XDAS_Int32 displayBufsMode;
00765 union {
00766 IVIDEO2_BufDesc bufDesc[1];
00807 IVIDEO2_BufDesc *pBufDesc[IVIDEO2_MAX_IO_BUFFERS];
00817 } displayBufs;
00843 } IVIDDEC3_OutArgs;
00844
00845
00856 typedef IALG_Cmd IVIDDEC3_Cmd;
00857
00858
00862 typedef struct IVIDDEC3_Fxns {
00863 IALG_Fxns ialg;
00960 XDAS_Int32 (*process)(IVIDDEC3_Handle handle, XDM2_BufDesc *inBufs,
00961 XDM2_BufDesc *outBufs, IVIDDEC3_InArgs *inArgs,
00962 IVIDDEC3_OutArgs *outArgs);
00963
00964
01000 XDAS_Int32 (*control)(IVIDDEC3_Handle handle, IVIDDEC3_Cmd id,
01001 IVIDDEC3_DynamicParams *params, IVIDDEC3_Status *status);
01002
01003 } IVIDDEC3_Fxns;
01004
01005
01008 #ifdef __cplusplus
01009 }
01010 #endif
01011
01012 #endif
01013
01014
01015
01016