开发者

Accessing the Direct3D device inside VMR9

I 开发者_C百科have a video decoder filter that lives inside a graph with VMR9 or EVR as the video renderer.

VMR9 and EVR use Direct3D to do the actual rendering. With EVR, I can access the D3D device with relative ease (I just ask for it using IMFGetService::GetService).

However, VMR9 does not expose IMFGetService, and, more generally, IMFGetService seems to be specific to Vista & above, like the entire DXVA2 architecture.

Is there a way to reach the Direct3D device inside VMR9?


you'll have access to the vmr9's d3d surfaces if you provide your own implementation of an allocator/presenter.

Check out the msdn page on vmr renderless mode

http://msdn.microsoft.com/en-us/library/dd390957(VS.85).aspx

The GetSurface call is what you need to get the d3d surface: http://msdn.microsoft.com/en-us/library/dd390502(v=VS.85).aspx

GetSurface is part of the IVMRSurfaceAllocator9 interface.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