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

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

?? tskvideoinput0.c

?? ZPAV (H265) DM64XX(TI) demo ZPAV (H265) 是 音視頻 壓縮解壓 協議
?? C
字號:

/*
///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//   Copyright (C) 2006-2008  Beijing,  pengzhen  (pengzhenxp@yahoo.com.cn)  //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////
*/

/**
**  scale  from Yuv422 (704*288 ) to Yuv420 (352*288 )
**  scale  from Yuv422 (640*240 ) to Yuv420 (320*240 )
*/

//#pragma CODE_SECTION(scale_422_to_420_4x1_c, ".user_data_int");

static /*inline*/ void scale_422_to_420_4x1_c( Yuv420_Queue * dest, FVID_Frame * src, 
                                               int width , int height )
{

    char * buffer_on_chip = m_buffer_on_chip ; /* the DSP's on-chip memory */

	char * y_out = dest->m_pBuf_y ;  
	char * u_out = dest->m_pBuf_u ;  
	char * v_out = dest->m_pBuf_v ; 

	char * y_in = src->frame.iFrm.y1  ; 
	char * u_in = src->frame.iFrm.cb1 ;
	char * v_in = src->frame.iFrm.cr1 ;
		
	int width0  = width << 1 ; /* D1 */
	int width_c = width >> 1 ; /* Yuv420 */ 
	int width1  = width >> 5 ; /* 2*4*sizeof(int) = 32 = 2^^5 */

    int * lpTmp1 ;
	int * lpTmp2 ;
	int * lpTmp3 ;
	int * lpTmp4 ;

	int i, j, id ; 
	
	//CACHE_flush(CACHE_L2ALL, 0, 0);
	//CACHE_clean(CACHE_L2ALL, 0, 0);

    /* the DSP's on-chip memory */
    //alloc_mem_on_chip(buffer_on_chip, (width0 << 1) ) ; /* two lines */
    
/* Y */

#define scale_y_4x1_0() \
          *lpTmp2 ++ = _packl4( lpTmp1[1], lpTmp1[0] ) ; lpTmp1 +=2 ; \
	      *lpTmp2 ++ = _packl4( lpTmp1[1], lpTmp1[0] ) ; lpTmp1 +=2 ; \

#define scale_y_4x1_1() scale_y_4x1_0() scale_y_4x1_0() scale_y_4x1_0() scale_y_4x1_0() 

#define scale_y_4x1() j = width1 ; while ( j -- ) { scale_y_4x1_1() }

/* U,V */

#define scale_c_4x1_0() \
          *lpTmp3 ++ = _avgu4( _packl4( lpTmp1[1], lpTmp1[0] ), \
				               _packl4( lpTmp2[1], lpTmp2[0] ) ) ; \
		  lpTmp1 +=2 ;  lpTmp2 +=2 ; \

#define scale_c_4x1_1() scale_c_4x1_0() scale_c_4x1_0() scale_c_4x1_0() scale_c_4x1_0() 

#define scale_c_4x1() j = width1 ; while ( j -- ) { scale_c_4x1_1() }


    /* Y */

    i = height ; 
	while ( i -- ) 
	{
	    
	            lpTmp1 = (int * )( buffer_on_chip ) ; 
	   lpTmp3 = lpTmp2 = (int * )( buffer_on_chip + width0 ) ;
	   
	   id = DAT_copy(y_in, lpTmp1, width0 ) ;  /* DMA */
	   /* if( DAT_busy(id) ) */ { DAT_wait( id ) ; }  
	   
	   /* scale */
		scale_y_4x1()
		
		DAT_copy(lpTmp3, y_out, width ) ; 
		
		 y_in  += width0 ; /* next line */ 
		 y_out += width ;
		
	}
	
	height >>= 1 ; /* Yuv420 */

	/* U */

    i = height ; 
	while ( i -- ) 
	{
	    
	            lpTmp1 = (int * )( buffer_on_chip ) ;
	            lpTmp2 = (int * )( buffer_on_chip + width ) ;
	   lpTmp4 = lpTmp3 = (int * )( buffer_on_chip + width0 ) ;
	   
	   id = DAT_copy(u_in, lpTmp1, width0 ) ; /* DMA */
	   /*if( DAT_busy(id) )*/ { DAT_wait( id ) ; } /* two lines */
	   
	   /* scale */
		scale_c_4x1()
		
		DAT_copy(lpTmp4, u_out, width_c ) ; 
		
		 u_in  += width0 ; /* next line */ 
		 u_out += width_c ; 
		
	}
	
	
	/* V */

    i = height ; 
	while ( i -- ) 
	{
	    
	            lpTmp1 = (int * )( buffer_on_chip ) ;
	            lpTmp2 = (int * )( buffer_on_chip + width ) ;
	   lpTmp4 = lpTmp3 = (int * )( buffer_on_chip + width0 ) ;
	   
	   
	   id = DAT_copy(v_in, lpTmp1, width0 ) ; /* DMA */
	   /*if( DAT_busy(id) )*/ { DAT_wait( id ) ; }  /* two lines */
	   
	   /* scale */
		scale_c_4x1()
		
		id = DAT_copy(lpTmp4, v_out, width_c ) ;
		
		 v_in  += width0 ; /* next line */ 
		 v_out += width_c ; 
		
	}
	
	// /* if( DAT_busy(id) )*/ { DAT_wait( id ) ; }
	
	/* the DSP's on-chip memory */
	//free_mem_on_chip(buffer_on_chip, (width0 << 1) ) ;
	
#undef scale_y_4x1_0
#undef scale_y_4x1_1
#undef scale_y_4x1

#undef scale_c_4x1_0
#undef scale_c_4x1_1
#undef scale_c_4x1

	//CACHE_flush(CACHE_L2ALL, 0, 0);
	//CACHE_clean(CACHE_L2ALL, 0, 0);

}


