摄像头L4V2框架编写APP,对获取数据的由抽象硬件到软件ioctl操作有具体流程。
查询设备能力属性
struct v4l2_capability cap;
ioctl(fd, VIDIOC_QUERYCAP, &cap);
枚举格式
struct v4l2_fmtdesc fmtdesc;
fmtdesc.index = fmt_index;
fmtdesc.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
ioctl(fd, VIDIOC_ENUM_FMT, &fmtdesc);
枚举帧大小
struct v4l2_frmsizeenum fsenum;
fsenum.pixel_format = fmtdesc.pixelformat;
fsenum.index = frame_index;
ioctl(fd, VIDIOC_ENUM_FRAMESIZES, &fsenum);
设置格式
struct v4l2_format fmt;
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width = 1024;
fmt.fmt.pix.height = 768;
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_MJPEG;
fmt.fmt.pix.field = V4L2_FIELD