DirectShow CSourceStream过滤器无法正确卸载

时间:2010-04-08 09:05:44

标签: directshow flash video-capture

我正在使用CSource / CSourceStream作为基础编写DirectShow捕获过滤器,但是当我在Firefox + Flash中访问凸轮时,我在关闭Firefox时得到调试断言和以下调试错误。

Cam6.ax(tid 1c98)   133506 : 
Cam6.ax(tid 1c98)   133506 :    ID             Object Description
Cam6.ax(tid 1c98)   133506 : 
Cam6.ax(tid 1c98)   133506 :    19 (001AE940)          Camera Stream
Cam6.ax(tid 1c98)   133507 :    18 (001AE940)                 Camera
Cam6.ax(tid 1c98)   133507 :     6 (001AE940)          Camera Stream
Cam6.ax(tid 1c98)   133507 :     5 (001AE940)                 Camera
Cam6.ax(tid 1c98)   133507 : 
Cam6.ax(tid 1c98)   133507 : Total object count     4

据我所知,这不是我的错。我怀疑Flash在关机时不正确地丢弃了DirectShow图。我已经阅读并重新阅读了MSDN文档,并在网上搜索了一些示例,但没有发现任何内容。

任何人都可以帮我澄清这一点或指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

对此感到有点傻。花了一天时间查看引用计数等等,结果证明这是一个noobie错误。我使用/ MDd标志编译strmbasd.lib,使用/ MD标志编译我的代码。前者是针对调试运行时库,后者是发布运行时库。

链接器发出警告,但没有注意到,代码一直运行到释放DLL的时间。去图..

我猜是那个愚蠢的人。 :)