求助!在WINCE下使用S5PV210的HDMI输出时遇到的问题
在WINCE下通过
HANDLE hVideoDrv = CreateFile( L"TVD0:", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0); STDA_ARG_GRP_BASIC_PARAM tGrp; DWORD dwBytes; if(!DeviceIoControl(hVideoDrv, IOCTL_STDA_RSC_REQUEST_TVOUT_INTERFACE, NULL, 0, NULL, 0, &dwBytes, NULL)) { } TVOUT_OUTPUT_IF tTVoutIF; tTVoutIF.dispMode = TVOUT_720P_60; tTVoutIF.outMode = TVOUT_OUTPUT_HDMI_YCBCR;//TVOUT_OUTPUT_COMPONENT_YPBPR_PROGRESSIVE;//TVOUT_OUTPUT_HDMI_YCBCR; if(!DeviceIoControl(hVideoDrv, IOCTL_STDA_TVOUT_INIT_INTERFACE_PARAM, &tTVoutIF, sizeof(TVOUT_OUTPUT_IF), NULL, 0, &dwBytes, NULL)) { } if(!DeviceIoControl(hVideoDrv, IOCTL_STDA_TVOUT_START, NULL, 0, NULL, 0, &dwBytes, NULL)) { } //add graphic if(!DeviceIoControl(hVideoDrv, IOCTL_STDA_RSC_REQUEST_GRAPHIC_0, NULL, 0, NULL, 0, &dwBytes, NULL)) { // error is occurred } HDC hWinmain; unsigned int DispPhyAddr; hWinmain = ::GetDC (NULL); ExtEscape(hWinmain, DRVESC_GET_FB_PHY_ADDR, 0, NULL, sizeof(DispPhyAddr), (LPSTR)&DispPhyAddr); ::ReleaseDC (NULL, hWinmain); // RETAILMSG(1, (TEXT("DispPhyAddr = 0x%x\r\n"),DispPhyAddr)); tGrp.bWinBlending = FALSE; tGrp.uiAlpha = 0x0; tGrp.uiPriority = 2; tGrp.color = VM_DIRECT_RGB565; tGrp.bBlankChange = FALSE; tGrp.bPixelBlending = FALSE; tGrp.bPreMul = FALSE; tGrp.uiBlankColor = 0x0; tGrp.uiBaseAddress = DispPhyAddr; tGrp.uiSpan = 1280; tGrp.uiWidth = 1280; tGrp.uiHeight = 720; tGrp.uiSrcOffsetX = 0; tGrp.uiSrcOffsetY = 0; tGrp.uiDestOffsetX = 50; tGrp.uiDestOffsetY = 24; tGrp.uiScaleEnH = 0; tGrp.uiScaleEnV = 0; if(!DeviceIoControl(hVideoDrv, IOCTL_STDA_GRP0_INIT_PROCESSING_PARAM, &tGrp, sizeof(STDA_ARG_GRP_BASIC_PARAM), NULL, 0, &dwBytes, NULL)) { // error is occurred } if(!DeviceIoControl(hVideoDrv, IOCTL_STDA_GRP0_START, NULL, 0, NULL, 0, &dwBytes, NULL)) { // error is occurred }