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

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

?? camera.cpp

?? EVC下的程序
?? CPP
?? 第 1 頁 / 共 3 頁
字號:

#include <windows.h>

#include <nkintr.h>
#include <oalintr.h>
//#include <p2.h> 
#include <pm.h>
#include "pmplatform.h"

#include "s2440.h"
#include "camif.h"
#include "camera.h"

#define MSG_EN_1	0
#define MSG_EN_2	0
//#define RETAILMSG(a,b)	RETAILMSG(1,b)	

#define DOTNET_DRIVER 1 // 0:PPC, 1:CE.NET

#define CAPTURE_TIME		30
#define DISPLAY_SCHEDULE	0

#define U8	unsigned char
#define U16	unsigned short
#define U32	unsigned int

#define	PORT_A 1
#define	PORT_B 0


// Added 25 May 2004 for debug
#ifdef DEBUG
#define ZONE_INIT	1
#define ZONE_THREAD	1
#endif

#define	YCbCrtoR(Y,Cb,Cr)	(1000*Y + 1540*(Cr-128))/1000
#define	YCbCrtoG(Y,Cb,Cr)	(1000*Y - 459*(Cb-128) - 183*(Cr-128))/1000
#define	YCbCrtoB(Y,Cb,Cr)	(1000*Y + 1856*(Cb-128))/1000

volatile IOPreg 	*s2440IOP = (IOPreg *)IOP_BASE;
volatile CAMreg 	*s2440CAM = (CAMreg *)CAM_BASE;
volatile INTreg 	*s2440INT = (INTreg *)INT_BASE;
volatile CLKPWRreg	*s2440PWR = (CLKPWRreg *)CLKPWR_BASE;
volatile IICreg		*s2440IIC = (IICreg *)IIC_BASE;;

unsigned int DisplayTime = INFINITE;
//unsigned char DisplayEnable=0;
unsigned char buffer_num=0xff;		// ping pong buffer

unsigned char image_size = 2;				// 1: QCIF, 2:CIF (default)

//#define DRIVER_PREVIEW_ENABLE		2	// 0: onTimeTek, 1: Preview, 2:Samsung Camcorder
unsigned char DRIVER_PREVIEW_ENABLE = 2;	// 0: onTimeTek, 1: Preview, 2:Samsung Camcorder	

unsigned int frame_count=0;			// for MPEG4
DWORD Tick_GET_FRAME_CUR;
DWORD Tick_GET_FRAME_PREV;
DWORD Tick_COPY_FRAME;

HANDLE CameraThread;
HANDLE CameraEvent;
static BOOL mInitialized = FALSE;

unsigned char codec_flag=0;
unsigned char rgb_flag=0;
unsigned int y_address,cb_address,cr_address;
unsigned int rgb_address;
extern void Camera_Initialize();
extern volatile IOPreg *s2440IOP;
extern volatile IICreg *s2440IIC;

extern void ReadCameraProductID(void);

void Virtual_Alloc();						// Virtual allocation
void Camera_Clock(unsigned char divide);	// set default value
void Camif_Capture(int cap_a, int cap_b);	// A port, B port
void Display_Cam_Image(U32 pos_x, U32 pos_y, U32 size_x, U32 size_y, U8 port);
void Copy_Cam_Image(U8 * pBufOut, U32 size_x, U32 size_y, U8 port);
void Samsung_camcoder(U8 *pBufOut);
void Samsung_camcoder_pr(U8 *pBufOut);
void Buffer_codec_info_update();
void Buffer_preview_info_update();
BOOL Cam_Init();
BOOL CamClockOn(BOOL bOnOff);
//void CamCaptureStart(U32 mode);

void CamInit(U32 CoDstWidth, U32 CoDstHeight, U32 PrDstWidth, U32 PrDstHeight, 
			U32 WinHorOffset, U32 WinVerOffset,  U32 CoFrameBuffer, U32 PrFrameBuffer);

DWORD CameraCaptureThread(void);
BOOL InitInterruptThread();

CEDEVICE_POWER_STATE m_Dx;

