即使图表暂停,SampleGrabber回调也会被虚假调用

时间:2013-02-18 12:41:34

标签: directshow

我在回调模式下使用Directshow SampleGrabber从源文件中捕获视频帧并进行一些处理。另外,我想保持视频的当前播放速率,并且需要支持随机,前向和后向搜索。为此,我也在不同的线程中进行一些本地缓冲。 我正在运行将syn source设置为NULL的图形,以便获得最大速度。但是当我在固定量的缓冲后暂停图表时。即使图表暂停,SampleGrabber回调也会被虚假调用。这会影响我的帧索引和跟踪。我想从暂停的相同位置完全恢复图形。但是,如果我使用默认时钟运行图表它可以正常工作,但我的播放会受到影响。我希望缓冲线尽快完成。 如何在图表暂停时确保不调用回调?任何想法或建议都会有很大的帮助。

提前致谢 普拉迪普

1 个答案:

答案 0 :(得分:0)

暂停图通常在内部具有所有相同的流(活动状态),但渲染器阻止流式传输,尤其是流式传输。只要收到预览横幅的足够数据。由于您从图表中删除了时钟,因此渲染器可能不会阻止执行,因为它没有任何时钟可以暂停。 In your case这就是你想要重复使用同一个图表来快速解析文件和播放的问题。单独的图形设计看起来有更多机会做得更好。