青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

力為的技術博客

聯系 聚合 管理
  154 Posts :: 1 Stories :: 561 Comments :: 0 Trackbacks

no?crap only codes

?1 class ?CCaptureVideo?:? public ?CWnd?
?2 {
?3 ????friend? class ?CSampleGrabberCB;
?4 public :
?5 ???? void ?GrabOneFrame(BOOL?bGrab,? const ?CString & ?szFileName);
?6 ????HRESULT?Init( int ?iDeviceID,HWND?hWnd);
?7 ???? int ?EnumDevices(HWND?hList);
?8 ????CCaptureVideo();
?9 ???? virtual ? ~ CCaptureVideo();
10 private :
11 ????HWND?m_hWnd;
12 ????IGraphBuilder? * m_pGB;
13 ????ICaptureGraphBuilder2 * ?m_pCapture;
14 ????IBaseFilter * ?m_pBF;
15 ????IMediaControl * ?m_pMC;
16 ????IMediaEventEx? * ?m_pME;
17 ????IVideoWindow * ?m_pVW;
18 ????CComPtr < ISampleGrabber > ?m_pGrabber;
19 protected :
20 ???? void ?FreeMediaType(AM_MEDIA_TYPE & ?mt);
21 ???? bool ?BindFilter( int ?deviceId,?IBaseFilter? ** pFilter);
22 ???? void ?ResizeVideoWindow();
23 ????HRESULT?SetupVideoWindow();
24 ????HRESULT?InitCaptureGraphBuilder();
25 }
;

?1
?2 class ?CSampleGrabberCB?:? public ?ISampleGrabberCB?
?3 {
?4 public :
?5 ???? long ?lWidth;
?6 ???? long ?lHeight;
?7 ???? static ?CString?m_szFileName; // ?位圖文件名稱
?8 ????CSampleGrabberCB(?)
?9 ???? {
10 ????}
?
11
12 ????STDMETHODIMP_(ULONG)?AddRef()?
13 ???? {? return ? 2 ;?}
14
15 ????STDMETHODIMP_(ULONG)?Release()?
16 ???? {? return ? 1 ;?}
17
18 ????STDMETHODIMP?QueryInterface(REFIID?riid,? void ? ** ?ppv)
19 ???? {
20 ???????? if (?riid? == ?IID_ISampleGrabberCB? || ?riid? == ?IID_IUnknown?)
21 ???????? {?
22 ???????????? * ppv? = ?( void ? * )?static_cast < ISampleGrabberCB *> ?(? this ?);
23 ???????????? return ?NOERROR;
24 ????????}
?
25 ???????? return ?E_NOINTERFACE;
26 ????}

27
28 ????STDMETHODIMP?SampleCB(? double ?SampleTime,?IMediaSample? * ?pSample?)
29 ???? {
30 ???????? return ? 0 ;
31 ????}

32
33 ????STDMETHODIMP?BufferCB(? double ?dblSampleTime,?BYTE? * ?pBuffer,? long ?lBufferSize?)
34 ???? {
35 ???????? if (? ! bOneShot?) return ? 0 ;
36 ????????
37 ???????? if ?( ! pBuffer)
38 ???????????? return ?E_POINTER;
39
40 ???????? if (SaveBitmap(pBuffer,?lBufferSize))
41 ???????? {
42 ???????????? // ?notify?has?create?a?bitmap?file;
43 ????????????CGlobalData::m_pMainView -> HasSavedPhoto(m_szFileName);
44 ????????}

45
46 ????????bOneShot? = ?FALSE;
47
48 ????
49 ???????? return ? 0 ;
50 ????}

51 ???? // 創建位圖文件
52 ????BOOL?SaveBitmap(BYTE? * ?pBuffer,? long ?lBufferSize?)
53 ???? {
54 ????????HANDLE?hf? = ?CreateFile(
55 ????????????m_szFileName,
56 ????????????GENERIC_WRITE,?FILE_SHARE_READ,?NULL,
57 ????????????CREATE_ALWAYS,
58 ????????????NULL,?
59 ????????????NULL?);
60
61 ???????? if (?hf? == ?INVALID_HANDLE_VALUE?)
62 ???????????? return ?FALSE;
63
64 ???????? // ?寫文件頭?
65 ????????BITMAPFILEHEADER?bfh;
66 ????????memset(? & bfh,? 0 ,? sizeof (?bfh?)?);
67 ????????bfh.bfType? = ? ' MB ' ;
68 ????????bfh.bfSize? = ? sizeof (?bfh?)? + ?lBufferSize? + ? sizeof (?BITMAPINFOHEADER?);
69 ????????bfh.bfOffBits? = ? sizeof (?BITMAPINFOHEADER?)? + ? sizeof (?BITMAPFILEHEADER?);
70 ????????DWORD?dwWritten? = ? 0 ;
71 ????????WriteFile(?hf,? & bfh,? sizeof (?bfh?),? & dwWritten,?NULL?);
72
73 ???????? // ?寫位圖格式
74 ????????BITMAPINFOHEADER?bih;
75 ????????memset(? & bih,? 0 ,? sizeof (?bih?)?);
76 ????????bih.biSize? = ? sizeof (?bih?);
77 ????????bih.biWidth? = ?lWidth;
78 ????????bih.biHeight? = ?lHeight;
79 ????????bih.biPlanes? = ? 1 ;
80 ????????bih.biBitCount? = ? 24 ;
81 ????????WriteFile(?hf,? & bih,? sizeof (?bih?),? & dwWritten,?NULL?);
82
83 ???????? // ?寫位圖數據
84 ????????WriteFile(?hf,?pBuffer,?lBufferSize,? & dwWritten,?NULL?);
85
86 ????????CloseHandle(?hf?);
87
88 ???????? return ?TRUE;
89 ????}

90 }
;

