ividdec3.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 
00047 #ifndef ti_xdais_dm_IVIDDEC3_
00048 #define ti_xdais_dm_IVIDDEC3_
00049 
00050 #include <ti/xdais/ialg.h>
00051 #include <ti/xdais/xdas.h>
00052 #include "xdm.h"
00053 #include "ivideo.h"
00054 
00055 #ifdef __cplusplus
00056 extern "C" {
00057 #endif
00058 
00059 
00062 
00063 #define IVIDDEC3_EOK       XDM_EOK             
00064 #define IVIDDEC3_EFAIL     XDM_EFAIL           
00065 #define IVIDDEC3_EUNSUPPORTED XDM_EUNSUPPORTED 
00071 typedef struct IVIDDEC3_Obj {
00072     struct IVIDDEC3_Fxns *fxns;
00073 } IVIDDEC3_Obj;
00074 
00075 
00079 typedef struct IVIDDEC3_Obj  *IVIDDEC3_Handle;
00080 
00081 
00090 typedef enum {
00091     IVIDDEC3_DISPLAY_DELAY_AUTO = -1,  
00092     IVIDDEC3_DECODE_ORDER = 0,        
00093     IVIDDEC3_DISPLAY_DELAY_1 = 1,     
00094     IVIDDEC3_DISPLAY_DELAY_2 = 2,     
00095     IVIDDEC3_DISPLAY_DELAY_3 = 3,     
00096     IVIDDEC3_DISPLAY_DELAY_4 = 4,     
00097     IVIDDEC3_DISPLAY_DELAY_5 = 5,     
00098     IVIDDEC3_DISPLAY_DELAY_6 = 6,     
00099     IVIDDEC3_DISPLAY_DELAY_7 = 7,     
00100     IVIDDEC3_DISPLAY_DELAY_8 = 8,     
00101     IVIDDEC3_DISPLAY_DELAY_9 = 9,     
00102     IVIDDEC3_DISPLAY_DELAY_10 = 10,   
00103     IVIDDEC3_DISPLAY_DELAY_11 = 11,   
00104     IVIDDEC3_DISPLAY_DELAY_12 = 12,   
00105     IVIDDEC3_DISPLAY_DELAY_13 = 13,   
00106     IVIDDEC3_DISPLAY_DELAY_14 = 14,   
00107     IVIDDEC3_DISPLAY_DELAY_15 = 15,   
00108     IVIDDEC3_DISPLAY_DELAY_16 = 16,   
00109     IVIDDEC3_DISPLAYDELAY_DEFAULT = IVIDDEC3_DISPLAY_DELAY_AUTO
00110 } IVIDDEC3_displayDelay;
00111 
00118 typedef struct IVIDDEC3_Params {
00119     XDAS_Int32 size;            
00120     XDAS_Int32 maxHeight;       
00121     XDAS_Int32 maxWidth;        
00122     XDAS_Int32 maxFrameRate;    
00127     XDAS_Int32 maxBitRate;      
00131     XDAS_Int32 dataEndianness;  
00135     XDAS_Int32 forceChromaFormat;
00139     XDAS_Int32 operatingMode;   
00143     XDAS_Int32 displayDelay;    
00147     XDAS_Int32 inputDataMode;   
00166     XDAS_Int32 outputDataMode;  
00181     XDAS_Int32 numInputDataUnits;
00192     XDAS_Int32 numOutputDataUnits;
00203     XDAS_Int32 errorInfoMode;   
00208     XDAS_Int32 displayBufsMode; 
00219     XDAS_Int32 metadataType[IVIDEO_MAX_NUM_METADATA_PLANES];
00224  } IVIDDEC3_Params;
00225 
00226 
00241 typedef struct IVIDDEC3_DynamicParams {
00242     XDAS_Int32 size;            
00243     XDAS_Int32 decodeHeader;    
00247     XDAS_Int32 displayWidth;    
00252     XDAS_Int32 frameSkipMode;   
00256     XDAS_Int32 newFrameFlag;    
00268     XDM_DataSyncPutFxn putDataFxn; 
00282     XDM_DataSyncHandle putDataHandle;
00304     XDM_DataSyncGetFxn getDataFxn;
00317     XDM_DataSyncHandle getDataHandle;
00338     XDM_DataSyncPutBufferFxn putBufferFxn;
00352     XDM_DataSyncHandle putBufferHandle;
00374     XDAS_Int32 lateAcquireArg;  
00403 } IVIDDEC3_DynamicParams;
00404 
00405 
00414 typedef struct IVIDDEC3_InArgs {
00415     XDAS_Int32 size;            
00416     XDAS_Int32 numBytes;        
00419     XDAS_Int32 inputID;         
00438 } IVIDDEC3_InArgs;
00439 
00440 
00448 typedef struct IVIDDEC3_Status {
00449     XDAS_Int32 size;            
00450     XDAS_Int32 extendedError;   
00451     XDM1_SingleBufDesc data;    
00472     XDAS_Int32 maxNumDisplayBufs;
00478     XDAS_Int32 maxOutArgsDisplayBufs;
00489     XDAS_Int32 outputHeight;    
00490     XDAS_Int32 outputWidth;     
00491     XDAS_Int32 frameRate;       
00496     XDAS_Int32 bitRate;         
00497     XDAS_Int32 contentType;     
00501     XDAS_Int32 sampleAspectRatioHeight;
00502     XDAS_Int32 sampleAspectRatioWidth;
00503     XDAS_Int32 bitRange;        
00504     XDAS_Int32 forceChromaFormat;
00508     XDAS_Int32 operatingMode;   
00512     XDAS_Int32 frameOrder;      
00518     XDAS_Int32 inputDataMode;   
00523     XDAS_Int32 outputDataMode;  
00528     XDM1_AlgBufInfo bufInfo;    
00539     XDAS_Int32 numInputDataUnits;
00552     XDAS_Int32 numOutputDataUnits;
00564     XDAS_Int32 configurationID; 
00576     XDAS_Int32 metadataType[IVIDEO_MAX_NUM_METADATA_PLANES];
00581     IVIDDEC3_DynamicParams decDynamicParams;
00588 } IVIDDEC3_Status;
00589 
00590 
00600 typedef enum {
00601     IVIDDEC3_DISPLAYBUFS_EMBEDDED = 1, 
00612     IVIDDEC3_DISPLAYBUFS_PTRS = 2      
00633 } IVIDDEC3_DisplayBufsMode;
00634 
00635 
00657 typedef struct IVIDDEC3_OutArgs {
00658     XDAS_Int32 size;            
00669     XDAS_Int32 extendedError;   
00670     XDAS_Int32 bytesConsumed;   
00671     XDAS_Int32 outputID[IVIDEO2_MAX_IO_BUFFERS]; 
00686     IVIDEO2_BufDesc decodedBufs; 
00702     XDAS_Int32 freeBufID[IVIDEO2_MAX_IO_BUFFERS]; 
00739     XDAS_Int32 outBufsInUseFlag; 
00748     XDAS_Int32 displayBufsMode; 
00765     union {
00766         IVIDEO2_BufDesc bufDesc[1];
00807         IVIDEO2_BufDesc *pBufDesc[IVIDEO2_MAX_IO_BUFFERS]; 
00817     } displayBufs;              
00843 } IVIDDEC3_OutArgs;
00844 
00845 
00856 typedef  IALG_Cmd IVIDDEC3_Cmd;
00857 
00858 
00862 typedef struct IVIDDEC3_Fxns {
00863     IALG_Fxns ialg;               
00960     XDAS_Int32 (*process)(IVIDDEC3_Handle handle, XDM2_BufDesc *inBufs,
00961         XDM2_BufDesc *outBufs, IVIDDEC3_InArgs *inArgs,
00962         IVIDDEC3_OutArgs *outArgs);
00963 
00964 
01000     XDAS_Int32 (*control)(IVIDDEC3_Handle handle, IVIDDEC3_Cmd id,
01001         IVIDDEC3_DynamicParams *params, IVIDDEC3_Status *status);
01002 
01003 } IVIDDEC3_Fxns;
01004 
01005 
01008 #ifdef __cplusplus
01009 }
01010 #endif
01011 
01012 #endif
01013 /*
01014  *  @(#) ti.xdais.dm; 1, 0, 7,7; 6-14-2011 10:34:32; /db/wtree/library/trees/dais/dais.git/src/ dais-u02
01015  */
01016 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Copyright 2011, Texas Instruments Incorporated