00001 /* 00002 * Copyright (c) 2012, 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 00050 #ifndef ti_xdais_dm_IVIDDEC_ 00051 #define ti_xdais_dm_IVIDDEC_ 00052 00053 #include <ti/xdais/ialg.h> 00054 #include <ti/xdais/xdas.h> 00055 00056 /* 00057 * By definition, this interface is 0.9 XDM. Before including xdm.h, 00058 * define XDM_INCLUDE_DOT9_SUPPORT 00059 */ 00060 #ifndef XDM_INCLUDE_DOT9_SUPPORT 00061 #define XDM_INCLUDE_DOT9_SUPPORT 00062 #endif 00063 #include "xdm.h" 00064 #include "ivideo.h" 00065 00066 #ifdef __cplusplus 00067 extern "C" { 00068 #endif 00069 00072 00073 #define IVIDDEC_CID "ti.xdais.dm.IVIDDEC" 00075 #define IVIDDEC_ERUNTIME XDM_ERUNTIME 00076 #define IVIDDEC_EOK XDM_EOK 00077 #define IVIDDEC_EFAIL XDM_EFAIL 00083 typedef struct IVIDDEC_Obj { 00084 struct IVIDDEC_Fxns *fxns; 00085 } IVIDDEC_Obj; 00086 00087 00091 typedef struct IVIDDEC_Obj *IVIDDEC_Handle; 00092 00093 00103 typedef struct IVIDDEC_Params { 00104 XDAS_Int32 size; 00105 XDAS_Int32 maxHeight; 00106 XDAS_Int32 maxWidth; 00107 XDAS_Int32 maxFrameRate; 00108 XDAS_Int32 maxBitRate; 00112 XDAS_Int32 dataEndianness; 00116 XDAS_Int32 forceChromaFormat; 00120 } IVIDDEC_Params; 00121 00122 00137 typedef struct IVIDDEC_DynamicParams { 00138 XDAS_Int32 size; 00139 XDAS_Int32 decodeHeader; 00143 XDAS_Int32 displayWidth; 00147 XDAS_Int32 frameSkipMode; 00151 } IVIDDEC_DynamicParams; 00152 00153 00162 typedef struct IVIDDEC_InArgs { 00163 XDAS_Int32 size; 00164 XDAS_Int32 numBytes; 00167 XDAS_Int32 inputID; 00186 } IVIDDEC_InArgs; 00187 00188 00196 typedef struct IVIDDEC_Status { 00197 XDAS_Int32 size; 00198 XDAS_Int32 extendedError; 00199 XDAS_Int32 outputHeight; 00200 XDAS_Int32 outputWidth; 00201 XDAS_Int32 frameRate; 00202 XDAS_Int32 bitRate; 00203 XDAS_Int32 contentType; 00207 XDAS_Int32 outputChromaFormat; 00211 XDM_AlgBufInfo bufInfo; 00215 } IVIDDEC_Status; 00216 00217 00226 typedef struct IVIDDEC_OutArgs { 00227 XDAS_Int32 size; 00228 XDAS_Int32 extendedError; 00229 XDAS_Int32 bytesConsumed; 00230 XDAS_Int32 decodedFrameType; 00232 XDAS_Int32 outputID; 00235 IVIDEO_BufDesc displayBufs; 00243 } IVIDDEC_OutArgs; 00244 00245 00256 typedef IALG_Cmd IVIDDEC_Cmd; 00257 00258 00262 typedef struct IVIDDEC_Fxns { 00263 IALG_Fxns ialg; 00305 XDAS_Int32 (*process)(IVIDDEC_Handle handle, XDM_BufDesc *inBufs, 00306 XDM_BufDesc *outBufs, IVIDDEC_InArgs *inArgs, 00307 IVIDDEC_OutArgs *outArgs); 00308 00334 XDAS_Int32 (*control)(IVIDDEC_Handle handle, IVIDDEC_Cmd id, 00335 IVIDDEC_DynamicParams *params, IVIDDEC_Status *status); 00336 00337 } IVIDDEC_Fxns; 00338 00339 00342 #ifdef __cplusplus 00343 } 00344 #endif 00345 00346 #endif 00347 /* 00348 * @(#) ti.xdais.dm; 1, 0, 7,1; 6-19-2012 17:57:46; /db/wtree/library/trees/dais/dais-w06/src/ xlibrary 00349 00350 */ 00351