主题 : 关于 Tiny6410的摄像头采集格式 问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 68309
精华: 0
发帖: 15
金钱: 75 两
威望: 15 点
综合积分: 30 分
注册时间: 2012-04-21
最后登录: 2012-05-17
楼主  发表于: 2012-04-27 15:48

 关于 Tiny6410的摄像头采集格式 问题

    用以下语句,得到的摄像头采集支持的格式是 pixelformat = ”MJPG“,description = ”MJPEG“。

    memset(&fmt, 0, sizeof(fmt));
    struct v4l2_fmtdesc fmt;
    fmt.index = 0;
    fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
    while ((ret = ioctl(cam_c_fp, VIDIOC_ENUM_FMT, &fmt)) == 0)
    {
        fmt.index++;
        printf("{ pixelformat = ''%c%c%c%c'', description = ''%s'' }\n\n\n",
        fmt.pixelformat & 0xFF, (fmt.pixelformat >> 8) & 0xFF, (fmt.pixelformat >> 16) & 0xFF,(fmt.pixelformat >> 24) & 0xFF, fmt.description);
    }


    这样是不是说,摄像头即使设置为YUV也不行??因为我设置了codec_fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUY420;但设置返回V4L2 : ioctl on VIDIOC_S_FMT failled。

    memset ( &codec_fmt, 0, sizeof(codec_fmt) );
    codec_fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;

    ret = ioctl(cam_c_fp , VIDIOC_G_FMT, &codec_fmt);
    if (ret < 0) {
        printf("V4L2 : ioctl on VIDIOC_G_FMT failled\n");
        exit(1);
    }
    codec_fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420;
    ret = ioctl(cam_c_fp , VIDIOC_S_FMT, &codec_fmt);
    if (ret < 0) {
        printf("V4L2 : ioctl on VIDIOC_S_FMT failled\n");
        exit(1);
    }

    或者,不知哪位高手有MJPG转为YUV的程序呢?

    急求帮助!!谢谢!!!
菜鸟在奔跑
级别: 新手上路
UID: 56031
精华: 0
发帖: 41
金钱: 225 两
威望: 45 点
综合积分: 82 分
注册时间: 2011-09-28
最后登录: 2014-12-19
1楼  发表于: 2012-04-28 11:19