#ifdef DEBUG
DBGPARAM dpCurSettings = {
    TEXT("CAMERA"), {
        TEXT("0"),TEXT("1"),TEXT("2"),TEXT("3"),
        TEXT("4"),TEXT("5"),TEXT("6"),TEXT("7"),
        TEXT("8"),TEXT("9"),TEXT("10"),TEXT("11"),
        TEXT("12"),TEXT("Function"),TEXT("Init"),TEXT("Error")},
    0x8000  // Errors only, by default
}; 
#endif


static void Delay(USHORT count)
{
	volatile int i, j = 0;
	volatile static int loop = S2440FCLK/100000;
	
	for(;count > 0;count--)
		for(i=0;i < loop; i++) { j++; }
}


/********************************************************
 CalculateBurstSize - Calculate the busrt lengths
 
 Description:	
 - dstHSize: the number of the byte of H Size.
 
*/
void CalculateBurstSize(unsigned int hSize,unsigned int *mainBurstSize,unsigned int *remainedBurstSize)
{
	unsigned int tmp;	
	tmp=(hSize/4)%16;
	switch(tmp) {
		case 0:
			*mainBurstSize=16;
			*remainedBurstSize=16;
			break;
		case 4:
			*mainBurstSize=16;
			*remainedBurstSize=4;
			break;
		case 8:
			*mainBurstSize=16;
			*remainedBurstSize=8;
			break;
		default: 
			tmp=(hSize/4)%8;
			switch(tmp) {
				case 0:
					*mainBurstSize=8;
					*remainedBurstSize=8;
					break;
				case 4:
					*mainBurstSize=8;
					*remainedBurstSize=4;
				default:
					*mainBurstSize=4;
					tmp=(hSize/4)%4;
					*remainedBurstSize= (tmp) ? tmp: 4;
					break;
			}
			break;
	}		    	    		
}

/********************************************************
 CalculatePrescalerRatioShift - none
 
 Description:	
 - none
 
*/
void CalculatePrescalerRatioShift(unsigned int SrcSize, unsigned int DstSize, unsigned int *ratio,unsigned int *shift)
{
	if(SrcSize>=64*DstSize) {
//		Uart_Printf("ERROR: out of the prescaler range: SrcSize/DstSize = %d(< 64)\r\n",SrcSize/DstSize);
		while(1);
	}
	else if(SrcSize>=32*DstSize) {
		*ratio=32;
		*shift=5;
	}
	else if(SrcSize>=16*DstSize) {
		*ratio=16;
		*shift=4;
	}
	else if(SrcSize>=8*DstSize) {
		*ratio=8;
		*shift=3;
	}
	else if(SrcSize>=4*DstSize) {
		*ratio=4;
		*shift=2;
	}
	else if(SrcSize>=2*DstSize) {
		*ratio=2;
		*shift=1;
	}
	else {
		*ratio=1;
		*shift=0;
	}    	
}

void Camera_Clock(unsigned char divide)
{
	unsigned int camclk;
	
	// Set camera clock for camera processor
	s2440PWR->rCAMDIVN = (s2440PWR->rCAMDIVN & ~(0x1f)) | (1<<4) | (divide & 0xf); // CAMCLK is divided..
//	camclk = 48000000/(((s2440PWR->rCAMDIVN&0xf) + 1)*2);
   /* sam the test */
	camclk = 2*48000000/(((s2440PWR->rCAMDIVN&0xf) + 1)*2);
    /*    */
	RETAILMSG(1,(TEXT("CAM clock:%d\r\n"),camclk));
}

/*
void CamCaptureStart(unsigned int mode)
{ 
	if(mode&CAM_CODEC_SCALER_CAPTURE_ENABLE_BIT) {
		s2440CAM->rCICOSCCTRL|=CAM_CODEC_SACLER_START_BIT;
	}
	
	if(mode&CAM_PVIEW_SCALER_CAPTURE_ENABLE_BIT) {
		s2440CAM->rCIPRSCCTRL|=CAM_PVIEW_SACLER_START_BIT;
	}
    
	s2440CAM->rCIIMGCPT|=(CAM_CAMIF_GLOBAL_CAPTURE_ENABLE_BIT|mode);
}
*/