///////////////////////////////////////////////////////////////////// /
// ?Construction/Destruction
///////////////////////////////////////////////////////////////////// /
CCaptureVideo::CCaptureVideo()
{
????m_pBF?
= ? 0 ;
????m_hWnd?
= ?NULL;
????m_pVW?
= ?NULL;
????m_pMC?
= ?NULL;
????m_pME?
= ?NULL;
????m_pGB?
= ?NULL;
????m_pCapture?
= ?NULL;?
}

CCaptureVideo::
~ CCaptureVideo()
{
????
// ?Stop?media?playback

????
if (m_pMC)
????????m_pMC
-> StopWhenReady();
????
// ?Stop?receiving?events
???? if ?(m_pME)
????????m_pME
-> SetNotifyWindow(NULL,?WM_GRAPHNOTIFY,? 0 );

????
if (m_pVW) {
????????m_pVW
-> put_Visible(OAFALSE);
????????m_pVW
-> put_Owner(NULL);
????}



????SAFE_RELEASE(m_pMC);
????SAFE_RELEASE(m_pME);
????SAFE_RELEASE(m_pVW);
????SAFE_RELEASE(m_pGB);
????SAFE_RELEASE(m_pBF);
????SAFE_RELEASE(m_pCapture);
????
// CoUninitialize(?);
}

int ?CCaptureVideo::EnumDevices(HWND?hList)
{
????
if ?( ! hList)
????????
return ? - 1 ;
????
int ?id? = ? 0 ;
????
????
// 枚舉視頻撲捉設備
????ICreateDevEnum? * pCreateDevEnum;
????HRESULT?hr?
= ?CoCreateInstance(CLSID_SystemDeviceEnum,?NULL,?CLSCTX_INPROC_SERVER,IID_ICreateDevEnum,?( void ** ) & pCreateDevEnum);
????
????
if ?(hr? != ?NOERROR) return ? - 1 ;
????CComPtr
< IEnumMoniker > ?pEm;
????hr?
= ?pCreateDevEnum -> CreateClassEnumerator(CLSID_VideoInputDeviceCategory, & pEm,? 0 );
????
????
if ?(hr? != ?NOERROR) return ? - 1 ;
????pEm
-> Reset();
????ULONG?cFetched;
????IMoniker?
* pM;
????
while (hr? = ?pEm -> Next( 1 ,? & pM,? & cFetched),?hr == S_OK)
????
{
????????IPropertyBag?
* pBag;
????????hr?
= ?pM -> BindToStorage( 0 ,? 0 ,?IID_IPropertyBag,?( void ? ** ) & pBag);
????????
if (SUCCEEDED(hr))?
????????
{
????????????VARIANT?var;
????????????var.vt?
= ?VT_BSTR;
????????????hr?
= ?pBag -> Read(L " FriendlyName " ,? & var,?NULL);
????????????
if ?(hr? == ?NOERROR)?
????????????
{
????????????????TCHAR?str[
2048 ];?
????????????????id
++ ;
????????????????WideCharToMultiByte(CP_ACP,
0 ,var.bstrVal,? - 1 ,?str,? 2048 ,?NULL,?NULL);
????????????????::SendMessage(hList,?CB_ADDSTRING,?
0 ,(LPARAM)str);
????????????????SysFreeString(var.bstrVal);
????????????}

????????????pBag
-> Release();
????????}

????????pM
-> Release();
????}

????
return ?id;
}

