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

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

?? rotator.c

?? 三星 s3c6400測試代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/**************************************************************************************
* 
*	Project Name : S3C6400 Validation
*
*	Copyright 2006 by Samsung Electronics, Inc.
*	All rights reserved.
*
*	Project Description :
*		This software is only for validating functions of the S3C6400.
*		Anybody can use this software without our permission.
*  
*--------------------------------------------------------------------------------------
* 
*	File Name : rotator.c
*  
*	File Description : This file includes the API functions for rotator.
*
*	Author : Sekwang Kim
*	Dept. : AP Development Team
*	Created Date : 2007/01/25
*	Version : 0.1a 
* 
*	History
*	- 
* 	- 
*  
**************************************************************************************/


#include "system.h"
#include "lcd.h"
#include "glib.h"
#include "glib_font.h"
#include "rotator.h"
#include "camera.h"
#include "post.h"
#include "timer.h"
#include "intc.h"



// Header file for text drawing
#include <stdio.h>
#include <string.h>
#include <stdarg.h>

#define	rROTATOR_CTRLCFG				(ROTATOR_BASE+0x00)
#define	rROTATOR_SRCADDRREG0			(ROTATOR_BASE+0x04)
#define	rROTATOR_SRCADDRREG1			(ROTATOR_BASE+0x08)
#define	rROTATOR_SRCADDRREG2			(ROTATOR_BASE+0x0c)
#define	rROTATOR_SRCSIZEREG			(ROTATOR_BASE+0x10)
#define	rROTATOR_DESTADDRREG0		(ROTATOR_BASE+0x18)
#define	rROTATOR_DESTADDRREG1		(ROTATOR_BASE+0x1c)
#define	rROTATOR_DESTADDRREG2		(ROTATOR_BASE+0x20)
#define	rROTATOR_STATCFG				(ROTATOR_BASE+0x2c)


ROTATOR oROTATOR;
volatile bool bRotatorDone;
volatile bool bPostIntOccured;

static POST oPost;
static POST oSc;


void ROTATOR_GetFrmSz(u16 *usRotHorSize, u16 *usRotVerSize)
{
	u32 uSize;

	uSize=Inp32(rROTATOR_SRCSIZEREG);
	*usRotHorSize=(u16)(uSize&0xffff);
	*usRotVerSize=(u16)((uSize>>16)&0xffff);

}
void ROTATOR_GetFbAddr(u32 *uRotSrcAddr, u32 *uRotDstAddr)
{
	*uRotSrcAddr=Inp32(rROTATOR_SRCADDRREG0);
	*uRotDstAddr=Inp32(rROTATOR_DESTADDRREG0);

}
void ROTATOR_GetBppMode(CSPACE *eBpp)
{

	u32 uCTRLCFG;
	uCTRLCFG=Inp32(rROTATOR_CTRLCFG);
	switch((uCTRLCFG)&(0x7<<13)) {
		case ROTATOR_BIT_IN_YC420:
			*eBpp=YC420;
			break;
		case ROTATOR_BIT_IN_YC422:
//			*eBpp=YC422;
			*eBpp=YCBYCR;
			break;
		case ROTATOR_BIT_IN_RGB565:
			*eBpp=RGB16;
			break;
		case ROTATOR_BIT_IN_RGB888:
			*eBpp=RGB24;
			break;
		default:
			Assert(0);
			break;
	}
}

void ROTATOR_GetLcdFbAddr(u32 *uLcdFbAddr0, u32 *uLcdFbAddr1)
{
	*uLcdFbAddr0=oROTATOR.m_uLcdFbAddr0;
	*uLcdFbAddr1=oROTATOR.m_uLcdFbAddr1;	
}

