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

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

?? yuv2rgb_mmx.cpp

?? DRAWYUV程序是用于攝像頭的數據回放,用了directshow,可以用在VC和wince都可
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
                 uint8_t *puc_u, uint8_t *puc_v, int stride_uv, 
                 uint8_t *puc_out,	int width_y, int height_y,
				 unsigned int _stride_out) {


	int y, horiz_count;
	int stride_out = width_y * 2;

	if (height_y < 0) {
		/* we are flipping our output upside-down */
		height_y  = -height_y;
		puc_y     += (height_y   - 1) * stride_y ;
		puc_u     += (height_y/2 - 1) * stride_uv;
		puc_v     += (height_y/2 - 1) * stride_uv;
		stride_y  = -stride_y;
		stride_uv = -stride_uv;
	}

	horiz_count = -(width_y >> 3);

	for (y=0; y<height_y; y++) {
	
		_asm {
			push eax
			push ebx
			push ecx
			push edx
			push edi

			mov eax, puc_out       
			mov ebx, puc_y       
			mov ecx, puc_u       
			mov edx, puc_v
			mov edi, horiz_count
			
		horiz_loop:

			// load data
			movd mm2, [ecx]					 ; mm2 = ________u3u2u1u0
			movd mm3, [edx]					 ; mm3 = ________v3v2v1v0
			movq mm0, [ebx]          ; mm0 = y7y6y5y4y3y2y1y0  

			pxor mm7, mm7						 ; zero mm7

			// convert chroma part
			punpcklbw mm2, mm7       ; mm2 = __u3__u2__u1__u0
			punpcklbw mm3, mm7       ; mm3 = __v3__v2__v1__v0
			psubw mm2, mmw_0x0080    ; mm2 -= 128
			psubw mm3, mmw_0x0080    ; mm3 -= 128
			psllw mm2, 3             ; mm2 *= 8
			psllw mm3, 3             ; mm3 *= 8
			movq mm4, mm2            ; mm4 = mm2 = u
			movq mm5, mm3            ; mm5 = mm3 = v
			pmulhw mm2, mmw_mult_U_G ; mm2 *= u green coeff 
			pmulhw mm3, mmw_mult_V_G ; mm3 *= v green coeff  
			pmulhw mm4, mmw_mult_U_B ; mm4 = blue chroma
			pmulhw mm5, mmw_mult_V_R ; mm5 = red chroma
			paddsw mm2, mm3					 ; mm2 = green chroma

			// convert luma part
			psubusb mm0, mmb_0x10    ; mm0 -= 16
			movq mm1, mmw_0x00ff     ; mm1 = 00ff00ff00ff00ff 
			psrlw mm0, 8             ; mm0 = __y7__y5__y3__y1 luma odd
			pand mm1, mm0            ; mm1 = __y6__y4__y2__y0 luma even
			psllw mm0, 3             ; mm0 *= 8
			psllw mm1, 3             ; mm1 *= 8
			pmulhw mm0, mmw_mult_Y   ; mm0 luma odd *= luma coeff 
			pmulhw mm1, mmw_mult_Y   ; mm1 luma even *= luma coeff 

			// complete the matrix calc with the addictions
			movq mm3, mm4						 ; copy blue chroma
			movq mm6, mm5						 ; copy red chroma
			movq mm7, mm2						 ; copy green chroma
			paddsw mm3, mm0					 ; mm3 = luma odd + blue chroma
			paddsw mm4, mm1					 ; mm4 = luma even + blue chroma
			paddsw mm6, mm0					 ; mm6 = luma odd + red chroma
			paddsw mm5, mm1					 ; mm5 = luma even + red chroma
			paddsw mm7, mm0					 ; mm7 = luma odd + green chroma
			paddsw mm2, mm1					 ; mm2 = luma even + green chroma
			// clipping
			packuswb mm3, mm3
			packuswb mm4, mm4
			packuswb mm6, mm6
			packuswb mm5, mm5
			packuswb mm7, mm7
			packuswb mm2, mm2
			// interleave odd and even parts
			punpcklbw mm4, mm3			 ; mm4 = b7b6b5b4b3b2b1b0 blue
			punpcklbw mm5, mm6			 ; mm5 = r7r6r5r4r3r2r1r0 red
			punpcklbw mm2, mm7			 ; mm2 = g7g6g5g4g3g2g1g0 green

			// mask not needed bits (using 555)
			pand mm4, mask_5
			pand mm5, mask_5
			pand mm2, mask_5

			// mix colors and write

			psrlw mm4, 3						 ; mm4 = blue shifted
			pand mm4, mask_blue			 ; mask the blue again
			pxor mm7, mm7						 ; zero mm7
			movq mm1, mm4						 ; mm1 = copy blue
			movq mm3, mm5						 ; mm3 = copy red
			movq mm6, mm2						 ; mm6 = copy green

			punpckhbw mm1, mm7
			punpckhbw mm3, mm7
			punpckhbw mm6, mm7
			psllw mm6, 2						 ; shift green
			psllw mm3, 7						 ; shift red
			por mm6, mm3
			por mm6, mm1
			movq 8[eax], mm6

			punpcklbw mm2, mm7			 ; mm2 = __g3__g2__g1__g0 already masked
			punpcklbw mm5, mm7
			punpcklbw mm4, mm7
			psllw mm2, 2						 ; shift green
			psllw mm5, 7						 ; shift red
			por mm2, mm5
			por mm2, mm4
			movq [eax], mm2

			add ebx, 8               ; puc_y   += 8;
			add ecx, 4               ; puc_u   += 4;
			add edx, 4               ; puc_v   += 4;
			add eax, 16              ; puc_out += 16 // wrote 16 bytes

			inc edi
			jne horiz_loop			

			pop edi 
			pop edx 
			pop ecx
			pop ebx 
			pop eax

			emms
						
		}
		puc_y   += stride_y;
		if (y%2) {
			puc_u   += stride_uv;
			puc_v   += stride_uv;
		}
		puc_out += stride_out;
	}
}