void Camif_Capture(int cap_a, int cap_b)
{
	//RETAILMSG(1,(_T("Camif_Capture(%d, %d)\r\n"), cap_a, cap_b));
	// S3C2440A

	s2440CAM->rCIIMGCPT &= ~(CAM_CAMIF_GLOBAL_CAPTURE_ENABLE_BIT);

	if(cap_b == CAPTURE_ON) 
	{
		//Codec capture start
		s2440CAM->rCICOSCCTRL |=(CAM_CODEC_SACLER_START_BIT);
		s2440CAM->rCIIMGCPT |=(CAM_CAMIF_GLOBAL_CAPTURE_ENABLE_BIT)|(CAM_CODEC_SCALER_CAPTURE_ENABLE_BIT);
	} 
	else if (cap_b == CAPTURE_OFF)
	{
		s2440CAM->rCICOSCCTRL &= ~(CAM_CODEC_SACLER_START_BIT);
		s2440CAM->rCIIMGCPT &= ~(CAM_CODEC_SCALER_CAPTURE_ENABLE_BIT);
	}

	if(cap_a == CAPTURE_ON) 
	{  
		// Preview capture Start
		s2440CAM->rCIPRSCCTRL |=(CAM_PVIEW_SACLER_START_BIT);
		s2440CAM->rCIIMGCPT |=(CAM_CAMIF_GLOBAL_CAPTURE_ENABLE_BIT)|(CAM_PVIEW_SCALER_CAPTURE_ENABLE_BIT);
	}
	else if (cap_a == CAPTURE_OFF)
	{
		s2440CAM->rCIPRSCCTRL &= ~(CAM_PVIEW_SACLER_START_BIT);
		s2440CAM->rCIIMGCPT &= ~(CAM_PVIEW_SCALER_CAPTURE_ENABLE_BIT);
	}
	
	if ((cap_a == CAPTURE_ON) || (cap_b == CAPTURE_ON))
	{
		s2440CAM->rCIIMGCPT |= (CAM_CAMIF_GLOBAL_CAPTURE_ENABLE_BIT);
	}
	
}

DWORD CameraCaptureThread(void)
{
	unsigned char tmp=0;
	static unsigned int time,old_time;
	static unsigned int cam_intr;
	
	while(1)
	{
		WaitForSingleObject(CameraEvent, DisplayTime);
		
		//RETAILMSG(MSG_EN_1,(_T("CameraCaptureThread(%d)++\r\n"), frame_count));

		//RETAILMSG(1,(_T("CameraCaptureThread(%d)++\r\n"), frame_count));

#if 0
		if (frame_count <= 2) {
			frame_count++;
			// Enable camera interrupt
			s2440INT->rINTSUBMSK &= ~(BIT_SUB_CAM_P|BIT_SUB_CAM_C);
			s2440INT->rINTMSK &= ~BIT_CAM;
			
			continue;
		}
#endif
		
		//if( DisplayEnable )
		{

			frame_count++;

			if (s2440INT->rINTSUBMSK & BIT_SUB_CAM_C)
			{
				cam_intr = BIT_SUB_CAM_C;
				//RETAILMSG(1,(_T("CAM_C, ts %d\r\n"), GetTickCount()));
			}
			else if (s2440INT->rINTSUBMSK & BIT_SUB_CAM_P)
			{
				cam_intr = BIT_SUB_CAM_P;
				//RETAILMSG(1,(_T("CAM_P, ts %d\r\n"), GetTickCount()));
			}
			
			
			// EINT20 to measure time
//			s2440IOP->rGPGDAT |= (1<<12);
//			time = GetTickCount();
//			RETAILMSG(1,(TEXT("+time:%d\r\n"),(time - old_time)));

			// delay for capture
			//Sleep(CAPTURE_TIME);			// polling mode

                     //liudiping
			// display the image	
			//if ((DRIVER_PREVIEW_ENABLE == 1) & (cam_intr == BIT_SUB_CAM_P))
				{
				//RETAILMSG(1,(TEXT("-------------------\r\n")));
		//		Display_Cam_Image(0, 0, QCIF_XSIZE, QCIF_YSIZE, PORT_A);
				Display_Cam_Image(200,50, QCIF_XSIZE, QCIF_YSIZE, PORT_A);
				}

			//else if (DRIVER_PREVIEW_ENABLE == 2)	
			if (cam_intr == BIT_SUB_CAM_C)
			{
				Buffer_codec_info_update();
			}

			if (cam_intr == BIT_SUB_CAM_P)
			{
				Buffer_preview_info_update();
			}
				
			// Enable camera interrupt
			s2440INT->rINTSUBMSK &= ~(BIT_SUB_CAM_P|BIT_SUB_CAM_C);
			s2440INT->rINTMSK &= ~BIT_CAM;

/*
			if (DRIVER_PREVIEW_ENABLE == 1)
				Camif_Capture(CAPTURE_ON, CAPTURE_OFF);
			else if (DRIVER_PREVIEW_ENABLE == 2)	
				Camif_Capture(CAPTURE_OFF, CAPTURE_ON);
*/
			
			// EINT20 to measure time			
//			s2440IOP->rGPGDAT &= ~(1<<12);
//			old_time = GetTickCount();
//			RETAILMSG(1,(TEXT("-time:%d\r\n"),(old_time-time)));
			
		}
	}
}