void ROTATOR_DrawImage(CSPACE eBpp, u16 usRotHorSize, u16 usRotVerSize, u32 uRotSrcAddr)
{
#ifdef NATURALIMAGE
	u32 i,j,k;
#endif	

	GLIB_InitInstance(uRotSrcAddr, usRotHorSize, usRotVerSize, eBpp);	

#ifdef NATURALIMAGE
	k=0;
	switch(eBpp) {
		case YC420:
			break;
		case YCBYCR:
		case YCRYCB:			
		case CBYCRY:	
			break;
		case RGB16:
			if(usRotHorSize==240) {
				for(j=0; j<usRotVerSize; j++)
					for(i=0; i<usRotHorSize; i++)
						GLIB_PutPixel2(i, j, sun240320_16bpp[k++]);
			}
			else if(usRotHorSize==320) {
				for(j=0; j<usRotVerSize; j++)
					for(i=0; i<usRotHorSize; i++)
						GLIB_PutPixel2(i, j, sun320240_16bpp[k++]);
			}	
			else ;
			break;	
		case RGB24:
			if(usRotHorSize==240) {
				for(j=0; j<usRotVerSize; j++)
					for(i=0; i<usRotHorSize; i++)
						GLIB_PutPixel2(i, j, sun240320_24bpp[k++]);
			}
			else if(usRotHorSize==320) {
				for(j=0; j<usRotVerSize; j++)
					for(i=0; i<usRotHorSize; i++)
						GLIB_PutPixel2(i, j, sun320240_24bpp[k++]);
			}	
			else ;
			break;
		default:
			Assert(0);
			break;
	}
#else
	GLIB_DrawPattern(usRotHorSize, usRotVerSize);
#endif
}

bool ROTATOR_CompFbData(CSPACE eBpp, ROTATOR_ROT_TYPE eRotType, u32 uSrcWidth, u32 uSrcHeight, u32 uInX, u32 uInY, 
	                                                 u32 uRotWidth, u32 uRotHeight, u32 uRotX, u32 uRotY, u32 uSrcFbAddr, u32 uRotFbAddr)
{
	u32 uOrgData, uRotData;
	u8 ucOrgDataY, ucOrgDataCb0, ucOrgDataCr0;
	u8 ucOrgDataCb1, ucOrgDataCr1;
	u8 ucRotDataY, ucRotDataCb, ucRotDataCr;	
	u32 uTempData0, uTempData1;

	uOrgData=uRotData=0;

	switch(eBpp) {
		case RGB16:
			uOrgData = (u32)(*(volatile unsigned short *)(uSrcFbAddr + (uInY*uSrcWidth +uInX)*2));
			uRotData = (u32)(*(volatile unsigned short *)(uRotFbAddr + (uRotY*uRotWidth +uRotX)*2));
			break;
		case RGB24:
			uOrgData = *(volatile unsigned int *)(uSrcFbAddr + (uInY*uSrcWidth +uInX)*4);
			uRotData = *(volatile unsigned int *)(uRotFbAddr + (uRotY*uRotWidth +uRotX)*4);
			break;
		case YC420:
			ucOrgDataY   = *(volatile unsigned char *)(uSrcFbAddr + (uInY*uSrcWidth +uInX));
			ucOrgDataCb0 = *(volatile unsigned char *)(uSrcFbAddr + uSrcWidth*uSrcHeight + (uInY/2*uSrcWidth/2 +uInX/2));
			ucOrgDataCr0 = *(volatile unsigned char *)(uSrcFbAddr + uSrcWidth*uSrcHeight + uSrcWidth*uSrcHeight/4 +(uInY/2*uSrcWidth/2 +uInX/2));
			uOrgData=(ucOrgDataY<<16)|(ucOrgDataCb0<<8)|(ucOrgDataCr0);
			ucRotDataY   = *(volatile unsigned char *)(uRotFbAddr + (uRotY*uRotWidth +uRotX));
			ucRotDataCb = *(volatile unsigned char *)(uRotFbAddr + uRotWidth*uRotHeight + (uRotY/2*uRotWidth/2 +uRotX/2));
			ucRotDataCr  = *(volatile unsigned char *)(uRotFbAddr + uRotWidth*uRotHeight + uRotWidth*uRotHeight/4 +(uRotY/2*uRotWidth/2 +uRotX/2));			
			uRotData=(ucRotDataY<<16)|(ucRotDataCb<<8)|(ucRotDataCr);
			break;
		case YCRYCB:			
		case YCBYCR:
		case CBYCRY:
			if(eRotType == ROTATOR_TYPE_ROT_90 || eRotType==ROTATOR_TYPE_ROT_270) {
				uTempData0   = *(volatile unsigned int *)(uSrcFbAddr + (uInY*uSrcWidth/2 +uInX/2)*4);
				uTempData1   = (uInY%2) ? *(volatile unsigned int *)(uSrcFbAddr + ((uInY-1)*uSrcWidth/2 +uInX/2)*4) :
										*(volatile unsigned int *)(uSrcFbAddr + ((uInY+1)*uSrcWidth/2 +uInX/2)*4);
				ucOrgDataY =  (uTempData0>>((((uInX)%2)*16)))&0xff;
				ucOrgDataCb0= (uTempData0>>24)&0xff;
				ucOrgDataCr0= (uTempData0>>8)&0xff;
				ucOrgDataCb1= (uTempData1>>24)&0xff;
				ucOrgDataCr1= (uTempData1>>8)&0xff;
				uOrgData=(ucOrgDataY<<16)|(((ucOrgDataCb0+ucOrgDataCb1)/2)<<8)|((ucOrgDataCr0+ucOrgDataCr1)/2);
				uTempData0   = *(volatile unsigned int *)(uRotFbAddr + (uRotY*uRotWidth/2 +uRotX/2)*4);
				ucRotDataY =  (uTempData0>>((((uRotX)%2)*16)))&0xff;
				ucRotDataCb= (uTempData0>>24)&0xff;
				ucRotDataCr= (uTempData0>>8)&0xff;			
				uRotData=(ucRotDataY<<16)|(ucRotDataCb<<8)|(ucRotDataCr);	
			}
			else {
				uTempData0   = *(volatile unsigned int *)(uSrcFbAddr + (uInY*uSrcWidth/2 +uInX/2)*4);
				ucOrgDataY =  (uTempData0>>((((uInX)%2)*16)))&0xff;
				ucOrgDataCb0= (uTempData0>>24)&0xff;
				ucOrgDataCr0= (uTempData0>>8)&0xff;
				uOrgData=(ucOrgDataY<<16)|(ucOrgDataCb0<<8)|(ucOrgDataCr0);
				uTempData0   = *(volatile unsigned int *)(uRotFbAddr + (uRotY*uRotWidth/2 +uRotX/2)*4);
				ucRotDataY =  (uTempData0>>((((uRotX)%2)*16)))&0xff;
				ucRotDataCb= (uTempData0>>24)&0xff;
				ucRotDataCr= (uTempData0>>8)&0xff;			
				uRotData=(ucRotDataY<<16)|(ucRotDataCb<<8)|(ucRotDataCr);				
			}
			break;
		default:
			break;
	}
	if(uOrgData != uRotData) {
		printf("[0x%x, 0x%x]=0x%x, [0x%x,0x%x]=0x%x\n", uInX, uInY, uOrgData, uRotX, uRotY, uRotData);
		return false;
	}	
	else	 return true;
}