/***/

#define _S(a)		(a)>255 ? 255 : (a)<0 ? 0 : (a)

#define _R(y,u,v) (0x2568*(y)  			       + 0x3343*(u)) /0x2000
#define _G(y,u,v) (0x2568*(y) - 0x0c92*(v) - 0x1a1e*(u)) /0x2000
#define _B(y,u,v) (0x2568*(y) + 0x40cf*(v))					     /0x2000

#define _mR	0x7c00
#define _mG 0x03e0
#define _mB 0x001f

#define _Ps565(r,g,b) ( ((r & 0xF8) >> 3) | (((g & 0xF8) << 3)) | (((b & 0xF8) << 8)) )


void yuv2rgb_565(uint8_t *puc_y, int stride_y, 
                uint8_t *puc_u, uint8_t *puc_v, int stride_uv, 
                uint8_t *puc_out, int width_y, int height_y,
								unsigned int _stride_out) 
{

	int y, horiz_count;
	unsigned short * pus_out;
	int stride_out = width_y * 2;

	if (height_y < 0) {
		/* we are flipping our output upside-down */
		height_y  = -height_y;
		puc_y     += (height_y   - 1) * stride_y ;
		puc_u     += (height_y/2 - 1) * stride_uv;
		puc_v     += (height_y/2 - 1) * stride_uv;
		stride_y  = -stride_y;
		stride_uv = -stride_uv;
	}
	pus_out = (unsigned short *) puc_out;

	horiz_count = -(width_y >> 3);

	for (y=0; y<height_y; y++) 
	{
		/***
		for (x=0; x<width_y; x++)
		{
			signed int _r,_g,_b; 
			signed int r, g, b;
			signed int y, u, v;

			y = puc_y[x] - 16;
			u = puc_u[x>>1] - 128;
			v = puc_v[x>>1] - 128;

			_r = _R(y,u,v);
			_g = _G(y,u,v);
			_b = _B(y,u,v);

			r = _S(_r);
			g = _S(_g);
			b = _S(_b);

			pus_out[0] = (unsigned short) _Ps565(r,g,b);

			pus_out++;
		}
		***/

		_asm {
			push eax
			push ebx
			push ecx
			push edx
			push edi

			mov eax, puc_out       
			mov ebx, puc_y       
			mov ecx, puc_u       
			mov edx, puc_v
			mov edi, horiz_count
			
		horiz_loop:

			// load data
			movd mm2, [ecx]					 ; mm2 = ________u3u2u1u0
			movd mm3, [edx]					 ; mm3 = ________v3v2v1v0
			movq mm0, [ebx]          ; mm0 = y7y6y5y4y3y2y1y0  

			pxor mm7, mm7						 ; zero mm7

			// convert chroma part
			punpcklbw mm2, mm7       ; mm2 = __u3__u2__u1__u0
			punpcklbw mm3, mm7       ; mm3 = __v3__v2__v1__v0
			psubw mm2, mmw_0x0080    ; mm2 -= 128
			psubw mm3, mmw_0x0080    ; mm3 -= 128
			psllw mm2, 3             ; mm2 *= 8
			psllw mm3, 3             ; mm3 *= 8
			movq mm4, mm2            ; mm4 = mm2 = u
			movq mm5, mm3            ; mm5 = mm3 = v
			pmulhw mm2, mmw_mult_U_G ; mm2 *= u green coeff 
			pmulhw mm3, mmw_mult_V_G ; mm3 *= v green coeff  
			pmulhw mm4, mmw_mult_U_B ; mm4 = blue chroma
			pmulhw mm5, mmw_mult_V_R ; mm5 = red chroma
			paddsw mm2, mm3					 ; mm2 = green chroma

			// convert luma part
			psubusb mm0, mmb_0x10    ; mm0 -= 16
			movq mm1, mmw_0x00ff     ; mm1 = 00ff00ff00ff00ff 
			psrlw mm0, 8             ; mm0 = __y7__y5__y3__y1 luma odd
			pand mm1, mm0            ; mm1 = __y6__y4__y2__y0 luma even
			psllw mm0, 3             ; mm0 *= 8
			psllw mm1, 3             ; mm1 *= 8
			pmulhw mm0, mmw_mult_Y   ; mm0 luma odd *= luma coeff 
			pmulhw mm1, mmw_mult_Y   ; mm1 luma even *= luma coeff 

			// complete the matrix calc with the addictions
			movq mm3, mm4						 ; copy blue chroma
			movq mm6, mm5						 ; copy red chroma
			movq mm7, mm2						 ; copy green chroma
			paddsw mm3, mm0					 ; mm3 = luma odd + blue chroma
			paddsw mm4, mm1					 ; mm4 = luma even + blue chroma
			paddsw mm6, mm0					 ; mm6 = luma odd + red chroma
			paddsw mm5, mm1					 ; mm5 = luma even + red chroma
			paddsw mm7, mm0					 ; mm7 = luma odd + green chroma
			paddsw mm2, mm1					 ; mm2 = luma even + green chroma
			// clipping
			packuswb mm3, mm3
			packuswb mm4, mm4
			packuswb mm6, mm6
			packuswb mm5, mm5
			packuswb mm7, mm7
			packuswb mm2, mm2
			// interleave odd and even parts
			punpcklbw mm4, mm3			 ; mm4 = b7b6b5b4b3b2b1b0 blue
			punpcklbw mm5, mm6			 ; mm5 = r7r6r5r4r3r2r1r0 red
			punpcklbw mm2, mm7			 ; mm2 = g7g6g5g4g3g2g1g0 green

			// mask not needed bits (using 555)
			pand mm4, mask_5
			pand mm5, mask_5
			pand mm2, mask_5

			// mix colors and write

			psrlw mm4, 3						 ; mm4 = red shifted
			pand mm4, mask_blue			 ; mask the blue again
			pxor mm7, mm7						 ; zero mm7
			movq mm1, mm5						 ; mm1 = copy blue
			movq mm3, mm4						 ; mm3 = copy red
			movq mm6, mm2						 ; mm6 = copy green

			punpckhbw mm1, mm7
			punpckhbw mm3, mm7
			punpckhbw mm6, mm7
			psllw mm6, 3						 ; shift green
			psllw mm1, 8						 ; shift blue
			por mm6, mm3
			por mm6, mm1
			movq 8[eax], mm6

			punpcklbw mm2, mm7			 ; mm2 = __g3__g2__g1__g0 already masked
			punpcklbw mm4, mm7
			punpcklbw mm5, mm7
			psllw mm2, 3						 ; shift green
			psllw mm5, 8						 ; shift blue
			por mm2, mm4
			por mm2, mm5
			movq [eax], mm2

			add ebx, 8               ; puc_y   += 8;
			add ecx, 4               ; puc_u   += 4;
			add edx, 4               ; puc_v   += 4;
			add eax, 16              ; puc_out += 16 // wrote 16 bytes

			inc edi
			jne horiz_loop			

			pop edi 
			pop edx 
			pop ecx
			pop ebx 
			pop eax

			emms
						
		}
		/***/

		puc_y   += stride_y;
		if (y%2) {
			puc_u   += stride_uv;
			puc_v   += stride_uv;
		}
		puc_out += stride_out;
	}
}