HRESULT?CCaptureVideo::Init(
int ?iDeviceID,?HWND?hWnd)
{
????HRESULT?hr;
????hr?
= ?InitCaptureGraphBuilder();
????
if ?(FAILED(hr)) {
????????AfxMessageBox(
" Failed?to?get?video?interfaces! " );
????????
return ?hr;
????}


????
// ?Bind?Device?Filter.?We?know?the?device?because?the?id?was?passed?in
???? if ( ! BindFilter(iDeviceID,? & m_pBF)) return ?S_FALSE;
????hr?
= ?m_pGB -> AddFilter(m_pBF,?L " Video?Capture " );
????
if ?(FAILED(hr))
????
{
????????m_pBF
-> Release();
????????
return ?hr;
????}


????
// ?create?a?sample?grabber
????hr? = ?m_pGrabber.CoCreateInstance(?CLSID_SampleGrabber?);
????
if (? ! m_pGrabber?) {
????????AfxMessageBox(
" Fail?to?create?SampleGrabber,?maybe?qedit.dll?is?not?registered? " );
????????
return ?hr;
????}

????CComQIPtr
< ?IBaseFilter,? & IID_IBaseFilter? > ?pGrabBase(?m_pGrabber?);
????
????
// 設置視頻格式
????AM_MEDIA_TYPE?mt;?
????ZeroMemory(
& mt,? sizeof (AM_MEDIA_TYPE));
????mt.majortype?
= ?MEDIATYPE_Video;
????mt.subtype?
= ?MEDIASUBTYPE_RGB24;
????hr?
= ?m_pGrabber -> SetMediaType( & mt);
????
????
if (?FAILED(?hr?)?) {
????????AfxMessageBox(
" Fail?to?set?media?type! " );
????????
return ?hr;
????}

????hr?
= ?m_pGB -> AddFilter(?pGrabBase,?L " Grabber " ?);
????
if (?FAILED(?hr?)?) {
????????AfxMessageBox(
" Fail?to?put?sample?grabber?in?graph " );
????????
return ?hr;
????}

????
????
// ?try?to?render?preview/capture?pin
????hr? = ?m_pCapture -> RenderStream( & PIN_CATEGORY_PREVIEW,? & MEDIATYPE_Video,m_pBF,pGrabBase,NULL);
????
if (?FAILED(?hr?)?)
????????hr?
= ?m_pCapture -> RenderStream( & PIN_CATEGORY_CAPTURE,? & MEDIATYPE_Video,m_pBF,pGrabBase,NULL);
????
????
if (?FAILED(?hr?)?) {
????????AfxMessageBox(
" Can’t?build?the?graph " );
????????
return ?hr;
??????????}

????
????hr?
= ?m_pGrabber -> GetConnectedMediaType(? & mt?);
????
if ?(?FAILED(?hr)?) {
????????AfxMessageBox(
" Failt?to?read?the?connected?media?type " );
????????
return ?hr;
????}

????
????VIDEOINFOHEADER?
* ?vih? = ?(VIDEOINFOHEADER * )?mt.pbFormat;
????mCB.lWidth?
= ?vih -> bmiHeader.biWidth;
????mCB.lHeight?
= ?vih -> bmiHeader.biHeight;
????FreeMediaType(mt);
????hr?
= ?m_pGrabber -> SetBufferSamples(?FALSE?);
????hr?
= ?m_pGrabber -> SetOneShot(?FALSE?);
????hr?
= ?m_pGrabber -> SetCallback(? & mCB,? 1 ?);
????
????
// 設置視頻捕捉窗口
????m_hWnd? = ?hWnd?;?
????SetupVideoWindow();

????hr?
= ?m_pMC -> Run(); // 開始視頻捕捉
???? if (FAILED(hr))
????
{
????????AfxMessageBox(
" Couldn’t?run?the?graph! " );
????????
return ?hr;
????}


????
return ?S_OK;
}

