www.pudn.com > h263_loopback.rar > algrf.h
/* * Copyright 2003 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. * */ /* "@(#) ReferenceFrameworks 2.20.00.08 07-18-03 (swat-f02)" */ /* * ======== algrf.h ======== */ #ifndef ALGRF_ #define ALGRF_ #include#include #ifdef __cplusplus extern "C" { #endif /* Maximum number of memTab descriptors returned by an algorithm */ #define ALGRF_MAXMEMRECS 16 typedef IALG_Handle ALGRF_Handle; typedef struct ALGRF_Config { Int INTHEAP; Int EXTHEAP; } ALGRF_Config; extern ALGRF_Config* ALGRF; /* declared in algrf_setup.c */ /* * ======== ALGRF_memSpace ======== */ static inline Int ALGRF_memSpace(IALG_MemSpace space) { switch (space) { case IALG_DARAM0: case IALG_DARAM1: case IALG_SARAM: /* IALG_SARAM0 same as IALG_SARAM */ case IALG_SARAM1: case IALG_DARAM2: case IALG_SARAM2: { return (ALGRF->INTHEAP); } case IALG_ESDATA: case IALG_EXTERNAL: { return (ALGRF->EXTHEAP); } default: { return (ALGRF->EXTHEAP); } } } /* Initialize scratch memory buffers before processing */ extern Void ALGRF_activate(ALGRF_Handle alg); /* Algorithm specific control and status */ extern Int ALGRF_control(ALGRF_Handle alg, IALG_Cmd cmd, IALG_Status *statusPtr); /* * Algorithm instance creation API for applications not supporting * shared scratch memory buffers */ extern ALGRF_Handle ALGRF_create(IALG_Fxns *fxns, IALG_Handle parent, IALG_Params *params); /* * Algorithm instance creation API for applications supporting shared * scratch memory buffers */ extern ALGRF_Handle ALGRF_createScratchSupport(IALG_Fxns *fxns, IALG_Handle parent, IALG_Params *params, Void *scratchBuf, Uns scratchSize); /* Save all persistent data to non-scratch memory */ extern Void ALGRF_deactivate(ALGRF_Handle alg); /* * Algorithm instance deletion API for applications not supporting * shared scratch memory buffers */ extern Bool ALGRF_delete(ALGRF_Handle alg); /* * Algorithm instance deletion API for applications supporting * shared scratch memory buffers */ extern Bool ALGRF_deleteScratchSupport(ALGRF_Handle alg); /* Free all memory allocated to an algorithm */ extern Void ALGRF_memFree(IALG_MemRec memTab[], Int numRecs); /* Free all memory allocated to an algorithm, except internal scratch */ extern Void ALGRF_memFreeScratchSupport(IALG_MemRec memTab[], Int numRecs); /* Configure the system to use the selected heaps */ extern Void ALGRF_setup(Int internalHeap, Int externalHeap); /* ALGRF Module Initialization */ extern Void ALGRF_init(Void); /* ALGRF Module Finalization */ extern Void ALGRF_exit(Void); #ifdef __cplusplus } #endif /* extern "C" */ #endif /* ALGRF_ */