国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Enhanced Video Render在Directshow中的使用

1基本性能

EVR 可以混和 16 video 串流到使用者屏幕上, 其中的一個 輸入串流當(dāng)作基底的 reference stream. 其他的串流稱為 substreams 而被混和到 reference stream  上面.所有 substreams 都可以為每一個 bit 設(shè)定透明資訊 ( per-pixel transparency),   reference stream 不行. 基本上, EVR 使用了一個混合器 mixer 將所有的串流混合到一個顯示表面, mixer 的混合輸出就是最后的 輸出 frame.接著, 由一個稱為 presenter 的物件接手, 把最后的 frame顯示出來.

2EVR  VMR 的差異

1. EVR 不支持 windowed mode. 所以程式中不用設(shè)定一律 windowless

2. EVR 沒有 renderless mode, 要寫自己的 presenter。

3. EVR 沒有 mixing mode 的設(shè)定, 因為 它永遠(yuǎn)會建立 mixer.

如果只是想執(zhí)行, 則使用者只要安裝 .Net Framework 3.0 以上的版本, 若你想開發(fā) EVR程序, 那么你將需要 Windows SDK for Windows Vista (請放心, XP 的使用者也能編譯)

3最簡單使用 Enhanced Video Render 例子

------------------------------------- code ----------------------------------

//  加入新建立 Enhanced Video Render 到你的 Graph  
hr = AddFilterByCLSID( pBuilder, CLSID_EnhancedVideoRenderer,_T("Enhanced            Video Render"), &m_pVR ); 
if(FAILED(hr))

{ 
       MessageBox(NULL,_T("
EVR fail"),_T("info"),MB_OK); 
}

// Step 2: 設(shè)定顯示方式 
//   a.
取得 GetService 工具物件 
CComPtr<IMFGetService> pGetService = NULL; // include mfidl.h 
hr = m_pVR->QueryInterface(__uuidof(IMFGetService), (void**)&pGetService); 
if(FAILED(hr)){ 
    MessageBox(NULL,_T("IMFGetService fail"),_T("info"),MB_OK); 
    return hr; 
} 
//   b. 利用工具物件取得 Video Display Control 
CComPtr<
IMFVideoDisplayControl> m_pVDC=NULL;   // include evr.h 
hr=pGetService->GetService(MR_VIDEO_RENDER_SERVICE,__uuidof(IMFVideoDisplayControl),(void**)&m_pVDC); 
if(FAILED(hr)){ 
    MessageBox(NULL,_T("GetService fail::The object does not support the service."),_T("info"),MB_OK); 
    return hr; 
} 
//    c.  指定顯示的視窗 
hr=m_pVDC->SetVideoWindow(hWnd); 
if(FAILED(hr)){ 
    MessageBox(NULL,_T("SetVideoWindow fail::
EVR"),_T("info"),MB_OK); 
    return hr; 
}

//     d. 指定串流顯示模式 
hr=m_pVDC->SetAspectRatioMode(MFVideoARMode_None); 
if(FAILED(hr)){ 
    MessageBox(NULL,_T("SetAspectRatioMode fail::
EVR"),_T("info"),MB_OK); 
    return hr; 
}

------------------------------------- end of code ----------------------------------

設(shè)定串流顯示位置

RECT recDec=... 
hr=m_pVDC->SetVideoPosition(NULL,&recDec);//
設(shè)定顯示位置

取得目前正在播放的影像

   BITMAPINFOHEADER hdr; // 回傳的 BMP 資訊 
    DWORD               dwSize; //
資料長度 
    LONGLONG TimeStamp;

    hdr.biSize=sizeof(BITMAPINFOHEADER); 
    hr=m_pVDC->GetCurrentImage(&hdr,&lpDib,&dwSize,&TimeStamp);

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
讓她/他每天一打開電腦就能想起你!
invoke 錯誤
2HUAWEI Mate 20 X快速指南
MFC 加載 和顯示圖片的幾個函數(shù)與例子 ,可以顯示任何圖片
vc++訪問javascript(3)
交換二叉樹所有節(jié)點的左右子樹
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服