bool ?CCaptureVideo::BindFilter( int ?deviceId,?IBaseFilter? ** pFilter)
{
????
if ?(deviceId? < ? 0 )
????????
return ? false ;
????IBaseFilter?
* ?pSrc? = ?NULL;
????
// ?enumerate?all?video?capture?devices
????CComPtr < ICreateDevEnum > ?pCreateDevEnum? = ?NULL;
????HRESULT?hr?
= ?CoCreateInstance(CLSID_SystemDeviceEnum,?NULL,?CLSCTX_INPROC,
????????IID_ICreateDevEnum,?(
void ** ) & pCreateDevEnum);
????
if ?(FAILED(hr))
????
{
????????
return ? false ;
????}

????CComPtr
< IEnumMoniker > ?pEm? = ?NULL;
????hr?
= ?pCreateDevEnum -> CreateClassEnumerator(CLSID_VideoInputDeviceCategory, & pEm,? 0 );
????
if ?(FAILED(hr))?
????
{
????????
return ? false ;
????}

????
// pEm->Reset();

????ULONG?cFetched;
????IMoniker?
* pM;
????
int ?index? = ? 0 ;
????
while (S_OK? == ?(pEm -> Next( 1 ,? & pM,? & cFetched))? && ?index? <= ?deviceId)
????
{
????????IPropertyBag?
* pBag;
????????hr?
= ?pM -> BindToStorage( 0 ,? 0 ,?IID_IPropertyBag,?( void ? ** ) & pBag);
????????
if (SUCCEEDED(hr))?
????????
{
????????????VARIANT?var;
????????????var.vt?
= ?VT_BSTR;
????????????hr?
= ?pBag -> Read(L " FriendlyName " ,? & var,?NULL);
????????????
if ?(hr? == ?NOERROR)?
????????????
{
????????????????
if ?(index? == ?deviceId)
????????????????
{
????????????????????pM
-> BindToObject( 0 ,? 0 ,?IID_IBaseFilter,?( void ** ) & pSrc);
????????????????}

????????????????SysFreeString(var.bstrVal);
????????????}

????????????pBag
-> Release();
????????}

????????pM
-> Release();
????????index
++ ;
????}


????
* pFilter? = ?pSrc;
????
return ? true ;
}


HRESULT?CCaptureVideo::InitCaptureGraphBuilder()
{
????HRESULT?hr;
????
????
// ?創建IGraphBuilder接口
????hr = CoCreateInstance(CLSID_FilterGraph,?NULL,?CLSCTX_INPROC,
????????IID_IGraphBuilder,?(
void ? ** ) & m_pGB);
????
if ?(FAILED(hr))
????????
return ?hr;

????
// ?創建ICaptureGraphBuilder2接口
????hr? = ?CoCreateInstance?(CLSID_CaptureGraphBuilder2?,?NULL,?CLSCTX_INPROC,
????????IID_ICaptureGraphBuilder2,?(
void ? ** )? & m_pCapture);
????
if ?(FAILED(hr))
????????
return ?hr;

????m_pCapture
-> SetFiltergraph(m_pGB);
????hr?
= ?m_pGB -> QueryInterface(IID_IMediaControl,?( void ? ** ) & m_pMC);
????
if ?(FAILED(hr))
????????
return ?hr;

????hr?
= ?m_pGB -> QueryInterface(IID_IVideoWindow,?(LPVOID? * )? & m_pVW);
????
if ?(FAILED(hr))
????????
return ?hr;

????hr?
= ?m_pGB -> QueryInterface(IID_IMediaEvent,?(LPVOID? * )? & m_pME);
????
if ?(FAILED(hr))
????????
return ?hr;

????
// ?Set?the?window?handle?used?to?process?graph?events
????hr? = ?m_pME -> SetNotifyWindow((OAHWND)m_hWnd,?WM_GRAPHNOTIFY,? 0 );

????
return ?hr;
}