void Virtual_Alloc()
{

    // GPIO Virtual alloc
	s2440IOP = (volatile IOPreg *) VirtualAlloc(0,sizeof(IOPreg),MEM_RESERVE, PAGE_NOACCESS);
	if(s2440IOP == NULL) {
		RETAILMSG(1,(TEXT("For s2440IOP: VirtualAlloc failed!\r\n")));
	}
	else {
		if(!VirtualCopy((PVOID)s2440IOP,(PVOID)(IOP_BASE),sizeof(IOPreg),PAGE_READWRITE | PAGE_NOCACHE )) {
			RETAILMSG(1,(TEXT("For s2440IOP: VirtualCopy failed!\r\n")));
		}
	}
    // IIC Virtual alloc
	s2440IIC = (volatile IICreg *) VirtualAlloc(0,sizeof(IICreg),MEM_RESERVE, PAGE_NOACCESS);
	if(s2440IIC == NULL) {
		RETAILMSG(1,(TEXT("For s2440IIC: VirtualAlloc failed!\r\n")));
	}
	else {
		if(!VirtualCopy((PVOID)s2440IIC,(PVOID)(IIC_BASE),sizeof(IICreg),PAGE_READWRITE | PAGE_NOCACHE )) {
			RETAILMSG(1,(TEXT("For s2440IIC: VirtualCopy failed!\r\n")));
		}
	}
	
    // Camera Virtual alloc
	s2440CAM = (volatile CAMreg *) VirtualAlloc(0,sizeof(CAMreg),MEM_RESERVE, PAGE_NOACCESS);
	if(s2440CAM == NULL) {
		RETAILMSG(1,(TEXT("For s2440CAM: VirtualAlloc failed!\r\n")));
	}
	else {
		if(!VirtualCopy((PVOID)s2440CAM,(PVOID)(CAM_BASE),sizeof(CAMreg),PAGE_READWRITE | PAGE_NOCACHE )) {
			RETAILMSG(1,(TEXT("For s2440CAM: VirtualCopy failed!\r\n")));
		}
	}

	// Interrupt Virtual alloc
	s2440INT = (volatile INTreg *) VirtualAlloc(0,sizeof(INTreg),MEM_RESERVE, PAGE_NOACCESS);
	if(s2440INT == NULL) {
		RETAILMSG(1,(TEXT("For s2440INT: VirtualAlloc failed!\r\n")));
	}
	else {
		if(!VirtualCopy((PVOID)s2440INT,(PVOID)(INT_BASE),sizeof(INTreg),PAGE_READWRITE | PAGE_NOCACHE )) {
			RETAILMSG(1,(TEXT("For s2440INT: VirtualCopy failed!\r\n")));
		}
	}
	// PWM clock Virtual alloc
	s2440PWR = (volatile CLKPWRreg *) VirtualAlloc(0,sizeof(CLKPWRreg),MEM_RESERVE, PAGE_NOACCESS);
	if(s2440PWR == NULL) {
		RETAILMSG(1,(TEXT("For s2440PWR: VirtualAlloc failed!\r\n")));
	}
	else {
		if(!VirtualCopy((PVOID)s2440PWR,(PVOID)(CLKPWR_BASE),sizeof(CLKPWRreg),PAGE_READWRITE | PAGE_NOCACHE )) {
			RETAILMSG(1,(TEXT("For s2440PWR: VirtualCopy failed!\r\n")));
		}
	}
}

