我在网上下载了个qt做的监控界面 移植到开发板上 想要在触摸屏显示监控的实时画面,但是出现黑屏,并有错误提示“VIDEO_READ ERROR”,从我以下的程序可以看出,已经open成功,在read的时候出错了 ,这个程序应该是从cmos摄像头获取图像,所以我看到在程序中有一个rgb565Torgb24的格式转换函数,而我的摄像头是usb的 。我想请问出现VIDEO_READ ERROR,是不是因为格式转换的问题(usb摄像头获取的图片格式是yuv的)? 如果是要怎么解决?如果不是,还有其他的什么可能会造出VIDEO_READ ERROR?
void Widget::do_view()
{
int ret ;
// int video_fd =-1;
pp = (unsigned char*)malloc(320*240*2*sizeof(char));
frame = new QImage(pp,320,240,QImage::Format_RGB16);
video_fd = open(VIDEO_DEV_NODE,O_RDWR);
if(video_fd<0)
QMessageBox::warning(this,tr("VIDEO_DEV_NODE"),tr("VIDEO_DEV_NODE OPEN ERROR"));
ret = read(video_fd,pp,320*240*2);
if(ret<0)
QMessageBox::warning(this,tr("VIDEO_READ"),tr("VIDEO_READ ERROR"));
//QPainter *painter =new QPainter(this);
timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(readFrame()));
timer->start(30);
}