亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tskprocess.c

?? DM642多媒體原版程序代碼,用于圖象,語音算法.
?? C
字號:
/*
 *  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.
 *  
 */
#include <std.h>
#include <stdio.h>
#include <csl.h>
#include <csl_cache.h>
#include <csl_dat.h>
#include <chan.h>
#include <scom.h>
#include <utl.h>
#include <tsk.h>
#include "fvid.h"
#include "cellmpeg2enc.h"  
#include "appmain.h"
#include "appThreads.h"
#include "tskProcess.h"
#include "evm642_mpeg2enc.h"

IMPEG2VENC_Params mpeg2encParams;

char hname[80]="test.par";
void readparamfile(char *fname,IMPEG2VENC_Params *mpeg2veparam);


ThrProcess thrProcess;
volatile int framenum=0;

void tskProcessInit()
{
	int chanNum;
	ICELL_Obj  *cell;
	ICC_Handle  inputIcc;
    ICC_Handle  outputIcc;
    
    readparamfile(hname,&mpeg2encParams);

	mpeg2encParams.outstream = bitBuf;
	mpeg2encParams.h_recon_all = 1;
	
    for (chanNum = 0; chanNum < PROCESSNUMCHANNELS ; chanNum++) 
    {

    /*------------------------------------------------------------*/ 
    /*  register the cells: define what will be input buffers and */
    /*  what will be output buffers for each cell.                */
    /*------------------------------------------------------------*/
                
        /*-----------------------------------------------------------*/
        /* Setup a default cell used to initialize the actual cells  */
        /*-----------------------------------------------------------*/
 
        ICELL_Obj   defaultCell = ICELL_DEFAULT;
        
        /*-----------------------------------------------------------*/
        /* Register the cell for MPEG-2 encoder                      */
        /*-----------------------------------------------------------*/
        cell = &thrProcess.cellList[ (chanNum * PROCESSNUMCHANNELS ) + CELLMPEG2ENC];
        *cell                = defaultCell;
        cell->name           = "MPEG2ENC";
        cell->cellFxns       = &MPEG2ENC_CELLFXNS;            
        cell->algFxns        = (IALG_Fxns *)&MPEG2ENC_IMPEG2ENC;
        cell->algParams      = (IALG_Params *)&mpeg2encParams;
        cell->scrBucketIndex = THRIOSSCRBUCKET;

        /*-----------------------------------------------------------*/
        /* Create the inputICC: object used as input interface to the*/ 
        /* enocoder cell                                                  */
        /*-----------------------------------------------------------*/
        inputIcc  = (ICC_Handle)ICC_linearCreate( 
                               thrProcess.bufInput[ chanNum ], 
                               sizeof(unsigned char*)*3);
        UTL_assert( inputIcc != NULL);


		/*-----------------------------------------------------------*/
        /* Create the outputICC: object used as output interface to  */ 
        /* enocoder cell                                             */
        /*-----------------------------------------------------------*/

        outputIcc = (ICC_Handle)ICC_linearCreate( 
                                            thrProcess.bufOutput[ chanNum ],
                                            sizeof(BIT_BUF_SIZE));
        UTL_assert( outputIcc != NULL);

        /*------------------------------------------------------------*/
        /* Only one input and one output ICC are needed.              */
        /*------------------------------------------------------------*/
        CHAN_regCell( cell, &inputIcc, 1, &outputIcc, 1 );
        
        thrProcess.cellList[ (chanNum * PROCESSNUMCELLS) + CELLMPEG2ENC].algParams = 
            (IALG_Params *)&mpeg2encParams;
    
        UTL_logDebug1("Channel Number: %d", chanNum);
                  
        //UTL_assert( rc == TRUE );
    }

    CACHE_clean(CACHE_L2ALL, 0, 0);
    CACHE_clean(CACHE_L2ALL, 0, 0);                  
}         

