ires_hdvicp2.h

Go to the documentation of this file.
00001 /*
00002  *  Copyright 2013 by Texas Instruments Incorporated.
00003  *
00004  */
00005 
00006 /*
00007  * Copyright (c) 2012 - 2013, Texas Instruments Incorporated
00008  * All rights reserved.
00009  *
00010  * Redistribution and use in source and binary forms, with or without
00011  * modification, are permitted provided that the following conditions
00012  * are met:
00013  *
00014  * *  Redistributions of source code must retain the above copyright
00015  *    notice, this list of conditions and the following disclaimer.
00016  *
00017  * *  Redistributions in binary form must reproduce the above copyright
00018  *    notice, this list of conditions and the following disclaimer in the
00019  *    documentation and/or other materials provided with the distribution.
00020  *
00021  * *  Neither the name of Texas Instruments Incorporated nor the names of
00022  *    its contributors may be used to endorse or promote products derived
00023  *    from this software without specific prior written permission.
00024  *
00025  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00026  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00027  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00028  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00029  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00030  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00031  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00032  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00033  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00034  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00035  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00036  *
00037  */
00053 #ifndef ti_sdo_fc_ires_hdvicp_IRES_HDVICP2_
00054 #define ti_sdo_fc_ires_hdvicp_IRES_HDVICP2_
00055 
00058 
00059 
00060 #ifdef __cplusplus
00061 extern "C" {
00062 #endif
00063 
00064 #include <ti/xdais/xdas.h>
00065 #include <ti/xdais/ires_common.h>
00066 #include <ti/xdais/ires.h>
00067 
00071 #define IRES_HDVICP2_PROTOCOLNAME       "ti.sdo.fc.ires.hdvicp.hdvicp2"
00072 
00084 #define HDVICP2_MODNAME  "ti.sdo.fc.ires.hdvicp2"
00085 
00086 
00092 #define IRES_HDVICP2_ID_ANY             -2
00093 
00100 #define IRES_HDVICP2_ID_LATE_ACQUIRE    -1
00101 
00108 #define IRES_HDVICP2_INVALID_ADDR 0xFFFFFFFF
00109 
00116 #define IRES_HDVICP2_TIMEOUTFOREVER ((UInt)(-1))
00117 
00128 #define IRES_HDVICP2_UNKNOWNLATEACQUIREARG (-1)
00129 
00130 /*
00131  * Note, we wrap the PROTOCOLVERSION in an ifdef so the
00132  * resource managers and algs get this version data placed in their object
00133  * files.  Apps, which include rman.h, will have this 'NOPROTOCOLREV' defined.
00134  */
00135 #ifndef ti_sdo_fc_ires_NOPROTOCOLREV
00136 
00140 static IRES_ProtocolRevision IRES_HDVICP2_PROTOCOLREVISION = {1, 0, 0};
00141 
00142 #endif
00143 
00147 typedef struct IRES_HDVICP2_Obj *IRES_HDVICP2_Handle;
00148 
00149 
00154 extern unsigned int ti_sdo_fc_ires_hdvicp_HDVICP2_timeoutVal;
00155 
00159 typedef IRES_YieldArgs (* ti_sdo_fc_ires_hdvicp_HDVICP2_GetYieldArgsFxn)
00160         (Int scratchId);
00161 
00165 typedef Void (* ti_sdo_fc_ires_hdvicp_HDVICP2_YieldFxn)
00166         (IRES_YieldResourceType resource, IRES_YieldContextHandle ctxt,
00167         IRES_YieldArgs args);
00168 
00169 
00170 
00174 typedef struct IRES_HDVICP2_ProtocolArgs {
00175 
00176     IRES_ProtocolArgs base;     
00177     XDAS_Int32 id;              
00183 } IRES_HDVICP2_ProtocolArgs;
00184 
00189 typedef void (*IRES_HDVICP2_CallbackFxn)(IALG_Handle handle, Void * args);
00190 
00199 typedef enum IRES_HDVICP2_Status {
00200     SAMECODEC = 0,          
00201     SAMECODECTYPE = 1,      
00203     DIFFERENTCODEC = 2      
00204 } IRES_HDVICP2_Status;
00205 
00206 
00212 typedef struct  IRES_HDVICP2_Obj {
00213 
00214     IRES_Obj ires;                     
00215     Void *info;                        
00216     XDAS_Int32 id;                     
00221     XDAS_Void *registerBaseAddress;    
00224     XDAS_Void *memoryBaseAddress;      
00227     XDAS_Void *resetControlAddress;    
00261     XDAS_Void (*acquire)(IALG_Handle algHandle,
00262             struct IRES_HDVICP2_Obj * hdvicpHandle,
00263             IRES_YieldContext * yieldCtxt, XDAS_UInt32 * hdvicp2Status,
00264             XDAS_UInt32 *configurationId, XDAS_Int32 lateAcquireArg);
00265 
00271     XDAS_Void (*release)(IALG_Handle algHandle,
00272             struct IRES_HDVICP2_Obj * hdvicpHandle);
00273 
00283     XDAS_UInt32 (*reacquireIfOwner)(IALG_Handle algHandle,
00284             struct IRES_HDVICP2_Obj * hdvicpHandle);
00285 
00295     XDAS_Void (*configure)(IALG_Handle algHandle,
00296             struct IRES_HDVICP2_Obj * hdvicpHandle,
00297             IRES_HDVICP2_CallbackFxn cbFunctionPtr, XDAS_Void * cbArgs);
00298 
00312     XDAS_UInt32 (*wait)(IALG_Handle algHandle,
00313             struct IRES_HDVICP2_Obj *hdvicpHandle,
00314             IRES_YieldContext * yieldCtxt);
00315 
00325     XDAS_Void (*done) (IALG_Handle algHandle,
00326             struct IRES_HDVICP2_Obj *hdvicpHandle);
00339     XDAS_UInt32 (*reset)(IALG_Handle algHandle,
00340             struct IRES_HDVICP2_Obj *hdvicpHandle);
00341 
00342 } IRES_HDVICP2_Obj;
00343 
00344 
00348 typedef struct IRES_HDVICP2_RegisterLayer {
00349 
00350     int size;
00351     /* TBD */
00352 } IRES_HDVICP2_RegisterLayer;
00353 
00357 typedef struct IRES_HDVICP2_Properties {
00358 
00359     int size;
00360     IRES_HDVICP2_RegisterLayer *globalRegs;      /* Register layer of HDVICP2 */
00361 } IRES_HDVICP2_Properties;
00362 
00363 typedef IRES_Status (*ti_sdo_fc_ires_hdvicp_HDVICP2_GetHdvicp2Fxn)
00364         (XDAS_Int32 *Id, IALG_Handle alg, IRES_HDVICP2_Handle handle);
00365 
00366 typedef IRES_Status (*ti_sdo_fc_ires_hdvicp_HDVICP2_FreeHdvicp2Fxn)
00367        (XDAS_Int32 Id, IALG_Handle alg, IRES_HDVICP2_Handle handle);
00368 
00369 #ifdef __cplusplus
00370 }
00371 #endif /* extern "C" */
00372 
00375 #endif
00376 /*
00377  *  @(#) ti.sdo.fc.ires.hdvicp; 1, 0, 1,1; 6-12-2013 19:57:33; /db/atree/library/trees/fc/fc-t09/src/ xlibrary
00378 
00379  */
00380 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Copyright 2013, Texas Instruments Incorporated