У меня есть проект — Video capture Application со следующим графом:
WDM Capture Source -> ISampleGrabber -> NullRenderer
|
-> IVideoMixerRenderer9
Описание класса выглядит примерно так:
#include <dshow.h>
#include <D3d9.h>
#include <Vmr9.h>
#include <d3dx9tex.h>
#include <qedit.h>
class CDxVideoWindow9
{
public:
CDxVideoWindow9();
~CDxVideoWindow9();
public:
IVMRFilterConfig9* m_pVMRFilterConfig;
IVMRMixerBitmap9* m_pVMRMixerBitmap;
IVMRMixerControl9* m_pVMRMixerControl;
IVMRMonitorConfig9* m_pVMRMonitorConfig;
IVMRWindowlessControl9* m_pVMRWindowlessControl;
IBaseFilter* m_CapSource;
ISampleGrabber* m_pSG;
}
.......................
Получаю ошибку при компиляции:
c:\DXSDK9\Include\d3drmobj.h(274): error C2061: syntax error : identifier 'LPDIRECT3D'
c:\DXSDK9\Include\d3drmobj.h(299): error C2061: syntax error : identifier 'LPDIRECT3DDEVICE'
c:\DXSDK9\Include\d3drmobj.h(314): error C2061: syntax error : identifier 'LPDIRECT3D'
Без Qedit.h все компилируется, но в нем описание ISampleGrabber, который мне нужен.
В МSDN говорится , что QEdit.h несовместим со старыми версиями D3D, но у меня новая — DirectX SDK9.
C DirectX8 c обычным Video Renderer проект пашет уже 2 года, с Video Mixing Renderer 9 тоже все Ок,
но как только пытаюсь довавить описание ISampleGrabber, вперестает компилироваться.В новом SDK какая то несостыковка Direct Show и Direct3D.
В принципе, в этом же модуле я вставил описание ISampleGrabber, выдернутое из Qedit.h и все заработало,
но это как-то неэлегантно.
Как настроить проект, буду очень благодарен ?