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

力為的技術博客

聯系 聚合 管理
  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>
            亚洲精品一区中文| 久久国产视频网站| 亚洲国产精彩中文乱码av在线播放| 性欧美大战久久久久久久久| 亚洲一区二区精品在线| 免费精品视频| 伊人天天综合| 久久精品国产久精国产爱| 亚洲日本va午夜在线电影| 久久精品亚洲热| 国产一区二区日韩精品欧美精品| 欧美 日韩 国产 一区| 亚洲第一精品在线| 国产在线高清精品| 亚洲精品四区| 香蕉成人久久| 久久久精品五月天| 免播放器亚洲| 中文国产一区| 99riav国产精品| 91久久亚洲| 国产欧美精品在线| 亚洲大胆女人| 午夜亚洲福利在线老司机| 麻豆精品精品国产自在97香蕉| 欧美国产日韩精品免费观看| 中文欧美在线视频| 欧美成人精品激情在线观看| 国产精品夜色7777狼人| 亚洲欧洲日本国产| 久久久久国产一区二区三区四区 | 在线成人h网| 一本色道久久加勒比精品| 久久免费99精品久久久久久| 亚洲久久一区| 久热精品视频| 国产精品女主播一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美高清视频在线| 香蕉国产精品偷在线观看不卡| 欧美福利视频一区| 雨宫琴音一区二区在线| 午夜免费电影一区在线观看| 亚洲区一区二区三区| 久久久国产精品一区| 国产精品日韩欧美一区| 在线亚洲免费| 亚洲欧洲日产国码二区| 老司机免费视频一区二区三区| 国产视频一区免费看| 亚洲综合日韩中文字幕v在线| 亚洲国产日韩一区二区| 久久综合久久综合久久综合| 国语自产精品视频在线看抢先版结局 | 欧美精品在线视频| 亚洲欧洲日夜超级视频| 麻豆精品在线视频| 久久精品国产一区二区三| 国产农村妇女精品一区二区| 亚洲欧美亚洲| 一区二区激情| 国产精品成人va在线观看| 亚洲一级黄色片| 一本综合久久| 国产精品私拍pans大尺度在线 | 欧美成人午夜激情视频| 久久久久天天天天| 91久久在线观看| 最新日韩在线视频| 欧美日韩综合在线| 午夜精品久久久久久久久| 亚洲欧美国产精品va在线观看| 国产精品一区二区在线观看网站 | 欧美专区在线观看| 欧美一级一区| 亚洲日本视频| 在线视频一区观看| 国产亚洲女人久久久久毛片| 久久精品视频在线免费观看| 久久国产精品久久久久久电车| 一区二区在线免费观看| 欧美国产日韩一区二区在线观看| 欧美激情一区二区三区| 亚洲宅男天堂在线观看无病毒| 午夜国产精品影院在线观看| 在线观看不卡av| 99精品国产热久久91蜜凸| 久久国产视频网站| 亚洲福利视频网| 一本高清dvd不卡在线观看| 国产欧美日韩综合一区在线观看 | 国产精品久久二区| 久久亚洲精品一区| 欧美四级在线观看| 老色鬼精品视频在线观看播放 | 极品尤物久久久av免费看| 欧美激情精品久久久久久久变态| 欧美另类视频| 久久亚洲视频| 欧美日韩在线精品| 久久永久免费| 国产精品久久久久久久久久妞妞 | 巨乳诱惑日韩免费av| 亚洲一区中文| 免费视频亚洲| 久久精品在线免费观看| 欧美精品尤物在线| 久久综合国产精品| 国产精品麻豆欧美日韩ww| 亚洲第一网站| 狠狠干综合网| 亚洲综合精品| av成人免费在线| 另类国产ts人妖高潮视频| 欧美一区二区三区男人的天堂 | 亚洲免费观看在线观看| 久久国产精品亚洲77777| 一区二区欧美日韩视频| 久久综合色8888| 久久青草福利网站| 国产精品系列在线| 99亚洲一区二区| 在线视频欧美日韩| 欧美激情在线狂野欧美精品| 免费在线一区二区| 国产日韩在线视频| 亚洲综合久久久久| 午夜老司机精品| 国产精品婷婷| 亚洲小视频在线| 亚洲欧美日韩精品久久久久| 欧美三日本三级少妇三2023| 亚洲激情一区二区三区| 91久久线看在观草草青青| 免费日韩av片| 亚洲精品一区二区三区樱花| 一区二区三区日韩欧美| 欧美日韩国产综合网| 亚洲另类一区二区| 亚洲午夜精品一区二区三区他趣| 欧美日韩另类一区| 一区二区av| 午夜视频一区| 在线观看欧美视频| 亚洲免费观看| 亚洲视频免费在线| 国产精品免费网站在线观看| 日韩手机在线导航| 亚洲欧美视频在线| 国产综合欧美在线看| 久久精品日产第一区二区| 美日韩精品视频| 亚洲精品视频在线观看网站 | 久久午夜激情| 亚洲国产日韩精品| 亚洲一区免费看| 国产亚洲精品一区二区| 久久综合九色综合欧美狠狠| 亚洲激情校园春色| 性欧美大战久久久久久久久| 伊人久久成人| 欧美激情精品久久久久久久变态| 日韩午夜精品| 久久免费精品日本久久中文字幕| 影音先锋久久| 欧美色一级片| 久久久人人人| 一区二区不卡在线视频 午夜欧美不卡在 | 国产精品99久久久久久宅男| 久久爱www| 日韩午夜av电影| 国产欧美在线视频| 欧美精品一区在线| 久久久久.com| 日韩网站在线观看| 欧美a一区二区| 亚洲自拍电影| 亚洲精选成人| 狠狠干成人综合网| 国产精品视频网| 欧美国产视频一区二区| 亚洲免费一级电影| 亚洲精品极品| 欧美aaa级| 久久久精品网| 亚洲一区二区黄色| 亚洲人人精品| 影音先锋久久精品| 国产一区二区高清| 欧美特黄一级| 欧美激情影院| 免费在线观看日韩欧美| 性8sex亚洲区入口| 亚洲一区二区三区精品在线观看| 欧美国产视频在线观看| 久久国产精品毛片| 亚洲在线播放电影| 一区二区三区www| 亚洲美女中出| 91久久综合|