已安装设备的VMR9功能 [英] VMR9 capabilities of installed devices

查看:131
本文介绍了已安装设备的VMR9功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我开发了一个使用VMR9 API通过DirectShow播放视频的应用程序.
当然,如果没有VMR9,我想防止用户玩游戏,我发现可以通过以下代码的经典成功来实现

Hi,

I developped an application that plays video through DirectShow with the VMR9 API.
Of course, I want to prevent the user from playing if VMR9 is not present, which I found could be done by classical success of the following code

hr = CoCreateInstance(CLSID_VideoMixingRenderer9, NULL,
  CLSCTX_INPROC, IID_IBaseFilter,(LPVOID *)&pBF);



我的应用程序能够在用户选择的任何监视器上播放视频.

在我尝试连接USB图形设备之前,它一直运行良好,因为我发现它似乎与图形设备的VMR9功能有关.

这是我到目前为止所做的测试:
-在将USB设备定义为主计算机的笔记本电脑(Windows XP)上,我的应用程序说未安装VMR9.
-在同一台笔记本电脑上,将此USB设备定义为台式机扩展,我的应用程序说安装了VMR9,可能是因为我的笔记本电脑芯片组支持它.

当然,其实现方式,VMR9功能测试的结果对于系统而言是全局的,并且似乎仅考虑对主设备进行检查.

所以我的问题是
-我怎么知道设备支持VMR9?
-此外,无论USB设备是主要设备还是非主要设备,我都在Windows 7台式机上进行了相同的测试,并且报告安装了VMR9.因此,它不仅与硬件有关,因为同一USB设备在7(而不是XP)下工作.我还需要安装其他东西吗?



My application is capable of playing video on whatever monitor selected by the user.

It worked fine until I tried to connect a USB graphic device, as I found that it seems relative to the VMR9 capability of the graphic device.

Here are the tests I did so far :
- On a laptop (Windows XP), with this USB device defined as the primary, my application said VMR9 was not installed.
- On the same laptop, with this USB device defined as a desktop extension, my application said VMR9 was installed, probably because my laptop chipset supports it.

Of course, the way it is implemented, the result of the VMR9 capabilities test is global to the system, and it seems it is only considering the checking of the primary device.

So my questions are
- How can I know that a device is VMR9 capable ?
- Moreover, I tried the same tests on a Windows 7 desktop PC and it reports VMR9 installed, whatever the USB device is primary or not. So it is not only related to the hardware as the same USB device works under 7 and not under XP. Would I have to install something else ?

Thanks in advance for advices and comments.

推荐答案

经过调查(在DXDiag的帮助下),它的行为不仅与VMR9有关,而且与Direct3D有关. Windows 7下未为Windows XP(不支持?)的USB设备启用USB.
据我所知,VMR9基于Direct3D.
因此,可能是问题.

如何确定设备是否支持Direct3D?
基本上,DXDiag报告背后的代码是什么?

预先谢谢.
After investigations (with help of DXDiag), it looks the behavior is not only linked to VMR9, but also to Direct3D which is not enabled for the USB device under Windows XP (not supported ?), while it is under Windows 7.
As far as my knowledge, VMR9 is based on Direct3D.
Hence the issue, probably.

How can I determine if a device supports Direct3D ?
Basically, what is the code behind the DXDiag report ?

Thanks in advance.


好,这是我的最终结论:

所有这些都是合乎逻辑的,正如我在USB图形卡驱动程序知识库中找到的解释:

界面    Windows XP支持 Windows Vista/Win7支持
DX10  否 是的,如果主显卡支持.
DX9   ;否 是,但不是全屏,仅在窗口中显示
Direct 3D 是的,但是如果屏幕是主屏幕则不是


因此,在应用程序中管理USB图形卡VMR9功能实际上并不比检查创建视频混合渲染器的成功程度要容易,但是我们必须检查Direct3D功能.

如果您知道该怎么做,请告诉我:-)

谢谢.
Well, here is my final conclusion :

All this is logical, as I found the explanation on the USB graphic card driver knowledge base :

Interface      Windows XP support  Windows Vista/Win7 support
DX10             No Yes, if supported by the primary graphics card.
DX9  No Yes, but not full screen, windowed only
Direct 3D  No Yes, but not if the screen is primary


So, managing USB Graphic card VMR9 capability in an application is actually not as easy as checking the success of creating the Video Mixing Renderer, but we MUST check the Direct3D capability.

Please let me know if you know how to do that :-)

Thanks.


这篇关于已安装设备的VMR9功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