//#pragma CODE_SECTION(scale_422_to_420_c, ".user_data_int");

static /*inline*/ void scale_422_to_420_c( Yuv420_Queue * dest, FVID_Frame * src, 
                                           int width , int height )
{

    char * buffer_on_chip ; /* the DSP's on-chip memory */
	int buffer_cnt = (width << 4); /* 2 width; 4 height; 2 buffer */ 

	char * y_out = dest->m_pBuf_y ;  
	char * u_out = dest->m_pBuf_u ;  
	char * v_out = dest->m_pBuf_v ; 

	char * y_in = src->frame.iFrm.y1  ; 
	char * u_in = src->frame.iFrm.cb1 ;
	char * v_in = src->frame.iFrm.cr1 ;
		
	int width0  = width << 1 ; /* D1 */
	int width_c = width >> 1 ; /* Yuv420 */ 
	int width1  = width >> 5 ; /* 2*4*sizeof(int) = 32 = 2^^5 */

    int * lpTmp1 ;
	int * lpTmp2 ;
	int * lpTmp3 ;
	int * lpTmp4 ;

	int i, j, id ; 

	//CACHE_flush(CACHE_L2ALL, 0, 0);
	//CACHE_clean(CACHE_L2ALL, 0, 0);

    /* the DSP's on-chip memory */
    buffer_on_chip = MEM_alloc( intHeap,  buffer_cnt, 8 ) ; /* 2 lines */
    if( ! buffer_on_chip ) { scale_422_to_420_4x1_c( dest, src, width, height ) ; return ; } /* error */
    
/* Y */

#define scale_y_4x4_0() \
          *lpTmp2 ++ = _packl4( lpTmp1[1], lpTmp1[0] ) ; lpTmp1 +=2 ; \
	      *lpTmp2 ++ = _packl4( lpTmp1[1], lpTmp1[0] ) ; lpTmp1 +=2 ; \

#define scale_y_4x4_1() scale_y_4x4_0() scale_y_4x4_0() scale_y_4x4_0() scale_y_4x4_0() 

#define scale_y_4x4() j = width1 ; while ( j -- ) { scale_y_4x4_1() }

/* U,V */

#define scale_c_4x4_0() \
          *lpTmp3 ++ = _avgu4( _packl4( lpTmp1[1], lpTmp1[0] ), \
				               _packl4( lpTmp2[1], lpTmp2[0] ) ) ; \
		  lpTmp1 +=2 ;  lpTmp2 +=2 ; \

#define scale_c_4x4_1() scale_c_4x4_0() scale_c_4x4_0() scale_c_4x4_0() scale_c_4x4_0() 

#define scale_c_4x4() j = width1 ; while ( j -- ) { scale_c_4x4_1() }


	/* 4 lines */ 

	width <<=2 ; 
	width0 <<=2 ;
	width_c <<=2 ;
	height >>= 2 ;

    /* Y */

    i = height ; 
	while ( i -- ) 
	{
	    
	            lpTmp1 = (int * )( buffer_on_chip ) ; 
	   lpTmp3 = lpTmp2 = (int * )( buffer_on_chip + width0 ) ;
	   
	   id = DAT_copy(y_in, lpTmp1, width0 ) ;  /* DMA */
	   /*if( DAT_busy(id) )*/ { DAT_wait( id ) ; }  
	   
	   /* scale */
		scale_y_4x4()
		scale_y_4x4()
		scale_y_4x4()
		scale_y_4x4()
		
		//CACHE_flush(CACHE_L1D, lpTmp3, width>>2 ) ;
		DAT_copy(lpTmp3, y_out, width ) ; 
		
		 y_in  += width0 ; /* next line */ 
		 y_out += width ;
		
	}
	
	width >>=2 ;
	height >>= 1 ; /* Yuv420 */

	/* U */

    i = height ; 
	while ( i -- ) 
	{
	    
	            lpTmp1 = (int * )( buffer_on_chip ) ;
	            lpTmp2 = (int * )( buffer_on_chip + width ) ;
	   lpTmp4 = lpTmp3 = (int * )( buffer_on_chip + width0 ) ;
	   
	   id = DAT_copy(u_in, lpTmp1, width0 ) ; /* DMA */
	   /*if( DAT_busy(id) )*/ { DAT_wait( id ) ; } /* 2 lines */
	   
	   /* scale */
		scale_c_4x4()
		scale_c_4x4()
		scale_c_4x4()
		scale_c_4x4()
		
		//CACHE_flush(CACHE_L1D, lpTmp4, width_c>>2 ) ;
		DAT_copy(lpTmp4, u_out, width_c ) ; 
		
		 u_in  += width0 ; /* next line */ 
		 u_out += width_c ; 
		
	}
	
	
	/* V */

    i = height ; 
	while ( i -- ) 
	{
	    
	            lpTmp1 = (int * )( buffer_on_chip ) ;
	            lpTmp2 = (int * )( buffer_on_chip + width ) ;
	   lpTmp4 = lpTmp3 = (int * )( buffer_on_chip + width0 ) ;
	   
	   
	   id = DAT_copy(v_in, lpTmp1, width0 ) ; /* DMA */
	   /*if( DAT_busy(id) )*/ { DAT_wait( id ) ; }  /* 2 lines */
	   
	   /* scale */
		scale_c_4x4()
		scale_c_4x4()
		scale_c_4x4()
		scale_c_4x4()
		
		//CACHE_flush(CACHE_L1D, lpTmp4, width_c>>2 ) ;
		id = DAT_copy(lpTmp4, v_out, width_c ) ;
		
		 v_in  += width0 ; /* next line */ 
		 v_out += width_c ; 
		
	}
	
	/*if( DAT_busy(id) )*/ { DAT_wait( id ) ; }
	
	/* the DSP's on-chip memory */
	/*if( buffer_on_chip ) */ MEM_free( intHeap, buffer_on_chip, buffer_cnt ) ;
	
#undef scale_y_4x4_0
#undef scale_y_4x4_1
#undef scale_y_4x4

#undef scale_c_4x4_0
#undef scale_c_4x4_1
#undef scale_c_4x4

	//CACHE_flush(CACHE_L2ALL, 0, 0);
	//CACHE_clean(CACHE_L2ALL, 0, 0);

}

