ISampleGrabber已经被弃用了吗?

6
我有一个旧的计算机视觉实验,使用Video for Windows从连接到PC的相机中获取帧。这是一个hack,它使用VfW创建预览窗口,然后从窗口DC进行GetDIBits。
我终于准备好将其移植到DirectShow。我的理解是,我可以通过使用ISampleGrabber从视频捕获图形中抓取帧,但现在我读到ISampleGrabber已被弃用
从视频源中获取帧的非弃用方法是什么?我是否需要实现自己的DirectShow过滤器,基本上执行ISampleGrabber的功能?

嗨,我遇到了一个类似的问题,其中ISampleGrabber和IID_ISampleGrabber是未声明的标识符(我正在SDK V7.1,VS2010上运行)。你能分享一下你的解决方案吗? - Basel
@Basel:我根据http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/2ab5c212-5824-419d-b5d9-7f5db82f57cd/qedith-missing-in-current-windows-sdk-v70?forum=windowsdirectshowdevelopment添加了自己的头文件。 - Adrian McCarthy
谢谢@Adrian,我终于成功从旧的SDK版本(V5,V6.0)中恢复了qedit.h,并使用#ifndef/def来解决缺失的“dxtrans.h”。 - Basel
2个回答

6

DirectShow并未被弃用,只有DirectShow Editing Services已被弃用。我强烈推荐使用DirectShow,因为它的支持范围更广泛,除非需要MF的特定功能。

DES已经多年没有开发了,但示例抓取器是一个广泛使用的过滤器,它与DES有些独立。我很乐意推荐您使用它。如果在将来的Windows版本中存在问题,更换筛选器不会超过一两天的工作量。

G


5

如果您只面向Vista/Win7,我认为Windows Media Foundation是您最好的选择,否则您仍然可以使用DirectShow/SampleGrabber方法,我怀疑它不会很快被移除。相关问题在这里


当我最初提出这个问题时,XP仍然是一个要求,但现在Vista甚至Win7都是合理的基本目标平台选择。+1 - Adrian McCarthy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接