Chinaunix

标题: 借人气,问个OV511的问题 [打印本页]

作者: 3040602024    时间: 2008-04-17 10:37
标题: 借人气,问个OV511的问题
这几天一直被一个问题困饶.
就是一个简单的视频采集程序,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呢?

希望得到高手指导.先谢谢拉...
作者: 3040602024    时间: 2008-04-17 11:37
顶,哪位高手看看啊
作者: 涩兔子    时间: 2008-04-17 11:47
用libvlc抓取流媒体,然后再转格式,不是更好
作者: 3040602024    时间: 2008-04-17 11:58
标题: 回复 #3 涩兔子 的帖子
我还是先做个简单易懂的吧  哎  你说的那个好像太复杂啊




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2