如何用DirectDraw将直接从CAPTURE捕获的I420的视频数据显示到屏幕上?
我在用DirectDraw将直接从CAPTURE捕获的I420的视频数据显示到屏幕上时,采用了如下方法,但是失败了,请高手指教:
DDPIXELFORMAT ddPixelFormat;
ddPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
m_pPrimarySurf->GetPixelFormat(&ddPixelFormat);
ddPixelFormat.dwFlags = DDPF_FOURCC;
ddPixelFormat.dwFourCC = mmioFOURCC('I','4','2','0');
DDSURFACEDESC2 ddsd;
memset(&ddsd,0,sizeof(ddsd));
ddsd.dwSize=sizeof(ddsd);
ddsd.dwFlags=DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT|DDSD_PIXELFORMAT;
ddsd.ddsCaps.dwCaps=DDSCAPS_OVERLAY|DDSCAPS_VIDEOMEMORY;
ddsd.dwWidth=pbmiHeader->biWidth;
ddsd.dwHeight=pbmiHeader->biHeight;
ddsd.ddpfPixelFormat=ddPixelFormat;
hr=((LPDIRECTDRAW7)m_pDD)->CreateSurface(&ddsd,&m_pDrawSurf,NULL);
错误代码是:DDERR_INVALIDPIXELFORMAT