1

在无渲染模式下使用 VMR-9 时如何解决 SelectAtPosition() 崩溃?

4

1 回答 1

2

使用无渲染模式时的 SelectAtPosition() 崩溃问题可以通过在自定义分配器中实现 IVMRWindowlessControl9 接口来解决。

  1. 除了 IVMRSurfaceAllocator9 和 IVMRImagePresenter9 之外,还要实现 IMRWindowlessControl9!类CALlocator:公共IVMRSurfaceAllocator9,IVMRImagePresenter9,IVMRWindowlessControl9

  2. 定义IVMRWindowlessControl9的所有虚函数。就我而言,我需要在以下函数上添加额外的代码以使鼠标处理正常工作:GetAspectRatioMode()、SetAspectRatioMode()、SetAspectRatioMode()、GetVideoPosition() 和 GetNativeVideoSize()。其他函数只返回 S_OK。

M$ SDK 文档没有提到我们需要实现这个!!!经过数小时的调试,我注意到quartz.dll 尝试从自定义分配器中查询此接口。有时候,耐心真的很值得!

于 2009-01-09T03:49:43.750 回答