ividdec3.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 
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 
00092 typedef enum {
00093     IVIDDEC3_DISPLAY_DELAY_AUTO = -1,  
00094     IVIDDEC3_DECODE_ORDER = 0,        
00095     IVIDDEC3_DISPLAY_DELAY_1 = 1,     
00096     IVIDDEC3_DISPLAY_DELAY_2 = 2,     
00097     IVIDDEC3_DISPLAY_DELAY_3 = 3,     
00098     IVIDDEC3_DISPLAY_DELAY_4 = 4,     
00099     IVIDDEC3_DISPLAY_DELAY_5 = 5,     
00100     IVIDDEC3_DISPLAY_DELAY_6 = 6,     
00101     IVIDDEC3_DISPLAY_DELAY_7 = 7,     
00102     IVIDDEC3_DISPLAY_DELAY_8 = 8,     
00103     IVIDDEC3_DISPLAY_DELAY_9 = 9,     
00104     IVIDDEC3_DISPLAY_DELAY_10 = 10,   
00105     IVIDDEC3_DISPLAY_DELAY_11 = 11,   
00106     IVIDDEC3_DISPLAY_DELAY_12 = 12,   
00107     IVIDDEC3_DISPLAY_DELAY_13 = 13,   
00108     IVIDDEC3_DISPLAY_DELAY_14 = 14,   
00109     IVIDDEC3_DISPLAY_DELAY_15 = 15,   
00110     IVIDDEC3_DISPLAY_DELAY_16 = 16,   
00111     IVIDDEC3_DISPLAYDELAY_DEFAULT = IVIDDEC3_DISPLAY_DELAY_AUTO
00112 } IVIDDEC3_displayDelay;
00113 
00120 typedef struct IVIDDEC3_Params {
00121     XDAS_Int32 size;            
00122     XDAS_Int32 maxHeight;       
00123     XDAS_Int32 maxWidth;        
00124     XDAS_Int32 maxFrameRate;    
00129     XDAS_Int32 maxBitRate;      
00133     XDAS_Int32 dataEndianness;  
00137     XDAS_Int32 forceChromaFormat;
00141     XDAS_Int32 operatingMode;   
00145     XDAS_Int32 displayDelay;    
00149     XDAS_Int32 inputDataMode;   
00169     XDAS_Int32 outputDataMode;  
00185     XDAS_Int32 numInputDataUnits;
00194     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;    
00269     XDM_DataSyncHandle putDataHandle; 
00270     XDM_DataSyncGetFxn getDataFxn;    
00271     XDM_DataSyncHandle getDataHandle; 
00272     XDM_DataSyncPutBufferFxn putBufferFxn; 
00273     XDM_DataSyncHandle putBufferHandle; 
00274     XDAS_Int32 lateAcquireArg;  
00303 } IVIDDEC3_DynamicParams;
00304 
00305 
00314 typedef struct IVIDDEC3_InArgs {
00315     XDAS_Int32 size;            
00316     XDAS_Int32 numBytes;        
00319     XDAS_Int32 inputID;         
00338 } IVIDDEC3_InArgs;
00339 
00340 
00348 typedef struct IVIDDEC3_Status {
00349     XDAS_Int32 size;            
00350     XDAS_Int32 extendedError;   
00351     XDM1_SingleBufDesc data;    
00372     XDAS_Int32 maxNumDisplayBufs;
00378     XDAS_Int32 maxOutArgsDisplayBufs;
00389     XDAS_Int32 outputHeight;    
00390     XDAS_Int32 outputWidth;     
00391     XDAS_Int32 frameRate;       
00396     XDAS_Int32 bitRate;         
00397     XDAS_Int32 contentType;     
00401     XDAS_Int32 sampleAspectRatioHeight;
00402     XDAS_Int32 sampleAspectRatioWidth;
00403     XDAS_Int32 bitRange;        
00404     XDAS_Int32 forceChromaFormat;
00420     XDAS_Int32 operatingMode;   
00421     XDAS_Int32 frameOrder;      
00422     XDAS_Int32 inputDataMode;   
00428     XDAS_Int32 outputDataMode;  
00434     XDM1_AlgBufInfo bufInfo;    
00445     XDAS_Int32 numInputDataUnits;
00454     XDAS_Int32 numOutputDataUnits;
00463     XDAS_Int32 configurationID; 
00478     XDAS_Int32 metadataType[IVIDEO_MAX_NUM_METADATA_PLANES];
00483     IVIDDEC3_DynamicParams decDynamicParams;
00490 } IVIDDEC3_Status;
00491 
00492 
00504 typedef enum {
00505     IVIDDEC3_DISPLAYBUFS_EMBEDDED = 1, 
00516     IVIDDEC3_DISPLAYBUFS_PTRS = 2      
00537 } IVIDDEC3_DisplayBufsMode;
00538 
00539 
00561 typedef struct IVIDDEC3_OutArgs {
00562     XDAS_Int32 size;            
00573     XDAS_Int32 extendedError;   
00574     XDAS_Int32 bytesConsumed;   
00577     XDAS_Int32 outputID[IVIDEO2_MAX_IO_BUFFERS]; 
00592     IVIDEO2_BufDesc decodedBufs; 
00607     XDAS_Int32 freeBufID[IVIDEO2_MAX_IO_BUFFERS]; 
00644     XDAS_Int32 outBufsInUseFlag; 
00653     XDAS_Int32 displayBufsMode; 
00670     union {
00671         IVIDEO2_BufDesc bufDesc[1];
00714         IVIDEO2_BufDesc *pBufDesc[IVIDEO2_MAX_IO_BUFFERS]; 
00724     } displayBufs;              
00750 } IVIDDEC3_OutArgs;
00751 
00752 
00763 typedef  IALG_Cmd IVIDDEC3_Cmd;
00764 
00765 
00769 typedef struct IVIDDEC3_Fxns {
00770     IALG_Fxns ialg;               
00867     XDAS_Int32 (*process)(IVIDDEC3_Handle handle, XDM2_BufDesc *inBufs,
00868         XDM2_BufDesc *outBufs, IVIDDEC3_InArgs *inArgs,
00869         IVIDDEC3_OutArgs *outArgs);
00870 
00871 
00907     XDAS_Int32 (*control)(IVIDDEC3_Handle handle, IVIDDEC3_Cmd id,
00908         IVIDDEC3_DynamicParams *params, IVIDDEC3_Status *status);
00909 
00910 } IVIDDEC3_Fxns;
00911 
00912 
00915 #ifdef __cplusplus
00916 }
00917 #endif
00918 
00919 #endif
00920 /*
00921  *  @(#) ti.xdais.dm; 1, 0, 7,211; 12-18-2009 09:46:20; /db/wtree/library/trees/dais/dais-l27x/src/
00922  */
00923 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Copyright 2009, Texas Instruments Incorporated