是directshow.net视频输入设备筛选器枚举打破(在新环境)? [英] Is directshow.net video input device filter enumeration broken (in newer environments)?

查看:237
本文介绍了是directshow.net视频输入设备筛选器枚举打破(在新环境)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在directshow.net样本文件夹(标有2010年二月),每个实例编译好,而那些播放视频文件,从工作的伟大。然而,每一个试图始终枚举FilterCategory.VideoInputDevices例如无法找到我的任何过滤器,特别是 DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice); 总是返回,我没有设备。发生在使用directshow.net,如非接触式和codePLEX的各种例子所有其他节目对我来说这同样的问题。

Every example in the directshow.net samples folder (marked "2010-February") compiles fine, and those that play videos from files work great. However, every example that tries to enumerate the FilterCategory.VideoInputDevices always fails to find any of my filters, specifically DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice); always returns that I have no devices. This same problem occurs for me in every other program that uses directshow.net, like touchless and the various examples on codeplex.

我已经安装了四个视频输入滤波器(1摄像头和3屏幕捕获过滤器),并且他们发现/由Windows自带的SDK和RL过滤管理器的图形编辑器使用。这两个程序列表下的视频捕获源的四个过滤器,每个名字对象开始与正确的GUID是directshow.net的FilterCategory.VideoInputDevices点(860BB310-5D01-11D0-BD3B-00A0C911CE86)。

I've got four video input filters installed (1 webcam and 3 screen-capturing filters) and they're found/usable by the graph editor that comes with the Windows SDK and the rl Filter Manager. Both programs list the four filters under "Video Capture Sources" and each Moniker starts with the correct GUID that directshow.net's FilterCategory.VideoInputDevices points to ("860BB310-5D01-11D0-BD3B-00A0C911CE86").

我已经试过编译和使用directshow.net dll的自己最新的,但什么都没有改变。

I've tried compiling and using the latest directshow.net dll myself, but nothing changed.

是有一些原因的包装可以得到视频呈现过滤器的罚款,但不枚举视频捕捉的呢?我在WIN7 SP1中,64位,使用Visual C#2010 EX preSS。东西在我的环境造成的?我会很高兴地办理变更自己,如果我知道是什么原因造成的。

Is there some reason why the wrapper can get the video rendering filters fine but not enumerate video capturing ones? I'm on win7 sp1, 64bit, using visual C# 2010 express. Is something in my environment causing this? I'd gladly handle the change myself if I knew what is causing it.

感谢您的时间。

推荐答案

我复制了$ C $下GetDevicesOfCat到我的项目,并开始调试它。如果我把它递给任何FilterCategory以外VideoInputDevice,它会得到大多数GraphEdit中列出了过滤器,但它仍然缺少一些在大部分的类别。我猜,有使他们无法获得到GetDevicesOfCat我的编译版本的过滤器的某些属性。

I copied the code for GetDevicesOfCat into my project and started debugging it. If I handed it any FilterCategory other than VideoInputDevice, it would get most of the filters that GraphEdit lists, but it was still missing some in most of the categories. I guessed that there was some property of the filters that made them unobtainable to my compiled version of GetDevicesOfCat.

原来只是交换我的目标平台的x86开了窍,但它不是在VS2010防爆preSS作为straightfoward(对于全新安装,你必须跟随第二个答案,你做的第一前) : <一href="http://stackoverflow.com/questions/4104228/change-target-cpu-settings-in-visual-studio-2010-ex$p$pss">Change目标在Visual Studio 2010中的CPU设置防爆preSS

It turns out simply switching my platform target to x86 does the trick, though it's not as straightfoward in VS2010 Express (for a fresh install, you'll have to follow the second answer before you do the first): Change target CPU settings in Visual Studio 2010 Express

该计划现已成功地枚举所有的我的过滤器。

The program now successfully enumerates all of my filters.

这篇关于是directshow.net视频输入设备筛选器枚举打破(在新环境)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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