Я использую фильтр EVR
на графике, и мне нужно установить режим видеопроцессора на DXVA2_VIDEOPROCPROGRESSIVEDEVICE
, чтобы избежать проблемы чересстрочной развертки.Я могу сделать это вручную в GraphEdit, но не могу понять, как это сделать программно.
IMFVideoProcessor::SetVideoProcessorMode
кажется очевидным выбором, поэтому я получил указатель на IMFVideoProcessor
, но я изо всех сил пытаюсь узнать, что на него перейти.DXVA2_VIDEOPROCPROGRESSIVEDEVICE
определяется как GUID в dxva2api.h
, и приведение его к LPGUID приводит к ошибке ссылки ниже.
некоторые фрагменты кода:
IMFVideoProcessor* m_pProcessorCtrl;
hr = pGS->GetService(MR_VIDEO_MIXER_SERVICE, IID_PPV_ARGS(&m_pProcessorCtrl));
m_pProcessorCtrl->SetVideoProcessorMode((LPGUID)&DXVA2_VideoProcProgressiveDevice);
очевидно, есть еще кое-чточем это, но, надеюсь, вы поняли.
Ошибка компоновщика:
error LNK2001: unresolved external symbol _DXVA2_VideoProcProgressiveDevice
Кто-нибудь знает, как я устанавливаю режим видео?
Я использую C ++ с MFC, VS2008, разрабатываю для Vista, ориентируюсь на Vista и выше.