| 
 
贡献621 
飞刀146 FD
注册时间2021-7-7
在线时间19 小时积分118 
 
 
 | 
 
 
 楼主|
发表于 2021-7-28 17:13:43
|
显示全部楼层 
| 本帖最后由 generalj 于 2021-7-28 17:27 编辑 
 我这里不只是要解决格式问题,因为我后期开发选用的是只有RAW输出的sensor,软件变一下格式没有意义。
 请问/dev/video0的源文件是哪里编译的?
 
 
 我的想法是只要通过SCCB接口,能修改sensor的输出模式应该就能实现我的要求吧。
 
 例程里面有类似的判断,是不是代表是可以支持的:
 memset(&fmt, 0, sizeof(struct v4l2_format));
 memset(&sub_fmt, 0, sizeof(struct v4l2_format));
 fmt.type                = V4L2_BUF_TYPE_VIDEO_CAPTURE;
 fmt.fmt.pix.width       = input_size.width;
 fmt.fmt.pix.height      = input_size.height;
 fmt.fmt.pix.pixelformat = csi_format;
 fmt.fmt.pix.field       = V4L2_FIELD_NONE;
 sensor_type = getSensorType(fd);
 db_debug("sensor_type: %d\n",sensor_type);              说明:此处运行结果值为 -1
 sensor_type = 0;                                                      说明:例程直接把值赋值为 0,也就是默认为YUV模式, V4L2_SENSOR_TYPE_RAW值为1
 if(sensor_type == V4L2_SENSOR_TYPE_RAW) {
 fmt.fmt.pix.subchannel->width = 640;
 fmt.fmt.pix.subchannel->height = 480;
 fmt.fmt.pix.subchannel->pixelformat = csi_format;
 fmt.fmt.pix.subchannel->field = V4L2_FIELD_NONE;
 }
 if (ioctl(fd, VIDIOC_S_FMT, &fmt)<0) {
 db_error("set image format failed\n");
 goto err;
 }
 如果能找到此驱动的源码,也可以继续研究一下对sensor是怎么样的操作过程。
 
 
 
 
 | 
 |