分类: WINDOWS
2007-02-01 17:10:40
今天看到在VC6.0里面可以直接使用 GraphEdit调试你自己编写的 Filter,但是反复试了多次就是摸不着门路。后来在网上找资料,又参考了一些书,问了郭郭和小侯,才终于把GraphEdit调试 Filter 的方法简单的串了一遍。不禁感叹,这年头,做个菜鸟真难呀!于是想把过程写一下,献给广大的菜鸟。
在这里以陆其明《DirectShow开发指南》中第四章的一个叫做 FilterTitleOverlay的例子进行说明,编译器版本VC6.0,系统Windows XP。
1. 首先把工程 Rebuild All重新编译。这里需要注意 CFilterTitleOverlay.cpp里的const AMOVIESETUP_FILTER sudFilter 中有 Filter的名字"HQ Title Overlay Std.",如果想方便,你可以改成自己的名字之后再Rebuild All。
2. 注册组件。其实一个filter就是一个COM组件,所以使用之前需要注册,可以有两种方法对组件进行注册。
1. 直接使用命令。命令行下输入:regsvr32 Hqtlystd.ax(编译之后你会在工程目录下的Debug中找到Hqtlystd.ax,这个就是要用的Filter)即可注册成功。
2. VC6.0 中一般有注册组件的快捷菜单,也就是Tools -> Register Controls。我说一般,是因为我的就没有,后来费尽千辛万苦终于加上去了(在郭郭的上面找到了)。如果你没有,可以在Tools下选择Customize,然后选择Tools,进行如下图的设置。注意:你可以把 GraphEdit和 GuidGen 也放到这里来,使用十分方便(GuidGen在VC目录下Common\Tools里,用于生成GUID)。
3. 打开GraphEdit,菜单中Graph-〉Insert Filters,选择Directshow Filters,然后找到HQ Title Overlay Std双击添加到GraphEdit 中去,如下图。
4. GraphEdit 中菜单File-〉Render Media File,选择一个媒体文件,加到GraphEdit 中,如下图。
5. 把MPEG Video Decoder 和 HQ Title Overlay Std手动连接起来,这时候就可以播放了。
6. 在debug模式下能单步调试开发filter