Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 访问VMR9内部的Direct3D设备_Video_Directshow_Direct3d - Fatal编程技术网

Video 访问VMR9内部的Direct3D设备

Video 访问VMR9内部的Direct3D设备,video,directshow,direct3d,Video,Directshow,Direct3d,我有一个视频解码器过滤器,它位于以VMR9或EVR作为视频渲染器的图形中 VMR9和EVR使用Direct3D进行实际渲染。使用EVR,我可以相对轻松地访问D3D设备(我只需要使用IMFGetService::GetService请求它) 然而,VMR9并不公开IMFGetService,更一般地说,IMFGetService似乎是特定于Vista及以上版本的,就像整个DXVA2体系结构一样 是否有办法访问VMR9内部的Direct3D设备?如果您提供自己的分配器/演示器实现,您将可以访问VMR

我有一个视频解码器过滤器,它位于以VMR9或EVR作为视频渲染器的图形中

VMR9和EVR使用Direct3D进行实际渲染。使用EVR,我可以相对轻松地访问D3D设备(我只需要使用IMFGetService::GetService请求它)

然而,VMR9并不公开IMFGetService,更一般地说,IMFGetService似乎是特定于Vista及以上版本的,就像整个DXVA2体系结构一样


是否有办法访问VMR9内部的Direct3D设备?

如果您提供自己的分配器/演示器实现,您将可以访问VMR9的d3d表面

查看vmr无渲染模式下的msdn页面

GetSurface调用是获取d3d曲面所需的:

GetSurface是IVMRSurfaceLocator9接口的一部分