2011-02-08 33 views
0

好吧,我有这个3d电视转换过滤器。我可以通过使用GraphEdit轻松配置其属性,右键单击其属性并设置任何我想要的。如何设置DirectShow过滤器的属性

现在我想通过在C++中构建过滤器图来自动设置属性。 我读过Windows SDK文档,发现我必须使用IKsPropertySet函数(纠正我,如果我错了)。

我不得不使用IKsPropertySet :: QuerySupported来检查它是否支持这种属性。要做到这一点,我必须知道的属性集内的财产

dwPropID

[中]标识符。

但是我怎么能得到这个ID。像这个过滤器有调整水平和垂直的属性,但我找不到那些属性的ID。

无论如何要列出过滤器支持的所有属性ID吗?

+0

参见http://stackoverflow.com/questions/14050074/how-to-change-directshow-filter-properties-c – rogerdpack 2015-01-13 17:25:27

回答

1

directshow过滤器的功能通常通过接口暴露。标准directshow接口或自定义接口。你可以通过调用COM对象上的QueryInterface来获得接口(可能是你的过滤器,但它也可能是其中一个接口)。过滤器文档中可能描述了过滤器暴露的什么类型的接口。

我想你应该先试着看一下关于directshow和COM的一些信息,然后再着手编码。 Here你会发现一些关于DirecShow的信息。和here你会发现一些关于COM。

如果您打算在.net中执行此操作,请尝试搜索directshownet。这是一个开源项目,它包装了用于托管代码的directshow API。

-Svein

+0

可能3DTVTransformation接口? – rogerdpack 2015-04-16 12:49:37