您的位置:首页 > 其它

[DirectShow] vmr-9(Video Mixing Renderer 9) Filter (视频混合渲染处理器9 filter)

2013-05-18 14:00 309 查看
由此翻译纯属自己的笔记及练习一下英语阅读。翻译错和翻译得极烂的地方要是我今后水平得到提到的话会来修改修改的。

翻译源:http://msdn.microsoft.com/en-us/library/windows/desktop/dd407344(v=vs.85).aspx(Video Mixing Renderer Filter 9)



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不被设置为任何系统上的默认渲染器。如果要使用这个filter(vmr-9),需要将此filter准确地添加到filter
graph 中,在此filter(vmr-9)连接到其它任何输入pins之前需要被配置。Vmr-9使用自己的一套接口、结构及枚举器,这些都不是跟vmr-7的这些接口、结构、枚举器都完全一样的。



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

通过调用IVMRFilterConfig9::SetRenderingMode方法设置vmr-9的渲染模式。想要更多的信息,请参考VMRModes
of Operation。



2 备注

1. 一个程序可以自定义一个暴露以下接口allocator-presenter对象

IVMRImagePresenter9
IVMRImagePresenterConfig9(对于实现allocator-presenter来说此接口可选)
IVMRSurfaceAllocator9
IVMRSurfaceAllocatorEx9(可选)
IVMRWindowslessControl9(可选)

如果要自定义一个allocator-presenter,参考Supplyinga
Custom Allocator-Presenter for VMR-9。

2. 用户程序也可以提供一个自定义插件组合器暴露以下接口

IVMRImageCompositor

要用自定义的compositor配置VMR调用ICMRFilterConfig9::SetImageCompositor。



3目前的总结

对于一个源视频,一般的renderer filter就可以播放。

使用vmr-9可以播放视频。Vmr-9还可以跟Direct3D 功能结合起来在Direct3D游戏中加入视频,也可以使用Direct3D的着色器来处理视频图像。可以将源视频文件通过vmr-9,然后vmr-9将视频图像传递给Direct3D表面,然后通过Direct3D的功能来处理图像再显示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: