我有一个使用DSPACK组件库在Delphi 6中编写的DirectShow过滤器。它是一个推源视频滤镜。过滤器阻止在另一个生成视频帧的线程中发出信号的事件。当帧准备就绪时,它被写入FillBuffer()方法在解除阻塞时访问的共享内存区域。是否有一个方便的DirectShow事件,当DirectShow关闭过滤器时,我可以通过搭载来取消阻止FillBuffer()线程?如果没有,这个领域的“标准做法”是什么?
答案 0 :(得分:2)
标准做法是WaitForMultipleObjects
功能和朋友。您正在等待解锁FillBiffer
的其中一个事件:来自外部来源的新视频帧的可用性,停止请求到达您的过滤器等。