/***/






 

/**** YUV -> YUV conversions (more-or-less straight copy) - still in development ****/

void yuy2_out(uint8_t *puc_y, int stride_y, 
  uint8_t *puc_u, uint8_t *puc_v, int stride_uv, 
  uint8_t *puc_out, int width_y, int height_y,
	unsigned int stride_out) 
{ 
	int y;
	uint8_t* puc_out2;
	unsigned int stride_diff = 4 * stride_out - 2 * width_y; // expressed in bytes

	if (height_y < 0) {
		/* we are flipping our output upside-down */
		height_y  = -height_y;
		puc_y     += (height_y   - 1) * stride_y ;
		puc_u     += (height_y/2 - 1) * stride_uv;
		puc_v     += (height_y/2 - 1) * stride_uv;
		stride_y  = -stride_y;
		stride_uv = -stride_uv;
	}
	puc_out2 = puc_out + 2 * stride_out;
	for (y=height_y/2; y; y--) {
		register uint8_t *py, *py2, *pu, *pv;
		register int x;
		uint32_t tmp;

		py = puc_y;
		py2 = puc_y + stride_y;
		pu = puc_u;
		pv = puc_v;
		for (x=width_y/2; x; x--) {
			tmp = *(py++);
			tmp |= *(pu++) << 8;
			tmp |= *(py++) << 16;
			tmp |= *(pv++) << 24;
			*(uint32_t*)puc_out=tmp;
			puc_out += 4;

			tmp &= 0xFF00FF00;
			tmp |= *(py2++);
			tmp |= *(py2++) << 16;
			*(uint32_t*)puc_out2=tmp;
			puc_out2 += 4;
		}

		puc_y += 2*stride_y;
		puc_u += stride_uv;
		puc_v += stride_uv;

		puc_out += stride_diff;
		puc_out2 += stride_diff;
	}

}

