我做了个视频源Filter,不停地随机生成不同颜色的帧,由Graph进行显示。
参考的是DirectShow SDK 9.0c的例子CBouncingBall
但我的Filter不是做成动态链接库的形式没有注册,而是直接做在应用程序里,使用时直接new一个Filter对象。
我的Filter也没有用到BaseClass库,因为我把相关的文件也拷贝到我的工程里一起编译了。
我还对Filter进行了瘦身,认为没用到的文件都没有拷过来。现在的结果是:视频帧能正确地传递到render,render显示的结果也是正常的;但是
问题在于:视频窗口通常不自动刷新(无论编译成DEBUG版还是RELEASE版),移动视频窗口或拖另一个窗口在视频窗口上面移动时,每移动一下视频窗口刷新一下,不停止移动则不停止刷新。我现在又做了个最小化的DEMO,该DEMO编译成RELEASE版完全正常(能自动刷新),编译成DEBUG版则不会自动刷新(移动时会刷新)有兴趣的朋友留下email,帮我找找问题所有,不胜感谢!

解决方案 »

  1.   

    看起来有点象render收到视频帧后没有播放,收到窗口移动等事件时才会播放出来。我知道没有参考时钟的帧是会立即播放的,参考时钟不对也不会播放。我没有设置参考时钟,而且好象每一帧确实没有参考时钟。问题还会出在哪儿呢?是还缺少一些文件吗?需要源程序的请留下email,帮我找找问题,感激!
      

  2.   

    是我自定义的FILTER有问题,填充帧数据时应对每帧数据调用SetSyncPoint(TRUE):pSample->SetSyncPoint(TRUE);问题已解决,结贴
      

  3.   

    你好: 我想看看您添加的Filter是如何添加的?请寄信到[email protected]