[DirectShow] vmr-9(Video Mixing Renderer 9) Filter (視訊混合渲染處理器9 filter)
由此翻譯純屬自己的筆記及練習一下英語閱讀。翻譯錯和翻譯得極爛的地方要是我今後水平得到提到的話會來修改修改的。
1 VMR-9
VMR-9即VideoMixing Renderer9(視訊混合渲染器9)Filter。
在DirectX9裡,視訊混合渲染(VMR-9)filter為DirectX所支援的所有平臺提供先進的視訊渲染能力。VMR-9集成了DirectX 9 3D所有的能力,如使用者可以“很輕鬆”地將一個視訊新增到遊戲中或者其它3D裝置中,或者用Direct3D的畫素著色器或其它效果來改造視訊圖片。
vmr-9filter 不支援視訊埠。
為了維持VMR-9向後的相容性,VMR-9
Vmr-9支援16種顯示器。
Vmr-9支援幾種不同的渲染模式。在不同的渲染模式下支援不同的介面:
- 支援所有模式的介面:
IAMCertifiedOutputProtection
、IAMFilterMiscFlags、IBaseFilter、
IMediaPosition、IMediaSeeking
、IQualityControl、
IQualProp、IVMRAspectRatioControl9
、
IVMRDeinterlaceControl9、IVMRMixerBitmap9、IVMRMixerControl9 - 支援Renderless mode模式下的介面:IVMRSurfaceAllocatorNotify9
- 支援Windowed mode模式下的介面:
IBasicVideo
、
IBasicVideo2、IVideoWindow
、IVMRMonitorConfig9
支援windoless mode的介面:IVMRMonitorConfig9、
IVMRWindowlessControl9
通過呼叫
2 備註
1. 一個程式可以自定義一個暴露以下介面allocator-presenter物件
- IVMRImagePresenter9
- IVMRImagePresenterConfig9(對於實現allocator-presenter來說此介面可選)
- IVMRSurfaceAllocator9
- IVMRSurfaceAllocatorEx9(可選)
- IVMRWindowslessControl9(可選)
2. 使用者程式也可以提供一個自定義外掛組合器暴露以下介面
IVMRImageCompositor
要用自定義的compositor配置VMR呼叫ICMRFilterConfig9::SetImageCompositor。
3目前的總結
對於一個源視訊,一般的renderer filter就可以播放。
使用vmr-9可以播放視訊。Vmr-9還可以跟Direct3D 功能結合起來在Direct3D遊戲中加入視訊,也可以使用Direct3D的著色器來處理視訊影象。可以將源視訊檔案通過vmr-9,然後vmr-9將視訊影象傳遞給Direct3D表面,然後通過Direct3D的功能來處理影象再顯示。