/*** YUV 4:2:0 -> UYVY ***/

void uyvy_out(uint8_t *puc_y, int stride_y, 
  uint8_t *puc_u, uint8_t *puc_v, int stride_uv, 
  uint8_t *puc_out, int width_y, int height_y,
	unsigned int stride_out) 
{ 
	int y;
	uint8_t* puc_out2;
	unsigned int stride_diff = 4 * stride_out - 2 * width_y; // expressed in bytes

	if (height_y < 0) {
		/* we are flipping our output upside-down */
		height_y  = -height_y;
		puc_y     += (height_y   - 1) * stride_y ;
		puc_u     += (height_y/2 - 1) * stride_uv;
		puc_v     += (height_y/2 - 1) * stride_uv;
		stride_y  = -stride_y;
		stride_uv = -stride_uv;
	}
	puc_out2 = puc_out + 2 * stride_out;
	for (y=height_y/2; y; y--) {
		register uint8_t *py, *py2, *pu, *pv;
		register int x;
		uint32_t tmp;

		py = puc_y;
		py2 = puc_y + stride_y;
		pu = puc_u;
		pv = puc_v;
		for (x=width_y/2; x; x--) {
			tmp = *(pu++);
			tmp |= *(py++) << 8;
			tmp |= *(pv++) << 16;
			tmp |= *(py++) << 24;
			*(uint32_t*)puc_out=tmp;
			puc_out += 4;

			tmp &= 0x00FF00FF;
			tmp |= *(py2++) << 8;
			tmp |= *(py2++) << 24;
			*(uint32_t*)puc_out2=tmp;
			puc_out2 += 4;
		}

		puc_y += 2*stride_y;
		puc_u += stride_uv;
		puc_v += stride_uv;

		puc_out += stride_diff;
		puc_out2 += stride_diff;
	}

}


