celljpegenc_ti.c
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:3k
源码类别:

DSP编程

开发平台:

C/C++

  1. /*
  2.  *  Copyright 2002 by Texas Instruments Incorporated.
  3.  *  All rights reserved. Property of Texas Instruments Incorporated.
  4.  *  Restricted rights to use, duplicate or disclose this code are
  5.  *  granted through contract.
  6.  *
  7.  */
  8. /* "@(#) RF5_IEK 1.20.07 09-26-02 (swat-c12)" */
  9. /*
  10.  *  ======== celljpegenc.c ========
  11.  */
  12. #include <std.h>
  13. #include <log.h>
  14. #include <tsk.h>
  15. #include <algrf.h>
  16. #include <icell.h>
  17. #include <utl.h>
  18. #include "celljpegenc_ti.h"
  19. #include "ijpegenc.h"
  20. #include <dman.h>
  21. #include "appThreads.h"
  22. #include "appBiosObjects.h"
  23. extern far IDMA2_Fxns JPEGENC_IDMA2;        /* the algorithm's IDMA2 v-table */
  24. // v-table for this cell
  25. ICELL_Fxns JPEGENC_CELLFXNS = {
  26.     JPEGENC_cellClose,     // cellClose
  27.     JPEGENC_cellControl,   // cellControl
  28.     JPEGENC_cellExecute,   // cellExecute
  29.     JPEGENC_cellOpen       // cellOpen
  30. };
  31. /*
  32.  *  ======== JPEGENC_cellClose ========
  33.  *
  34.  */
  35. Bool JPEGENC_cellClose( ICELL_Handle handle )
  36. {
  37.     // Withdraw DMA resources from algorithm
  38.     return (DMAN_removeAlg((IALG_Handle)handle->algHandle, &JPEGENC_IDMA2));
  39. }
  40. /*
  41.  *  ======== JPEGENC_cellExecute ========
  42.  *
  43.  */
  44. Bool JPEGENC_cellExecute( ICELL_Handle handle, Arg arg )
  45. {
  46.     int ret_val ;
  47.     unsigned int **Output = handle->outputIcc[0]->buffer;
  48.     UTL_stsStart( stsExeTimeChJpegEnc );
  49.     // activate instance object
  50.     ALGRF_activate( handle->algHandle );
  51.     // call JPEG encode through ALG layer.
  52.     ret_val = ((IJPEGENC_Fxns *)(handle->algFxns))->encode
  53.                       (
  54.                          (IJPEGENC_Handle)handle->algHandle,
  55.                          (XDAS_Int8 **)handle->inputIcc[0]->buffer,
  56.                          (XDAS_Int8 *)(Output[1])
  57.                       );
  58.     *(Output[0]) = ret_val;
  59.     // deactivate instance object
  60.     ALGRF_deactivate( handle->algHandle );
  61.     UTL_stsStop( stsExeTimeChJpegEnc);
  62.     return (TRUE);
  63. }
  64. /*
  65.  *  ======== JPEGDEC_cellOpen ========
  66.  *
  67.  */
  68. Bool JPEGENC_cellOpen( ICELL_Handle handle )
  69. {
  70.     // Grant DMA resources
  71.     #if 1
  72.     return (DMAN_addAlg((IALG_Handle)handle->algHandle, &JPEGENC_IDMA2));
  73.     #endif
  74. }
  75. /*
  76.  *  ======== JPEGDEC_cellControl ========
  77.  *
  78.  */
  79. Int JPEGENC_cellControl(ICELL_Handle handle, IALG_Cmd cmd, IALG_Status *status)
  80. {
  81.    Bool value;
  82.    value = JPEGENC_TI_control
  83.            (
  84.                (IJPEGENC_Handle) handle->algHandle,
  85.                (IJPEG_Cmd)       cmd,
  86.                (IJPEGENC_Status *) status
  87.            );
  88.    return (value);
  89. }
  90. /*------------------------------------------------------------------*/
  91. /* Texas Instruments Incorporated 1997-2003.                        */
  92. /*==================================================================*/
  93. /*                                                                  */
  94. /*------------------------------------------------------------------*/