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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? image.c

?? 基于Linux的ffmepg decoder
?? C
字號:
#include <stdlib.h>#include <string.h>				// memcpy, memset#include <math.h>#include "../portab.h"#include "../xvid.h"			// XVID_CSP_XXX's#include "image.h"#include "colorspace.h"#include "../divx4.h"#include "../utils/mem_align.h"#define SAFETY	64#define EDGE_SIZE2  (EDGE_SIZE/2)int32_timage_create(IMAGE * image,			 uint32_t edged_width,			 uint32_t edged_height){	const uint32_t edged_width2 = edged_width / 2;	const uint32_t edged_height2 = edged_height / 2;	image->y =		xvid_malloc(edged_width * (edged_height + 1) + SAFETY, CACHE_LINE);	if (image->y == NULL) {		return -1;	}#ifdef fpga	for (i = 0; i < edged_width * edged_height + SAFETY; i++) {		image->y[i] = 0;	}#endif	image->u = xvid_malloc(edged_width2 * edged_height2 + 4*SAFETY, CACHE_LINE);	if (image->u == NULL) {		xvid_free(image->y);		return -1;	}#ifdef fpga		for (i = 0; i < edged_width2 * edged_height2 + 4*SAFETY; i++) {		image->u[i] = 0;	}#endif	image->v = xvid_malloc(edged_width2 * edged_height2 + 4*SAFETY, CACHE_LINE);	if (image->v == NULL) {		xvid_free(image->u);		xvid_free(image->y);		return -1;	}#ifdef fpga	for (i = 0; i < edged_width2 * edged_height2 + 4*SAFETY; i++) {		image->v[i] = 0;	}#endif	image->y += EDGE_SIZE * edged_width + EDGE_SIZE;	image->u += EDGE_SIZE2 * edged_width2 + EDGE_SIZE2;	image->v += EDGE_SIZE2 * edged_width2 + EDGE_SIZE2;	return 0;}voidimage_destroy(IMAGE * image,			  uint32_t edged_width,			  uint32_t edged_height){	const uint32_t edged_width2 = edged_width / 2;	if (image->y) {		xvid_free(image->y - (EDGE_SIZE * edged_width + EDGE_SIZE));	}	if (image->u) {		xvid_free(image->u - (EDGE_SIZE2 * edged_width2 + EDGE_SIZE2));	}	if (image->v) {		xvid_free(image->v - (EDGE_SIZE2 * edged_width2 + EDGE_SIZE2));	}}/*size creat:		-------------------------------------		|	|								|		|	|								|		-------------------------------------			|								|			|								|			|								|			|								|			|								|			|								|			|								|			|								|			|								|			|								|			|								|			|								|			-------------------------------------			|								|	|			|								|	|			-------------------------------------*/int32_timage_create_ben(IMAGE * image,			 uint32_t width,			 uint32_t height){	const uint32_t width2 = width / 2;	const uint32_t height2 = height/ 2;#if 1	if ((image->y = (uint8_t *)xvid_dma_malloc(width * (2 * EDGE_SIZE + height) + 2 * EDGE_SIZE * EDGE_SIZE,	   			   				CACHE_LINE, (void *)&image->y_phy)) == NULL)	   return -1;	if ((image->u = (uint8_t *)xvid_dma_malloc(width2 * (2 * EDGE_SIZE2 + height2) + 2 * EDGE_SIZE2 * EDGE_SIZE2,	   			   				CACHE_LINE, (void *)&image->u_phy)) == NULL) {	   xvid_dma_free (image->y, image->y_phy);	   return -1;	}	if ((image->v = (uint8_t *)xvid_dma_malloc(width2 * (2 * EDGE_SIZE2 + height2) + 2 * EDGE_SIZE2 * EDGE_SIZE2,	   			   				CACHE_LINE, (void *)&image->v_phy)) == NULL) {	   xvid_dma_free (image->y, image->y_phy);	   xvid_dma_free (image->u, image->u_phy);	   return -1;	}#else	image->y = xvid_malloc(width * (2 * EDGE_SIZE + height) +						2 * EDGE_SIZE * EDGE_SIZE, CACHE_LINE);	if (image->y == NULL)		return -1;	image->u = xvid_malloc(width2 * (2 * EDGE_SIZE2 + height2) +						2 * EDGE_SIZE2 * EDGE_SIZE2, CACHE_LINE);	if (image->u == NULL) {		xvid_free(image->y);		return -1;	}	image->v = xvid_malloc(width2 * (2 * EDGE_SIZE2 + height2) +						2 * EDGE_SIZE2 * EDGE_SIZE2, CACHE_LINE);	if (image->v == NULL) {		xvid_free(image->u);		xvid_free(image->y);		return -1;	}#ifdef fpga	for (i = 0; i < width * height + SAFETY; i++) {		image->y[i] = 0;	}	for (i = 0; i < width2 * height2 + 4*SAFETY; i++) {		image->u[i] = 0;	}	for (i = 0; i < width2 * height2 + 4*SAFETY; i++) {		image->v[i] = 0;	}#endif#endif	image->y = (uint8_t *)((uint32_t)image->y + EDGE_SIZE * width + EDGE_SIZE * EDGE_SIZE);	image->u = (uint8_t *)((uint32_t)image->u + EDGE_SIZE2 * width2 + EDGE_SIZE2 * EDGE_SIZE2);	image->v = (uint8_t *)((uint32_t)image->v + EDGE_SIZE2 * width2 + EDGE_SIZE2 * EDGE_SIZE2);	image->y_phy = (uint8_t *)((uint32_t)image->y_phy + EDGE_SIZE * width + EDGE_SIZE * EDGE_SIZE);	image->u_phy = (uint8_t *)((uint32_t)image->u_phy + EDGE_SIZE2 * width2 + EDGE_SIZE2 * EDGE_SIZE2);	image->v_phy = (uint8_t *)((uint32_t)image->v_phy + EDGE_SIZE2 * width2 + EDGE_SIZE2 * EDGE_SIZE2);	return 0;}voidimage_destroy_ben(IMAGE * image,			  uint32_t width){	const uint32_t width2 = width / 2;#if 1	if (image->y)		xvid_dma_free(image->y - (EDGE_SIZE * width + EDGE_SIZE * EDGE_SIZE),							   image->y_phy - (EDGE_SIZE * width + EDGE_SIZE * EDGE_SIZE));	if (image->u)		xvid_dma_free(image->u - (EDGE_SIZE2 * width2 + EDGE_SIZE2 * EDGE_SIZE2),							   image->u_phy - (EDGE_SIZE2 * width2 + EDGE_SIZE2 * EDGE_SIZE2));	if (image->v)		xvid_dma_free(image->v - (EDGE_SIZE2 * width2 + EDGE_SIZE2 * EDGE_SIZE2),							   image->v_phy - (EDGE_SIZE2 * width2 + EDGE_SIZE2 * EDGE_SIZE2));#else	if (image->y) {		xvid_free(image->y - (EDGE_SIZE * width + EDGE_SIZE * EDGE_SIZE));	}	if (image->u) {		xvid_free(image->u - (EDGE_SIZE2 * width2 + EDGE_SIZE2 * EDGE_SIZE2));	}	if (image->v) {		xvid_free(image->v - (EDGE_SIZE2 * width2 + EDGE_SIZE2 * EDGE_SIZE2));	}#endif}voidimage_swap(IMAGE * image1,		   IMAGE * image2){	uint8_t *tmp;	tmp = image1->y;	image1->y = image2->y;	image2->y = tmp;	tmp = image1->u;	image1->u = image2->u;	image2->u = tmp;	tmp = image1->v;	image1->v = image2->v;	image2->v = tmp;//	tmp = image1->y_phy;	image1->y_phy = image2->y_phy;	image2->y_phy = tmp;	tmp = image1->u_phy;	image1->u_phy = image2->u_phy;	image2->u_phy = tmp;	tmp = image1->v_phy;	image1->v_phy = image2->v_phy;	image2->v_phy = tmp;}#if 0voidimage_copy(IMAGE * image1,		   IMAGE * image2,		   uint32_t edged_width,		   uint32_t height){	memcpy(image1->y, image2->y, edged_width * height);	memcpy(image1->u, image2->u, edged_width * height / 4);	memcpy(image1->v, image2->v, edged_width * height / 4);}void seq2d(int xdim, int ydim, unsigned char *y_src, unsigned char *u_src, unsigned char *v_src, unsigned char *t_out1){	int x,y,m,n;	unsigned char t_data;	unsigned char *t_out;	int format = 0;	unsigned int output_ybase;	unsigned int output_ubase;	unsigned int output_vbase;	int uv_width;	int uv_height;	switch(format)	{		case 0:			/// 4:2:0		(ㄤ龜琌 4:1:1)					output_ybase	 = 0;			output_ubase     = xdim*ydim;			output_vbase     = xdim*ydim*5/4;						uv_width = 8;			uv_height = 8;			break;					case 1:			/// 4:2:2			output_ybase	 = 0;			output_ubase     = xdim*ydim;			output_vbase     = xdim*ydim*3/2;						uv_width = 8;			uv_height = 16;			break;		case 2:			/// 4:2:0			output_ybase	 = 0;			output_ubase     = xdim*ydim;			output_vbase     = xdim*ydim*5/4;						uv_width = 8;			uv_height = 8;			break;	}		t_out = (t_out1 + output_ybase);	// --------------------------------------------------------------------	//		鑼 Y	// --------------------------------------------------------------------	for(y=0;y<ydim/8;y++) 	{	    for(x=0;x<xdim/8;x++)	    {			for(m=0;m<8;m++)			{				for(n=0;n<8;n++)				{					t_data = *y_src++;					t_out[y*xdim*0x8+x*0x8+m*xdim+n] = t_data;				}			}		}	}			// --------------------------------------------------------------------	//		鑼 U	// --------------------------------------------------------------------	t_out = (t_out1 + output_ubase);	for(y=0;y<ydim/16;y++)	{	    for(x=0;x<xdim/16;x++)	    {			for(m=0; m<uv_height; m++)			{				for(n=0; n<uv_width; n++)				{					t_data = *u_src++;					t_out[ (y*uv_height + m) * ((xdim/16)*uv_width) + x*uv_width + n ] = t_data;				}			}		}	}	// --------------------------------------------------------------------	//		鑼 V	// --------------------------------------------------------------------	t_out = (t_out1 + output_vbase);	for(y=0;y<ydim/16;y++)	{	    for(x=0;x<xdim/16;x++)	    {			for(m=0; m<uv_height; m++)			{				for(n=0; n<uv_width; n++)				{					t_data = *v_src++;					t_out[ (y*uv_height + m) * ((xdim/16)*uv_width) + x*uv_width + n ] = t_data;				}			}		}	}}char tmp_buffer[352*288*2];intimage_output(IMAGE * image,			 uint32_t width,			 int height,			 uint32_t edged_width,			 uint8_t * dst,			 uint32_t dst_stride,			 int csp){	extern int log_file;		switch (csp & ~XVID_CSP_VFLIP) 	{		case XVID_CSP_RGB555:			seq2d(width, height, image->y, image->u, image->v, tmp_buffer);#ifdef CHECK_YUV_OUT			write(log_file, tmp_buffer, width*height*3/2);			/// xvid_write(tmp_buffer, width*height*3/2);#endif			///yv12_to_rgb555(dst, dst_stride, image->y, image->u, image->v, edged_width, edged_width / 2, width, height);			///yv12_to_rgb555(dst, dst_stride, tmp_buffer, &tmp_buffer[width*height], &tmp_buffer[width*height*5/4], edged_width, edged_width / 2, width, height);			yv12_to_rgb555(dst, dst_stride, tmp_buffer, &tmp_buffer[width*height], &tmp_buffer[width*height*5/4], width, width / 2, width, height);			return 0;					case XVID_CSP_I420:			yv12_to_yuv(dst, dst_stride, image->y, image->u, image->v, edged_width,	edged_width / 2, width, height);			return 0;		case XVID_CSP_YV12:		// u,v swapped			yv12_to_yuv(dst, dst_stride, image->y, image->v, image->u, edged_width,	edged_width / 2, width, height);			return 0;	}	return 0;}#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜大片免费观看| www.色综合.com| 综合在线观看色| 欧美一区二区三区日韩| 99在线精品一区二区三区| 麻豆精品久久久| 一区二区三区在线免费| 久久久精品tv| 制服丝袜中文字幕亚洲| 色婷婷综合久久久| 国产激情视频一区二区在线观看| 亚洲午夜国产一区99re久久| 中文av一区特黄| 欧美精品一区二区精品网| 欧美伊人久久大香线蕉综合69| 国产美女久久久久| 丝袜亚洲另类丝袜在线| 亚洲免费观看高清完整版在线观看| 欧美精品一区在线观看| 日韩欧美在线影院| 欧美亚洲国产怡红院影院| 丁香六月久久综合狠狠色| 精品在线免费视频| 污片在线观看一区二区| 一区二区三区四区中文字幕| 亚洲欧洲日韩在线| 国产日韩欧美精品综合| 久久网站最新地址| 久久这里只有精品视频网| 日韩一级欧美一级| 91麻豆精品国产91久久久资源速度| 色天使久久综合网天天| 色婷婷激情久久| 色综合久久久久综合体桃花网| 国产成人精品亚洲777人妖| 国产一区二区在线视频| 国内久久婷婷综合| 激情小说亚洲一区| 国产精品自拍av| 国精产品一区一区三区mba视频 | 欧美三级日韩在线| 91浏览器打开| 色88888久久久久久影院野外| 91欧美一区二区| 色婷婷久久综合| 欧美日韩国产免费| 欧美日韩卡一卡二| 欧美喷潮久久久xxxxx| 欧美人成免费网站| 这里只有精品99re| 日韩欧美激情在线| 精品国产欧美一区二区| 久久亚洲精品国产精品紫薇| 久久久久久97三级| 中文欧美字幕免费| 亚洲一区二区三区国产| 日韩电影在线一区| 精品在线播放午夜| 成人美女在线视频| 欧美丝袜丝交足nylons图片| 欧美日韩视频在线观看一区二区三区| 欧美挠脚心视频网站| 精品毛片乱码1区2区3区| 久久综合九色欧美综合狠狠| 中文成人综合网| 亚洲已满18点击进入久久| 日韩精品成人一区二区三区| 激情综合色播五月| www.亚洲人| 欧美日韩精品一区二区三区 | 国产喂奶挤奶一区二区三区| 国产精品三级在线观看| 亚洲第一搞黄网站| 精品一区二区三区免费毛片爱| 成人一二三区视频| 欧美日韩一区久久| 久久久精品黄色| 亚洲国产aⅴ天堂久久| 国产一区二区在线影院| 色综合久久久久综合体| 欧美一级生活片| 国产精品久久久久影视| 青青国产91久久久久久| 成人精品国产一区二区4080| 欧美视频完全免费看| 久久久国产精华| 亚洲国产日韩精品| 国产综合色在线视频区| 在线观看日韩精品| 国产日韩精品一区二区三区在线| 一级日本不卡的影视| 国产精品一区久久久久| 欧美色男人天堂| 国产午夜精品久久久久久久 | 亚洲最新视频在线观看| 久久99久久99小草精品免视看| 色婷婷综合激情| 久久精品无码一区二区三区| 亚洲r级在线视频| 91婷婷韩国欧美一区二区| 欧美mv日韩mv国产网站| 亚洲成av人片一区二区梦乃 | 欧美日韩一区二区三区高清| 国产农村妇女精品| 美日韩一区二区三区| 色素色在线综合| 国产精品国产三级国产普通话蜜臀 | www.亚洲色图.com| 日韩精品一区二区三区四区| 亚洲一线二线三线视频| fc2成人免费人成在线观看播放| 日韩欧美你懂的| 亚洲综合色婷婷| 91欧美激情一区二区三区成人| 国产欧美一区二区三区沐欲| 亚洲18色成人| 欧美亚洲尤物久久| 一区二区高清在线| 一本久道中文字幕精品亚洲嫩| 国产精品免费免费| 国产91精品免费| 精品88久久久久88久久久| 热久久国产精品| 欧美色视频在线| 亚洲黄色在线视频| 色综合久久88色综合天天6| 国产精品嫩草99a| 在线观看一区日韩| 亚洲欧美日韩久久| 91网站最新网址| 亚洲欧美日韩国产综合| 色综合天天综合网国产成人综合天 | 日韩亚洲欧美在线| 日韩不卡一二三区| 日韩精品专区在线| 六月丁香综合在线视频| 日韩欧美专区在线| 久久99国产精品免费网站| 日韩欧美国产系列| 久久精品国产99国产| 日韩免费高清电影| 国产一区在线不卡| 国产女人18水真多18精品一级做 | 日本高清免费不卡视频| 亚洲女人的天堂| 欧美图区在线视频| 日本在线观看不卡视频| 欧美电影免费观看高清完整版在 | 精品电影一区二区三区| 国产自产v一区二区三区c| 久久精品一区二区三区av | 日韩一区二区三区三四区视频在线观看 | 久久综合久久综合亚洲| 国产精品1024久久| 国产精品毛片大码女人| 色综合久久99| 日本网站在线观看一区二区三区| 欧美一级高清片| 国产精品亚洲一区二区三区妖精| 中文字幕电影一区| 在线一区二区观看| 日韩主播视频在线| 国产亚洲精品超碰| 91影院在线免费观看| 亚洲成人综合网站| 欧美成人精品福利| eeuss鲁片一区二区三区| 一区二区三区高清在线| 日韩一区二区三区视频在线观看| 国产精品一区2区| 亚洲精品乱码久久久久| 在线播放国产精品二区一二区四区| 久久成人羞羞网站| ...xxx性欧美| 欧美一区日韩一区| 成人激情电影免费在线观看| 午夜影视日本亚洲欧洲精品| 久久久久久久免费视频了| 91福利视频久久久久| 精品一区二区日韩| 亚洲欧美一区二区久久| 欧美一区午夜视频在线观看| 不卡视频在线看| 强制捆绑调教一区二区| 亚洲欧洲一区二区在线播放| 日韩一区二区三区四区| 94-欧美-setu| 精品亚洲porn| 亚洲国产成人porn| 中文字幕制服丝袜一区二区三区| 国产精品沙发午睡系列990531| 欧洲一区在线观看| 国产成人欧美日韩在线电影| 日韩精品福利网| 成人免费视频在线观看| 精品国产百合女同互慰| 欧美三级中文字| 成人福利在线看| 韩国三级在线一区| 亚洲成年人影院|