|
引用 12 楼 goldensword 的回复:
试了一下,先用 CreateFile(_T("CIS1:"), GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0); 可以打开设备,然后调用
? ? DeviceIoControl(m_hCameraFile,?
? ? ? ? ? ? ? ? ? ? IOCTL_CAM_SETGAMMA,?
? ? ? ? ? ? ? ? ? ? NULL,?
? ? ? ? ? ? ? ? ? ? 0,?
? ? ? ? ? ? ? ? ? ? &chPrevEnable,?
? ? ? ? ? ? ? ? ? ? 1,?
? ? ? ? ? ? ? ? ? ? &dwBytesReceive,?
? ? ? ? ? ? ? ? ? ? NULL);?
ret1 = ::DeviceIoControl(m_hCameraFile,CAM_IOCTL_MOVIE_START,NULL,0,NULL,0,&dwBytesReceive,NULL);
可以看到预览的图像
但是调用? ? DeviceIoControl(m_hCameraFile,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? CAM_IOCTL_GET_LATEST_FRAME,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? NULL,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? 0,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? pImgBuffer,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? //(QCIF_XSIZE*QCIF_YSIZE+QCIF_XSIZE*QCIF_YSIZE/2+sizeof(YUVINFO)),? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? (QCIF_XSIZE*QCIF_YSIZE+QCIF_XSIZE*QCIF_YSIZE+sizeof(YUVINFO)),?
? ? ? ? ? ? ? ? ? ? ? ? ? ? &dwBytesReceive,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? NULL);?
时经常死机。
继续研究中。。。
你这个死机的问题我也遇到过,好好看看你的buffer地址,是正确,如果这个地址错误,则采集到的图像复制到你buffer中就有可能因为存到了其他地方,当值内存分配混乱,影响到系统了。这是我的个人理解啊。 |
|