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

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

?? colorspace.c

?? 基于Linux的ffmepg decoder
?? C
字號:
#include <string.h>				// memcpy#include "colorspace.h"#include "../divx4.h"			// DEC_PICTURE// function pointers/* output */color_outputFuncPtr yv12_to_rgb555;color_outputFuncPtr yv12_to_yuv;#define MIN(A,B)	((A)<(B)?(A):(B))#define MAX(A,B)	((A)>(B)?(A):(B))#define SCALEBITS_IN	8#define FIX_IN(x)		((uint16_t) ((x) * (1L<<SCALEBITS_IN) + 0.5))int32_t RGB_Y_tab[256];int32_t B_U_tab[256];int32_t G_U_tab[256];int32_t G_V_tab[256];int32_t R_V_tab[256];/*	yuv -> rgb def's */#define RGB_Y_OUT		1.164#define B_U_OUT			2.018#define Y_ADD_OUT		16#define G_U_OUT			0.391#define G_V_OUT			0.813#define U_ADD_OUT		128#define R_V_OUT			1.596#define V_ADD_OUT		128#define SCALEBITS_OUT	13#define FIX_OUT(x)		((uint16_t) ((x) * (1L<<SCALEBITS_OUT) + 0.5))/* initialize rgb lookup tables */voidcolorspace_init(void){	int32_t i;	for (i = 0; i < 256; i++) {		RGB_Y_tab[i] = FIX_OUT(RGB_Y_OUT) * (i - Y_ADD_OUT);		B_U_tab[i] = FIX_OUT(B_U_OUT) * (i - U_ADD_OUT);		G_U_tab[i] = FIX_OUT(G_U_OUT) * (i - U_ADD_OUT);		G_V_tab[i] = FIX_OUT(G_V_OUT) * (i - V_ADD_OUT);		R_V_tab[i] = FIX_OUT(R_V_OUT) * (i - V_ADD_OUT);	}}/* yuv 4:2:0 planar -> rgb555 + very simple error diffusion*/#define MK_RGB555(R,G,B)	((MAX(0,MIN(255, R)) << 7) & 0x7c00) | \							((MAX(0,MIN(255, G)) << 2) & 0x03e0) | \							((MAX(0,MIN(255, B)) >> 3) & 0x001f) | 0x8000voidyv12_to_rgb555_c(uint8_t * dst,				 int dst_stride,				 uint8_t * y_src,				 uint8_t * u_src,				 uint8_t * v_src,				 int y_stride,				 int uv_stride,				 int width,				 int height){	const uint32_t dst_dif = 4 * dst_stride - 2 * width;	int32_t y_dif = 2 * y_stride - width;	uint8_t *dst2 = dst + 2 * dst_stride;	uint8_t *y_src2 = y_src + y_stride;	uint32_t x, y;		if (height < 0) {		height = -height;		y_src += (height - 1) * y_stride;		y_src2 = y_src - y_stride;		u_src += (height / 2 - 1) * uv_stride;		v_src += (height / 2 - 1) * uv_stride;		y_dif = -width - 2 * y_stride;		uv_stride = -uv_stride;	}	for (y = height / 2; y; y--) {		int r, g, b;		int r2, g2, b2;		r = g = b = 0;		r2 = g2 = b2 = 0;		// process one 2x2 block per iteration		for (x = 0; x < (uint32_t) width / 2; x++) {			int u, v;			int b_u, g_uv, r_v, rgb_y;			u = u_src[x];			v = v_src[x];			b_u = B_U_tab[u];			g_uv = G_U_tab[u] + G_V_tab[v];			r_v = R_V_tab[v];			rgb_y = RGB_Y_tab[*y_src];			b = (b & 0x7) + ((rgb_y + b_u) >> SCALEBITS_OUT);			g = (g & 0x7) + ((rgb_y - g_uv) >> SCALEBITS_OUT);			r = (r & 0x7) + ((rgb_y + r_v) >> SCALEBITS_OUT);			*(uint16_t *) dst = MK_RGB555(r, g, b);			y_src++;			rgb_y = RGB_Y_tab[*y_src];			b = (b & 0x7) + ((rgb_y + b_u) >> SCALEBITS_OUT);			g = (g & 0x7) + ((rgb_y - g_uv) >> SCALEBITS_OUT);			r = (r & 0x7) + ((rgb_y + r_v) >> SCALEBITS_OUT);			*(uint16_t *) (dst + 2) = MK_RGB555(r, g, b);			y_src++;			rgb_y = RGB_Y_tab[*y_src2];			b2 = (b2 & 0x7) + ((rgb_y + b_u) >> SCALEBITS_OUT);			g2 = (g2 & 0x7) + ((rgb_y - g_uv) >> SCALEBITS_OUT);			r2 = (r2 & 0x7) + ((rgb_y + r_v) >> SCALEBITS_OUT);			*(uint16_t *) (dst2) = MK_RGB555(r2, g2, b2);			y_src2++;			rgb_y = RGB_Y_tab[*y_src2];			b2 = (b2 & 0x7) + ((rgb_y + b_u) >> SCALEBITS_OUT);			g2 = (g2 & 0x7) + ((rgb_y - g_uv) >> SCALEBITS_OUT);			r2 = (r2 & 0x7) + ((rgb_y + r_v) >> SCALEBITS_OUT);			*(uint16_t *) (dst2 + 2) = MK_RGB555(r2, g2, b2);			y_src2++;			dst += 4;			dst2 += 4;		}		dst += dst_dif;		dst2 += dst_dif;		y_src += y_dif;		y_src2 += y_dif;		u_src += uv_stride;		v_src += uv_stride;	}}#ifdef not_complete_yetvoidyv12_to_rgb555_c(uint8_t * dst,				 int dst_stride,				 uint8_t * y_src,				 uint8_t * u_src,				 uint8_t * v_src,				 int y_stride,				 int uv_stride,				 int width,				 int height){	const uint32_t dst_dif = 4 * dst_stride - 2 * width;	int32_t y_dif = 2 * y_stride - width;	uint8_t *dst2 = dst + 2 * dst_stride;	uint8_t *y_src2 = y_src + y_stride;	uint32_t x, y;	int uv_pos;	int y_pos;	if (height < 0) {		height = -height;		y_src += (height - 1) * y_stride;		y_src2 = y_src - y_stride;		u_src += (height / 2 - 1) * uv_stride;		v_src += (height / 2 - 1) * uv_stride;		y_dif = -width - 2 * y_stride;		uv_stride = -uv_stride;	}	for (y = height / 2; y; y--) 	///for (y=0; y<height/2; ++y)	{		int r, g, b;		int r2, g2, b2;		r = g = b = 0;		r2 = g2 = b2 = 0;		// process one 2x2 block per iteration		for (x = 0; x < (uint32_t) width / 2; x++) {			int u, v;			int b_u, g_uv, r_v, rgb_y;			uv_pos =  (y/8) * (8*uv_stride) + (x/8) * 64 + ( (y - y/8*8) * 8 + (x - x/8*8) );						u = u_src[uv_pos];			///u = u_src[x];			v = v_src[uv_pos];			///v = v_src[x];			b_u = B_U_tab[u];			g_uv = G_U_tab[u] + G_V_tab[v];			r_v = R_V_tab[v];			y_pos = (y/8) * (16*y_stride) + (x/8) * 256 + ( (y - y/8*8) * 2 * 16 + (x - x/8*8)*2 );						rgb_y = RGB_Y_tab[y_pos];			/// rgb_y = RGB_Y_tab[*y_src];			b = (b & 0x7) + ((rgb_y + b_u) >> SCALEBITS_OUT);			g = (g & 0x7) + ((rgb_y - g_uv) >> SCALEBITS_OUT);			r = (r & 0x7) + ((rgb_y + r_v) >> SCALEBITS_OUT);			*(uint16_t *) dst = MK_RGB555(r, g, b);						++y_pos;								/// y_src++;			rgb_y = RGB_Y_tab[y_pos];				/// rgb_y = RGB_Y_tab[*y_src];			b = (b & 0x7) + ((rgb_y + b_u) >> SCALEBITS_OUT);			g = (g & 0x7) + ((rgb_y - g_uv) >> SCALEBITS_OUT);			r = (r & 0x7) + ((rgb_y + r_v) >> SCALEBITS_OUT);			*(uint16_t *) (dst + 2) = MK_RGB555(r, g, b);			y_pos = y_pos + 15;					/// ==> ( 16 - 1)			rgb_y = RGB_Y_tab[y_pos];			/// rgb_y = RGB_Y_tab[*y_src2];			b2 = (b2 & 0x7) + ((rgb_y + b_u) >> SCALEBITS_OUT);			g2 = (g2 & 0x7) + ((rgb_y - g_uv) >> SCALEBITS_OUT);			r2 = (r2 & 0x7) + ((rgb_y + r_v) >> SCALEBITS_OUT);			*(uint16_t *) (dst2) = MK_RGB555(r2, g2, b2);			++y_pos;			rgb_y = RGB_Y_tab[y_pos];			/// rgb_y = RGB_Y_tab[*y_src2];			b2 = (b2 & 0x7) + ((rgb_y + b_u) >> SCALEBITS_OUT);			g2 = (g2 & 0x7) + ((rgb_y - g_uv) >> SCALEBITS_OUT);			r2 = (r2 & 0x7) + ((rgb_y + r_v) >> SCALEBITS_OUT);			*(uint16_t *) (dst2 + 2) = MK_RGB555(r2, g2, b2);			dst += 4;			dst2 += 4;		}		dst += dst_dif;		dst2 += dst_dif;///		y_src += y_dif;///		y_src2 += y_dif;///		u_src += uv_stride;///		v_src += uv_stride;	}}#endif /* end_of_not *//*	yuv 4:2:0 planar -> yuv planar */voidyv12_to_yuv_c(uint8_t * dst,			  int dst_stride,			  uint8_t * y_src,			  uint8_t * u_src,			  uint8_t * v_src,			  int y_stride,			  int uv_stride,			  int width,			  int height){	uint32_t dst_stride2 = dst_stride >> 1;	uint32_t width2 = width >> 1;	uint32_t y;	if (height < 0) {		height = -height;		y_src += (height - 1) * y_stride;		u_src += (height / 2 - 1) * uv_stride;		v_src += (height / 2 - 1) * uv_stride;		y_stride = -y_stride;		uv_stride = -uv_stride;	}	for (y = height; y; y--) {		memcpy(dst, y_src, width);		dst += dst_stride;		y_src += y_stride;	}	for (y = height >> 1; y; y--) {		memcpy(dst, u_src, width2);		dst += dst_stride2;		u_src += uv_stride;	}	for (y = height >> 1; y; y--) {		memcpy(dst, v_src, width2);		dst += dst_stride2;		v_src += uv_stride;	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线精品不卡| 亚洲va中文字幕| 国产综合成人久久大片91| 国产精品污污网站在线观看| 欧美色区777第一页| 免费成人av在线| 亚洲国产视频在线| 中文字幕一区二区在线播放| 日韩欧美电影在线| 欧美一区二区女人| 色综合久久久久综合99| 成人精品亚洲人成在线| 国产精品一区不卡| 精久久久久久久久久久| 激情小说亚洲一区| 精品一区二区三区免费观看| 精品一区二区三区不卡| 男男视频亚洲欧美| 麻豆国产欧美日韩综合精品二区 | 亚洲欧洲日产国码二区| 国产精品久久久久久久久免费樱桃 | 亚洲女同ⅹxx女同tv| 《视频一区视频二区| 亚洲欧美综合在线精品| 亚洲欧美经典视频| 日韩在线a电影| 精品一区二区三区在线观看| 久久精品国产亚洲5555| 国产麻豆一精品一av一免费 | 欧美人牲a欧美精品| 精品国产一区二区三区久久影院 | 一个色妞综合视频在线观看| 亚洲3atv精品一区二区三区| 久久99国内精品| 99视频精品免费视频| 欧美久久一区二区| 国产人伦精品一区二区| 亚洲国产精品综合小说图片区| 免费黄网站欧美| 91精彩视频在线观看| 在线电影一区二区三区| 中文字幕免费在线观看视频一区| 亚洲精品大片www| 国产一区二区三区在线观看免费视频 | 国产成人精品一区二区三区网站观看 | 成人动漫一区二区在线| 欧美精品v国产精品v日韩精品 | 久久av资源站| 欧美日韩中文字幕精品| 中文字幕一区二区三区四区| 婷婷激情综合网| 91国在线观看| |精品福利一区二区三区| 国产精品伊人色| 日韩一区二区三区高清免费看看| 伊人一区二区三区| aaa欧美大片| 欧美韩国日本综合| 国产精品亚洲一区二区三区在线 | 91久久精品网| 亚洲精品你懂的| 91麻豆精品秘密| 亚洲色图制服诱惑| 91丨九色丨蝌蚪丨老版| 国产三级三级三级精品8ⅰ区| 美洲天堂一区二卡三卡四卡视频| 在线播放中文一区| 日韩制服丝袜先锋影音| 日韩一二在线观看| 国产精品123| 中文在线免费一区三区高中清不卡| 麻豆freexxxx性91精品| 91福利视频网站| 亚洲午夜精品在线| 日韩一区二区三区四区 | 在线综合视频播放| 美女网站色91| 中文天堂在线一区| 在线看国产一区| 美腿丝袜一区二区三区| 国产情人综合久久777777| 91同城在线观看| 美腿丝袜亚洲一区| 中文字幕日韩一区| 欧美三区在线观看| 久久精品国产网站| 中文字幕中文乱码欧美一区二区| 91国内精品野花午夜精品| 蜜臀久久99精品久久久久久9| 日韩精品一区二区三区视频播放 | 亚洲a一区二区| 91热门视频在线观看| 美女网站色91| 依依成人精品视频| 久久精品一区四区| 欧美日韩美女一区二区| 国产大陆精品国产| 婷婷久久综合九色综合伊人色| 国产日产欧美一区二区视频| 欧美日韩免费高清一区色橹橹| 国产乱码字幕精品高清av| 天堂影院一区二区| 自拍偷拍亚洲激情| 国产精品欧美久久久久一区二区| 69av一区二区三区| 欧美午夜在线一二页| 不卡一区在线观看| 不卡电影免费在线播放一区| 久久国产精品72免费观看| 亚洲成人精品一区二区| 亚洲人成人一区二区在线观看| 国产欧美日韩中文久久| 欧美亚洲综合在线| 一本大道av伊人久久综合| 成人av在线资源网站| 国产成人超碰人人澡人人澡| 黑人巨大精品欧美一区| 蜜桃视频第一区免费观看| 蜜桃91丨九色丨蝌蚪91桃色| 免费精品99久久国产综合精品| 日本aⅴ免费视频一区二区三区| 亚洲国产精品综合小说图片区| 亚洲柠檬福利资源导航| 亚洲综合色成人| 五月激情六月综合| 激情综合网最新| 蜜桃av一区二区在线观看| 国产一区二区三区四区五区美女 | 99久免费精品视频在线观看| 91视频在线观看| 欧美无乱码久久久免费午夜一区| 欧美日韩精品一区二区三区 | 亚洲精品va在线观看| 五月天网站亚洲| 粉嫩绯色av一区二区在线观看| 波多野结衣在线一区| 欧美性猛交xxxx黑人交| 制服.丝袜.亚洲.另类.中文| 精品乱人伦小说| 亚洲精品视频观看| 麻豆91免费观看| 在线视频国产一区| 精品国产电影一区二区| 国产精品第五页| 一区二区三区蜜桃| 国产一区二区三区观看| 欧美日韩在线综合| 久久―日本道色综合久久| 亚洲综合丝袜美腿| 国产成人精品亚洲777人妖| 欧美色综合影院| 国产精品超碰97尤物18| 国内精品国产三级国产a久久| 欧美视频在线观看一区二区| 久久久久久久久久久黄色| 亚洲chinese男男1069| 97精品久久久午夜一区二区三区| 久久影院午夜片一区| 亚洲午夜精品一区二区三区他趣| 国产v日产∨综合v精品视频| 欧美一区二区成人6969| 亚洲成人黄色小说| 日本久久一区二区| 亚洲素人一区二区| 成人动漫中文字幕| 国产精品久久毛片a| 国产一区二区免费视频| 精品久久久三级丝袜| 久久成人免费电影| 精品国产乱子伦一区| 国产一区在线观看视频| 亚洲精品一区二区三区蜜桃下载| 天天做天天摸天天爽国产一区| 在线一区二区三区四区五区 | 国产精品视频第一区| 大胆欧美人体老妇| 亚洲男女一区二区三区| 欧美在线观看禁18| 蜜桃av一区二区| 国产无人区一区二区三区| 蜜臀久久久久久久| 日韩欧美高清dvd碟片| 国产精品亚洲第一| 一区二区视频免费在线观看| 欧美日韩五月天| 国产成人在线影院| 国产一区不卡视频| 激情五月婷婷综合网| 亚洲免费观看高清完整版在线观看 | 国产无人区一区二区三区| 成人性生交大合| 午夜精品福利一区二区三区蜜桃| 精品美女在线观看| 在线免费不卡电影| 国产美女精品在线| 亚洲gay无套男同| 欧美成人video| 成人免费精品视频| 蜜桃av一区二区在线观看| 亚洲男人的天堂网|