xdm.h

Go to the documentation of this file.
00001 /* 
00002  * Copyright (c) 2011, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
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  /* ti_xdais_dm_XDM_ */
01308 /*
01309  *  @(#) ti.xdais.dm; 1, 0, 7,7; 6-14-2011 10:34:32; /db/wtree/library/trees/dais/dais.git/src/ dais-u02
01310  */
01311 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Copyright 2011, Texas Instruments Incorporated