代码如下设置截图格式
CLEAR(fmt);
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width = 320;
fmt.fmt.pix.height = 240;
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;
if(-1 == ioctl(fd, VIDIOC_S_FMT, &fmt))
{
emit display_error(tr("VIDIOC_S_FMT").arg(QString(strerror(errno))));
return -1;
}
if(-1 == init_mmap())
{
return -1;
}
/*********************************************************************/
printf("v4l2_buf_type(CAPTURE=1) :%d\n",fmt.type); /* CAPTURE=1*/
printf("width :%d\n",fmt.fmt.pix.width);
printf("height :%d\n",fmt.fmt.pix.height);
printf("pixel'yuyv' :%d\n",('Y'|'U'<<8|'Y'<<16|'V'<<24));
printf("pixel'jpeg' :%d\n",('J'|'P'<<8|'E'<<16|'G'<<24));
printf("pixelformat :%d\n",fmt.fmt.pix.pixelformat);
printf("v4l1_filed(FIELD_INTERCACED=4) :%d\n",fmt.fmt.pix.field);
printf("bytesperline :%d\n",fmt.fmt.pix.bytesperline);
printf("sizeimage :%d\n",fmt.fmt.pix.sizeimage);
printf("colorspace(COLOSPACE_JPEG=7) :%d\n",fmt.fmt.pix.colorspace);
printf("priv :%d\n",fmt.fmt.pix.priv);
/*********************************************************************/
为什么
fmt.fmt.pix.width = 320;
fmt.fmt.pix.height = 240;这两个设置不起作用,但奇怪的是在PC机上执行却能正常执行,编译到板子上运行设置却不起作用,始终是176*144.那位大神来指点下