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

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

?? musicplay.cpp

?? usb camera capture, direct show . simple code . fast video, record . no delay
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/******************************************************************************
 * 文件名:player.cpp
 * 說明  :根據(jù)攝像頭拍攝的人體動作來演奏音樂
 * Modified by PRTsinghua@hotmail.com
******************************************************************************/

#include "stdafx.h"
#include "MusicPlay.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


#include <windows.h>
#include <dshow.h>
#include <stdio.h>
#include <conio.h>
#include <qedit.h>	// SampleGrabber用
#include <math.h>
#include <windowsx.h>
#include <mmsystem.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <ctype.h>

#pragma comment(lib, "strmiids.lib")	

#undef  M_PI
#define M_PI 3.1415926535897932
#define HUGE 

#define MAX_FILENAME_SIZE   128

#pragma comment(lib, "winmm.lib")

#define x_size 160
#define y_size 120
#define MAX_CNTR 10000
#define GRAY 128
#define PI 3.14159

// 圖像結(jié)構(gòu)
typedef struct{				
	HINSTANCE			hi;
	HWND				hwnd;		// 自己的窗口操作
	BYTE				*lpBmpData;	// BMP數(shù)據(jù)
	BITMAPINFOHEADER	bih;		// 位圖信息
} IMG0;

// WAVE結(jié)構(gòu)
typedef struct waveInst {
	HANDLE hWaveInst;
	HANDLE hWaveHdr;
	HANDLE hWaveData;
} WAVEINST;

typedef WAVEINST FAR *LPWAVEINST;

// 全局變量和函數(shù)
int NumDevsOut;
WORD Version;
char		szAppName[]		= "oscillat";	// 應(yīng)用名
HINSTANCE	hInstApp		= NULL;			// 起動操作
HWND		hwndApp			= NULL;			// 主要窗口的操作
HWND		hwndChild[7]	= {NULL};		// 文件名窗口的操作
HWAVEOUT	hWaveOut		= NULL;
LPWAVEHDR	lpWaveHdr		= NULL;
int		tate;
int		yoko;
int		scale = 1;
long	rec_freq = 44100L;
short	rec_bits = 8;
long	sec = 5;
char	buf[256];
#define	HANON (1.05946309435929526)

DWORD	th_Proc0( void );
LRESULT	CALLBACK grProc0( HWND, UINT, WPARAM, LPARAM );
DWORD	th_Proc1( void );
LRESULT	CALLBACK grProc1( HWND, UINT, WPARAM, LPARAM );

BOOL	initVideo(void);
void	closeVideo(void);
void	initGraphic(void);
void	closeGraphic(void);
void	closeVideo(void);
void	initWindow0(void);
void	initWindow1(void);
void	openWindow0(void);
void	openWindow1(void);
void	masuku(BYTE *);
int		obtain_contour(int x_start, int y_start, unsigned char image[y_size][x_size]);
int		remove_areas(BYTE *);
void	haikei(BYTE *pRGB, BYTE *pRGB0, BYTE *pRGB1); 
void	HSV(double *H, double *S, double *V, double B, double G, double R);
int		remove_areas2(void);

void cleanup(LPWAVEINST lpWaveInst);
void oscillatPlay(int, double);
void oscillatStop(void);
void makedata(DWORD dwDataSize, int pattern, double freq, unsigned char HUGE * lpData);

ICreateDevEnum	*pDevEnum	= NULL;
IGraphBuilder	*pGraph		= NULL;
IMediaControl	*pMC		= NULL;
ICaptureGraphBuilder2	*pCapture = NULL;
IBaseFilter		*pF			= NULL;
ISampleGrabber	*pGrab		= NULL;		// 以上這些變量最后要釋放

IMG0	img00, img01;

unsigned char image1[y_size][x_size];
unsigned char image3[y_size][x_size];
unsigned char line[x_size*y_size*3];
int chain_code[MAX_CNTR];
int Freeman[8][2] = 
	{
		{1,0}, {1,-1}, {0,-1}, {-1,-1}, 
		{-1,0}, {-1,1}, {0,1}, {1,1}
	};
int ch_x[2];
int ch_y[2];
int check;
double Z;
int onkai = 0;

CWinApp theApp;

using namespace std;


