首页| 论坛| 消息

标题:关于V4L无法获取图像的问题
作者:leonchiong
日期:2016-09-24 00:46
内容:

最近在弄核心板上的摄像头程序, 使用了V4L的API. 在网上查了很多资料和教程, 按照其中一个教程已经Qt写好了一个LVideo4l类,并且移植到板子上的时候能够正常运行.
目前遇到的问题是在ioctl(fd, VIDIOCMCAPTURE, &(mmap));后,使用ioctl(fd, VIDIOCSYNC, &(frame_current)获取图像的时候总是报错,错误如下:
VideoIn port 1 open
Sensor power down
Sensor not to power down
Init NT_99141 in port 1
Sensor power down
Sensor not to power down
Sensor reset
I2C added
detectd sensor id0=14 id1=10
NTSetResolution:1
sensor change resolution begin-----
Programming sensor init value
Programming sensor resolution value = 1
sensor change resolution end-----
video driver open successful
m_v4ldev.capability W55FA92 Camera dev1 0 1 480 640 120 160 641
m_v4ldev.picture 0 0 0 16 0 7 0
m_v4ldev.picture 0 0 0 16 0 7 0
mbuf.size 2328576 mbuf.offsets 0xc7334c mbuf.frames 3
ioctrl VIDIOCMCAPTURE value 0
start get Image
error: v4l_grab_sync faild. Resource temporarily unavailable
error: v4l_grab_sync faild. Resource temporarily unavailable
error: v4l_grab_sync faild. Resource temporarily unavailable
error: v4l_grab_sync faild. Resource temporarily unavailable
error: v4l_grab_sync faild. Resource temporarily unavailable

请各位朋友指导一下问题的原因,谢谢!!!!!!!!!!!!!!


#1 [leonchiong 09-24 00:47]
这是类的源码:
#include "lvideo4l.h"
LVideo4l::LVideo4l(QByteArray devname, QObject *parent) :
QObject(parent)
{
m_v4ldev.dev = devname.data();
}
LVideo4l::~LVideo4l()
{
}
QByteArray LVideo4l::getDevName()
{
QByteArray devname;
devname.append(m_v4ldev.dev);
return devname;
}
void LVideo4l::setDevIndex(int index)
{
m_v4ldev.dev = QByteArray(VIDEO_PATH(index)).data();
}
v4l_device LVideo4l::getV4lDevice()
{
return m_v4ldev;
}
int LVideo4l::v4l_open()
{
if((m_v4ldev.fd = open(m_v4ldev.dev, O_RDWR /*| O_NONBLOCK*/)) < 0) {
qDebug()

回复 发表
主题 版块