void Display_Cam_Image(U32 pos_x, U32 pos_y, U32 size_x, U32 size_y, U8 port)
{
	U8 *buffer_rgb;
	U32 y;
	int temp;
	
	//unsigned short *ptr = (unsigned short *)(FRAMEBUF_BASE+0x5dc0);
	
	static unsigned short transfer_data[QCIF_XSIZE*QCIF_YSIZE];
	static unsigned int time,old_time;
	
	//RETAILMSG(1,(_T("Display_Cam_Image()\r\n")));
	
//	if (port)
	{
		temp = (s2440CAM->rCIPRSTATUS>>26)&3;
		temp = (temp + 2) % 4;
		
		switch (temp)
		{
		case 0:
			buffer_rgb = (U8 *)s2440CAM->rCIPRCLRSA1;
			break;
			/*
		case 1:
			buffer_rgb = (U8 *)s2440CAM->rCIPRCLRSA2;
			break;
		case 2:
			buffer_rgb = (U8 *)s2440CAM->rCIPRCLRSA3;
			break;
		case 3:
			buffer_rgb = (U8 *)s2440CAM->rCIPRCLRSA4;
			break;
			*/
		default :
			buffer_rgb = (U8 *)s2440CAM->rCIPRCLRSA1;
			break;
		}
	}
	//RETAILMSG(MSG_EN_1,(_T("preview buf index = %d\r\n"), temp));
     // RETAILMSG(1,(_T("preview buf index = %d\r\n"), temp));
#if (DOTNET_DRIVER)
	SetKMode(TRUE);
#endif
	
	buffer_rgb += VIRTUAL_OFFSET;

//	time = GetTickCount();
//	RETAILMSG(1,(TEXT("+:%d\r\n"),(time - old_time)));


#if 1
	for (y=0;y<(size_y-2);y++) // YCbCr 4:2:0 format
	{
		//memcpy((void *)(FRAMEBUF_BASE+0x5e00+y*240*2),(void *)buffer_rgb,(QCIF_XSIZE)*2);
		//memcpy((void *)(FRAMEBUF_BASE+ (320*pos_y + pos_x) + y*320*2),(void *)buffer_rgb,(QCIF_XSIZE)*2);
	//	memcpy((void *)(FRAMEBUF_BASE+ (240*pos_y + pos_x) + y*240*2),(void *)buffer_rgb,(QCIF_XSIZE)*2);
		//memcpy((void *)(FRAMEBUF_BASE+ (640*pos_y + pos_x) + y*640*2),(void *)buffer_rgb,(QCIF_XSIZE)*2);
		memcpy((void *)(FRAMEBUF_BASE+ (800*pos_y + pos_x) + y*800*2),(void *)buffer_rgb,(QCIF_XSIZE)*2);
		buffer_rgb += (QCIF_XSIZE*2);
		
	}
#endif

#if (DOTNET_DRIVER)
	SetKMode(FALSE);
#endif

//	old_time = GetTickCount();
//	RETAILMSG(1,(TEXT("-:%d\r\n"),(old_time - time)));

}



