繁体   English   中英

DirectShow:检测相关的过滤器,并添加这些过滤器?

[英]DirectShow: detect related filters, and add those?

目前,我正在开发DirectShow应用程序,该应用程序可以帮助用户配置其电视捕获卡。 稍后将在另一个程序中使用此配置。

我使用ICaptureGraphBuilder2 :: RenderStream方法渲染视频和音频。 我的图的来源取决于用户选择的设备,但这主要是WDM Video Capture Filter类别中的设备。

这是我的问题。 有些设备无法工作,因为它们不仅需要源过滤器。 例如,我有一个摄像头,该摄像头具有单独的音频过滤器。 再举一个例子,我有一个电视调谐卡,它有自己的编码器/ Mux。

由于我的应用程序应该可以与大多数捕获设备一起使用,因此是否有一种通用的方法来检测在源过滤器旁边是否存在其他需要工作的过滤器?

我可以枚举所有过滤器,并检查它们的名称是否彼此相似,但是名称不可信任...

DirectShow作为框架,基本上是一组灵活的DIY筛选器。 您有一个分散的集合,并且它们(一些)也已分类,在枚举类别时,您可能会对所包含的功能集做出一些假设。

特别是,视频和音频(以及其他媒体类型)源之间没有直接对应关系。 您可以做的是提示用户选择设备(例如,作为应用程序配置的一部分),并假定它们是相关的,并发送同步的内容(如果适用)。

另一个常见任务是连接交叉开关,您可能会对使用电视调谐器感兴趣。 Capture Graph Builder对象中有一个帮助程序,您可以利用它。 请参见ICaptureGraphBuilder2 :: FindInterface中的 “支持过滤器”备注。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM