[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)
在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支持几种不同的渲染模式。在不同的渲染模式下支持不同的接口:
支持所有模式的接口:
支持Renderless mode模式下的接口:IVMRSurfaceAllocatorNotify9
支持Windowed mode模式下的接口:
通过调用IVMRFilterConfig9::SetRenderingMode方法设置vmr-9的渲染模式。想要更多的信息,请参考VMRModes
of Operation。
IVMRImagePresenter9
IVMRImagePresenterConfig9(对于实现allocator-presenter来说此接口可选)
IVMRSurfaceAllocator9
IVMRSurfaceAllocatorEx9(可选)
IVMRWindowslessControl9(可选)
如果要自定义一个allocator-presenter,参考Supplyinga
Custom Allocator-Presenter for VMR-9。
2. 用户程序也可以提供一个自定义插件组合器暴露以下接口
IVMRImageCompositor
要用自定义的compositor配置VMR调用ICMRFilterConfig9::SetImageCompositor。
使用vmr-9可以播放视频。Vmr-9还可以跟Direct3D 功能结合起来在Direct3D游戏中加入视频,也可以使用Direct3D的着色器来处理视频图像。可以将源视频文件通过vmr-9,然后vmr-9将视频图像传递给Direct3D表面,然后通过Direct3D的功能来处理图像再显示。
翻译源: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的功能来处理图像再显示。
相关文章推荐
- 利用DSHOW中的VMR9 filter 将视频渲染成纹理 供D3D使用
- 【视频处理工程】2、DirectShow的基本单元:Filter
- DirectShow视频渲染的源、目标矩阵
- 利用DSHOW中的VMR9 filter 将视频渲染成纹理 供D3D使用
- DirectShow中写push模式的source filter流程 + 源代码(内附详细注释)
- 关于新手 DirectShow写source filter的具体流程
- 使用D3D渲染YUV视频数据<转>
- VC+DirectShow对视频进行图片处理之二
- 用DirectShow实现QQ的音视频聊天功能(ip可视对讲也许用的上)
- DirectShow的filterGrabber编译
- 利用 DirectShow 开发自己的 Filter
- 使用ffmpeg的overlay filter为视频增加跑马灯
- DirectShow 学习(七): CTransInPlaceFilter及相关联Pin类的源代码解析(转载)
- Directshow过滤器UDP传输H264视频提要
- 做了一个directshow的filter,把RGB视频流变成黑白的
- DirectShow播放视频文件,DexterLib截取图像。
- 基于Directshow的USB视频捕获Delphi篇(一)
- 利用DirectShow开发自己的Filter
- 浏览器渲染原理详解视频教程 百度云免费下载_柳哥Java
- Android视频渲染: YUV转RGB