xdm.h

Go to the documentation of this file.
00001 /* 
00002  * Copyright (c) 2009, 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 
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  /* ti_xdais_dm_XDM_ */
00884 /*
00885  *  @(#) ti.xdais.dm; 1, 0, 5,209; 5-27-2009 16:26:08; /db/wtree/library/trees/dais/dais-p04x/src/
00886  */
00887 

Copyright 2009, Texas Instruments Incorporated