void ROTATOR_GetRotateCoordinate(u32 uSrcX, u32 uSrcY, u32 uSrcWidth, u32 uSrcHeight, ROTATOR_ROT_TYPE eRotType, 
	                                                               u32 *uRotX, u32 *uRotY, u32 *uRotWidth, u32 *uRotHeight) 
{

	switch(eRotType) {
		case  ROTATOR_TYPE_ROT_90 : // No Rotate. bypass.
			*uRotX = uSrcHeight-1-uSrcY;
			*uRotY = uSrcX;
			*uRotWidth=uSrcHeight;
			*uRotHeight=uSrcWidth;
			break;
		case  ROTATOR_TYPE_ROT_180 : // 90 degree Rotation
			*uRotX = uSrcWidth-1-uSrcX;
			*uRotY = uSrcHeight-1-uSrcY;
			*uRotWidth=uSrcWidth;
			*uRotHeight=uSrcHeight;
			break;
		case  ROTATOR_TYPE_ROT_270 : // 180 degree Rotation
			*uRotX = uSrcY;
			*uRotY = uSrcWidth-1-uSrcX;
			*uRotWidth=uSrcHeight;
			*uRotHeight=uSrcWidth;
			break;
		case  ROTATOR_TYPE_FLIP_HOR: // 270 degree Rotation
			*uRotX = uSrcWidth-1-uSrcX;
			*uRotY = uSrcY;
			*uRotWidth=uSrcWidth;
			*uRotHeight=uSrcHeight;
			break;
		case ROTATOR_TYPE_FLIP_VER: // X-flip
			*uRotX = uSrcX;
			*uRotY = uSrcHeight-1-uSrcY;
			*uRotWidth=uSrcWidth;
			*uRotHeight=uSrcHeight;			
			break;
		default :
			Assert(0);
			break;
	}
}


