DirectShow 的重要接口
DirectShow采用了COM标准,所以很多重要的功能都是通过COM接口来完成。下面就列举一些重要的DirectShow的接口。
(1) IGraphBuilder接口
用于构造Filter Graph的接口,建立和管理一系列的Filter,过滤和处理源媒体流。
(2) IMediaControl接口
用于控制多媒体流在过滤器图表中的流动,如流的启动和停止。
(3) IMediaEvent接口
用于捕获播放过程中发生的事件,并通知应用程序,如EC_COMPLETE等。
(4) IVideoWindow接口
用于控制视频窗口的属性。
(5) IMeadiaSeeking接口
用于查找媒体的接口,定位流媒体,控制多媒体数据播放提供精确控制。
(6) IBaseFilter接口
从ImediaFilter接口继承,用来定义一个具体的过滤器指针,并对多媒体数据进行处理。
(7) IPin接口
用于管理两个过滤器之间的Pin,从而连接过滤器。
(8) IsampleGrabberCB接口
是Sample Grabber过滤器的一个接口,用于当流媒体数据通过过滤器时进行采样以获得帧图象。
用DirectShow来使用摄像头,一般要求摄像头的驱动是WDM格式的,当然,一些比较老的驱动格式DirectShow也可支持。在DirectShow中,有一个Sample Grabber过滤器,它是一个可以被插入流的过滤器,它有自己的缓冲,存放采样。我们就可以用它来从一个视频文件中简单的扑获一桢。DirectShow通过图形过滤管理器(Filter Graph Manager)来与上层应用程序和下层的驱动进行联系。DirectShow通过捕获过滤器(Capture Filter)来支持对摄像头的捕获,一个捕获过滤器有多个插口(pin),其中的预览(preview)插口可用来进行显示祯图象。