www.pudn.com > Lab534-VideoMotionDetect.rar > diff_ti_ialg.c


/* 
 *  Copyright 2002 by Texas Instruments Incorporated. 
 *  All rights reserved. Property of Texas Instruments Incorporated. 
 *  Restricted rights to use, duplicate or disclose this code are 
 *  granted through contract. 
 *   
 */ 
/* 
 *  ======== diff_ti_ialg.c ======== 
 *  Implementation of the DIFF_TI.h interface; TI's implementation  
 *  of the IDIFF interface.  
 */ 
#pragma CODE_SECTION(DIFF_TI_alloc, ".text:algAlloc") 
#pragma CODE_SECTION(DIFF_TI_free, ".text:algFree") 
#pragma CODE_SECTION(DIFF_TI_initObj, ".text:algInit") 
#pragma CODE_SECTION(DIFF_TI_numAlloc, ".text:algNumAlloc") 
  
#include  
 
#include "idiff.h" 
#include "diff_ti.h" 
#include "diff_ti_priv.h" 
 
#define OBJECT  0 
#define NUMBUFS 1 
 
 
/* 
 *  ======== DIFF_TI_alloc ======== 
 *  Return a table of memory descriptors that describe the memory needed  
 *  to construct a DIFF_TI_Obj structure. 
 */ 
Int DIFF_TI_alloc(const IALG_Params *diffParams, IALG_Fxns **fxns,  
                    IALG_MemRec memTab[]) 
{ 
    const IDIFF_Params *params = (Void *)diffParams; 
     
    if (params == NULL)  
    { 
        params = &IDIFF_PARAMS;       /* set default parameters */ 
    } 
 
    /* Request memory for DIFF object */ 
    memTab[OBJECT].size       = sizeof(DIFF_TI_Obj); 
    memTab[OBJECT].alignment  = 4; 
    memTab[OBJECT].space      = IALG_EXTERNAL; 
    memTab[OBJECT].attrs      = IALG_PERSIST; 
            
    return (NUMBUFS); 
} 
 
/* 
 *  ======== DIFF_TI_free ======== 
 *  Return a table of memory pointers that should be freed.  Note 
 *  that this should include *all* memory requested in the  
 *  DIFF_TI_alloc operation above. 
 */ 
Int DIFF_TI_free(IALG_Handle handle, IALG_MemRec memTab[]) 
{ 
    DIFF_TI_Obj *diff = (Void *)handle; 
     
    DIFF_TI_alloc(NULL, NULL, memTab); 
       
    memTab[OBJECT].base = diff; 
      
    return (NUMBUFS); 
} 
 
/*  ======== DIFF_TI_initObj ======== 
 *  Initialize the memory allocated for our instance. 
 */ 
Int DIFF_TI_initObj(IALG_Handle handle, const IALG_MemRec memTab[],  
                      IALG_Handle p, const IALG_Params *diffParams) 
{ 
//    DIFF_TI_Obj *diff = (Void *)handle; 
    const IDIFF_Params *params = (Void *)diffParams; 
 
    if (params == NULL)  
    { 
        params = &IDIFF_PARAMS;  /* set default parameters */ 
    } 
	 
    return (IALG_EOK); 
} 
 
/*  ======== DIFF_TI_numAlloc ======== 
 *  Returns the number of records needed for the MEM tab by the client. 
 */ 
Int DIFF_TI_numAlloc() 
{ 
    return(NUMBUFS); 
}