// 主函數(shù)
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
	int nRetCode = 0;

	// 初始化MFC
	if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
	{
		cerr << _T("Fatal Error: MFC initialization failed") << endl;
		nRetCode = 1;
		return nRetCode;
	}
	
	int		X_SIZE, Y_SIZE;
	BYTE	*pRGB0, *pRGB1;
	HRESULT	hr;

	initVideo();	// 視頻的初期化
	initGraphic();	// 圖像畫面的初期化
	initWindow0();	// 視頻畫面表示的Window的初期化
	initWindow1(); 	// 圖像畫面表示的Widow的初期化

	printf( "圖像輸入開始,請按任意鍵\n" ); 
	getch();
	printf( "圖像輸入已經(jīng)開始了,暫時停止 -- q\n" ); 

	// ---- 圖像輸入開始 ----
	// 制作表示窗口
	openWindow0();
	openWindow1();

	pGrab -> SetBufferSamples(TRUE);	// 開始grab
 	pMC -> Run();						// 開始rendering

	// ***********  追加  ******************
	BYTE *pRGB, *pRGB2;
	Sleep(1000);
	
	printf("記錄初期背景圖像,按任意鍵\n");
	getch();
	
	long n = img00.bih.biSizeImage;
	pRGB = (BYTE *)malloc(n);	// pRGB 初期背景圖像的排列
	pRGB2 = (BYTE *)malloc(n);	// pRGB 初期背景圖像的排列
	if (pRGB == NULL) 
	{
		printf("內(nèi)存不足(pRGB)\n");
	}
	
	hr = pGrab -> GetCurrentBuffer( &n, (long *)pRGB );
	
	// ********** 到這里為止 ******************

	while(1)
	{
	 	long n = img00.bih.biSizeImage;
		hr = pGrab -> GetCurrentBuffer( &n, (long *)img00.lpBmpData );

		pRGB0	= img00.lpBmpData;
		pRGB1	= img01.lpBmpData;
		X_SIZE	= img00.bih.biWidth;
		Y_SIZE	= img00.bih.biHeight;

		// pRGB0 視頻圖像的圖像排列
		// pRGB1 進(jìn)行圖像處理后的圖像的排列
		// 數(shù)據(jù)的格式,沿著從下到上的方向。
		// 按BGR的順序排列

		haikei(pRGB, pRGB0, pRGB1);
		masuku(pRGB1);
		remove_areas(pRGB1);

		InvalidateRect( img00.hwnd, NULL, FALSE);	// 輸入畫像窗口的更新
		InvalidateRect( img01.hwnd, NULL, FALSE);	// 畫像窗口的更新

		if( kbhit() )
		{
			getch();
			hr = pMC -> Pause();
			printf("grab停止:結(jié)束 - q  、再次打開 - 別的鍵\n");
			if(getch() == 'q')
				break;
			pMC -> Run();
		}
	}
	
	pMC -> Stop();
	pGrab -> SetBufferSamples( 0 );
	// ---- 結(jié)束操作 ---- 
	
	oscillatStop();
	
	closeVideo();
	closeGraphic();

	SendMessage( img00.hwnd, WM_CLOSE, 0, 0 );	// 圖像輸入窗口結(jié)束
	SendMessage( img01.hwnd, WM_CLOSE, 0, 0 );	// 圖像表示窗口結(jié)束

	return 0;
}


/******************************************************************************
 * 源圖像窗口的創(chuàng)建與消息循環(huán)
******************************************************************************/
DWORD th_Proc0( void )
{
	MSG msg;

	int sm0 = GetSystemMetrics( SM_CYCAPTION );
	int sm1 = GetSystemMetrics( SM_CXDLGFRAME ); // WS_OVRELAPP的時候,框子的寬度
	int sm2 = GetSystemMetrics( SM_CYDLGFRAME ); // 變成了SM_CYDLGFRAME
	// 創(chuàng)建窗口
	img00.hwnd = CreateWindow( "GRC0",			// 組的名字
				"Source Image",
				WS_OVERLAPPED | WS_VISIBLE,		// 窗口的屬性
				0, 100,							// 表示的位置
				img00.bih.biWidth  + sm1 * 2,	// 描繪大小,計算大小
				img00.bih.biHeight + sm0 + sm2 * 2,
				HWND_DESKTOP,
				NULL, img00.hi, NULL 	     );					

	while( GetMessage( &msg, NULL, 0, 0 ) )
	{
		TranslateMessage( &msg );
		DispatchMessage( &msg );
	}

	return 0;
}


