#include int main(int argc, char* argv[])
{
int fd = open("/dev/video0", O_RDWR);
if (0)
{
//输出所有支持的格式
struct v4l2_fmtdesc fmtdesc;
fmtdesc.index = 0;
fmtdesc.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
printf("Support format:\n");
while (ioctl(fd, VIDIOC_ENUM_FMT, &fmtdesc) != -1)
{
printf("\t%d.%s\n", fmtdesc.index + 1, fmtdesc.description);
fmtdesc.index++;
}
printf("enum done\n");
}
if (0)
{
//查看当前的输出格式
struct v4l2_format fmt;
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
ioctl(fd, VIDIOC_G_FMT, &fmt);
printf("Current data format information : \n\twidth: % d\n\theight: % d\n", fmt.fmt.pix.width, fmt.fmt.pix.height);
struct v4l2_fmtdesc fmtdesc2;
fmtdesc2.index = 0;
fmtdesc2.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
while (ioctl(fd, VIDIOC_ENUM_FMT, &fmtdesc2) != -1)
{
if (fmtdesc2.pixelformat & fmt.fmt.pix.pixelformat)
{
printf("\tformat: % s\n", fmtdesc2.description);
break;<