主题 : 急:V4L2中printf("width: d%\n", fmt.fmt.pix.width);出错! 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 63868
精华: 0
发帖: 56
金钱: 280 两
威望: 56 点
贡献值: 0 点
综合积分: 112 分
注册时间: 2012-02-25
最后登录: 2015-04-28
楼主  发表于: 2014-03-13 10:14

 急:V4L2中printf("width: d%\n", fmt.fmt.pix.width);出错!

如题, V4L2采集格式设置
struct v4l2_format fmt;
  memset(&fmt, 0, sizeof(fmt));
  fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
  fmt.fmt.pix.width = WIDTH;
  fmt.fmt.pix.height = HEIGHT;
  fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
  fmt.fmt.pix.field       = V4L2_FIELD_INTERLACED;
  if (::ioctl(fd, VIDIOC_S_FMT, &fmt) == -1)
  {
    printf("Camara set fmt is errror.\n");
    return -1;
  }
printf("width: d%\n", fmt.fmt.pix.width);
printf("height: d%\n", fmt.fmt.pix.height);
  return 0;
}
程序运行时能看到图像,但是终端输出的是width: d%,height: d%,为何没有输出具体的值呢,在程序开头已经
#define WIDTH 160
#define HEIGHT 120
在这卡了好久了,导致后面也进行不下去,急求各位大侠帮忙,不胜感激!
[ 此帖被yncxzdy在2014-03-14 10:22重新编辑 ]
级别: 侠客
UID: 64424
精华: 0
发帖: 92
金钱: 465 两
威望: 93 点
贡献值: 0 点
综合积分: 184 分
注册时间: 2012-03-05
最后登录: 2018-09-02
1楼  发表于: 2014-03-13 11:42
亲,你没有仔细检查啊
printf("width: d%\n", fmt.fmt.pix.width);
printf("height: d%\n", fmt.fmt.pix.height);
这两句明显不对啊



应该是:
printf("width: %d\n", fmt.fmt.pix.width);
printf("height: %d\n", fmt.fmt.pix.height);
级别: 侠客
UID: 63868
精华: 0
发帖: 56
金钱: 280 两
威望: 56 点
贡献值: 0 点
综合积分: 112 分
注册时间: 2012-02-25
最后登录: 2015-04-28
2楼  发表于: 2014-03-14 09:33

 回 1楼(guocs2005) 的帖子

真的是呀,看了好久都没发现,太感谢了