如何在directshow中使用第3方的fitler阿?
本人欲在程序中使用第三方注册的filter,比如说divx的压缩filter。
这是DivX ;-) MPEG-4 Fast-Motion 的GUID
DEFINE_GUID(CLSID_DivXE,
0x33D9A760, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86);
但是编译老是报错:error LNK2001: unresolved external symbol _CLSID_DivXE
CLSID_DivXE是自己定义的名字。
各位兄台,具体该怎么做啊?
问题点数:50、回复次数:6Top
1 楼yujia120(永不停息)回复于 2005-06-04 13:59:56 得分 5
你的filter没有注册吧?Top
2 楼xiangding(一蓑烟雨任平生!)回复于 2005-06-04 16:42:03 得分 5
注册过的Filter
直接就可以用了Top
3 楼ghostliu(态度决定一切)回复于 2005-06-04 19:18:27 得分 0
我所说的filter是已经在系统中注册过的,能在graphedit中看到并使用。我想用CoCreateInstance(CLSID_DivXE,NULL,CLSCTX_INPROC_SERVER,IID_IMediaFilter,(void **)&pDivXE);通过pDivXE来使用这个filter。这个filter的guid值是从graphedit中拷贝出来的
DEFINE_GUID(CLSID_DivXE,
0x33D9A760, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86);
但是现在那个指针是空值。CLSID_DivXE也是我自己定义的名称。不知该怎么办?
Top
4 楼henryjee(henryjee)回复于 2005-06-06 08:49:30 得分 20
#include <initguid.h>,加一下试试Top
5 楼yyhzpk(zpk)回复于 2005-06-06 16:49:24 得分 20
DivX解码器的GUID好像是这样子的,是不是错了,楼主可以试一下,
DEFINE_GUID(CLSID_DIVX,0x78766964, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
DEFINE_GUID(CLSID_DIVX_UC, 0x58564944, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);Top
6 楼ghostliu(态度决定一切)回复于 2005-06-08 11:54:04 得分 0
呵呵,多谢各位。我现在已经解决了,只能用枚举的方式来得到第三方的filter。Top




