uvc设备通过v4l2驱动( QT项目)
GITHUB :源代码
其中uvc免驱设备可以是:usb摄像头、hdmi转usb视频采集卡
v4l2的驱动过程:
视频设备获取-> 属性设定-> 采集方式设定-> 图像数据获取-> 视频设备关闭
v4l2开发中常用的命令标识符
VIDIOC_REQBUFS:分配内存
VIDIOC_QUERYBUF:把VIDIOC_REQBUFS中分配的数据缓存转换成物理地址
VIDIOC_QUERYCAP:查询驱动功能
VIDIOC_ENUM_FMT:获取当前驱动支持的视频格式
VIDIOC_S_FMT:设置当前驱动的频捕获格式
VIDIOC_G_FMT:读取当前驱动的频捕获格式
VIDIOC_TRY_FMT:验证当前驱动的显示格式
VIDIOC_CROPCAP:查询驱动的修剪能力
VIDIOC_S_CROP:设置视频信号的边框
VIDIOC_G_CROP:读取视频信号的边框
VIDIOC_QBUF:把数据放回缓存队列
VIDIOC_DQBUF:把数据从缓存中读取出来
VIDIOC_STREAMON:开始视频显示函数
VIDIOC_STREAMOFF:结束视频显示函数
VIDIOC_QUERYSTD:检查当前视频设备支持的标准,例如PAL或NTSC
v4l2获取缓存数据过程
length: 614400 offset: 0 --
Buffer 0 mapped at address 0x7fffe05ba000.length: 614400 offset: 614400 --
Buffer 1 mapped at address 0x7fffe0524000.length: 614400 offset: 1228800 --
Buffer 2 mapped at address 0x7fffe048e000.length: 614400 offset: 1843200 --
Buffer 3 mapped at address 0x7fffe03f8000.length: 614400 offset: 2457600 --
Buffer 4 mapped at address 0x7fffe0362000.length: 614400 offset: 3072000 --
Buffer 5 mapped at address 0x7fffe02cc000.buffer 0 -> queued!
buffer 1 -> queued!
buffer 2 -> queued!
buffer 3 -> queued!
buffer 4 -> queued!
buffer 5 -> queued!
MainWindow窗口
//MainWindow CLASS:
connect(timer, SIGNAL(timeout()), this, SLOT(update())); //SLOT//data format
aa.append((const char *)&bf, 14); //bi(BIT MAP FILE HEADER) 14bit address
aa.append((const char *)&bi, 40); //bf(BIT MAP INFO HEADER) 40bit address
aa.append((const char *)rgb_frame_buffer, bi.biSizeImage); //24bit image data// The QPixmap class is an off-screen image representation that can be used as a paint device
pix.loadFromData(aa); //QPixmap pix;
//a IMAGE display in ui.label
ui->label->setPixmap(pix); //display
运行结果
uvc设备通过v4l2驱动( QT项目)相关推荐
- V4L2驱动详解 API翻译
博主按:介绍V4L2基础的东西,不知道是哪位同志翻译的,莫名的感动啊.这个必须转! 另,对未翻译的部分博主加以补充.文中以蓝色字体表示,如果有错误请高手指正.还有些图片好像不能显示,我从原文复制过来了 ...
- v4l2驱动编写篇【转】
转自:http://blog.csdn.net/michaelcao1980/article/details/53008418 大部分所需的信息都在这里.作为一个驱动作者,当挖掘头文件的时候,你可能也 ...
- V4L2驱动编写(转载)
转自:http://blog.chinaunix.net/uid-11765716-id-196071.html 在转载过程中,图片 显示出错.请到原始连接进行查看原图. 正文: 博主按:介绍V4L2 ...
- usb设备驱动之uvc设备
usb设备驱动之uvc设备 声明:涉及相关内容包括v4l2框架/drivers/media/v4l2-core/,usb设备控制器驱动/drivers/usb/dwc3/,usb composite驱 ...
- Linux V4l2驱动 -- 框架概述
V4l2框架简述 1 硬件 常用的电脑摄像头是USB接口,主流的智能手机摄像头是MIPI接口,另外还有像树莓派等硬件使用的CSI接口的设备.常用的智能手机Camera采用的MIPI接口,电路框架以及电 ...
- 如何将你的Qt项目打包安装在MeeGo系统中
简介 本文将教你怎样将你写的Qt项目打包并安装在MeeGo设备上运行.这里通过Qt示例中一个名叫"textures"的OpenGL项目来为例来讲述.这个原始项目是一个没有图标不能从 ...
- 领域驱动 开源项目_我如何在开源领域找到工作
领域驱动 开源项目 开源的 招贤纳士 有关开源工作和职业的文章的集合 . 我从事计算机行业已有40多年的历史,但是最好的年份是使用Linux和开源软件的最后17年左右. 我无意间涉足计算机行业,但那完 ...
- V4L2 驱动层分析
一.Camera V4L2 驱动层分析 Linux系统中视频输入设备主要包括以下四个部分: 1.字符设备驱动:V4L2本身就是一个字符设备,具有字符设备所有的特性,暴露接口给用户空间: 2.V4L2驱 ...
- 7.camera驱动06-自己实现v4l2驱动-虚拟摄像头
1. 框架分层 实际上的v4l2框架: v4l2本质是还是一个字符设备驱动,有自己的fops. 每注册一个video_device都会以次设备号为下标放到v4l2层的一个数组里. 应用调用open函数 ...
最新文章
- 【小心勿喷,吃饭中的小朋友最好别看】史上最搞笑的前端vue文件命名,没有之一,呵呵哒
- 构建区块链数字货币交易平台服务器的选择
- 201521123017 《Java程序设计》第4周学习总结
- JS与APP原生控件交互
- smarty中英文多编码字符截取乱码问题
- SqlServer Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)
- PIR 宣布被营利性机构收购,.org 顶级域名注册费用或上涨
- 8086汇编学习小记-1
- 音频测试方法(tiny)
- 实例:用C#.NET手把手教你做微信公众号开发(系列文章索引目录)
- php获取汉字的首字母,php获取汉字拼音首字母的函数(真正可以使用的)
- 1.一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。 这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子?2.角谷定理。
- 服装系统mysql设计_服装行业ERP系统的设计与实现-店铺模块(SSH,MySQL)(含录像)
- Android数据持久化存储(一)
- python读取dat文件经纬度_自动提取kml文件中的经纬度
- 怎样使用JPQL查询出每个部门员工的平均工资和最高工资
- cesium去除控件及版权信息
- 在Xcode 中如何打包测试版 给测试工程师使用
- excel几个表合成一张_如何将几个excel文件合并_多个excel表合并成一个的方法
- gcc/g++ 编译C/C++代码