www.pudn.com > JPEGMotion.rar > celljpegenc_ti.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. 
 * 
 */ 
/* "@(#) RF5_IEK 1.20.07 09-26-02 (swat-c12)" */ 
/* 
 *  ======== celljpegenc.c ======== 
 */ 
 
#include  
 
#include  
#include  
 
#include  
#include  
#include  
 
#include "celljpegenc_ti.h" 
#include "ijpegenc.h" 
 
#include  
 
#include "appThreads.h" 
#include "appBiosObjects.h" 
 
extern far IDMA2_Fxns JPEGENC_IDMA2;        /* the algorithm's IDMA2 v-table */ 
 
// v-table for this cell 
ICELL_Fxns JPEGENC_CELLFXNS = { 
    JPEGENC_cellClose,     // cellClose 
    JPEGENC_cellControl,   // cellControl 
    JPEGENC_cellExecute,   // cellExecute 
    JPEGENC_cellOpen       // cellOpen 
}; 
 
/* 
 *  ======== JPEGENC_cellClose ======== 
 * 
 */ 
Bool JPEGENC_cellClose( ICELL_Handle handle ) 
{ 
    // Withdraw DMA resources from algorithm 
    return (DMAN_removeAlg((IALG_Handle)handle->algHandle, &JPEGENC_IDMA2)); 
 
} 
 
/* 
 *  ======== JPEGENC_cellExecute ======== 
 * 
 */ 
Bool JPEGENC_cellExecute( ICELL_Handle handle, Arg arg ) 
{ 
    int ret_val ; 
    unsigned int **Output = handle->outputIcc[0]->buffer; 
 
    UTL_stsStart( stsExeTimeChJpegEnc ); 
 
    // activate instance object 
    ALGRF_activate( handle->algHandle ); 
 
    // call JPEG encode through ALG layer. 
    ret_val = ((IJPEGENC_Fxns *)(handle->algFxns))->encode 
                      ( 
                         (IJPEGENC_Handle)handle->algHandle, 
                         (XDAS_Int8 **)handle->inputIcc[0]->buffer, 
                         (XDAS_Int8 *)(Output[1]) 
                      ); 
 
    *(Output[0]) = ret_val; 
 
    // deactivate instance object 
    ALGRF_deactivate( handle->algHandle ); 
 
    UTL_stsStop( stsExeTimeChJpegEnc); 
 
    return (TRUE); 
} 
 
/* 
 *  ======== JPEGDEC_cellOpen ======== 
 * 
 */ 
Bool JPEGENC_cellOpen( ICELL_Handle handle ) 
{ 
    // Grant DMA resources 
    #if 1 
    return (DMAN_addAlg((IALG_Handle)handle->algHandle, &JPEGENC_IDMA2)); 
    #endif 
} 
 
 
/* 
 *  ======== JPEGDEC_cellControl ======== 
 * 
 */ 
Int JPEGENC_cellControl(ICELL_Handle handle, IALG_Cmd cmd, IALG_Status *status) 
{ 
 
   Bool value; 
 
   value = JPEGENC_TI_control 
           ( 
               (IJPEGENC_Handle) handle->algHandle, 
               (IJPEG_Cmd)       cmd, 
               (IJPEGENC_Status *) status 
           ); 
 
   return (value); 
 
} 
 
/*------------------------------------------------------------------*/ 
/* Texas Instruments Incorporated 1997-2003.                        */ 
/*==================================================================*/ 
/*                                                                  */ 
/*------------------------------------------------------------------*/