v4l2API无法执行VIDIOC_DQBUF的问题
一、PC虚拟机下ubuntu14.04.1环境下
源文件:show.c USB摄像头格式yuyv:
申请缓冲帧数2,分辨率640*480 阻塞无法执行
申请缓冲帧数4,分辨率640*480 阻塞无法执行
申请缓冲帧数2,分辨率320*240 隔3到5帧取到一帧数据
申请缓冲帧数4,分辨率320*240 取一帧数据更加困难,更不稳定
问题总结:
在笔记本低版本虚拟机Fedora14上能正常运行分辨率640*480的show.c文件,说明在上述环境下可能的问题如下:
由于一幅640*480的yuyv图像的大小是640*480*2个字节大小即600K。内核缓冲区(驱动缓冲区)没有这么大导致程序在VIDIOC_DEBUF时一直阻塞,因为一直没有一幅完整的图像数据可以读取。
关于设置320*240大小分辨率时,为什么会隔几帧才能猜到图像原因可能就是虚拟机ubuntu14.04环境下程序对连接虚拟机的USB摄像头缓冲区访问速度优先慢,缓冲帧已经换了好几副图像数据了,采集命令才到达,所以采集到的图像不连续。
二、DE1-SOC板3.0以上版本的Linux内核,cortex-A9双核环境下:
源文件:show.c USB摄像头格式yuyv
申请缓冲帧数2,分辨率640*480 阻塞无法执行
申请缓冲帧数4,分辨率640*480 阻塞无法执行
申请缓冲帧数2,分辨率320*240 正常执行,基本能取到连续的帧图像
问题总结:
在DE1-SOC下处理器访问USB摄像头的速度应该比上述虚拟机环境下快,所以能正常取到320*240的图像,而为什么无法采集640*480的图像数据?原因也可能是一幅640*480的yuyv图像的大小是640*480*2个字节大小即600K。内核缓冲区(驱动缓冲区)没有这么大导致程序在VIDIOC_DEBUF时一直阻塞。
v4l2API无法执行VIDIOC_DQBUF的问题的更多相关文章
- v4l打开video设备 ,执行VIDIOC_DQBUF,出现Resource temporarily unavailable 问题【转】
转自:http://blog.csdn.net/china_video_expert/article/details/7236856 版权声明:本文为博主原创文章,未经博主允许不得转载. 如果你在执行 ...
- 【Linux开发】V4L2应用程序框架
V4L2应用程序框架 V4L2较V4L有较大的改动,并已成为2.6的标准接口,函盖video\dvb\FM...,多数驱动都在向V4l2迁移.更好地了解V4L2先从应用入手,然后再深入到内核中结合物理 ...
- Bash 翻译
Bash参考手册 目录 1简介 1.1什么是Bash? 1.2什么是shell? 2定义 3基本外壳功能 3.1 Shell语法 3.1.1外壳操作 3.1.2报价 3.1.2.1逃逸角色 3.1.2 ...
- Javascript 的执行环境(execution context)和作用域(scope)及垃圾回收
执行环境有全局执行环境和函数执行环境之分,每次进入一个新执行环境,都会创建一个搜索变量和函数的作用域链.函数的局部环境不仅有权访问函数作用于中的变量,而且可以访问其外部环境,直到全局环境.全局执行环境 ...
- nohup程序后台执行
Linux常用命令,用于不挂断的执行程序. nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令.该命令可以在你退出帐户/关闭终端之后继续运行相应 ...
- Apache执行Python脚本
由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...
- 深入理解JS 执行细节
javascript从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习JS引擎工作机制之前,我们需要引入几个相关的概念:执行环境栈.全局对象.执行环境.变量对象.活动对象.作用域和作用域链等 ...
- Windows 7上执行Cake 报错原因是Powershell 版本问题
在Windows 7 SP1 电脑上执行Cake的的例子 http://cakebuild.net/docs/tutorials/getting-started ,运行./Build.ps1 报下面的 ...
- SQLServer执行命令出现“目录无效的提示”
异常处理汇总-数据库系列 http://www.cnblogs.com/dunitian/p/4522990.html 一般都是清理垃圾清理过头了,把不该删的目录删了 网上说法: 问题描述: 1.s ...
随机推荐
- Django知识总汇
基础 Django基础 Django基本命令 model系统 ORM基础 ORM字段和参数 ORM对数据库操作 ORM中介模型 ORM之其他骚操作 templates系统 模板语言 views系统 视 ...
- js模块化的总结
从前端打包的历史谈起 在很长的一段前端历史里,是不存在打包这个说法的.那个时候页面基本是纯静态的或者服务端输出的, 没有 AJAX,也没有 jQuery.Google 推出 Gmail 的时候(200 ...
- 【刷题】BZOJ 3667 Rabin-Miller算法
Input 第一行:CAS,代表数据组数(不大于350),以下CAS行,每行一个数字,保证在64位长整形范围内,并且没有负数.你需要对于每个数字:第一,检验是否是质数,是质数就输出Prime 第二,如 ...
- 【BZOJ4140】共点圆加强版(二进制分组)
[BZOJ4140]共点圆加强版(二进制分组) 题面 BZOJ 题解 我卡精度卡了一天.... 之前不强制在线的做法是\(CDQ\)分治,维护一个凸壳就好了. 现在改成二进制分组,每次重建凸壳就好了. ...
- opencv 应用程序无法正常启动(0xooooo7b)
#include<iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui ...
- EndNote文献悬挂缩进的设置方法及设置参考文献序号后面空格长度
一.EndNote文献悬挂缩进的设置方法 写论文时使用EndNote来插入和管理参考文献是一种非常方便的方法,但有时不同的杂志要求插入的文献要求第二行缩进格式,或者不缩进. 1.在EndNote中Ed ...
- php 性能优化
php 性能测试工具 ab(Apache Benchmark) ab 是由 Apache 提供的压力测试软件.安装 apache 服务器时会自带该压测软件. 如何使用: ab -n1000 -c100 ...
- Ntp服务器的搭建
在搭建Ntp服务器的过程中,试过两种方案,具体如下: 方案一: 到ntp官网获取源码编译,失败 下载源码ntp-4.2.8 -> ./configure -> make 无法通过: ...
- 利用solr实现商品的搜索功能
后期补充: 为什么要用solr服务,为什么要用luncence? 问题提出:当我们访问购物网站的时候,我们可以根据我们随意所想的内容输入关键字就可以查询出相关的内容,这是怎么做到呢?这些随意的数据 ...
- 报错laravel/horizon v1.4.3 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system.的解决办法
执行composer install后报以下错误: Problem 1 - laravel/horizon v1.4.3 requires ext-pcntl * -> the requeste ...