bool ROTATOR_AuditOperation(CSPACE eBpp, u32 uWidth, u32 uHeight, ROTATOR_ROT_TYPE eRotType, 
	                                                    u32 uInFbAddr, u32 uOutFbAddr)
{
	u32 i,j;
	u32 uRotX, uRotY;
	u32 uRotWidth, uRotHeight;


	for(j=0; j<uHeight; j++)
		for(i=0; i<uWidth; i++) {
			ROTATOR_GetRotateCoordinate(i, j, uWidth, uHeight, eRotType, &uRotX, &uRotY, &uRotWidth, &uRotHeight);
			if(!ROTATOR_CompFbData(eBpp, eRotType, uWidth, uHeight, i, j, uRotWidth, uRotHeight, uRotX, uRotY, uInFbAddr, uOutFbAddr)) return false;
		}	
	return true;
}

void __irq ROTATOR_PostISR(void)
{
	bPostIntOccured = TRUE;
	POST_ClearPending(&oPost);
	INTC_ClearVectAddr();
}


void ROTATOR_ConvertColorSpace(CSPACE eInFmt, u32 uInFbAddr, u32 uWidth, u32 uHeight, CSPACE eOutFmt, u32 uOutFbAddr)
{

	INTC_Enable(9);
	INTC_SetVectAddr(9, ROTATOR_PostISR);
	POST_EnableInterrupt(POST_LEVEL_INT, &oPost);

	bPostIntOccured=0;
	POST_InitIpForDmaInDmaOut(uWidth, uHeight, uInFbAddr, eInFmt, 
								uWidth, uHeight, uOutFbAddr, eOutFmt,
								1, FALSE, ONE_SHOT, &oPost);
	//POST_InitIpForDmaInDmaOut(	uImgHSz, uImgVSz, uGlibStAddr, eSrcDataFmt, 
	//							uLcdHSz, uLcdVSz, uPostStAddr, eMidDataFmt,
	//							1, FALSE, ONE_SHOT, &oPost);	
	POST_StartProcessing(&oPost);
	while(!bPostIntOccured);
	bPostIntOccured=0;
	POST_DisableInterrupt(&oPost);
	POST_ClearPending(&oPost);	
	INTC_Disable(9);	
}


void ROTATOR_SetAddr (CSPACE eBpp, u32 uFbAddr, u16 usHorSize, u16 usVerSize)
{
	u32 uOffset;

	Outp32(rROTATOR_SRCADDRREG0, uFbAddr);
	oROTATOR.m_uSrcAddr0=uFbAddr;

	uOffset=usHorSize*usVerSize;
	switch(eBpp) {
		case YC420:
			Outp32(rROTATOR_SRCADDRREG1, uFbAddr+uOffset);
			Outp32(rROTATOR_SRCADDRREG2, uFbAddr+uOffset+uOffset/4);
			Outp32(rROTATOR_DESTADDRREG0, uFbAddr+uOffset+uOffset/2);
			Outp32(rROTATOR_DESTADDRREG1, uFbAddr+uOffset*2+uOffset/2);
			Outp32(rROTATOR_DESTADDRREG2, uFbAddr+uOffset*2+uOffset/2+uOffset/4);
			oROTATOR.m_uSrcAddr1=uFbAddr+uOffset;
			oROTATOR.m_uSrcAddr2=uFbAddr+uOffset+uOffset/4;
			oROTATOR.m_uDstAddr0=uFbAddr+uOffset+uOffset/2;
			oROTATOR.m_uDstAddr1=uFbAddr+uOffset*2+uOffset/2;
			oROTATOR.m_uDstAddr2=uFbAddr+uOffset*2+uOffset/2+uOffset/4;
			break;
		case YCRYCB:	
		case YCBYCR:
		case CBYCRY:	
			Outp32(rROTATOR_SRCADDRREG1, 0);
			Outp32(rROTATOR_SRCADDRREG2, 0);
			Outp32(rROTATOR_DESTADDRREG0, uFbAddr+uOffset*2);
			Outp32(rROTATOR_DESTADDRREG1, 0);
			Outp32(rROTATOR_DESTADDRREG2, 0);			
			oROTATOR.m_uSrcAddr1=0;
			oROTATOR.m_uSrcAddr2=0;
			oROTATOR.m_uDstAddr0=uFbAddr+uOffset*2;
			oROTATOR.m_uDstAddr1=0;
			oROTATOR.m_uDstAddr2=0;			
			break; 
		case RGB16:
			Outp32(rROTATOR_SRCADDRREG1, 0);
			Outp32(rROTATOR_SRCADDRREG2, 0);
			Outp32(rROTATOR_DESTADDRREG0, uFbAddr+uOffset*2);
			Outp32(rROTATOR_DESTADDRREG1, 0);
			Outp32(rROTATOR_DESTADDRREG2, 0);
			oROTATOR.m_uSrcAddr1=0;
			oROTATOR.m_uSrcAddr2=0;
			oROTATOR.m_uDstAddr0=uFbAddr+uOffset*2;
			oROTATOR.m_uDstAddr1=0;
			oROTATOR.m_uDstAddr2=0;
			break;
		case RGB24:
			Outp32(rROTATOR_SRCADDRREG1, 0);
			Outp32(rROTATOR_SRCADDRREG2, 0);
			Outp32(rROTATOR_DESTADDRREG0, uFbAddr+uOffset*4);
			Outp32(rROTATOR_DESTADDRREG1, 0);
			Outp32(rROTATOR_DESTADDRREG2, 0);
			oROTATOR.m_uSrcAddr1=0;
			oROTATOR.m_uSrcAddr2=0;
			oROTATOR.m_uDstAddr0=uFbAddr+uOffset*4;
			oROTATOR.m_uDstAddr1=0;
			oROTATOR.m_uDstAddr2=0;				
			break;
		default:
			Assert(0);
			break;
	}
	
}

