可以使用什么Directshow过滤器事件在过滤器关闭时取消阻止源流线程?

时间:2011-12-24 06:41:53

标签: delphi filter directshow application-shutdown dspack

我有一个使用DSPACK组件库在Delphi 6中编写的DirectShow过滤器。它是一个推源视频滤镜。过滤器阻止在另一个生成视频帧的线程中发出信号的事件。当帧准备就绪时,它被写入FillBuffer()方法在解除阻塞时访问的共享内存区域。是否有一个方便的DirectShow事件,当DirectShow关闭过滤器时,我可以通过搭载来取消阻止FillBuffer()线程?如果没有,这个领域的“标准做法”是什么?

1 个答案:

答案 0 :(得分:2)

标准做法是WaitForMultipleObjects功能和朋友。您正在等待解锁FillBiffer的其中一个事件:来自外部来源的新视频帧的可用性,停止请求到达您的过滤器等。