VMR9与EVR:如何将ImageCompositor与EVR一起使用?

我编写了一个PixelShader编译器/测试器,可以在使用DirectShow.Net + VMR9播放的图像或视频源上实时工作。 这一切都很好,直到我决定让它成为一个真正的视频播放器,并开始调整它的每一点工作应该(标题等)。 然后我发现在带有ATI gpus的Windows7上,视频非常像素化(插值不良)。解决方案是与EVR一起使用。我做到了。除了一些背景闪烁和调整缓慢的故障,我将尝试用自定义演示者解决它看起来都很好。 但... 我失去了将像素着色应用于输出视频的能力,因为EVR FilterConfig界面上没有SetImageCompositor方法。 这是EVR界面:
[SuppressUnmanagedCodeSecurity]
[Guid("83E91E85-82C1-4ea7-801D-85DC50B75086")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IEVRFilterConfig
{
    void GetNumberOfStreams(out int pdwMaxStreams);
    void SetNumberOfStreams(int dwMaxStreams);
}
这是VMR9接口:
[Guid("5a804648-4f66-4867-9c43-4f5c822cf1b8")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[SuppressUnmanagedCodeSecurity]
public interface IVMRFilterConfig9
{
    int GetNumberOfStreams(out int pdwMaxStreams);
    int GetRenderingMode(out VMR9Mode Mode);
    int GetRenderingPrefs(out VMR9RenderPrefs pdwRenderFlags);
    int SetImageCompositor(IVMRImageCompositor9 lpVMRImgCompositor);
    int SetNumberOfStreams(int dwMaxStreams);
    int SetRenderingMode(VMR9Mode Mode);
    int SetRenderingPrefs(VMR9RenderPrefs dwRenderFlags);
}
我一直在使用这种方法与自定义图像合成器应用像素着色器:
    IVMRFilterConfig9 filterConfig = (IVMRFilterConfig9)vmr9;
    // frameManager is my custom class implementing IVMRImageCompositor9
    hr = filterConfig.SetImageCompositor(frameManager);
    DsError.ThrowExceptionForHR(hr);
我现在不可以... 使用:VS2010,C#,DirectShow.NET,Mediafoundation.NET,托管DX9。 这个问题的解决方案是什么?如何使用EVR进行指导? 非常感谢你!     
已邀请:
由于没有人提出建议,我挖了一点,并认为我已经找到了可能的解决方案: http://msdn.microsoft.com/en-us/library/bb530107(v=vs.85).aspx 现在应该在自定义演示者中完成...     

要回复问题请先登录注册