/**
**  dma copy
*/

static /*inline*/ void dma_copy_420_c( Yuv420_Queue * dest, FVID_Frame * src, 
                                       int width, int height )
{
	char * y_in = src->frame.iFrm.y1  ; 
	char * u_in = src->frame.iFrm.cb1 ;
	char * v_in = src->frame.iFrm.cr1 ;

	char * y_out = dest->m_pBuf_y ;  
	char * u_out = dest->m_pBuf_u ;  
	char * v_out = dest->m_pBuf_v ; 

	int width_c  = width>>1 ;   /* Yuv420 */

	int i , id ;

	/* Y */
#if 1
	DAT_copy2d( DAT_2D2D, y_in, y_out, width, height, width) ;
#else 
	i = height ;
    while( i-- ) 
    {
		DAT_copy(y_in, y_out, width) ;

		y_in  += width ; 
		y_out += width ; 
    }
#endif /* 1 */

	height >>= 1 ; /* Yuv420 */

	/* U */
	i = height ;
    while( i-- ) 
    {
		DAT_copy(u_in, u_out, width_c) ;

		u_in  += width ; 
		u_out += width_c ; 
    }

	/* V */
	i = height ;
    while( i-- ) 
    {
		id = DAT_copy(v_in, v_out, width_c) ;

		v_in  += width ; 
		v_out += width_c ; 
    }

	DAT_wait( id ) ;

}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区男人的天堂| 亚洲视频狠狠干| 日韩一级高清毛片| 制服视频三区第一页精品| 欧美日韩亚洲综合一区| 欧美日韩亚洲综合| 538prom精品视频线放| 7777精品伊人久久久大香线蕉的 | 精品国偷自产国产一区| 欧美大片拔萝卜| 欧美va日韩va| 国产亚洲综合av| 国产精品三级电影| 亚洲摸摸操操av| 亚洲最大成人综合| 日韩经典一区二区| 日本欧美一区二区三区| 黄色资源网久久资源365| 国产成人精品综合在线观看| 国产91精品一区二区麻豆亚洲| 成人免费观看av| 91免费在线播放| 欧美日韩午夜影院| 欧美一区二区三区免费大片| 日韩欧美国产一区二区三区| 国产亚洲精品福利| **网站欧美大片在线观看| 亚洲自拍偷拍麻豆| 麻豆国产欧美一区二区三区| 国产馆精品极品| 91麻豆视频网站| 亚洲一区二区三区四区不卡| 男女性色大片免费观看一区二区 | 国产精品综合在线视频| 成人精品免费视频| 欧美性色黄大片| 精品久久久久久无| 亚洲欧美综合在线精品| 日韩国产一区二| 国产99久久久国产精品潘金网站| gogogo免费视频观看亚洲一| 欧美日韩视频在线一区二区| 日韩欧美高清一区| 中文字幕一区二区三区不卡在线| 亚洲综合在线视频| 久久99国产精品免费| 99精品视频免费在线观看| 在线播放日韩导航| 国产精品美女久久久久高潮| 亚洲夂夂婷婷色拍ww47| 国产毛片精品一区| 欧美做爰猛烈大尺度电影无法无天| 日韩一区二区精品| 亚洲精品精品亚洲| 精油按摩中文字幕久久| 欧美综合在线视频| 久久精品在这里| 日本中文字幕一区二区视频| 成人ar影院免费观看视频| 欧美一区二区在线不卡| 中文字幕制服丝袜一区二区三区| 日韩影院免费视频| 91一区二区三区在线观看| 日韩欧美一区二区在线视频| 亚洲日本青草视频在线怡红院 | 国产成人免费视频一区| 欧美日韩成人高清| 中文字幕在线观看一区二区| 日本不卡视频一二三区| 91久久精品网| 国产精品国产三级国产aⅴ中文 | 欧美一区二区三区思思人| 中文字幕一区二区三区在线观看| 麻豆成人免费电影| 欧美日韩久久一区| 亚洲欧美偷拍卡通变态| 国产真实乱对白精彩久久| 91精品一区二区三区在线观看| 专区另类欧美日韩| 成人午夜免费电影| 久久久久久久综合日本| 美国一区二区三区在线播放| 亚洲精品国产一区二区精华液| 国产精品一区二区不卡| 欧美成人精品福利| 男女视频一区二区| 欧美久久久久久久久久| 夜夜精品视频一区二区 | 国产精品女主播av| 国产一区不卡在线| 精品国产乱码久久久久久浪潮| 日韩高清不卡一区| 欧美日韩国产综合一区二区| 亚洲综合偷拍欧美一区色| 波多野结衣视频一区| 国产精品网曝门| 成人av电影在线观看| 国产天堂亚洲国产碰碰| 国产v综合v亚洲欧| 国产人妖乱国产精品人妖| 国产激情一区二区三区四区 | 国产拍欧美日韩视频二区| 国内精品写真在线观看| 精品播放一区二区| 国产自产视频一区二区三区| 久久久亚洲综合| 激情图片小说一区| 久久精品人人做| 成人免费视频一区二区| 国产精品视频第一区| 成人性视频网站| 中文字幕一区二区三区在线不卡 | 久久狠狠亚洲综合| 精品久久久久久久久久久久久久久久久| 蜜桃精品视频在线观看| 欧美电影免费提供在线观看| 国产一区二区91| 国产精品视频你懂的| 日本韩国欧美在线| 亚洲成av人片观看| 精品欧美乱码久久久久久 | 成人激情文学综合网| 中文字幕一区二区三区在线观看 | 国产亚洲精久久久久久| 成人黄色片在线观看| 亚洲乱码中文字幕综合| 欧美久久一二区| 国产精品一区二区在线播放| 国产精品国产三级国产普通话三级 | 成人avav影音| 色一情一伦一子一伦一区| 亚洲香蕉伊在人在线观| 精品免费国产二区三区 | 欧美疯狂性受xxxxx喷水图片| 日产精品久久久久久久性色| 久久久久久久久久久久久久久99| 国产成a人亚洲精| 曰韩精品一区二区| 日韩精品一区二区三区四区| 成人激情免费网站| 丝袜诱惑制服诱惑色一区在线观看| 日韩欧美的一区| 一本大道久久a久久综合婷婷 | 欧美一区二区三区四区高清| 国产精品亚洲视频| 亚洲一区二区三区四区在线观看 | 肉丝袜脚交视频一区二区| ww久久中文字幕| 色婷婷激情一区二区三区| 免费人成黄页网站在线一区二区| 欧美激情在线看| 欧美乱妇一区二区三区不卡视频| 国产一区二区三区在线观看免费 | 不卡在线观看av| 日本91福利区| 亚洲视频一区二区免费在线观看 | 美女一区二区三区| 中文字幕在线观看一区| 精品久久久久一区二区国产| 91成人免费在线视频| 国产一区二区精品久久99| 一级女性全黄久久生活片免费| 久久夜色精品国产噜噜av| 欧美色偷偷大香| 99国产精品99久久久久久| 久久99热这里只有精品| 亚洲一区av在线| 国产精品美女久久久久久久久久久| 欧美一区二区三区视频免费 | 日本一区二区综合亚洲| 91麻豆精品国产91久久久久久| 99久久免费国产| 国产一区二区三区精品视频| 香蕉乱码成人久久天堂爱免费| 最新中文字幕一区二区三区| 久久久久久97三级| 日韩美女一区二区三区| 欧美自拍丝袜亚洲| 99视频一区二区| 国产成+人+日韩+欧美+亚洲| 久久99久国产精品黄毛片色诱| 亚洲高清在线精品| 亚洲精品成人精品456| 中文字幕成人网| 国产视频一区在线观看| 日韩欧美一区电影| 亚洲图片一区二区| 综合欧美一区二区三区| 久久先锋影音av鲁色资源| 欧美一区二区三区的| 欧洲精品中文字幕| 色94色欧美sute亚洲线路一久| 成人a免费在线看| 国产成人亚洲精品狼色在线| 精品一区二区三区在线播放视频 | 国产精选一区二区三区| 久久国产尿小便嘘嘘尿| 美日韩一区二区| 麻豆精品国产91久久久久久| 日本不卡高清视频|