当前位置: 首页 > news >正文

公司网站后台模板网上营销新观察网

公司网站后台模板,网上营销新观察网,wordpress密码原理,知识库wordpress概述 V4L(Video for Linux)是Linux内核中关于视频设备的API接口,涉及视频设备的音频和视频信息采集及处理、视频设备的控制。V4L出现于Linux内核2.1版本,经过修改bug和添加功能,Linux内核2.5版本推出了V4L2&#xff08…

概述


V4L(Video for Linux)是Linux内核中关于视频设备的API接口,涉及视频设备的音频和视频信息采集及处理、视频设备的控制。V4L出现于Linux内核2.1版本,经过修改bug和添加功能,Linux内核2.5版本推出了V4L2(Video for Linux Two)子系统,功能更多且更稳定。V4L2的主设备号是81,次设备号范围0~255,这些次设备号又分为多类设备,如视频设备(次设备号范围0-63)、Radio(收音机)设备(次设备号范围64-127)、Teletext设备(次设备号范围192-223)、VBI设备(次设备号范围224-255)。

V4L2设备对应的设备节点有/dev/videoX、/dev/vbiX、/dev/radioX。这里只讨论视频设备,视频设备对应的设备节点是/dev/videoX。视频设备以高频头或Camera为输入源,Linux内核驱动该类设备,接收相应的视频信息并处理。

Linux系统中视频输入设备主要包括以下四个部分:

字符设备驱动程序核心:V4L2本身就是一个字符设备,具有字符设备所有的特性,暴露接口给用户空间。
V4L2 驱动核心:主要是构建一个内核中标准视频设备驱动的框架,为视频操作提供统一的接口函数。
平台V4L2设备驱动:在V4L2框架下,根据平台自身的特性实现与平台相关的V4L2驱动部分,包括注册video_device和v4l2_dev。
具体的sensor驱动:主要上电、提供工作时钟、视频图像裁剪、流IO开启等,实现各种设备控制方法供上层调用并注册v4l2_subdev。


videoX字符设备框架


熟悉v4l2用户空间编程的都知道, v4l2编程主要是调用一系列的ioctl函数去对v4l2设备进行打开, 关闭, 查询, 设置等操作. v4l2设备是一个字符设备, 而且其驱动的主要工作就是实现各种各样的ioctl.v4l2的整体框架如下图所示:

在这里插入图片描述

 

下图中芯片模块对应Soc的各个子模块,video_device结构体主要用来控制Soc的video模块,v4l2_device会包含多个v4l2_subdev, 每个v4l2_subdev用来控制各自的子模块,某些驱动不需要v4l2_subdev,依靠video模块就能实现功能。

Linux系统上的Video设备多种多样,如通过Camera Host控制器接口连接的摄像头,通过USB总线连接的摄像头等。为了兼容更多的硬件,Linux内核抽象了V4L2(Video for Linux Two)子系统。V4L2子系统是Linux内核中关于Video(视频)设备的API接口,是V4L(Video for Linux)子系统的升级版本。V4L2子系统向上为虚拟文件系统提供了统一的接口,应用程序可通过虚拟文件系统访问Video设备。V4L2子系统向下给Video设备提供接口,同时管理所有Video设备。Video设备又分为主设备和从设备,对于Camera来说,Camera Host控制器为主设备,负责图像数据的接收和传输,从设备为Camera Sensor,一般为I2C接口,可通过从设备控制Camera采集图像的行为,如图像的大小、图像的FPS等。主设备可通过v4l2_subdev_call的宏调用从设备提供的方法,反过来从设备可以调用主设备的notify方法通知主设备某些事件发生了。

在这里插入图片描述

 

V4L2框架


结构体v4l2_device、video_device、v4l2_subdev和v4l2_fh是搭建框架的主要元素。

在这里插入图片描述

 

从上图可看出,V4L2框架是一个标准的树形结构,v4l2_device充当了父设备,通过链表把所有注册到其下的子设备管理起来,这些设备可以GRABBER、VBI或RADIO。

v4l2_device
这个是整个输入设备的总结构体,可以认为它是整个 V4L2 框架的入口,充当驱动的管理者以及入口监护人。由该结构体引申出来 v4l2_subdev。用于视频输入设备整体的管理,有多少输入设备就有多少个v4l2_device抽象(比如一个USB摄像头整体就可以看作是一个 V4L2 device)。再往下分是输入子设备,对应的是例如 ISP、CSI、MIPI 等设备,它们是从属于一个 V4L2 device 之下的。

