当前位置:  技术问答>linux和unix

v4l videopict 设置问题!

    来源: 互联网  发布时间:2016-11-03

    本文导语:  /*获得video picture信息*/ static int GetVideoPict(struct vdIn *vd) { if (ioctl(vd->fd, VIDIOCGPICT, &vd->videopict) videopict.brightness, vd->videopict.hue, vd->videopict.colour, vd->videopict.contrast, vd->videopict.whiteness, vd->videopict.depth, vd->videopict.palett...

/*获得video picture信息*/
static int GetVideoPict(struct vdIn *vd)
{
if (ioctl(vd->fd, VIDIOCGPICT, &vd->videopict) videopict.brightness,
vd->videopict.hue, vd->videopict.colour,
vd->videopict.contrast, vd->videopict.whiteness,
vd->videopict.depth, vd->videopict.palette);

return 0;
}
/*设置video pcture 信息*/
static int SetVideoPict(struct vdIn *vd)
{
if (ioctl(vd->fd, VIDIOCSPICT, &vd->videopict) videopict.brightness,
vd->videopict.hue, vd->videopict.colour,
vd->videopict.contrast, vd->videopict.whiteness,
vd->videopict.depth, vd->videopict.palette);

return 0;
}


我将vd->videopict中的内容进行修改,然后调用SetVideoPict(),打印信息的却是我想要的,不过当我再次调用GetVideoPict()
后就出现回到原来默认的设置(内核中)。我用的是ov511的摄像头,内核中支持VIDIOCGPICT和VIDIOCSPICT如下:
        case VIDIOCGPICT:
        {
                struct video_picture *p = arg;

                PDEBUG(4, "VIDIOCGPICT");

                memset(p, 0, sizeof(struct video_picture));
                if (sensor_get_picture(ov, p))
                        return -EIO;

                /* Can we get these from frame[0]? -claudio? */
                p->depth = ov->frame[0].depth;
                p->palette = ov->frame[0].format;

                return 0;
        }
        case VIDIOCSPICT:
        {
                struct video_picture *p = arg;
                int i, rc;

                PDEBUG(4, "VIDIOCSPICT");

                if (!get_depth(p->palette))
                        return -EINVAL;

                if (sensor_set_picture(ov, p))
                        return -EIO;

                if (force_palette && p->palette != force_palette) {
                        info("Palette rejected (%s)",
                             symbolic(v4l1_plist, p->palette));
                        return -EINVAL;
                }


大家个给我说说是什么原因!

|
看不出来。。。
只能帮顶了。。。

|
驱动调用出问题了?
可能是ioctl(vd->fd, VIDIOCGPICT, &vd->videopict)这一行的原因。
建议检查一下vd这个结构体。
驱动中sensor_get_picture(ov, p)有没有报错?

|

基本上可以确定驱动没有写好, 调用set没有把正确的信息写入到驱动的全局变量中,
这是调用get基本上还是默认的值。。

|

应该是调用的问题吧?
驱动好像是内核中的。

|
应用层的vd->videopict应该跟驱动跟struct video_picture结构体保持一致,不能随意修改

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 关于v4l编程问题
  • 关于摄像头的v4l模块的问题,请不吝赐教!
  • 新人开发V4L程序碰到的问题
  • linux V4L FM驱动的问题
  • 关于V4L2驱动中V4L2_MEMORY_USERPTR的问题
  • v4l 如何入手?
  • 高分求教,如何用v4l或者v4l2 截取mpeg 或者mpeg4 文件~~
  • 想在linux下实现用v4l捕获摄像头数据再用ffmpeg编码为h.264格式
  • 请教V4L摄像头在xawtv中只显示半个画面红色条纹的原因
  • 请问V4L在哪里啊,需要打usb-2.4.31LE06.patch补丁然后重新编译内核才出现吗?
  • V4L图像采集程序
  • 100分求解。用V4L图像采集到buffer后如何处理
  • v4l 视频采集出现错误


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3