/*-------------------------------------------------------*/
/* Create the channel instance : the cell algorithms will*/
/* be instantiated                                       */
/*-------------------------------------------------------*/
void tskProcessStart() {
	int chanNum;
	for (chanNum = 0; chanNum < PROCESSNUMCHANNELS ; chanNum++) 
	{
		/*------------------------------------------------------------*/
   		/* Open the channel: this causes the algorithms to be created */
        /*------------------------------------------------------------*/

        CHAN_open( &thrProcess.chanList[ chanNum ], 
                        &thrProcess.cellList[ chanNum * PROCESSNUMCELLS ], 
                        PROCESSNUMCELLS ,
                        NULL );
		//UTL_assert( rc == TRUE );
	}                           
                         
        
}

/*-------------------------------------------------------*/
/* The task will handle the processing part :            */
/* -Will get the message from the Input task with input  */
/*  frame pointers                                       */
/* -Will execute the channel to encode and reconstruct   */
/* -Will pass the decoded frame pointers to output task  */
/*-------------------------------------------------------*/
void tskProcess()
{
    IMPEG2VENC_Status  encstatus;


    unsigned int *bufs;
    ScomBufChannels *pMsgBuf;  
    SCOM_Handle fromInputtoProc,fromProctoOut;
    fromInputtoProc = SCOM_open("INTOPROC");
    fromProctoOut   = SCOM_open("PROCTOOUT");

    
    while(1)
    {
           
		CHAN_Handle chanHandle = &thrProcess.chanList[ 0 ];
 	    
 	    /*-----------------------------------------------------------*/
	  	/* Wait for the message from  input task to recieve captured */
  		/* frame to be cycled through encoding and decoding.         */
   		/*-----------------------------------------------------------*/
 	    pMsgBuf = SCOM_getMsg(fromInputtoProc, SYS_FOREVER); 	     

 	    bufs = pMsgBuf->bufChannel;
		 
		yuvBufIp[0] = (char *)bufs[0];				
		yuvBufIp[1] = (char *)bufs[1];				
		yuvBufIp[2] = (char *)bufs[2];						 
         
	    /*----------------------------------------------------------*/
        /* Set the input ICC buffer for MPEG2ENC cell for each channel*/
        /*----------------------------------------------------------*/
	    ICC_setBuf(chanHandle->cellSet[CELLMPEG2ENC].inputIcc[0],
	              yuvBufIp, 
	              sizeof(unsigned char*)*3);

	    /*----------------------------------------------------------*/
        /* Set the output ICC buffer for MPEG2ENC cell for each channel*/
        /*----------------------------------------------------------*/
		ICC_setBuf(chanHandle->cellSet[CELLMPEG2ENC].outputIcc[0],
	              bitBuf, 
	              BIT_BUF_SIZE);
        
 	    
	    /*-------------------------------------------------------*/
	    // execute the channel 	     	     
	    /*-------------------------------------------------------*/
	    CACHE_clean(CACHE_L2ALL, 0, 0);         
	    CHAN_execute( chanHandle, framenum );         
	    CACHE_clean(CACHE_L2ALL, 0, 0);
	    
        
	    /*-------------------------------------------------------*/
	    // Call the Control function of encoder to retrieve the 
	    // the pointers to teh reconstructed frames
	    /*-------------------------------------------------------*/
	    MPEG2ENC_cellControl(&chanHandle->cellSet[CELLMPEG2ENC],
	                          IMPEG2VENC_GETSTATUS,
	                          (IALG_Status *)&encstatus);
	

	 	if(encstatus.dispflag == 1)
	    {
	    	yuvBuf[0] = (char *)encstatus.y;
	        yuvBuf[1] = (char *)encstatus.u;
	        yuvBuf[2] = (char *)encstatus.v;
       	 }
 		
   		/*-----------------------------------------------------------*/
   		/* Send message to output task with pointers to decoded frame*/
   		/*-----------------------------------------------------------*/
		 thrProcess.scomMsgTx.status = encstatus.dispflag;	   	
		 thrProcess.scomMsgTx.bufChannel= (void *)&yuvBuf[0];
		 SCOM_putMsg(fromProctoOut,&(thrProcess.scomMsgTx));	

 		 framenum++;
        
		 if(mpeg2encParams.h_nframes == framenum)
		 {
		   	 framenum = 0;
	     }
 	} 	                                                 
}



