我在图表中使用EVR
过滤器,我需要将视频处理器模式设置为DXVA2_VIDEOPROCPROGRESSIVEDEVICE
以避免隔行扫描问题。我可以在GraphEdit中手动执行此操作,但无法以编程方式执行此操作。
IMFVideoProcessor::SetVideoProcessorMode
似乎是一个明显的选择,所以我获得了一个指向IMFVideoProcessor
的指针,但我很难知道要传递给它的是什么。 DXVA2_VIDEOPROCPROGRESSIVEDEVICE
中的dxva2api.h
被定义为IMFVideoProcessor* m_pProcessorCtrl;
hr = pGS->GetService(MR_VIDEO_MIXER_SERVICE, IID_PPV_ARGS(&m_pProcessorCtrl));
m_pProcessorCtrl->SetVideoProcessorMode((LPGUID)&DXVA2_VideoProcProgressiveDevice);
中的GUID,并将其转换为LPGUID会在下面显示链接错误。
一些代码片段:
error LNK2001: unresolved external symbol _DXVA2_VideoProcProgressiveDevice
显然还有更多的东西,但希望你能得到这个想法。
链接器错误:
{{1}}
有谁知道我如何设置视频模式?
我正在使用C ++和MFC,VS2008,在Vista上开发,针对Vista及以上版本。