void ROTATOR_SetSrcAddr(CSPACE eBpp, u32 uFbAddr, u16 usHorSize, u16 usVerSize)
{
	u32 uOffset;

	Outp32(rROTATOR_SRCADDRREG0, uFbAddr);
	oROTATOR.m_uSrcAddr0=uFbAddr;

	uOffset=usHorSize*usVerSize;
	switch(eBpp) {
		case YC420:
			Outp32(rROTATOR_SRCADDRREG1, uFbAddr+uOffset);
			Outp32(rROTATOR_SRCADDRREG2, uFbAddr+uOffset+uOffset/4);
			oROTATOR.m_uSrcAddr1=uFbAddr+uOffset;
			oROTATOR.m_uSrcAddr2=uFbAddr+uOffset+uOffset/4;
			break;
		case YCRYCB:	
		case YCBYCR:
		case CBYCRY:	

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区毛片| 不卡电影一区二区三区| 国产精品欧美经典| 国产91清纯白嫩初高中在线观看| 精品免费一区二区三区| 91麻豆免费视频| 另类人妖一区二区av| 依依成人综合视频| 国产精品免费免费| 欧美一级生活片| 在线日韩一区二区| 国产91精品久久久久久久网曝门| 五月天一区二区三区| 亚洲乱码一区二区三区在线观看| 国产目拍亚洲精品99久久精品| 欧美中文字幕久久| 在线视频一区二区三| 国内一区二区在线| 亚洲国产美女搞黄色| 中文字幕欧美激情一区| 久久看人人爽人人| 久久久精品tv| 国产女人18毛片水真多成人如厕 | 不卡av电影在线播放| 国产乱对白刺激视频不卡| 久久电影网站中文字幕| 奇米精品一区二区三区在线观看 | 国产精品夫妻自拍| 国产欧美一区二区在线| 中文字幕高清一区| 亚洲人精品一区| 一区二区三区四区精品在线视频| 亚洲免费观看高清完整| 一区二区三区在线视频观看 | 天堂成人国产精品一区| 亚洲美女精品一区| 亚洲午夜精品久久久久久久久| 亚洲你懂的在线视频| 国产精品久久免费看| 亚洲免费观看高清完整版在线| 亚洲123区在线观看| 黄网站免费久久| 成人一道本在线| 欧美日韩一级二级| 欧美日本一区二区三区| 久久综合九色综合欧美98| 欧美mv和日韩mv的网站| 国产精品不卡在线| 理论片日本一区| 色视频成人在线观看免| 精品美女在线播放| 一区二区不卡在线播放| 精品一区二区三区影院在线午夜| 国产不卡免费视频| 欧美日韩国产色站一区二区三区| 日韩一级片在线观看| 国产精品夫妻自拍| 久久精品国产精品亚洲红杏| 99免费精品视频| 2欧美一区二区三区在线观看视频| 亚洲精品v日韩精品| 成人午夜电影小说| 精品国产a毛片| 亚洲成人在线网站| 91久久奴性调教| 久久精品视频一区| 精品一区二区三区在线视频| 337p亚洲精品色噜噜狠狠| 亚洲欧美激情插| 色女孩综合影院| 久久久噜噜噜久噜久久综合| 日日夜夜精品视频免费| 欧美视频三区在线播放| 一区二区三区四区精品在线视频| 色综合久久久久网| 国产精品理论片| 国产精品一级黄| 中文字幕成人av| 成人app网站| 亚洲欧美视频在线观看视频| 91丨九色porny丨蝌蚪| 亚洲婷婷综合久久一本伊一区| 精品久久久三级丝袜| 人人超碰91尤物精品国产| 精品久久久久久无| 99国产欧美另类久久久精品| 久久综合色婷婷| 国产成人av电影在线| 亚洲天堂中文字幕| 欧美怡红院视频| 国产成人av资源| 亚洲欧美国产77777| 久久久久久免费网| 欧美伊人久久大香线蕉综合69| 91福利视频久久久久| 国内精品久久久久影院薰衣草| 亚洲美女精品一区| 中文字幕精品三区| 日韩免费一区二区三区在线播放| 一本一道波多野结衣一区二区| 国产精品一区二区91| 日韩在线一区二区三区| 亚洲精品你懂的| 亚洲免费在线视频| 国产精品久久精品日日| 久久久久青草大香线综合精品| 7777精品久久久大香线蕉| 色av成人天堂桃色av| 成人免费毛片片v| 成人毛片老司机大片| 国内精品嫩模私拍在线| 韩国女主播一区二区三区| 日韩成人av影视| 美女一区二区在线观看| 美腿丝袜亚洲综合| 国产一区二区视频在线播放| 国产毛片精品国产一区二区三区| 国产在线麻豆精品观看| 国产精一区二区三区| 国产精品一区在线观看你懂的| 美女国产一区二区| 激情欧美一区二区| 国产成人日日夜夜| www.99精品| 91浏览器入口在线观看| 欧美精品一二三区| 欧美精品一区二| 最新国产成人在线观看| 亚洲一线二线三线视频| 毛片av一区二区| 在线亚洲免费视频| 欧美日韩精品欧美日韩精品一综合| 精品视频一区二区不卡| 精品对白一区国产伦| 国产精品美女久久久久av爽李琼| 中文字幕一区二区三区不卡 | 成人综合婷婷国产精品久久 | 欧美日韩一区二区三区免费看| 欧美日本不卡视频| 久久久久国产成人精品亚洲午夜 | 欧美在线你懂的| 久久综合色综合88| 亚洲国产综合色| 国产精品一区二区男女羞羞无遮挡 | 色94色欧美sute亚洲线路一ni | 亚洲福利电影网| 狠狠色丁香婷婷综合| 欧美日韩在线三区| 国产精品白丝在线| 国产一区二区三区蝌蚪| 欧美区一区二区三区| 综合精品久久久| 国产91露脸合集magnet| 日韩欧美精品在线视频| 亚洲综合999| 欧美色精品在线视频| 国产精品久久久久久亚洲毛片| 久久电影网电视剧免费观看| 欧美丝袜第三区| 亚洲精选在线视频| 99精品视频一区二区三区| 欧美国产1区2区| 国产精品亚洲第一区在线暖暖韩国| 欧美日本韩国一区二区三区视频| 亚洲丝袜自拍清纯另类| 成人av资源下载| 国产精品久久久一本精品| 成人网男人的天堂| 欧美国产欧美亚州国产日韩mv天天看完整 | 欧美午夜视频网站| 亚洲曰韩产成在线| 欧美日本视频在线| 美女视频网站久久| 欧美电影免费观看高清完整版在 | 亚洲桃色在线一区| 欧美体内she精视频| 亚洲国产一区二区视频| 欧美三级电影网站| 男女男精品视频| 久久久五月婷婷| 色94色欧美sute亚洲线路二| 亚洲夂夂婷婷色拍ww47| 日韩美女视频在线| 国产精品夜夜嗨| 亚洲精品自拍动漫在线| 91精品国产综合久久久久久久久久| 国产真实乱子伦精品视频| 久久网这里都是精品| 99久久精品国产导航| 日韩精品亚洲专区| 国产精品久久久久影院老司| 欧美私模裸体表演在线观看| 久久成人免费电影| 亚洲激情图片一区| 日韩免费福利电影在线观看| 91老师国产黑色丝袜在线| 视频在线观看一区| 国产精品视频一二| 日韩免费电影网站| 欧美视频在线观看一区二区|