void readparamfile(char *fname,IMPEG2VENC_Params *mpeg2veparam)
{
  int i;
  int v;
  FILE *fd;
  char line[256];

  fd = fopen(fname,"r");
  if (!fd)
  {
    printf("Couldn't open parameter file %s",fname);
  }

  fgets(mpeg2veparam->h_id_string,254,fd);

  fgets(line,254,fd); sscanf(line,"%s",mpeg2veparam->h_tplorg);
  fgets(line,254,fd); sscanf(line,"%s",mpeg2veparam->h_tplref);
  fgets(line,254,fd); sscanf(line,"%s",mpeg2veparam->h_iqname);
  fgets(line,254,fd); sscanf(line,"%s",mpeg2veparam->h_niqname);
  fgets(line,254,fd); sscanf(line,"%s",mpeg2veparam->h_statname);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_inputtype);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_nframes);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_frame0);
  fgets(line,254,fd); sscanf(line,"%d:%d:%d:%d",&mpeg2veparam->h_h,
  						&mpeg2veparam->h_m,&mpeg2veparam->h_s,&mpeg2veparam->h_f1);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_N);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_M);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_mpeg1);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_fieldpic);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_horizontal_size);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_vertical_size);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_aspectratio);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_frame_rate_code);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_bit_rate);		// nc int
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_vbv_buffer_size);   
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_low_delay);	  
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_constrparms);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_profile);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_level);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_prog_seq);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_chroma_format);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_video_format);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_color_primaries);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_transfer_characteristics);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_matrix_coefficients);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_display_horizontal_size);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_display_vertical_size);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_dc_prec);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_topfirst);

  fgets(line,254,fd); sscanf(line,"%d %d %d",
    mpeg2veparam->h_frame_pred_dct_tab,mpeg2veparam->h_frame_pred_dct_tab+1,mpeg2veparam->h_frame_pred_dct_tab+2);
  
  fgets(line,254,fd); sscanf(line,"%d %d %d",
    mpeg2veparam->h_conceal_tab,mpeg2veparam->h_conceal_tab+1,mpeg2veparam->h_conceal_tab+2);
  
  fgets(line,254,fd); sscanf(line,"%d %d %d",
    mpeg2veparam->h_qscale_tab,mpeg2veparam->h_qscale_tab+1,mpeg2veparam->h_qscale_tab+2);

  fgets(line,254,fd); sscanf(line,"%d %d %d",
    mpeg2veparam->h_intravlc_tab,mpeg2veparam->h_intravlc_tab+1,mpeg2veparam->h_intravlc_tab+2);
  fgets(line,254,fd); sscanf(line,"%d %d %d",
    mpeg2veparam->h_altscan_tab,mpeg2veparam->h_altscan_tab+1,mpeg2veparam->h_altscan_tab+2);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_repeatfirst);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_prog_frame);