/*** YUV edged -> YUV conversion (just remove the edges for YV12) ***/

void yuv12_out(uint8_t *puc_y, int stride_y, 
  uint8_t *puc_u, uint8_t *puc_v, int stride_uv, 
  uint8_t *puc_out, int width_y, int height_y,
	unsigned int stride_out) 
{ 
	int i;

	unsigned char * pauc_out[3];

	if (height_y < 0) {
		// we are flipping our output upside-down
		height_y = -height_y;
		puc_y     += (height_y   - 1) * stride_y ;
		puc_u     += (height_y/2 - 1) * stride_uv;
		puc_v     += (height_y/2 - 1) * stride_uv;
		stride_y  = -stride_y;
		stride_uv = -stride_uv;
	}

	pauc_out[0] = puc_out;
	pauc_out[1] = puc_out + stride_out * height_y;
	pauc_out[2] = puc_out + stride_out * height_y * 5 / 4;

	for (i=0; i<height_y; i++) {
		
		memcpy(pauc_out[0], puc_y, width_y);

		pauc_out[0] += stride_out;
		puc_y += stride_y;
	}

	for (i=0; i<height_y/2; i++) {
		
		memcpy(pauc_out[2], puc_u, width_y/2); // U and V buffer must be inverted
		memcpy(pauc_out[1], puc_v, width_y/2);

		pauc_out[1] += stride_out/2;
		pauc_out[2] += stride_out/2;
		puc_u += stride_uv;
		puc_v += stride_uv;
	}
}