HRESULT?CCaptureVideo::SetupVideoWindow()
{
????HRESULT?hr;
????hr?
= ?m_pVW -> put_Owner((OAHWND)m_hWnd);
????
if ?(FAILED(hr))
????????
return ?hr;

????hr?
= ?m_pVW -> put_WindowStyle(WS_CHILD? | ?WS_CLIPCHILDREN);
????
if ?(FAILED(hr))
????????
return ?hr;

????ResizeVideoWindow();
????hr?
= ?m_pVW -> put_Visible(OATRUE);

????
return ?hr;
}

void ?CCaptureVideo::ResizeVideoWindow()
{
????
if ?(m_pVW) {
????????
// 讓圖像充滿整個窗口
????????CRect?rc;
????????::GetClientRect(m_hWnd,
& rc);
????????m_pVW
-> SetWindowPosition( 0 ,? 0 ,?rc.right,?rc.bottom);
????}
?
}

void ?CCaptureVideo::GrabOneFrame(BOOL?bGrab,? const ?CString & ?szFileName)
{
????bOneShot?
= ?bGrab;
????CSampleGrabberCB::m_szFileName?
= ?szFileName;
}

void ?CCaptureVideo::FreeMediaType(AM_MEDIA_TYPE & ?mt)
{
????
if ?(mt.cbFormat? != ? 0 )? {
????????CoTaskMemFree((PVOID)mt.pbFormat);
????????
// ?Strictly?unnecessary?but?tidier
????????mt.cbFormat? = ? 0 ;
????????mt.pbFormat?
= ?NULL;
????}

????
if ?(mt.pUnk? != ?NULL)? {
????????mt.pUnk
-> Release();
????????mt.pUnk?
= ?NULL;
????}

}
?
posted on 2006-11-12 14:10 力為 閱讀(1504) 評論(0)  編輯 收藏 引用 所屬分類: Tools
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            校园激情久久| 国产一区二区福利| 在线综合亚洲| 欧美mv日韩mv国产网站| 欧美在线一二三| 欧美在线视频一区二区| 午夜在线观看欧美| 亚洲欧美经典视频| 久久精品人人做人人爽电影蜜月 | 午夜影视日本亚洲欧洲精品| 亚洲午夜精品久久久久久浪潮 | 亚洲一区免费看| 亚洲欧美日韩精品久久亚洲区| 一区二区三区**美女毛片| 亚洲一级特黄| 久久综合一区| 亚洲伦理精品| 午夜综合激情| 欧美成人国产一区二区 | 狠狠网亚洲精品| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲精品看片| 欧美一级久久久久久久大片| 免费看亚洲片| 亚洲一级一区| 久久视频免费观看| 欧美色图天堂网| 精品不卡在线| 亚洲一区二区三区四区中文| 久久免费视频一区| 99re66热这里只有精品3直播| 欧美伊人久久大香线蕉综合69| 欧美 日韩 国产精品免费观看| 国产精品美女久久| 亚洲国产天堂网精品网站| 欧美一区2区视频在线观看 | 欧美激情一区二区久久久| 亚洲一区在线播放| 久久精品夜色噜噜亚洲a∨| 欧美激情在线观看| 激情综合电影网| 亚洲欧美一区二区视频| 最新亚洲一区| 亚洲欧美综合v| 欧美三级电影网| 亚洲激情视频网站| 欧美成人自拍| 久热精品在线| 在线观看日韩av电影| 久久不见久久见免费视频1| 亚洲理论在线观看| 欧美**人妖| 91久久久在线| 久久一区中文字幕| 欧美一区二区三区的| 欧美午夜一区二区| 一区二区不卡在线视频 午夜欧美不卡'| 久久亚洲春色中文字幕久久久| 亚洲综合首页| 国产精品五月天| 久久gogo国模啪啪人体图| 香蕉av777xxx色综合一区| 国产精品一区二区三区免费观看| 一区二区91| 在线视频精品一| 欧美视频一区二区三区四区| 中日韩高清电影网| 99国产欧美久久久精品| 欧美日韩一区二区免费在线观看| 日韩一区二区电影网| 亚洲欧洲另类国产综合| 欧美黄色小视频| 在线视频亚洲| 亚洲欧美韩国| 伊人久久综合97精品| 亚洲国产精品成人综合色在线婷婷| 欧美第一黄网免费网站| 亚洲视频免费在线| 午夜久久久久久| 亚洲二区在线| 99精品视频免费观看| 国产精品午夜视频| 牛夜精品久久久久久久99黑人| 欧美不卡福利| 亚洲欧美中文字幕| 久久久亚洲成人| 日韩网站免费观看| 亚洲视频免费| 136国产福利精品导航| 最新国产の精品合集bt伙计| 国产精品久久久久久久久果冻传媒| 亚洲在线一区| 久久久噜噜噜久噜久久| 亚洲高清av| 99re8这里有精品热视频免费| 欧美在线日韩精品| 久久久av毛片精品| 欧美一区二区视频在线观看| 狠狠入ady亚洲精品| 亚洲国产一二三| 欧美性理论片在线观看片免费| 久久久亚洲精品一区二区三区 | 欧美夜福利tv在线| 国内精品久久久久久久影视蜜臀 | 欧美1级日本1级| 欧美经典一区二区三区| 欧美在线国产精品| 欧美阿v一级看视频| 久久久国产精品一区| 欧美成人免费小视频| 亚洲欧美日韩精品久久奇米色影视 | 亚洲视频免费在线| 尤妮丝一区二区裸体视频| 亚洲人成小说网站色在线| 国产精品视频一| 亚洲大胆视频| 国产在线视频欧美| 一区二区欧美视频| 99riav1国产精品视频| 久久精品一区中文字幕| 亚洲夜晚福利在线观看| 久久人人超碰| 欧美在线一级va免费观看| 欧美精品免费观看二区| 久久综合狠狠综合久久综青草 | 亚洲夜晚福利在线观看| 亚洲欧洲视频在线| 欧美在线资源| 亚洲欧美日韩国产精品| 欧美激情第一页xxx| 美女视频黄免费的久久| 国产精品久久久久影院色老大 | 欧美大片免费看| 久久精品国产清自在天天线 | 欧美成人午夜剧场免费观看| 久久大香伊蕉在人线观看热2| 欧美日韩mp4| 91久久精品国产91久久性色| 在线观看日韩精品| 久久国内精品自在自线400部| 午夜精品久久99蜜桃的功能介绍| 欧美精品在线免费| 亚洲国产精品久久精品怡红院 | 国产精品国产精品| 国产精品高潮呻吟久久av无限| 亚洲国产精品激情在线观看| 亚洲风情亚aⅴ在线发布| 欧美一区激情| 久久疯狂做爰流白浆xx| 国产精品视频一区二区高潮| 日韩亚洲欧美高清| 亚洲永久字幕| 国产精品欧美日韩久久| 亚洲一区视频| 新67194成人永久网站| 欧美亚一区二区| 亚洲欧美一区在线| 久久嫩草精品久久久精品| 黑人一区二区三区四区五区| 久久精品一本久久99精品| 蜜桃久久精品一区二区| 亚洲国产第一页| 欧美精品在线播放| 在线视频欧美精品| 久久久美女艺术照精彩视频福利播放| 国产一区二区三区无遮挡| 久久在线视频在线| 最新精品在线| 午夜精品福利在线| 精品99一区二区| 欧美 日韩 国产在线| 夜夜狂射影院欧美极品| 欧美激情在线观看| 亚洲午夜精品| 免费亚洲婷婷| 亚洲视频一区二区| 狠狠噜噜久久| 欧美日韩中文在线观看| 欧美一二三区精品| 亚洲欧洲精品天堂一级| 欧美一区二区三区精品| 亚洲激情欧美激情| 国产老女人精品毛片久久| 蜜臀a∨国产成人精品| 99这里只有久久精品视频| 久久国产精品第一页| 一本色道久久综合亚洲精品婷婷 | 激情欧美日韩| 欧美日韩国产成人在线| 亚洲综合精品四区| 亚洲第一精品夜夜躁人人躁| 一区二区久久| 美女脱光内衣内裤视频久久影院| 久久综合久久久| 亚洲午夜av| 亚洲经典三级| 另类尿喷潮videofree | 免费亚洲视频| 香蕉久久国产| 99av国产精品欲麻豆|