celljpegdec_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.  *  ======== celljpegdec.c ========
  11.  */
  12. #include <stdio.h>
  13. #include <stdlib.h>
  14. #include <std.h>
  15. #include <log.h>
  16. #include <tsk.h>
  17. #include <algrf.h>
  18. #include <icell.h>
  19. #include <utl.h>
  20. #include "celljpegdec_ti.h"
  21. #include "ijpegdec.h"
  22. #include <dman.h>
  23. #include "appThreads.h"
  24. #include "appResources.h"
  25. extern far IDMA2_Fxns JPEGDEC_IDMA2;        /* the algorithm's IDMA2 v-table */
  26. // v-table for this cell
  27. ICELL_Fxns JPEGDEC_CELLFXNS =
  28. {
  29.     JPEGDEC_cellClose,      // cellClose
  30.     NULL,                  // cellControl
  31.     JPEGDEC_cellExecute,    // cellExecute
  32.     JPEGDEC_cellOpen        // cellOpen
  33. };
  34. /*
  35.  *  ======== JPEGDEC_cellClose ========
  36.  *
  37.  */
  38. Bool JPEGDEC_cellClose( ICELL_Handle handle )
  39. {
  40.     // Withdraw DMA resources from algorithm
  41.     return (DMAN_removeAlg((IALG_Handle)handle->algHandle, &JPEGDEC_IDMA2));
  42. }
  43. /*
  44.  *  ======== JPEGDEC_cellExecute ========
  45.  *
  46.  */
  47. Bool JPEGDEC_cellExecute( ICELL_Handle handle, Arg arg )
  48. {
  49.     int ret_val;
  50.     unsigned int **Input = handle->inputIcc[0]->buffer;
  51.     UTL_stsStart( stsExeTimeChJpegDec );
  52.     // activate instance object
  53.     ALGRF_activate( handle->algHandle );
  54.     // call JPEG decode through IALG layer
  55.     ret_val = ((IJPEGDEC_Fxns *)(handle->algFxns))->decode
  56.                         (
  57.                            (IJPEGDEC_Handle)handle->algHandle,
  58.                            (XDAS_Int8 *)(Input[1]),
  59.                            (XDAS_Int8 **)handle->outputIcc[0]->buffer
  60.                         );
  61.     // negative value here, implies incorrect decode.
  62.     UTL_assert(ret_val >= 0);
  63.     // deactivate instance object
  64.     ALGRF_deactivate( handle->algHandle );
  65.     UTL_stsStop( stsExeTimeChJpegDec );
  66.     return(1);
  67. }
  68. /*
  69.  *  ======== JPEGDEC_cellOpen ========
  70.  *
  71.  */
  72. Bool JPEGDEC_cellOpen( ICELL_Handle handle )
  73. {
  74.     // Grant DMA resources
  75.     return (DMAN_addAlg((IALG_Handle)handle->algHandle, &JPEGDEC_IDMA2));
  76. }
  77. /*------------------------------------------------------------------*/
  78. /* Texas Instruments Incorporated 1997-2003.                        */
  79. /*==================================================================*/
  80. /*                                                                  */
  81. /*------------------------------------------------------------------*/