/***/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久99| 久久久美女艺术照精彩视频福利播放| 精品一区二区免费视频| 免费在线观看成人| 蜜臀99久久精品久久久久久软件 | 久久久久久黄色| 精品88久久久久88久久久| 欧美xxxx在线观看| 久久久久久毛片| 亚洲人成电影网站色mp4| 一区二区三区日韩欧美精品| 亚洲一区二区av在线| 天堂av在线一区| 国产一区二三区| 99久久免费国产| 欧美另类z0zxhd电影| www久久久久| 综合激情成人伊人| 亚洲福利视频导航| 久久国产精品72免费观看| 国产乱码精品1区2区3区| 成人久久视频在线观看| 91激情五月电影| 欧美va亚洲va香蕉在线| 久久精品一区四区| 亚洲午夜精品在线| 国产精品影视天天线| 色综合久久中文字幕综合网| 制服丝袜国产精品| 中文字幕+乱码+中文字幕一区| 亚洲精选免费视频| 国产一区二区影院| 欧美手机在线视频| 日本一区二区高清| 日韩在线一区二区三区| av激情成人网| 日韩精品一区二区三区老鸭窝 | 欧美一级免费大片| 久久精子c满五个校花| 亚洲成人在线免费| 91同城在线观看| 久久综合久久久久88| 亚洲观看高清完整版在线观看 | 一区二区三区四区不卡视频 | 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 久久夜色精品国产欧美乱极品| 国产精品福利av| 激情小说亚洲一区| 精品视频一区二区三区免费| 欧美激情艳妇裸体舞| 老司机一区二区| 欧美高清www午色夜在线视频| 国产精品福利一区| 国产乱码精品一区二区三区av| 538prom精品视频线放| 亚洲色图一区二区三区| 岛国精品在线播放| 久久久久久久久久久久久久久99 | 欧美无砖专区一中文字| 亚洲色图在线播放| www.亚洲色图| 久久久久久黄色| 国产在线麻豆精品观看| 日韩欧美中文字幕精品| 轻轻草成人在线| 欧美日韩高清在线| 日韩影视精彩在线| 91精品国产综合久久福利| 亚洲18影院在线观看| 欧美性生活一区| 夜夜嗨av一区二区三区网页 | 一区二区三区四区高清精品免费观看| 国产精品99久久久久| 久久久综合激的五月天| 国产精品一区在线观看乱码| 久久人人97超碰com| 狠狠色丁香久久婷婷综合_中| 精品国产亚洲一区二区三区在线观看| 首页国产欧美日韩丝袜| 日韩午夜激情视频| 国产一区在线看| 国产精品天干天干在观线| 国产·精品毛片| 亚洲视频1区2区| 欧美日韩一区二区欧美激情| 人人狠狠综合久久亚洲| 精品国产91久久久久久久妲己| 国产福利精品一区二区| 亚洲欧洲www| 欧美日韩国产美| 久久丁香综合五月国产三级网站| 久久综合色婷婷| 91免费观看国产| 日韩av电影免费观看高清完整版 | 欧美一区二区免费| 国内成+人亚洲+欧美+综合在线| 久久久不卡网国产精品一区| 91亚洲精品乱码久久久久久蜜桃| 亚洲一区二区在线视频| 欧美精品一区二区三区视频| 成人影视亚洲图片在线| 午夜欧美在线一二页| 日韩欧美电影一区| 成人午夜av电影| 日韩电影在线看| 国产精品色哟哟| 6080亚洲精品一区二区| 风间由美一区二区三区在线观看| 亚洲一二三级电影| 国产欧美综合色| 69av一区二区三区| 99精品欧美一区二区三区小说| 午夜激情久久久| 国产精品久久一卡二卡| 日韩欧美在线影院| 日本久久电影网| 成人午夜大片免费观看| 人人狠狠综合久久亚洲| 国产精品国产三级国产aⅴ中文| 日韩一区二区中文字幕| 在线亚洲一区二区| 国产精品一区三区| 日本欧美一区二区在线观看| 亚洲色图一区二区| 久久精品视频免费| 日韩精品影音先锋| 欧美精品久久久久久久久老牛影院| 国产91精品精华液一区二区三区| 午夜激情久久久| 亚洲国产美国国产综合一区二区| 欧美激情一区三区| 久久久久久麻豆| 久久只精品国产| 欧美mv日韩mv| 91精品福利在线一区二区三区 | 精品国产在天天线2019| 91福利精品第一导航| 99国产精品久久久久久久久久| 国产精品伊人色| 国产乱一区二区| 狠狠色狠狠色综合日日91app| 欧美bbbbb| 蜜桃一区二区三区在线| 午夜精品久久久久久久99樱桃 | 久久综合九色欧美综合狠狠 | bt欧美亚洲午夜电影天堂| 国产专区综合网| 国产精品一区二区在线观看网站 | 日本特黄久久久高潮| 亚洲成人精品一区二区| 亚洲成人精品一区| 日韩电影在线观看电影| 日韩制服丝袜av| 麻豆91在线看| 国产一区二三区| 成人97人人超碰人人99| 99视频超级精品| 欧洲色大大久久| 日韩欧美高清在线| 久久久777精品电影网影网| 国产欧美日本一区二区三区| 欧美国产精品v| 亚洲欧美日韩国产综合在线| 亚洲国产成人高清精品| 美女视频一区在线观看| 国产美女精品在线| 色综合天天综合狠狠| 欧美日韩亚洲综合在线 | 中文字幕在线不卡国产视频| 亚洲天堂av一区| 亚洲国产成人av好男人在线观看| 日韩av一区二区在线影视| 国内成人免费视频| 色94色欧美sute亚洲13| 欧美电影一区二区| www久久精品| 亚洲黄色小视频| 精品中文字幕一区二区小辣椒| 国产成人午夜片在线观看高清观看| 色综合夜色一区| 日韩视频永久免费| 中文字幕一区二区三区在线观看| 亚洲成人动漫在线免费观看| 国产伦精品一区二区三区在线观看 | 在线视频国内自拍亚洲视频| 欧美一区二区成人| 中文字幕一区二区三区不卡| 午夜欧美2019年伦理| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美性三三影院| 久久女同性恋中文字幕| 亚洲已满18点击进入久久| 狠狠狠色丁香婷婷综合激情| 91高清视频在线| 久久免费的精品国产v∧| 午夜久久福利影院| 91社区在线播放| 欧美国产一区在线| 久久国产精品色婷婷| 欧美日韩aaa|