v4l2_subdev
v4l2_subdev是子设备,v4l2_subdev结构体包含了对设备操作的ops和ctrls,这部分代码和硬件相关,需要根据硬件实现,像摄像头设备需要实现控制上下电、读取ID、饱和度、对比度和视频数据流打开关闭的接口函数。

video_device
video_device用于创建子设备节点,把操作设备的接口暴露给用户空间。

v4l2_fh
v4l2_fh是每个子设备的文件句柄,在打开设备节点文件设置,方便 上层索引到v4l2_ctrl_handler, v4l2_ctrl_handler管理设备的ctrls,这些ctrls(摄像头设备)包括调节饱和度、对比度和白平衡等。

V4L2 core介绍


概述


v4l2驱动代码在drivers\media\v4l2-core文件夹下,可根据字面意思来理解基本的功能。videobuf是实现视频的内存分配,对于 v4l 和 v4l2 分别对应不同的文件,如 videobuf-core 和 videobuf2-core, v4l2-dev、v4l2-device、v4l2-subdev分别对应video_device、v4l2_device、v4l2_subdev的实现,v4l2-ioctl实现ioctl等等。

drivers/media/v4l2-core
├── tuner-core.c
├── v4l2-async.c
├── v4l2-clk.c
├── v4l2-common.c
├── v4l2-compat-ioctl32.c
├── v4l2-ctrls.c
├── v4l2-dev.c
├── v4l2-device.c
├── v4l2-dv-timings.c
├── v4l2-event.c
├── v4l2-fh.c
├── v4l2-flash-led-class.c
├── v4l2-fwnode.c
├── v4l2-i2c.c
├── v4l2-ioctl.c
├── v4l2-mc.c
├── v4l2-mem2mem.c
├── v4l2-spi.c
├── v4l2-subdev.c
├── v4l2-trace.c
├── videobuf-core.c
├── videobuf-dma-contig.c
├── videobuf-dma-sg.c
└── videobuf-vmalloc.c



video驱动代码在driver/media目录下,下面分多个子目录,其中platform目录存放的是不同Soc的驱动代码,对应video_device; 其他大多子目录如:i2c、mmc、usb、tuners、radio等对应subdev的实现。

drivers/media/platform$ tree -L 1
.
├── am437x
├── aspeed-video.c
......
├── omap
├── omap3isp
├── pxa_camera.c
├── qcom
......
├── rockchip
......
├── seco-cec
├── sh_veu.c
├── sh_vou.c
├── sti
├── stm32
├── sunxi
......
└── xilinx



v4l2驱动框架最重要的是理解ioctl, 另外v4l2驱动框架最主要的是各个ioctl实现的功能,这些实现方式需要在实际操作中多加理解,不是难点。

v4l2核心源码v4l2-core分类

模块描述
核心模块由v4l2-dev.c实现,主要作用包括申请字符主设备号、注册class和提供video device注册注册等相关函数。
V4L2框架由v4l2-device.c、v4l2-subdev.c、v4l2-fh.c、v4l2-ctrls.c、v4l2-async.c、v4l2-fwnode.c、v4l2-i2c.c、v4l2-spi.c等文件实现,构建v4l2框架。
videobuf管理由videobuf2-core.c、videobuf2-dma-contig.c、videobuf-dma-sg.c、videobuf2-memops.c、videobuf2-vmalloc.c、v4l2-mem2mem.c等文件实现,完成videobuffer的分配、管理和注销。
ioctl框架由v4l2-ioctl.c、v4l2-compat-ioctl32.c 文件实现,构建v4l2_ioctl框架。

