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_CmdId;
00652
00653
00672 typedef enum {
00673 XDM_PARAMSCHANGE = 8,
00685 XDM_APPLIEDCONCEALMENT = 9,
00698 XDM_INSUFFICIENTDATA = 10,
00715 XDM_CORRUPTEDDATA = 11,
00725 XDM_CORRUPTEDHEADER = 12,
00739 XDM_UNSUPPORTEDINPUT = 13,
00759 XDM_UNSUPPORTEDPARAM = 14,
00780 XDM_FATALERROR = 15
00802 } XDM_ErrorBit;
00803
00805 #define XDM_ISFATALERROR(x) (((x) >> XDM_FATALERROR) & 0x1)
00806
00807 #define XDM_ISUNSUPPORTEDPARAM(x) (((x) >> XDM_UNSUPPORTEDPARAM) & 0x1)
00808
00809 #define XDM_ISUNSUPPORTEDINPUT(x) (((x) >> XDM_UNSUPPORTEDINPUT) & 0x1)
00810
00811 #define XDM_ISCORRUPTEDHEADER(x) (((x) >> XDM_CORRUPTEDHEADER) & 0x1)
00812
00813 #define XDM_ISCORRUPTEDDATA(x) (((x) >> XDM_CORRUPTEDDATA) & 0x1)
00814
00815 #define XDM_ISINSUFFICIENTDATA(x) (((x) >> XDM_INSUFFICIENTDATA) & 0x1)
00816
00817 #define XDM_ISAPPLIEDCONCEALMENT(x) (((x) >> XDM_APPLIEDCONCEALMENT) & 0x1)
00818
00820 #define XDM_SETFATALERROR(x) ((x) |= (0x1 << XDM_FATALERROR))
00821
00822 #define XDM_SETUNSUPPORTEDPARAM(x) ((x) |= (0x1 << XDM_UNSUPPORTEDPARAM))
00823
00824 #define XDM_SETUNSUPPORTEDINPUT(x) ((x) |= (0x1 << XDM_UNSUPPORTEDINPUT))
00825
00826 #define XDM_SETCORRUPTEDHEADER(x) ((x) |= (0x1 << XDM_CORRUPTEDHEADER))
00827
00828 #define XDM_SETCORRUPTEDDATA(x) ((x) |= (0x1 << XDM_CORRUPTEDDATA))
00829
00830 #define XDM_SETINSUFFICIENTDATA(x) ((x) |= (0x1 << XDM_INSUFFICIENTDATA))
00831
00832 #define XDM_SETAPPLIEDCONCEALMENT(x) ((x) |= (0x1 << XDM_APPLIEDCONCEALMENT))
00833
00834
00842 typedef enum {
00843 XDM_BYTE = 1,
00844 XDM_LE_16 = 2,
00845 XDM_LE_32 = 3,
00846 XDM_LE_64 = 4,
00847 XDM_BE_16 = 5,
00848 XDM_BE_32 = 6,
00849 XDM_BE_64 = 7
00850 } XDM_DataFormat;
00851
00852
00856 typedef struct XDM_Date {
00857 XDAS_Int32 msecsOfDay;
00858 XDAS_Int32 month;
00859 XDAS_Int32 dayOfMonth;
00860 XDAS_Int32 dayOfWeek;
00861 XDAS_Int32 year;
00862 } XDM_Date;
00863
00864
00868 typedef struct XDM_Point {
00869 XDAS_Int32 x;
00870 XDAS_Int32 y;
00871 } XDM_Point;
00872
00873
00877 typedef struct XDM_Rect {
00878 XDM_Point topLeft;
00879 XDM_Point bottomRight;
00880 } XDM_Rect;
00881
00885 #define XDM_MAX_CONTEXT_BUFFERS 32
00886
00887
00891 typedef struct XDM_ContextInfo {
00892 XDAS_Int32 minContextSize;
00895 XDAS_Int32 minIntermediateBufSizes[XDM_MAX_CONTEXT_BUFFERS];
00904 } XDM_ContextInfo;
00905
00906
00910 typedef struct XDM_Context {
00911 XDM1_SingleBufDesc algContext;
00918 XDAS_Int32 numInBufs;
00919 XDAS_Int32 numOutBufs;
00920 XDAS_Int32 numInOutBufs;
00921 XDM1_SingleBufDesc inBufs[XDM_MAX_CONTEXT_BUFFERS];
00926 XDM1_SingleBufDesc outBufs[XDM_MAX_CONTEXT_BUFFERS];
00931 XDM1_SingleBufDesc inOutBufs[XDM_MAX_CONTEXT_BUFFERS];
00937 XDM1_SingleBufDesc intermediateBufs[XDM_MAX_CONTEXT_BUFFERS];
00962 } XDM_Context;
00963
00964
00972 typedef enum {
00973 XDM_DEFAULT = 0,
00977 XDM_HIGH_QUALITY = 1,
00978 XDM_HIGH_SPEED = 2,
00979 XDM_USER_DEFINED = 3,
00982 XDM_HIGH_SPEED_MED_QUALITY = 4,
00985 XDM_MED_SPEED_MED_QUALITY = 5,
00988 XDM_MED_SPEED_HIGH_QUALITY = 6,
00992 XDM_ENCODING_PRESET_MAX = 7,
00993 XDM_PRESET_DEFAULT = XDM_MED_SPEED_MED_QUALITY
00998 } XDM_EncodingPreset;
00999
01000
01008 typedef enum {
01009 XDM_DECODE_AU = 0,
01012 XDM_PARSE_HEADER = 1
01013 } XDM_DecMode;
01014
01015
01023 typedef enum {
01024 XDM_ENCODE_AU = 0,
01027 XDM_GENERATE_HEADER = 1
01028 } XDM_EncMode;
01029
01030
01038 typedef enum {
01039 XDM_CHROMA_NA = -1,
01040 XDM_YUV_420P = 1,
01041 XDM_YUV_422P = 2,
01042 XDM_YUV_422IBE = 3,
01043 XDM_YUV_422ILE = 4,
01044 XDM_YUV_444P = 5,
01045 XDM_YUV_411P = 6,
01046 XDM_GRAY = 7,
01047 XDM_RGB = 8,
01048 XDM_YUV_420SP = 9,
01051 XDM_ARGB8888 = 10,
01052 XDM_RGB555 = 11,
01053 XDM_RGB565 = 12,
01054 XDM_YUV_444ILE = 13,
01056 XDM_CHROMAFORMAT_DEFAULT = XDM_YUV_422ILE
01057 } XDM_ChromaFormat;
01058
01059
01067 typedef enum {
01068 XDM_MEMTYPE_ROW = 0,
01082 XDM_MEMTYPE_RAW = 0,
01086 XDM_MEMTYPE_TILED8 = 1,
01087 XDM_MEMTYPE_TILED16 = 2,
01088 XDM_MEMTYPE_TILED32 = 3,
01089 XDM_MEMTYPE_TILEDPAGE = 4
01090 } XDM_MemoryType;
01091
01092
01098 typedef enum {
01099 XDM_MEMUSAGE_DATASYNC = 0
01118 } XDM_MemoryUsageMode;
01119
01120
01125 typedef struct XDM_DataSyncDesc {
01126 XDAS_Int32 size;
01127 XDAS_Int32 scatteredBlocksFlag;
01149 XDAS_Int32 *baseAddr;
01166 XDAS_Int32 numBlocks;
01167 XDAS_Int32 varBlockSizesFlag;
01173 XDAS_Int32 *blockSizes;
01187 } XDM_DataSyncDesc;
01188
01189
01198 typedef Void * XDM_DataSyncHandle;
01199
01200
01217 typedef Void (*XDM_DataSyncPutFxn)(XDM_DataSyncHandle dataSyncHandle,
01218 XDM_DataSyncDesc *dataSyncDesc);
01219
01242 typedef XDAS_Int32 (*XDM_DataSyncGetFxn)(XDM_DataSyncHandle dataSyncHandle,
01243 XDM_DataSyncDesc *dataSyncDesc);
01244
01278 typedef XDAS_Int32 (*XDM_DataSyncGetBufferFxn)(XDM_DataSyncHandle dataSyncHandle,
01279 XDM_DataSyncDesc *dataSyncDesc);
01280
01281
01297 typedef XDAS_Int32 (*XDM_DataSyncPutBufferFxn)(XDM_DataSyncHandle dataSyncHandle,
01298 XDM_DataSyncDesc *dataSyncDesc);
01299
01303 #ifdef __cplusplus
01304 }
01305 #endif
01306
01307 #endif
01308
01309
01310
01311
01312