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
00046 #ifndef ti_xdais_dm_XDM_
00047 #define ti_xdais_dm_XDM_
00048
00049 #include <ti/xdais/ialg.h>
00050 #include <ti/xdais/xdas.h>
00051
00052 #ifdef __cplusplus
00053 extern "C" {
00054 #endif
00055
00058
00059 #define XDM_EOK IALG_EOK
00060 #define XDM_EFAIL IALG_EFAIL
00061 #define XDM_EUNSUPPORTED -3
00064 #ifdef XDM_INCLUDE_DOT9_SUPPORT
00065
00073 #define XDM_ERUNTIME -2
00074 #endif
00075
00076 #define XDM_MAX_IO_BUFFERS 16
00160 typedef struct XDM_BufDesc {
00161 XDAS_Int8 **bufs;
00164 XDAS_Int32 numBufs;
00165 XDAS_Int32 *bufSizes;
00166 } XDM_BufDesc;
00167
00168
00172 typedef struct XDM_SingleBufDesc {
00173 XDAS_Int8 *buf;
00174 XDAS_Int32 bufSize;
00175 } XDM_SingleBufDesc;
00176
00177
00178
00182 typedef struct XDM1_SingleBufDesc {
00183 XDAS_Int8 *buf;
00184 XDAS_Int32 bufSize;
00185 XDAS_Int32 accessMask;
00211 } XDM1_SingleBufDesc;
00212
00213
00221 typedef union {
00222 struct {
00223 XDAS_Int32 width;
00224 XDAS_Int32 height;
00225 } tileMem;
00226 XDAS_Int32 bytes;
00227 } XDM2_BufSize;
00228
00237 typedef struct XDM2_SingleBufDesc {
00238 XDAS_Int8 *buf;
00239 XDAS_Int16 memType;
00243 XDAS_Int16 usageMode;
00253 XDM2_BufSize bufSize;
00254 XDAS_Int32 accessMask;
00280 } XDM2_SingleBufDesc;
00281
00282
00286 typedef struct XDM1_BufDesc {
00287 XDAS_Int32 numBufs;
00292 XDM1_SingleBufDesc descs[XDM_MAX_IO_BUFFERS];
00295 } XDM1_BufDesc;
00296
00305 typedef struct XDM2_BufDesc {
00306 XDAS_Int32 numBufs;
00311 XDM2_SingleBufDesc descs[XDM_MAX_IO_BUFFERS];
00314 } XDM2_BufDesc;
00315
00316
00336 typedef enum {
00337 XDM_ACCESSMODE_READ = 0,
00343 XDM_ACCESSMODE_WRITE = 1
00349 } XDM_AccessMode;
00350
00351
00362 #define XDM_ISACCESSMODE_READ(x) (((x) >> XDM_ACCESSMODE_READ) & 0x1)
00363
00364
00375 #define XDM_ISACCESSMODE_WRITE(x) (((x) >> XDM_ACCESSMODE_WRITE) & 0x1)
00376
00377
00388 #define XDM_CLEARACCESSMODE_READ(x) ((x) &= (~(0x1 << XDM_ACCESSMODE_READ)))
00389
00390
00401 #define XDM_CLEARACCESSMODE_WRITE(x) ((x) &= (~(0x1 << XDM_ACCESSMODE_WRITE)))
00402
00403
00413 #define XDM_SETACCESSMODE_READ(x) ((x) |= (0x1 << XDM_ACCESSMODE_READ))
00414
00415
00425 #define XDM_SETACCESSMODE_WRITE(x) ((x) |= (0x1 << XDM_ACCESSMODE_WRITE))
00426
00427
00431 typedef struct XDM1_AlgBufInfo {
00432 XDAS_Int32 minNumInBufs;
00433 XDAS_Int32 minNumOutBufs;
00434 XDM2_BufSize minInBufSize[XDM_MAX_IO_BUFFERS];
00437 XDM2_BufSize minOutBufSize[XDM_MAX_IO_BUFFERS];
00440 XDAS_Int32 inBufMemoryType[XDM_MAX_IO_BUFFERS];
00445 XDAS_Int32 outBufMemoryType[XDM_MAX_IO_BUFFERS];
00450 XDAS_Int32 minNumBufSets;
00455 } XDM1_AlgBufInfo;
00456
00457
00461 typedef struct XDM_AlgBufInfo {
00462 XDAS_Int32 minNumInBufs;
00463 XDAS_Int32 minNumOutBufs;
00464 XDAS_Int32 minInBufSize[XDM_MAX_IO_BUFFERS];
00467 XDAS_Int32 minOutBufSize[XDM_MAX_IO_BUFFERS];
00470 } XDM_AlgBufInfo;
00471
00472
00487 #define XDM_CUSTOMENUMBASE 0x100
00488
00489
00506 #define XDM_CUSTOMCMDBASE 0x100
00507
00527 typedef enum {
00528 XDM_GETSTATUS = 0,
00541 XDM_SETPARAMS = 1,
00542 XDM_RESET = 2,
00546 XDM_SETDEFAULT = 3,
00569 XDM_FLUSH = 4,
00585 XDM_GETBUFINFO = 5,
00599 XDM_GETVERSION = 6,
00607 XDM_GETCONTEXTINFO = 7,
00613 XDM_GETDYNPARAMSDEFAULT = 8,
00643 XDM_SETLATEACQUIREARG = 9,
00651 XDM_MOVEBUFS = 10
00702 } XDM_CmdId;
00703
00704
00723 typedef enum {
00724 XDM_PARAMSCHANGE = 8,
00736 XDM_APPLIEDCONCEALMENT = 9,
00749 XDM_INSUFFICIENTDATA = 10,
00766 XDM_CORRUPTEDDATA = 11,
00776 XDM_CORRUPTEDHEADER = 12,
00790 XDM_UNSUPPORTEDINPUT = 13,
00810 XDM_UNSUPPORTEDPARAM = 14,
00831 XDM_FATALERROR = 15
00853 } XDM_ErrorBit;
00854
00856 #define XDM_ISFATALERROR(x) (((x) >> XDM_FATALERROR) & 0x1)
00857
00858 #define XDM_ISUNSUPPORTEDPARAM(x) (((x) >> XDM_UNSUPPORTEDPARAM) & 0x1)
00859
00860 #define XDM_ISUNSUPPORTEDINPUT(x) (((x) >> XDM_UNSUPPORTEDINPUT) & 0x1)
00861
00862 #define XDM_ISCORRUPTEDHEADER(x) (((x) >> XDM_CORRUPTEDHEADER) & 0x1)
00863
00864 #define XDM_ISCORRUPTEDDATA(x) (((x) >> XDM_CORRUPTEDDATA) & 0x1)
00865
00866 #define XDM_ISINSUFFICIENTDATA(x) (((x) >> XDM_INSUFFICIENTDATA) & 0x1)
00867
00868 #define XDM_ISAPPLIEDCONCEALMENT(x) (((x) >> XDM_APPLIEDCONCEALMENT) & 0x1)
00869
00871 #define XDM_SETFATALERROR(x) ((x) |= (0x1 << XDM_FATALERROR))
00872
00873 #define XDM_SETUNSUPPORTEDPARAM(x) ((x) |= (0x1 << XDM_UNSUPPORTEDPARAM))
00874
00875 #define XDM_SETUNSUPPORTEDINPUT(x) ((x) |= (0x1 << XDM_UNSUPPORTEDINPUT))
00876
00877 #define XDM_SETCORRUPTEDHEADER(x) ((x) |= (0x1 << XDM_CORRUPTEDHEADER))
00878
00879 #define XDM_SETCORRUPTEDDATA(x) ((x) |= (0x1 << XDM_CORRUPTEDDATA))
00880
00881 #define XDM_SETINSUFFICIENTDATA(x) ((x) |= (0x1 << XDM_INSUFFICIENTDATA))
00882
00883 #define XDM_SETAPPLIEDCONCEALMENT(x) ((x) |= (0x1 << XDM_APPLIEDCONCEALMENT))
00884
00885
00893 typedef enum {
00894 XDM_BYTE = 1,
00895 XDM_LE_16 = 2,
00896 XDM_LE_32 = 3,
00897 XDM_LE_64 = 4,
00898 XDM_BE_16 = 5,
00899 XDM_BE_32 = 6,
00900 XDM_BE_64 = 7
00901 } XDM_DataFormat;
00902
00903
00907 typedef struct XDM2_MoveBufDesc {
00908 XDAS_Int32 id;
00909 XDM2_BufDesc bufDesc;
00910 } XDM2_MoveBufDesc;
00911
00912
00916 typedef struct XDM_Date {
00917 XDAS_Int32 msecsOfDay;
00918 XDAS_Int32 month;
00919 XDAS_Int32 dayOfMonth;
00920 XDAS_Int32 dayOfWeek;
00921 XDAS_Int32 year;
00922 } XDM_Date;
00923
00924
00928 typedef struct XDM_Point {
00929 XDAS_Int32 x;
00930 XDAS_Int32 y;
00931 } XDM_Point;
00932
00933
00937 typedef struct XDM_Rect {
00938 XDM_Point topLeft;
00939 XDM_Point bottomRight;
00940 } XDM_Rect;
00941
00945 #define XDM_MAX_CONTEXT_BUFFERS 32
00946
00947
00951 typedef struct XDM_ContextInfo {
00952 XDAS_Int32 minContextSize;
00955 XDAS_Int32 minIntermediateBufSizes[XDM_MAX_CONTEXT_BUFFERS];
00964 } XDM_ContextInfo;
00965
00966
00970 typedef struct XDM_Context {
00971 XDM1_SingleBufDesc algContext;
00978 XDAS_Int32 numInBufs;
00979 XDAS_Int32 numOutBufs;
00980 XDAS_Int32 numInOutBufs;
00981 XDM1_SingleBufDesc inBufs[XDM_MAX_CONTEXT_BUFFERS];
00986 XDM1_SingleBufDesc outBufs[XDM_MAX_CONTEXT_BUFFERS];
00991 XDM1_SingleBufDesc inOutBufs[XDM_MAX_CONTEXT_BUFFERS];
00997 XDM1_SingleBufDesc intermediateBufs[XDM_MAX_CONTEXT_BUFFERS];
01022 } XDM_Context;
01023
01024
01032 typedef enum {
01033 XDM_DEFAULT = 0,
01037 XDM_HIGH_QUALITY = 1,
01038 XDM_HIGH_SPEED = 2,
01039 XDM_USER_DEFINED = 3,
01042 XDM_HIGH_SPEED_MED_QUALITY = 4,
01045 XDM_MED_SPEED_MED_QUALITY = 5,
01048 XDM_MED_SPEED_HIGH_QUALITY = 6,
01052 XDM_ENCODING_PRESET_MAX = 7,
01053 XDM_PRESET_DEFAULT = XDM_MED_SPEED_MED_QUALITY
01058 } XDM_EncodingPreset;
01059
01060
01068 typedef enum {
01069 XDM_DECODE_AU = 0,
01072 XDM_PARSE_HEADER = 1
01073 } XDM_DecMode;
01074
01075
01083 typedef enum {
01084 XDM_ENCODE_AU = 0,
01087 XDM_GENERATE_HEADER = 1
01088 } XDM_EncMode;
01089
01090
01098 typedef enum {
01099 XDM_CHROMA_NA = -1,
01100 XDM_YUV_420P = 1,
01101 XDM_YUV_422P = 2,
01102 XDM_YUV_422IBE = 3,
01103 XDM_YUV_422ILE = 4,
01104 XDM_YUV_444P = 5,
01105 XDM_YUV_411P = 6,
01106 XDM_GRAY = 7,
01107 XDM_RGB = 8,
01108 XDM_YUV_420SP = 9,
01111 XDM_ARGB8888 = 10,
01112 XDM_RGB555 = 11,
01113 XDM_RGB565 = 12,
01114 XDM_YUV_444ILE = 13,
01116 XDM_CHROMAFORMAT_DEFAULT = XDM_YUV_422ILE
01117 } XDM_ChromaFormat;
01118
01119
01127 typedef enum {
01128 XDM_MEMTYPE_ROW = 0,
01142 XDM_MEMTYPE_RAW = 0,
01146 XDM_MEMTYPE_TILED8 = 1,
01147 XDM_MEMTYPE_TILED16 = 2,
01148 XDM_MEMTYPE_TILED32 = 3,
01149 XDM_MEMTYPE_TILEDPAGE = 4
01150 } XDM_MemoryType;
01151
01152
01158 typedef enum {
01159 XDM_MEMUSAGE_DATASYNC = 0
01178 } XDM_MemoryUsageMode;
01179
01180
01185 typedef struct XDM_DataSyncDesc {
01186 XDAS_Int32 size;
01187 XDAS_Int32 scatteredBlocksFlag;
01209 XDAS_Int32 *baseAddr;
01226 XDAS_Int32 numBlocks;
01227 XDAS_Int32 varBlockSizesFlag;
01233 XDAS_Int32 *blockSizes;
01247 } XDM_DataSyncDesc;
01248
01249
01258 typedef Void * XDM_DataSyncHandle;
01259
01260
01277 typedef Void (*XDM_DataSyncPutFxn)(XDM_DataSyncHandle dataSyncHandle,
01278 XDM_DataSyncDesc *dataSyncDesc);
01279
01302 typedef XDAS_Int32 (*XDM_DataSyncGetFxn)(XDM_DataSyncHandle dataSyncHandle,
01303 XDM_DataSyncDesc *dataSyncDesc);
01304
01338 typedef XDAS_Int32 (*XDM_DataSyncGetBufferFxn)(XDM_DataSyncHandle dataSyncHandle,
01339 XDM_DataSyncDesc *dataSyncDesc);
01340
01341
01357 typedef XDAS_Int32 (*XDM_DataSyncPutBufferFxn)(XDM_DataSyncHandle dataSyncHandle,
01358 XDM_DataSyncDesc *dataSyncDesc);
01359
01363 #ifdef __cplusplus
01364 }
01365 #endif
01366
01367 #endif
01368
01369
01370
01371
01372