免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1949 | 回复: 3
打印 上一主题 下一主题

借人气,问个OV511的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-17 10:37 |只看该作者 |倒序浏览
这几天一直被一个问题困饶.
就是一个简单的视频采集程序,ARM10+LINUX+网眼V2000摄象头.采集程序是网上下的,下了几个

都有一个问题,就是采集不到数据,每次采集玩一帧然后同步的时候就挂起了.
查看驱动OV511.c
死在ioctl(grab_fd, VIDIOCSYNC, &frame);  不返回了
case VIDIOCSYNC:
        {                struct ov511_frame *frame;
        ......
                rc = wait_event_interruptible(frame->wq,
                            (frame->grabstate == FRAME_DONE)
                            || (frame->grabstate == FRAME_ERROR));
info("5147...%d\n",frame->grabstate);

                        ......
                return 0;
        }
估计就在wait_event_interruptible那不动了,frame->grabstate == FRAME_DONE没满足,那么什么似的frame->grabstate == FRAME_DONE呢?
再往下,只有ov511_move_data  什么调用他呢,再往下ov51x_isoc_irq  再往下ov51x_init_isoc  再往下是ov51x_v4l1_open,就是打开视频设备的
时候调用,ov51x_isoc_irq 是URB的回调函数,每次把usb_submit_urb完成后调用.
为什么usb_submit_urb只在ov51x_init_isoc中调用一次,这个是USB等时传输,我记得批量传输每次WRITE中好象都要usb_submit_urb然后USB_CORE再把URB交给USB控制器,USB控制器处理完了后,调用回调函数,进入驱动继续运行..
那么等时是怎么样的呢,是不是只要usb_submit_urb一次,然后依据URB->INTERCAL间隔提交URB呢?

希望得到高手指导.先谢谢拉...

论坛徽章:
0
2 [报告]
发表于 2008-04-17 11:37 |只看该作者
顶,哪位高手看看啊

论坛徽章:
0
3 [报告]
发表于 2008-04-17 11:47 |只看该作者
用libvlc抓取流媒体,然后再转格式,不是更好

论坛徽章:
0
4 [报告]
发表于 2008-04-17 11:58 |只看该作者

回复 #3 涩兔子 的帖子

我还是先做个简单易懂的吧  哎  你说的那个好像太复杂啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP