主题 : QQ2440提供的镜像及摄像头驱动是否支持V4L2? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 3831
精华: 0
发帖: 9
金钱: 90 两
威望: 90 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2009-02-11
最后登录: 2011-10-15
楼主  发表于: 2009-03-27 16:50

 QQ2440提供的镜像及摄像头驱动是否支持V4L2?

如题,提供的中星微的摄像头驱动,但不知道驱动和内核是否支持v4l2或v4l?
有知道的解答一下~~~谢谢
级别: 新手上路
UID: 3831
精华: 0
发帖: 9
金钱: 90 两
威望: 90 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2009-02-11
最后登录: 2011-10-15
1楼  发表于: 2009-03-27 17:03
自己顶一下,期待兄弟们的指点~
级别: 侠客
UID: 4545
精华: 3
发帖: 88
金钱: 810 两
威望: 614 点
贡献值: 22 点
综合积分: 236 分
注册时间: 2009-03-19
最后登录: 2020-06-17
2楼  发表于: 2009-03-27 17:09
自带的2.6.13内核是支持的,应该要重新配置内核。
我用的是v4l,v4l2没测过
测试过ov511,zc301p芯片
级别: 新手上路
UID: 3831
精华: 0
发帖: 9
金钱: 90 两
威望: 90 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2009-02-11
最后登录: 2011-10-15
3楼  发表于: 2009-03-27 17:15
你用的是自带的内核镜像么?还是要重新配一下?
我的是zc301b,应该也没问题吧~你知道驱动支持v4l2么
长风兄?
级别: 侠客
UID: 4545
精华: 3
发帖: 88
金钱: 810 两
威望: 614 点
贡献值: 22 点
综合积分: 236 分
注册时间: 2009-03-19
最后登录: 2020-06-17
4楼  发表于: 2009-03-27 17:31
特地有去看了下内核配置
Video For Linux
---help---
This kernel includes support for the new Video for Linux Two API,
(V4L2) as well as the original system. Drivers and applications      
need to be rewritten to use V4L2, but drivers for popular cards      
and applications for most video capture functions already exist.

内核默认配置好像就选择了ov511和SPCA5XX
这个版本的内核,中星微的好像就是用的SPCA5XX驱动
不过驱动是否用v4l2写的我就不知道了

楼主如果熟悉v4l2可否交流下
级别: 侠客
UID: 4545
精华: 3
发帖: 88
金钱: 810 两
威望: 614 点
贡献值: 22 点
综合积分: 236 分
注册时间: 2009-03-19
最后登录: 2020-06-17
5楼  发表于: 2009-03-27 17:36
下班啦,楼主加油哈,晚上再讨论
看巴拿马怎么办?
级别: 新手上路
UID: 4367
精华: 0
发帖: 1
金钱: 10 两
威望: 10 点
贡献值: 0 点
综合积分: 2 分
注册时间: 2009-03-11
最后登录: 2009-03-28
6楼  发表于: 2009-03-28 19:41
有明白的人继续来讨论啊,很关心这个题目。
级别: 新手上路
UID: 3831
精华: 0
发帖: 9
金钱: 90 两
威望: 90 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2009-02-11
最后登录: 2011-10-15
7楼  发表于: 2009-04-06 14:55
问题找到了,因为好久没上来了,看到这个贴子觉得应该把经验跟兄弟们分享一下~
要不老提问题不解答也不好~

看了下SPCA5XX的驱动,确实不支持v4l2,只支持v4l,重写了下程序,v4l的结构跟v4l2的结构大不一样,感觉没v4l2好,好像不太清晰,扩展功能也没v4l2强,也有可能是我对v4l理解不是很透彻的原因,时间仓促说的不对请见谅~

感谢长风~  
[ 此帖被sharp99827在2011-10-15 22:00重新编辑 ]
级别: 新手上路
UID: 3831
精华: 0
发帖: 9
金钱: 90 两
威望: 90 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2009-02-11
最后登录: 2011-10-15
8楼  发表于: 2009-04-06 14:59
贴一下SPCA5XX的ioctl的源码,大家看看
spca5xx_do_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
         void *arg)
{
    struct video_device *vdev = file->private_data;
    struct usb_spca50x *spca50x = video_get_drvdata(vdev);
    PDEBUG(2, "do_IOCtl: 0x%X", cmd);
    if (!spca50x->dev)
        return -EIO;
    switch (cmd) {
    case VIDIOCGCAP:
        {
            struct video_capability *b = arg;
            PDEBUG(2, "VIDIOCGCAP %p :", b);
            memset(b, 0, sizeof (struct video_capability));
            snprintf(b->name, 32, "%s",
                 clist[spca50x->desc].description);
            b->type = VID_TYPE_CAPTURE;
            b->channels =
                ((spca50x->bridge == BRIDGE_SPCA506) ? 8 : 1);
            b->audios = 0;
            b->maxwidth = spca50x->maxwidth;
            b->maxheight = spca50x->maxheight;
            b->minwidth = spca50x->minwidth;
            b->minheight = spca50x->minheight;
            return 0;
        }
    case VIDIOCGCHAN:
        {
            struct video_channel *v = arg;
            switch (spca50x->bridge) {
            case BRIDGE_SPCA505:
                {
                    strncpy(v->name,
                        ((v->channel ==
                          0) ? "SPCA505" : "Video In"),
                        32);
                    break;
                }
            case BRIDGE_SPCA506:
                {
                    spca506_GetNormeInput(spca50x,
                                  (__u16 *) & (v->
                                       norm),
                                  (__u16 *) & (v->
                                       channel));
                    if (v->channel < 4) {
                        snprintf(v->name, 32,
                             "SPCA506-CBVS-%d",
                             v->channel);
                    } else {
                        snprintf(v->name, 32,
                             "SPCA506-S-Video-%d",
                             v->channel);
                    }
                    break;
                }
            default:
                snprintf(v->name, 32, "%s",
                     Blist[spca50x->bridge].name);
                break;
            }
            v->flags = 0;
            v->tuners = 0;
            v->type = VIDEO_TYPE_CAMERA;
            return 0;
        }
在挣扎中坚持!
级别: 新手上路
UID: 60326
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
贡献值: 0 点
综合积分: 44 分
注册时间: 2011-12-08
最后登录: 2014-11-27
9楼  发表于: 2014-08-28 17:26
只要内核高于2.6.18都应该支持的