/* intra slice interval refresh period */  
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_P);

  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_r);

  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_avg_act);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_Xi);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_Xp);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_Xb);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_d0i);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_d0p);
  fgets(line,254,fd); sscanf(line,"%d",&mpeg2veparam->h_d0b);

  /* For P pictures. Get motion_picdata in motion_picdata[h_M-1] */
  /* Parameters in following order								 */
  /* int forw_hor_f_code,forw_vert_f_code,int sxf,int syf		 */
  /* int back_hor_f_code,back_vert_f_code,int sxb,int syb 		 */
  
  fgets(line,254,fd);
  sscanf(line,"%d %d %d %d",
    &mpeg2veparam->h_motion_picdata[(mpeg2veparam->h_M-1)*8], &mpeg2veparam->h_motion_picdata[(mpeg2veparam->h_M-1)*8+1],
    &mpeg2veparam->h_motion_picdata[(mpeg2veparam->h_M-1)*8+2], &mpeg2veparam->h_motion_picdata[(mpeg2veparam->h_M-1)*8+3]);
  /* End P Pictures case */

  for (i=0; i<mpeg2veparam->h_M-1; i++)
  {
    fgets(line,254,fd);
    sscanf(line,"%d %d %d %d",
      &mpeg2veparam->h_motion_picdata[i*8], &mpeg2veparam->h_motion_picdata[i*8+1],
      &mpeg2veparam->h_motion_picdata[i*8+2], &mpeg2veparam->h_motion_picdata[i*8+3]);

    fgets(line,254,fd);
    sscanf(line,"%d %d %d %d",
	  &mpeg2veparam->h_motion_picdata[i*8+4], &mpeg2veparam->h_motion_picdata[i*8+5],
	  &mpeg2veparam->h_motion_picdata[i*8+6], &mpeg2veparam->h_motion_picdata[i*8+7]);
  }
  
  fclose(fd);
  
  if(mpeg2veparam->h_iqname[0] != '-')
  {
    /* read customized intra matrix */
    //mpeg2veparam->load_iquant = 1;
	fd = fopen(mpeg2veparam->h_iqname,"r");
    if (!fd)
    {
      printf("Couldn't open quant matrix file %s",mpeg2veparam->h_iqname);
    }

    for (i=0; i<64; i++)
    {
      fscanf(fd,"%d",&v);
      if (v<1 || v>255)
			printf("invalid value in quant matrix");
      mpeg2veparam->h_intra_q[i] = v;
    }

    fclose(fd);
  }

  if(mpeg2veparam->h_niqname[0] != '-')	
  {
    /* read customized non-intra matrix */
    //mpeg2veparam->load_niquant = 1;
	fd = fopen(mpeg2veparam->h_niqname,"r");
    if (!fd)
    {
      printf("Couldn't open quant matrix file %s",mpeg2veparam->h_niqname);
    }

    for (i=0; i<64; i++)
    {
      fscanf(fd,"%d",&v);
      if (v<1 || v>255)
		printf("invalid value in quant matrix");
	  mpeg2veparam->h_inter_q[i] = v;
    }

    fclose(fd);
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国一区二区视频| 伊人婷婷欧美激情| 国产在线精品一区二区| 日韩精品最新网址| 六月丁香婷婷久久| 久久亚洲二区三区| 成人福利在线看| 亚洲免费观看高清完整版在线观看| 暴力调教一区二区三区| 一区二区三区四区激情| 欧美肥妇free| 国产高清在线精品| 亚洲精品免费在线播放| 欧美日韩电影在线| 国产精品一线二线三线精华| 国产精品久久久久久久久果冻传媒| 91免费版pro下载短视频| 亚洲午夜久久久久久久久电影院| 在线播放亚洲一区| 国产露脸91国语对白| 亚洲精品成a人| 91精品国产高清一区二区三区| 久久99国内精品| 国产精品成人一区二区艾草| 9191成人精品久久| 国产成人日日夜夜| 亚洲午夜久久久久| 国产午夜三级一区二区三| 91蝌蚪国产九色| 麻豆精品国产传媒mv男同| 中文字幕一区二区不卡| 日韩欧美激情在线| 91在线视频播放| 激情图片小说一区| 亚洲国产精品自拍| 日本一区二区三区四区在线视频| 欧美日韩国产免费| www.日韩av| 久久精品国产第一区二区三区| 亚洲欧美欧美一区二区三区| 久久影院视频免费| 在线电影院国产精品| 91视视频在线观看入口直接观看www | 国产一区二区三区电影在线观看| ㊣最新国产の精品bt伙计久久| 欧美一级在线观看| 91成人免费在线| av在线综合网| 国产在线播放一区| 日韩国产一二三区| 亚洲卡通动漫在线| 国产精品伦一区| 精品国产99国产精品| 制服丝袜一区二区三区| 色先锋资源久久综合| 成人黄页毛片网站| 国产成人在线视频免费播放| 免费观看日韩av| 偷拍一区二区三区| 一区二区三区在线观看国产| **欧美大码日韩| 中文字幕中文字幕一区二区| 国产日本一区二区| 久久久久久麻豆| 久久亚洲综合色一区二区三区| 在线不卡欧美精品一区二区三区| 欧美在线观看18| 色网综合在线观看| 93久久精品日日躁夜夜躁欧美| 成人av电影在线观看| 国产suv一区二区三区88区| 国产一区二区三区免费观看| 韩日av一区二区| 国产一区二区三区av电影 | 精品一区二区日韩| 青青草国产精品亚洲专区无| 日本午夜精品视频在线观看| 亚洲成人av电影在线| 五月天激情综合| 日韩国产高清影视| 蜜臀av性久久久久蜜臀aⅴ四虎| 青青草原综合久久大伊人精品优势 | 亚洲成a人v欧美综合天堂下载| 亚洲精品视频一区二区| 亚洲一区二区三区美女| 亚洲超碰97人人做人人爱| 调教+趴+乳夹+国产+精品| 丝瓜av网站精品一区二区| 日韩精品五月天| 国产在线看一区| 成人污视频在线观看| 91免费看视频| 欧美性做爰猛烈叫床潮| 91精品国产综合久久久久久| 精品国产精品一区二区夜夜嗨| 久久综合九色综合欧美98| 欧美国产一区视频在线观看| 亚洲精选视频在线| 五月婷婷激情综合| 国产精品456露脸| 91视视频在线观看入口直接观看www | 玉米视频成人免费看| 午夜av电影一区| 国产精品自拍av| 日本精品免费观看高清观看| 欧美高清www午色夜在线视频| 精品国产乱码久久久久久牛牛| 国产色婷婷亚洲99精品小说| 亚洲欧洲av色图| 日本91福利区| 不卡欧美aaaaa| 欧美精品 国产精品| 久久久久久久久久电影| 亚洲黄色小说网站| 狠狠色丁香久久婷婷综| 91丝袜高跟美女视频| 欧美一区二区视频免费观看| 国产精品午夜免费| 三级一区在线视频先锋 | 一区二区三区中文在线观看| 青草国产精品久久久久久| 成人av在线一区二区三区| 欧美日韩国产免费一区二区| 国产欧美一区二区三区在线老狼| 亚洲国产乱码最新视频| 成人一区二区三区视频在线观看 | 日韩一区二区在线播放| 中文字幕精品一区二区精品绿巨人 | 678五月天丁香亚洲综合网| 国产亚洲1区2区3区| 日韩av在线免费观看不卡| 成人午夜激情在线| 日韩欧美久久一区| 亚洲第一电影网| 高清视频一区二区| 欧美videos中文字幕| 亚洲精品免费在线观看| 国产成人精品网址| 精品久久久久99| 亚洲成人综合网站| 97久久超碰国产精品| 久久综合色综合88| 日本v片在线高清不卡在线观看| 日本精品一区二区三区高清 | 91日韩一区二区三区| 国产视频在线观看一区二区三区| 免费成人在线播放| 欧美日韩一级片在线观看| 综合婷婷亚洲小说| 成人午夜私人影院| 国产日产欧美精品一区二区三区| 麻豆极品一区二区三区| 777午夜精品视频在线播放| 亚洲国产成人tv| 欧美在线观看一二区| 亚洲免费观看视频| 色婷婷综合久久| 中文字幕一区二区不卡| 成人av在线播放网站| 欧美激情在线观看视频免费| 国产高清亚洲一区| 久久综合狠狠综合久久激情| 精品一区二区三区影院在线午夜 | 久久综合久久综合九色| 六月丁香婷婷久久| 精品国产一区二区三区av性色| 日韩vs国产vs欧美| 日韩欧美国产一区二区三区 | 国产成人精品网址| 中文字幕久久午夜不卡| av亚洲精华国产精华| 中文字幕一区日韩精品欧美| 99这里只有精品| 亚洲色图19p| 91高清视频免费看| 亚洲国产成人精品视频| 欧美一级黄色片| 精品一区二区久久| 欧美激情艳妇裸体舞| 97久久超碰精品国产| 亚洲一二三四区不卡| 欧美丰满少妇xxxbbb| 喷水一区二区三区| 久久精品欧美一区二区三区麻豆| 国产成人无遮挡在线视频| 亚洲日本青草视频在线怡红院| 色美美综合视频| 日日摸夜夜添夜夜添亚洲女人| 欧美一区二区三区公司| 国产在线视频一区二区三区| 国产精品久久毛片av大全日韩| 色丁香久综合在线久综合在线观看| 亚洲自拍与偷拍| 精品国产一区二区三区忘忧草 | 亚洲午夜av在线| 欧美第一区第二区| 成人黄页毛片网站| 偷拍一区二区三区| 欧美国产亚洲另类动漫| 91欧美一区二区|