/******************************************************************************
 * 處理后圖像窗口的創(chuàng)建與消息循環(huán)
******************************************************************************/
DWORD th_Proc1( void )
{
	MSG msg;

	int sm0 = GetSystemMetrics( SM_CYCAPTION );
	int sm1 = GetSystemMetrics( SM_CXDLGFRAME ); // WS_OVRELAPP的時候,框子的寬度
	int sm2 = GetSystemMetrics( SM_CYDLGFRAME ); // 變成了SM_CYDLGFRAME
	// 創(chuàng)建窗口
	img01.hwnd = CreateWindow( "GRC1",			// 小組的名字
				"Result Image",
				WS_OVERLAPPED | WS_VISIBLE,		// 窗口的屬性
				0, 400,							// 表示的位置
				img01.bih.biWidth  + sm1 * 2,	// 描繪大小 計算大小
				img01.bih.biHeight + sm0 + sm2 * 2,
				HWND_DESKTOP,						
				NULL, img01.hi, NULL 	     );					

	while( GetMessage( &msg, NULL, 0, 0 ) )
	{
		TranslateMessage( &msg );
		DispatchMessage( &msg );
	}

	return 0;
}


/******************************************************************************
 * 窗口的取得,僅僅在再一次的描繪中進(jìn)行
******************************************************************************/
LRESULT CALLBACK grProc0( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
{
				
	PAINTSTRUCT	ps;

    switch (msg)
	{
	case WM_PAINT:							// 描繪位圖
		BeginPaint( hwnd, &ps );
		SetDIBitsToDevice( ps.hdc, 0, 0,	// 復(fù)制剛才x,y的坐標(biāo)
					img00.bih.biWidth,		// DIB的寬度
					img00.bih.biHeight,		// DIB的高度
					0, 0,					// DIB的坐標(biāo) 
					0,						// 掃描線
					img00.bih.biHeight,		// 掃描線的數(shù)量
					img00.lpBmpData,
					(BITMAPINFO *)&( img00.bih),	// 分派到BITMAPINFO
					DIB_RGB_COLORS );
        EndPaint( hwnd, &ps );
		return 0;

	case WM_DESTROY:
		PostQuitMessage( 0 );				// 結(jié)束信息循環(huán)
		break;			

	default:
		return DefWindowProc( hwnd, msg, wp, lp );
	}
	
	return 0;	
}


/******************************************************************************
 * 窗口的取得,僅僅在再一次的描繪中進(jìn)行
******************************************************************************/
LRESULT CALLBACK grProc1( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
{
				
	PAINTSTRUCT	ps;

    switch (msg)
	{
	case WM_PAINT:							// 描繪位圖
		BeginPaint( hwnd, &ps );
		SetDIBitsToDevice( ps.hdc, 0, 0,	// 復(fù)制剛才x,y的坐標(biāo)
					img01.bih.biWidth,		// DIB的寬度
					img01.bih.biHeight,		// DIB的高度
					0, 0,					// DIB的坐標(biāo) 
					0,						// 掃描線
					img01.bih.biHeight,		// 掃描線的數(shù)量
					img01.lpBmpData,
					(BITMAPINFO *)&( img01.bih),	// 分派到BITMAPINFO
					DIB_RGB_COLORS );
        EndPaint( hwnd, &ps );
		return 0;

	case WM_DESTROY:
		PostQuitMessage( 0 );				// 結(jié)束信息循環(huán)
		break;			

	default:
		return DefWindowProc( hwnd, msg, wp, lp );
	}
	return 0;
	
}


/******************************************************************************
 * 初始化Video
******************************************************************************/
BOOL initVideo(void)
{
	AM_MEDIA_TYPE   amt;

	CoInitialize(NULL);		// COM的初期化

	// ---- 輸入計算的準(zhǔn)備 ----

	// 搜索輸入設(shè)備
	IBaseFilter  *pbf = NULL;
	IMoniker * pMoniker = NULL;
    ULONG cFetched;
    
	// 創(chuàng)建輸入設(shè)備的各個部分
    CoCreateInstance( CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC,
					  IID_ICreateDevEnum, (void ** ) &pDevEnum);

    // 設(shè)置視頻輸入設(shè)備的各個部分
    IEnumMoniker * pClassEnum = NULL;
    pDevEnum -> CreateClassEnumerator(
					CLSID_VideoInputDeviceCategory, &pClassEnum, 0);
    
	if (pClassEnum == NULL)
	{
		AfxMessageBox("沒有發(fā)現(xiàn)攝像頭,程序?qū)⑼顺觯?quot;);
		pDevEnum -> Release();
		CoUninitialize();

        return FALSE ;
    }
 
	// 取得最初發(fā)現(xiàn)的視頻輸入設(shè)備object的接口
    pClassEnum -> Next(1, &pMoniker, &cFetched);
	pMoniker->BindToObject( 0, 0, IID_IBaseFilter, (void**)&pbf );
 	
	// ---- 過慮圖像的準(zhǔn)備 ----
    // 創(chuàng)建過慮圖像,取得接口
    CoCreateInstance( CLSID_FilterGraph, NULL, CLSCTX_INPROC,
					  IID_IGraphBuilder, (void **) &pGraph);
    pGraph -> QueryInterface( IID_IMediaControl, (LPVOID *) &pMC );
	// 把輸入圖像追加到過慮圖像
    pGraph -> AddFilter( pbf, L"Video Capture");
	// 因為進(jìn)行了追加所以解除參照的輸入圖像
    pbf -> Release();

	// ---- 過慮圖像的準(zhǔn)備 ----
    // 創(chuàng)建過慮圖像,取得接口
	CoCreateInstance( CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER, 
                      IID_IBaseFilter, (LPVOID *)&pF);
	pF -> QueryInterface( IID_ISampleGrabber, (void **)&pGrab );
	// 把輸入圖像追加到過慮圖像
	ZeroMemory(&amt, sizeof(AM_MEDIA_TYPE));
	amt.majortype  = MEDIATYPE_Video;
	amt.subtype    = MEDIASUBTYPE_RGB24;
	amt.formattype = FORMAT_VideoInfo; 
	pGrab -> SetMediaType( &amt );
	// 把grubber過慮追加到過慮圖像
	pGraph -> AddFilter(pF, L"SamGra");

	// ---- 輸入圖像的準(zhǔn)備 ----
	// 創(chuàng)建輸入圖像   
	CoCreateInstance( CLSID_CaptureGraphBuilder2 , NULL, CLSCTX_INPROC,
				      IID_ICaptureGraphBuilder2, (void **) &pCapture );
    // 把過慮圖像編入到輸入圖像
    pCapture -> SetFiltergraph( pGraph );
    // 輸入圖像的設(shè)定,設(shè)定grubber為rendering輸出
    pCapture -> RenderStream (&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video,
                                pbf, NULL, pF);
  
	// ---- 表示窗口的準(zhǔn)備 ----
	// 位圖信息的取得	
	pGrab -> GetConnectedMediaType( &amt ); 
	// 獲得視頻頭部的信息
	VIDEOINFOHEADER *pVideoHeader = (VIDEOINFOHEADER*)amt.pbFormat;
	// 在視頻的頭部包含位圖的信息
	// 把位圖的信息復(fù)制到BITMAPINFO的結(jié)構(gòu)體中
	BITMAPINFO BitmapInfo;
	ZeroMemory( &BitmapInfo, sizeof(BitmapInfo) );
	CopyMemory( &BitmapInfo.bmiHeader, &(pVideoHeader->bmiHeader), 
				sizeof(BITMAPINFOHEADER));

	img00.bih = BitmapInfo.bmiHeader;
 	long n = img00.bih.biSizeImage;
	
	char s[100];
	sprintf(s, "Video Width: %ld  Video Height: %ld", 
				img00.bih.biWidth, img00.bih.biHeight);
	AfxMessageBox(s);
	
	img00.lpBmpData = (BYTE *)malloc( n );
	
	// ************* 追加 *****************

	if (img00.lpBmpData == NULL) {
		AfxMessageBox("內(nèi)存不足!");
	}
	
	img00.hi = (HINSTANCE)GetWindowLong( HWND_DESKTOP, GWL_HINSTANCE );
	return true;
}


/******************************************************************************
 * 初始化Graphics
******************************************************************************/
void initGraphic(void)
{
	// 把位圖的信息復(fù)制到BITMAPINFO的結(jié)構(gòu)體中
	BITMAPINFO BitmapInfo;
	ZeroMemory( &BitmapInfo, sizeof(BitmapInfo) );
	CopyMemory( &BitmapInfo.bmiHeader, &img00.bih, 
				sizeof(BITMAPINFOHEADER));
	img01.bih = BitmapInfo.bmiHeader;
 	long n = img01.bih.biSizeImage;

	img01.lpBmpData = (BYTE *)malloc( n );
	
	// **************** 追加 ******************

	if (img01.lpBmpData == NULL) {
		printf("內(nèi)存不足 (img01.lpBmpData)\n");
	}

	img01.hi = (HINSTANCE)GetWindowLong( HWND_DESKTOP, GWL_HINSTANCE );
}


/******************************************************************************
 * 關(guān)閉Video
******************************************************************************/
void closeVideo(void)
{
    // 接口的解除
    pMC -> Release();		
	pDevEnum -> Release();
    pGraph -> Release();
    pCapture -> Release();
	
	CoUninitialize();

	free( img00.lpBmpData );
}


/******************************************************************************
 * 關(guān)閉Graphic
******************************************************************************/
void closeGraphic(void)
{
	free( img01.lpBmpData );
}


/******************************************************************************
 * 初始化窗口0
******************************************************************************/
void initWindow0(void)
{
	// 表示窗口的定義
	WNDCLASSEX	wc;							// 新做成的窗口組
	memset( &wc, 0, sizeof(WNDCLASSEX) );
	wc.cbSize        = sizeof(WNDCLASSEX);	
	wc.lpfnWndProc   = grProc0;				// 取得持有這個組的窗口
	wc.hInstance     = (HINSTANCE)GetWindowLong( HWND_DESKTOP, GWL_HINSTANCE ); 
	wc.lpszClassName = "GRC0";				// 這個組的名字
	wc.cbWndExtra    = 10;					// 確保相關(guān)的結(jié)構(gòu)體的特點的范圍
	RegisterClassEx( &wc );					// 窗口組的登記

}


/******************************************************************************
 * 初始化窗口1
******************************************************************************/
void initWindow1(void)
{
								// 表示窗口的定義
	WNDCLASSEX	wc;							// 新做成的窗口組
	memset( &wc, 0, sizeof(WNDCLASSEX) );
	wc.cbSize        = sizeof(WNDCLASSEX);	
	wc.lpfnWndProc   = grProc1;				// 取得持有這個組的窗口
	wc.hInstance     = (HINSTANCE)GetWindowLong( HWND_DESKTOP, GWL_HINSTANCE ); 
	wc.lpszClassName = "GRC1";				// 這個組的名字
	wc.cbWndExtra    = 10;					// 確保相關(guān)的結(jié)構(gòu)體的特點的范圍
	RegisterClassEx( &wc );					// 窗口組的登記
}


/******************************************************************************
 * 打開窗口0
******************************************************************************/
void openWindow0(void)
{
	DWORD tid;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲不卡在线观看| 精品裸体舞一区二区三区| 欧美区一区二区三区| 欧美一区二区在线看| 久久色视频免费观看| 国产精品国产三级国产有无不卡| 亚洲精品成人a在线观看| 青青草97国产精品免费观看无弹窗版| 九色综合国产一区二区三区| 99久久99久久精品国产片果冻 | 国产日产欧美一区二区三区| 亚洲精品欧美在线| 精品中文av资源站在线观看| 91在线观看美女| 91麻豆精品国产综合久久久久久| 国产午夜精品一区二区三区视频| 亚洲男人电影天堂| 精品写真视频在线观看| 91国模大尺度私拍在线视频| 欧美成人伊人久久综合网| 亚洲精品中文字幕乱码三区| 精品一区二区三区日韩| 91久久精品国产91性色tv| 久久综合色婷婷| 亚洲国产欧美在线人成| 不卡大黄网站免费看| 日韩一区二区三区视频在线观看| 亚洲视频综合在线| 国产精品亚洲一区二区三区妖精 | 亚洲一区成人在线| 国产在线精品一区二区三区不卡| 在线日韩国产精品| 中文字幕av免费专区久久| 奇米影视一区二区三区| 色婷婷久久久亚洲一区二区三区| 久久精品视频一区二区三区| 午夜精彩视频在线观看不卡| 97久久精品人人爽人人爽蜜臀 | 国产精品99久久久| 欧美一区二区日韩| 亚洲综合色网站| 成人动漫视频在线| 国产午夜亚洲精品理论片色戒| 日韩影视精彩在线| 在线免费观看一区| 国产精品人妖ts系列视频| 国内成人自拍视频| 91麻豆精品国产91久久久久| 一区二区三区精品| 99精品在线免费| 国产精品麻豆久久久| 国产精一区二区三区| 欧美成va人片在线观看| 日韩va亚洲va欧美va久久| 欧洲一区二区三区免费视频| 中文字幕亚洲成人| 成人爽a毛片一区二区免费| 久久婷婷国产综合精品青草| 久久国产精品72免费观看| 7777精品伊人久久久大香线蕉的 | 色先锋资源久久综合| 国产精品伦理一区二区| 国产成人亚洲综合色影视| ww亚洲ww在线观看国产| 久久成人免费网| 欧美成人a在线| 国产在线精品不卡| 国产亚洲欧美一区在线观看| 99热在这里有精品免费| 国产精品入口麻豆原神| 成人亚洲一区二区一| 久久先锋影音av| 狠狠色伊人亚洲综合成人| 精品国产亚洲在线| 精品在线播放午夜| 久久中文娱乐网| 国产乱码精品一区二区三区av| 日韩精品资源二区在线| 久久99精品国产麻豆婷婷洗澡| 日韩一级黄色片| 久久99精品国产91久久来源| 久久久久高清精品| 成人国产精品免费| 亚洲免费av观看| 在线看不卡av| 日本不卡视频一二三区| 欧美videos中文字幕| 国产美女在线精品| 国产精品久久久久一区| 日本乱人伦一区| 日韩电影在线观看一区| 欧美变态口味重另类| 国产成人亚洲综合a∨婷婷 | 成人精品国产一区二区4080| 国产精品国产自产拍在线| 91国偷自产一区二区开放时间| 亚洲成人三级小说| 精品少妇一区二区三区在线视频| 国产精品一区二区在线看| 亚洲色图另类专区| 欧美午夜不卡视频| 老司机一区二区| 国产精品进线69影院| 欧美三片在线视频观看 | 久久综合一区二区| eeuss影院一区二区三区| 亚洲男人的天堂一区二区| 欧美日韩精品专区| 国产精品综合在线视频| 亚洲乱码国产乱码精品精98午夜| 欧美三级电影一区| 国产一区二区日韩精品| 亚洲精品免费播放| 欧美成人在线直播| 91久久精品一区二区三区| 美国av一区二区| 亚洲色欲色欲www| 欧美一区二区成人| 成人黄色小视频在线观看| 丝袜美腿一区二区三区| 国产精品精品国产色婷婷| 777奇米四色成人影色区| 成人精品视频.| 视频一区视频二区中文字幕| 国产精品理论在线观看| 69久久99精品久久久久婷婷| 成人福利视频在线| 久久精品免费观看| 亚洲精品v日韩精品| 久久综合九色综合97婷婷女人| 一本色道久久综合亚洲aⅴ蜜桃| 麻豆极品一区二区三区| 一区二区三区蜜桃网| 国产性天天综合网| 欧美电影影音先锋| 97精品久久久久中文字幕| 九色porny丨国产精品| 日本丰满少妇一区二区三区| 国产精品18久久久久久vr| 国内精品久久久久影院薰衣草 | 亚洲午夜电影在线观看| 久久久综合九色合综国产精品| 欧美在线观看视频一区二区| 狠狠色丁香久久婷婷综| 午夜影院久久久| 国产精品国产三级国产| 精品国产91洋老外米糕| av成人老司机| 亚洲影视在线观看| 国产精品久久久久永久免费观看| 国产91丝袜在线18| 美女性感视频久久| 国产精品丝袜黑色高跟| 精品美女一区二区三区| 欧美日韩中文另类| 色婷婷国产精品久久包臀| 成人一区二区三区视频| 国产乱人伦偷精品视频不卡 | 视频一区国产视频| 国产成人在线免费| 久久色成人在线| 国产成人高清视频| 91官网在线观看| 中文字幕在线一区免费| 国产精品综合一区二区三区| 日韩美女在线视频| 国产成人8x视频一区二区| 欧美一二三四在线| 中文字幕一区二区三区在线不卡| 99久久伊人精品| 国产精品久久综合| 91在线看国产| 亚洲欧美乱综合| 成人性生交大片| 日本一区二区久久| 国产一区二区伦理片| 国产性做久久久久久| 国产一区二区久久| 91精品国产综合久久久久久| 一区二区三区在线视频观看58| 91在线精品一区二区| 日韩不卡一区二区三区| 欧美区一区二区三区| 一区二区三区在线免费播放| 在线观看免费成人| 免费欧美在线视频| 亚洲欧洲精品成人久久奇米网| 国产一区二区三区国产| 国产亚洲综合在线| 一本大道av一区二区在线播放| 日韩专区欧美专区| 亚洲国产精品av| 欧美日韩国产中文| 蜜臀久久99精品久久久画质超高清| 国产亚洲美州欧州综合国 | 久久99国产精品免费网站| 亚洲伦理在线精品| 亚洲最新视频在线播放| 日韩精品一区二区三区老鸭窝| aaa国产一区|