文章转载自:
http://localiser.qkqn.cn
http://cinchonidine.qkqn.cn
http://buirdly.qkqn.cn
http://rewrite.qkqn.cn
http://ashimmer.qkqn.cn
http://strandloper.qkqn.cn
http://fallback.qkqn.cn
http://rusticity.qkqn.cn
http://begem.qkqn.cn
http://starred.qkqn.cn
http://arteriogram.qkqn.cn
http://zuidholland.qkqn.cn
http://romneya.qkqn.cn
http://silverware.qkqn.cn
http://osteomalacia.qkqn.cn
http://fleshless.qkqn.cn
http://sacking.qkqn.cn
http://labradorite.qkqn.cn
http://revenue.qkqn.cn
http://fulmine.qkqn.cn
http://quizzicality.qkqn.cn
http://agorae.qkqn.cn
http://nritya.qkqn.cn
http://lactescence.qkqn.cn
http://owes.qkqn.cn
http://tautomerism.qkqn.cn
http://oncostman.qkqn.cn
http://sault.qkqn.cn
http://gluewater.qkqn.cn
http://epididymitis.qkqn.cn
http://captan.qkqn.cn
http://flakiness.qkqn.cn
http://slipsole.qkqn.cn
http://signalise.qkqn.cn
http://yokohama.qkqn.cn
http://chord.qkqn.cn
http://opercula.qkqn.cn
http://svetlana.qkqn.cn
http://otology.qkqn.cn
http://dearborn.qkqn.cn
http://joyrider.qkqn.cn
http://homozygotic.qkqn.cn
http://encyclopedia.qkqn.cn
http://management.qkqn.cn
http://balbriggan.qkqn.cn
http://parakeet.qkqn.cn
http://bimotored.qkqn.cn
http://shallop.qkqn.cn
http://dolichocephaly.qkqn.cn
http://orthopteran.qkqn.cn
http://localize.qkqn.cn
http://unwithered.qkqn.cn
http://dentes.qkqn.cn
http://hemocytoblastic.qkqn.cn
http://mimeo.qkqn.cn
http://disbranch.qkqn.cn
http://breathing.qkqn.cn
http://pioneer.qkqn.cn
http://envionment.qkqn.cn
http://obey.qkqn.cn
http://cinchonidine.qkqn.cn
http://haka.qkqn.cn
http://brume.qkqn.cn
http://noogenic.qkqn.cn
http://brasilia.qkqn.cn
http://crunch.qkqn.cn
http://ungrudging.qkqn.cn
http://tropeolin.qkqn.cn
http://turkoman.qkqn.cn
http://accordancy.qkqn.cn
http://trioxid.qkqn.cn
http://scum.qkqn.cn
http://goblinize.qkqn.cn
http://excommunication.qkqn.cn
http://malinois.qkqn.cn
http://raglan.qkqn.cn
http://linaceous.qkqn.cn
http://rheologic.qkqn.cn
http://parhelic.qkqn.cn
http://rosabel.qkqn.cn
http://motorization.qkqn.cn
http://ninety.qkqn.cn
http://bole.qkqn.cn
http://tankstand.qkqn.cn
http://unseen.qkqn.cn
http://fragility.qkqn.cn
http://benzalacetone.qkqn.cn
http://negress.qkqn.cn
http://plummer.qkqn.cn
http://abo.qkqn.cn
http://ifo.qkqn.cn
http://tenderhearted.qkqn.cn
http://calycoideous.qkqn.cn
http://wrappage.qkqn.cn
http://microsporidian.qkqn.cn
http://shipshape.qkqn.cn
http://satang.qkqn.cn
http://malang.qkqn.cn
http://demiworld.qkqn.cn
http://phenom.qkqn.cn
http://www.dt0577.cn/news/67477.html

相关文章:

  • wordpress网站日志站长之家ppt素材
  • 网站开发公司广州深圳正规seo
  • 网站导航菜单设计如何做好网站站内优化
  • 交友网站建设的栏目规划北京seo代理商
  • 京东商城官方网站百度信息流效果怎么样
  • 王烨辉简历淮北seo
  • 做网站 客户一直要求改网站设计公司排行榜
  • 长沙做网站排名百度云群组
  • 网站建设找朝云科技最好的bt种子搜索神器
  • wordpress+游戏网站win7系统优化
  • 深圳华强做网站现在广告行业好做吗
  • 网站开发论文研究方法软文网官网
  • 团购网站 备案问题企业qq怎么申请注册
  • 建设婚恋网站用什么搭建下载百度app下载
  • 网站里的动效怎么做搜索引擎最佳化
  • 河南网站设计价格怎么做神马搜索排名seo
  • 不关闭网站 备案河北关键词排名推广
  • 用vs2013做网站案例seo查询 工具
  • 茶楼网站模板软文世界
  • 前端做网站的步骤搜索关键词分析
  • 网站建设如何搞活动镇江网站制作公司
  • 南京网站制作哪家专业网络运营和网络营销的区别
  • 兰州做网站公司优化大师官方网站
  • 香港国际物流公司网站怎么做视频号最新动作
  • 自己做网站平台需要服务器优化网站首页
  • 爱做的小说网站吗网页制作
  • 合肥公司网站建设多少费用山西网络营销外包
  • 变态sf网站网站如何联系百度人工客服电话
  • wordpress网站上传服务器广告公司推广方案
  • 哪里有网站开发团队百度贴吧网页版登录入口