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
00217 typedef struct XDM1_BufDesc {
00218 XDAS_Int32 numBufs;
00223 XDM1_SingleBufDesc descs[XDM_MAX_IO_BUFFERS];
00226 } XDM1_BufDesc;
00227
00228
00248 typedef enum {
00249 XDM_ACCESSMODE_READ = 0,
00255 XDM_ACCESSMODE_WRITE = 1
00261 } XDM_AccessMode;
00262
00263
00274 #define XDM_ISACCESSMODE_READ(x) (((x) >> XDM_ACCESSMODE_READ) & 0x1)
00275
00276
00287 #define XDM_ISACCESSMODE_WRITE(x) (((x) >> XDM_ACCESSMODE_WRITE) & 0x1)
00288
00289
00300 #define XDM_CLEARACCESSMODE_READ(x) ((x) &= (~(0x1 << XDM_ACCESSMODE_READ)))
00301
00302
00313 #define XDM_CLEARACCESSMODE_WRITE(x) ((x) &= (~(0x1 << XDM_ACCESSMODE_WRITE)))
00314
00315
00325 #define XDM_SETACCESSMODE_READ(x) ((x) |= (0x1 << XDM_ACCESSMODE_READ))
00326
00327
00337 #define XDM_SETACCESSMODE_WRITE(x) ((x) |= (0x1 << XDM_ACCESSMODE_WRITE))
00338
00339
00343 typedef struct XDM_AlgBufInfo {
00344 XDAS_Int32 minNumInBufs;
00345 XDAS_Int32 minNumOutBufs;
00346 XDAS_Int32 minInBufSize[XDM_MAX_IO_BUFFERS];
00349 XDAS_Int32 minOutBufSize[XDM_MAX_IO_BUFFERS];
00352 } XDM_AlgBufInfo;
00353
00354
00369 #define XDM_CUSTOMENUMBASE 0x100
00370
00371
00388 #define XDM_CUSTOMCMDBASE 0x100
00389
00409 typedef enum {
00410 XDM_GETSTATUS = 0,
00411 XDM_SETPARAMS = 1,
00412 XDM_RESET = 2,
00416 XDM_SETDEFAULT = 3,
00439 XDM_FLUSH = 4,
00455 XDM_GETBUFINFO = 5,
00469 XDM_GETVERSION = 6,
00477 XDM_GETCONTEXTINFO = 7
00483 } XDM_CmdId;
00484
00485
00504 typedef enum {
00505 XDM_PARAMSCHANGE = 8,
00517 XDM_APPLIEDCONCEALMENT = 9,
00530 XDM_INSUFFICIENTDATA = 10,
00547 XDM_CORRUPTEDDATA = 11,
00557 XDM_CORRUPTEDHEADER = 12,
00571 XDM_UNSUPPORTEDINPUT = 13,
00591 XDM_UNSUPPORTEDPARAM = 14,
00612 XDM_FATALERROR = 15
00634 } XDM_ErrorBit;
00635
00637 #define XDM_ISFATALERROR(x) (((x) >> XDM_FATALERROR) & 0x1)
00638
00639 #define XDM_ISUNSUPPORTEDPARAM(x) (((x) >> XDM_UNSUPPORTEDPARAM) & 0x1)
00640
00641 #define XDM_ISUNSUPPORTEDINPUT(x) (((x) >> XDM_UNSUPPORTEDINPUT) & 0x1)
00642
00643 #define XDM_ISCORRUPTEDHEADER(x) (((x) >> XDM_CORRUPTEDHEADER) & 0x1)
00644
00645 #define XDM_ISCORRUPTEDDATA(x) (((x) >> XDM_CORRUPTEDDATA) & 0x1)
00646
00647 #define XDM_ISINSUFFICIENTDATA(x) (((x) >> XDM_INSUFFICIENTDATA) & 0x1)
00648
00649 #define XDM_ISAPPLIEDCONCEALMENT(x) (((x) >> XDM_APPLIEDCONCEALMENT) & 0x1)
00650
00652 #define XDM_SETFATALERROR(x) ((x) |= (0x1 << XDM_FATALERROR))
00653
00654 #define XDM_SETUNSUPPORTEDPARAM(x) ((x) |= (0x1 << XDM_UNSUPPORTEDPARAM))
00655
00656 #define XDM_SETUNSUPPORTEDINPUT(x) ((x) |= (0x1 << XDM_UNSUPPORTEDINPUT))
00657
00658 #define XDM_SETCORRUPTEDHEADER(x) ((x) |= (0x1 << XDM_CORRUPTEDHEADER))
00659
00660 #define XDM_SETCORRUPTEDDATA(x) ((x) |= (0x1 << XDM_CORRUPTEDDATA))
00661
00662 #define XDM_SETINSUFFICIENTDATA(x) ((x) |= (0x1 << XDM_INSUFFICIENTDATA))
00663
00664 #define XDM_SETAPPLIEDCONCEALMENT(x) ((x) |= (0x1 << XDM_APPLIEDCONCEALMENT))
00665
00666
00674 typedef enum {
00675 XDM_BYTE = 1,
00676 XDM_LE_16 = 2,
00677 XDM_LE_32 = 3,
00678 XDM_LE_64 = 4,
00679 XDM_BE_16 = 5,
00680 XDM_BE_32 = 6,
00681 XDM_BE_64 = 7
00682 } XDM_DataFormat;
00683
00684
00688 typedef struct XDM_Date {
00689 XDAS_Int32 msecsOfDay;
00690 XDAS_Int32 month;
00691 XDAS_Int32 dayOfMonth;
00692 XDAS_Int32 dayOfWeek;
00693 XDAS_Int32 year;
00694 } XDM_Date;
00695
00696
00700 typedef struct XDM_Point {
00701 XDAS_Int32 x;
00702 XDAS_Int32 y;
00703 } XDM_Point;
00704
00705
00709 typedef struct XDM_Rect {
00710 XDM_Point topLeft;
00711 XDM_Point bottomRight;
00712 } XDM_Rect;
00713
00717 #define XDM_MAX_CONTEXT_BUFFERS 32
00718
00719
00723 typedef struct XDM_ContextInfo {
00724 XDAS_Int32 minContextSize;
00727 XDAS_Int32 minIntermediateBufSizes[XDM_MAX_CONTEXT_BUFFERS];
00736 } XDM_ContextInfo;
00737
00738
00742 typedef struct XDM_Context {
00743 XDM1_SingleBufDesc algContext;
00750 XDAS_Int32 numInBufs;
00751 XDAS_Int32 numOutBufs;
00752 XDAS_Int32 numInOutBufs;
00753 XDM1_SingleBufDesc inBufs[XDM_MAX_CONTEXT_BUFFERS];
00758 XDM1_SingleBufDesc outBufs[XDM_MAX_CONTEXT_BUFFERS];
00763 XDM1_SingleBufDesc inOutBufs[XDM_MAX_CONTEXT_BUFFERS];
00769 XDM1_SingleBufDesc intermediateBufs[XDM_MAX_CONTEXT_BUFFERS];
00794 } XDM_Context;
00795
00796
00804 typedef enum {
00805 XDM_DEFAULT = 0,
00809 XDM_HIGH_QUALITY = 1,
00810 XDM_HIGH_SPEED = 2,
00811 XDM_USER_DEFINED = 3
00814 } XDM_EncodingPreset;
00815
00816
00824 typedef enum {
00825 XDM_DECODE_AU = 0,
00828 XDM_PARSE_HEADER = 1
00829 } XDM_DecMode;
00830
00831
00839 typedef enum {
00840 XDM_ENCODE_AU = 0,
00843 XDM_GENERATE_HEADER = 1
00844 } XDM_EncMode;
00845
00846
00854 typedef enum {
00855 XDM_CHROMA_NA = -1,
00856 XDM_YUV_420P = 1,
00857 XDM_YUV_422P = 2,
00858 XDM_YUV_422IBE = 3,
00859 XDM_YUV_422ILE = 4,
00860 XDM_YUV_444P = 5,
00861 XDM_YUV_411P = 6,
00862 XDM_GRAY = 7,
00863 XDM_RGB = 8,
00864 XDM_YUV_420SP = 9,
00867 XDM_ARGB8888 = 10,
00868 XDM_RGB555 = 11,
00869 XDM_RGB565 = 12,
00870 XDM_YUV_444ILE = 13,
00872 XDM_CHROMAFORMAT_DEFAULT = XDM_YUV_422ILE
00873 } XDM_ChromaFormat;
00874
00875
00879 #ifdef __cplusplus
00880 }
00881 #endif
00882
00883 #endif
00884
00885
00886
00887