DirectShow技术介绍(长篇)-3

3.2.5. 硬件如何参与Filter Graph

     这一节描述了DirectShow如何与音频和视频硬件交互。

   

     外壳filter(Wrapper Filter)

     所有的DirectShow filter都是用户模式的软件组件。为了使象视频采集卡这样的内核模式的硬件驱动加入到filter graph中,必须使其象用户模式的filter那样。DirectShow提供外壳filter来完成这个功能,这类filter包括:Audio Capture filterVFW Capture filterTV Tuner filterTV Audio filterAnalog Video Crossbar filterDirectShow也提供一个叫KsProxyfilter,它可以实现任何类型的WDM流驱动。硬件商通过提供一个Ksproxy plug-in来扩展KsProxy,以使其支持自己的功能,ksproxy plug-in是一个被KsProxy聚合的COM对象。

     外壳filter通过暴露COM接口来实现设备的功能。应用程序使用这些接口将信息传递给filterfilter再把这些COM调用转化为设备驱动调用,将信息传递到内核模式下的设备中去,然后返回结果给应用程序。TV TunerTV AudioAnalog Video CrossbarKsProxy filter都通过IKsPropertySet接口来支持驱动的自定义属性,VFW Capture filterAudio Capture filter不支持这种方式。

     外壳filter使应用程序可以象控制其它directshow filter一样来控制设备,filter已经封装了与内核驱动通信的细节。

   

    Video for Windows Devices

     VFW Capture filter支持早期的VFW采集卡,当一个设备加入到目标系统中支后,它可以被directshow使用系统设备枚举器(System Device Enumerator)发现并加入到filter graph中去。

     音频采集(Audio Capture)和混音设备(声卡)(Mixing Device/Sound Card

     较新的声卡都有麦克风等设备的插口,而且大多数这类声卡都有板级的混频能力,可单独控制每一个连接设备的音量及高低音。在directshow中,声卡的输入和混频设备被Audio Capture filter封装。每个声卡都能被系统设备枚举器发现。要查看你的系统中的所有声卡,只需打开GraphEdit,从Audio Capture Sources一类中选择即可,每个在这个类里的filter都是一个单独的Audio Capture filter

你可能感兴趣的:(windows,video,filter,Graph,audio,硬件驱动)