BOOL WINAPI  
DllEntry(HANDLE	hinstDLL, 
			DWORD dwReason, 
			LPVOID /* lpvReserved */)
{
	switch(dwReason)
	{
	case DLL_PROCESS_ATTACH:
		DEBUGREGISTER((HINSTANCE)hinstDLL);
		DEBUGMSG(ZONE_INIT,(TEXT("CAMERA: DLL_PROCESS_ATTACH\r\n")));
		//liudiping
		//RETAILMSG(1,(TEXT("CAMERA: DLL_PROCESS_ATTACH\r\n")));
		return TRUE;
	case DLL_THREAD_ATTACH:
		DEBUGMSG(ZONE_THREAD,(TEXT("CAMERA: DLL_THREAD_ATTACH\r\n")));
		//RETAILMSG(1,(TEXT("CAMERA: DLL_THREAD_ATTACH\r\n")));
		break;
	case DLL_THREAD_DETACH:
		DEBUGMSG(ZONE_THREAD,(TEXT("CAMERA: DLL_THREAD_DETACH\r\n")));
		break;
	case DLL_PROCESS_DETACH:
		DEBUGMSG(ZONE_INIT,(TEXT("CAMERA: DLL_PROCESS_DETACH\r\n")));
		break;
#ifdef UNDER_CE
	case DLL_PROCESS_EXITING:
		DEBUGMSG(ZONE_INIT,(TEXT("CAMERA: DLL_PROCESS_EXITING\r\n")));
		break;
	case DLL_SYSTEM_STARTED:
		DEBUGMSG(ZONE_INIT,(TEXT("CAMERA: DLL_SYSTEM_STARTED\r\n")));
		break;
#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久伊人中文字幕| 欧美日韩专区在线| 国产欧美一区二区在线观看| 国产在线一区二区综合免费视频| 精品国产凹凸成av人导航| 经典三级视频一区| 国产清纯在线一区二区www| 粉嫩高潮美女一区二区三区 | 精品国产一区二区亚洲人成毛片 | 成人小视频在线观看| 中文字幕一区二区三区乱码在线| 成人av电影观看| 一区二区免费在线| 欧美一级精品在线| 国产白丝精品91爽爽久久| 亚洲欧美日韩一区二区三区在线观看| 欧美撒尿777hd撒尿| 精品一区二区三区免费视频| 久久精品一区八戒影视| 在线精品视频一区二区三四 | 亚洲一区二区三区四区五区黄| 欧美高清精品3d| 国产精品亚洲人在线观看| 亚洲精品伦理在线| 日韩精品一区二区三区四区视频| 国产福利精品导航| 亚洲成人1区2区| 久久久国际精品| 欧美在线一区二区| 国产精品亚洲一区二区三区妖精| 亚洲女人小视频在线观看| 日韩精品中文字幕一区二区三区 | 丝袜国产日韩另类美女| 久久精品视频一区二区三区| 91女神在线视频| 久久成人麻豆午夜电影| 亚洲人成伊人成综合网小说| 久久综合精品国产一区二区三区| 在线视频中文字幕一区二区| 国产一区二区三区四| 亚洲午夜电影在线观看| 国产午夜一区二区三区| 欧美高清www午色夜在线视频| 成人一区二区三区视频在线观看| 午夜精品久久一牛影视| 国产精品久久久爽爽爽麻豆色哟哟| 欧美日本一区二区三区四区| 风流少妇一区二区| 久久精品国产一区二区| 一区二区免费在线| 国产精品乱人伦| 欧美精品一区男女天堂| 91.com视频| 色88888久久久久久影院野外 | 亚洲视频一二三区| 久久视频一区二区| 日韩亚洲欧美在线观看| 欧洲日韩一区二区三区| 成人免费高清在线| 国精产品一区一区三区mba视频| 五月天丁香久久| 亚洲一区二区视频在线| 亚洲免费观看高清完整版在线 | 亚洲一二三区在线观看| 国产精品福利av| 久久久国产午夜精品| 精品国产免费久久| 欧美一区二区三区免费大片| 欧美日韩国产bt| 欧美色老头old∨ideo| 91网上在线视频| 91蝌蚪porny| 在线一区二区三区| 色综合一区二区| 91国产免费看| 欧美日韩一卡二卡| 欧美日韩在线三级| 欧美日本一区二区三区四区| 欧美精品丝袜久久久中文字幕| 欧美日韩国产免费| 欧美一级精品大片| 精品国产精品一区二区夜夜嗨| 精品国产乱码久久久久久牛牛 | 色综合网色综合| 91搞黄在线观看| 欧美电影在哪看比较好| 这里只有精品99re| 日韩一区二区麻豆国产| 日韩精品一区二区三区视频在线观看| 精品久久久久久亚洲综合网| 久久久精品欧美丰满| 国产精品伦理在线| 亚洲伊人色欲综合网| 日韩高清欧美激情| 国产一区在线观看麻豆| 高清在线不卡av| 欧美在线视频全部完| 欧美老人xxxx18| 久久亚洲捆绑美女| 亚洲欧美日韩在线| 首页欧美精品中文字幕| 国产在线视频一区二区三区| 东方aⅴ免费观看久久av| 91丨九色porny丨蝌蚪| 欧美三级韩国三级日本一级| 精品国产一区二区三区av性色| 国产精品久久久久影院| 一区二区高清免费观看影视大全 | 1024精品合集| 日韩成人一区二区三区在线观看| 日本va欧美va瓶| 成人国产精品视频| 88在线观看91蜜桃国自产| www日韩大片| 一区二区在线免费| 狠狠色狠狠色合久久伊人| 色哟哟国产精品| 日韩精品在线一区二区| 亚洲视频在线一区| 久久99久久久久久久久久久| 99久久99久久免费精品蜜臀| 欧美一区二区三区公司| 亚洲视频免费在线| 激情文学综合插| 欧美日韩精品是欧美日韩精品| 国产日韩欧美一区二区三区综合| 亚洲国产乱码最新视频| 成人黄页在线观看| 欧美电视剧在线观看完整版| 亚洲制服丝袜在线| 成人国产精品视频| 精品美女一区二区| 偷拍与自拍一区| 91色.com| 亚洲国产成人在线| 国产专区欧美精品| 欧美精品在线观看一区二区| 亚洲欧美日韩国产手机在线| 国产精一区二区三区| 91精品国产91热久久久做人人| 一区二区三区精品视频在线| 成人免费福利片| 久久精品人人做| 美腿丝袜在线亚洲一区| 在线看国产一区二区| 亚洲欧美视频在线观看视频| 国产精品一二一区| 精品国产三级a在线观看| 日韩精品久久理论片| 精品视频免费看| 91精品办公室少妇高潮对白| 色综合夜色一区| 国产精品你懂的在线欣赏| 精品卡一卡二卡三卡四在线| 一区二区三区精品| 亚洲精品免费在线| www.亚洲色图.com| 国产丝袜在线精品| 日韩成人免费在线| 国产一区美女在线| 日韩一区二区电影| 青椒成人免费视频| 制服丝袜国产精品| 一本色道久久综合亚洲aⅴ蜜桃 | 欧美岛国在线观看| 久国产精品韩国三级视频| 日韩一区二区麻豆国产| 青青草91视频| 2017欧美狠狠色| 精品一二三四区| 久久久三级国产网站| 国产一区二区三区香蕉| 日本一区二区久久| 成人av网址在线观看| 亚洲男同性视频| 在线中文字幕一区| 午夜精品久久久久久久久| 欧美一区二区三区在线电影| 久久99日本精品| 中文字幕精品—区二区四季| 99国产欧美久久久精品| 亚洲一区二区三区激情| 欧美一卡在线观看| 久久99精品国产麻豆婷婷| 亚洲精品一区在线观看| 成人午夜电影网站| 亚洲黄色av一区| 欧美一区二区黄色| 国产jizzjizz一区二区| 亚洲欧洲日韩女同| 欧美四级电影在线观看| 蜜桃av一区二区三区| 国产亚洲欧美日韩在线一区| 99re在线视频这里只有精品| 丝袜美腿一区二区三区| 亚洲精品在线免费观看视频| 91在线精品一区二区| 奇米精品一区二区三区四区| 亚洲国产成人私人影院tom| 色婷婷久久久综合中文字幕|