v4l2
文章平均质量分 79
panda19881
这个作者很懒,什么都没留下…
展开
-
v4l2文档之——v4l2 framework
V4L2驱动框架概述=====================================这个文本文件讲述V4L2的框架所提供的各种结构以及它们之间的关系.1、简介------------由于硬件的复杂性v412驱动往往是非常复杂的: 大多数设备有多个IC,在/dev目录下有多个设备节点, 并也创建non-V4L2的设备,如DVB,ALSA,FB,I2C和input(I翻译 2013-03-30 19:42:07 · 2171 阅读 · 0 评论 -
v4l2 video设备注册和调用过程
一、 注册一个video_device设备它代表系统/dev/videox设备节点的实际的物理设备。下边一内核版本2.6.32种成熟的omap2432处理器摄像头控制器模块驱动为例分析:下边的代码在driver/media/video/omap24xxcam.c中1、Video device的操作函数集static struct v4l2_file_operations oma原创 2013-03-31 08:42:37 · 1975 阅读 · 0 评论 -
v4l2文档之——color and format
v4l2文档第五A--颜色与格式 颜色与格式这是不定期发布的关于写视频驱动程序的LWN系统文章的第五篇.没有看过介绍篇的,也许想从这里 开始。 应用在可以使视频设备工作之前,它必须与驱动达成了解,知道视频数据是何种格式的。这种协商将是一个非常复杂的过程,其原因有二:1、视频硬件所支持的视 频格互不相同。2、在内核的格式转换是令人难以接受的。所以应用在找出一种硬件支持的格式,并做出一种翻译 2013-03-30 19:48:15 · 1350 阅读 · 0 评论 -
v4l2驱动文档之——streaming IO
v4l2驱动编写篇第六B--流输入输出 在本系列文章的上一期中,我们讨论了如何通过read()和write()的方式实现视频帧的传输,这样的实现可以完成基本的工作,却并不是普便上用来实现视频输入输出大家偏爱的方法。为了实现最高性能和最好的信息传输,视频驱动应该支持V4L2 流输入输出。使用read()和write()方法,每一帧都要通过I/O操作在用户和内核空间之间拷贝数据。然而, 当使用翻译 2013-03-30 21:29:40 · 1367 阅读 · 0 评论 -
v4l2文档之——format negotiation
V4l2驱动编写篇第五B--格式的协定这是不定期发布的关于写视频驱动程序的LWN系统文章的一篇续篇.介绍篇 包含了对整个系统的描述,并且包含对本篇的上一篇的链接,在上一集,我们关注了V4L2 API是如何描述视频格式的:图片的大小,和像素在其内部的表示方式。这篇文章将完成对这个问题的讨论,它将描述如就硬件所支持的实际视频格与应用达到协 议。1、 枚举硬件所支持的所有格式如我们在上一篇中翻译 2013-03-30 21:15:09 · 1018 阅读 · 0 评论 -
v4l2文档之——basic ioctl
v4l2驱动编写篇三--基本I/O处理 如果有人在video for linux API规范上花了我时间的话,他肯定已经注意到了一个问题,那就是V4L2大量使用了ioctl接口。视频硬件有大量的可操作旋钮,可能比其它任何处理都要多。视频流要与许多参数相联系,而且有很大一部分处理要通过硬件进行。试图在硬件支持模式之外运行视频会导致性能很差,甚至根本任何性能。所以我们不得不揭露硬件的许多特性,结束翻译 2013-03-30 19:45:43 · 984 阅读 · 0 评论 -
v4l2_dev.c浅析
V4l2视频操作最核心的处理函数:#define VIDEO_NUM_DEVICES 256 //子设备数量#define VIDEO_NAME "video4linux"//设备名称,可能是在/dev下显示的名称1、建立sysfs节点及属性// sysfs stuffstatic ssize_t show_index(struct dev原创 2013-03-31 09:51:57 · 1775 阅读 · 1 评论 -
v4l2_common.c浅析
V4l2的子设备一般是摄像头和摄像头控制器,它们和主机的控制操作是通过i2c总线完成的。V4l2驱动框架中跟i2c相关的代码在deriver/media/video/v4l2_common.c中,下边就相关函数作一简单分析:下边宏的作用是如果v4l2的子设备通过i2c总线和主机通信时,才能用到下边的函数,因为有可能通过其他总线通信,比如SPI等。#if defined(CONFIG_I2C原创 2013-03-31 09:21:08 · 2036 阅读 · 1 评论 -
v4l2文档之——input and output
v4l2驱动编写篇第四--输入输出1、输入和输出这是不定期发布的关于写视频驱动程序的LWN系统文章的第四篇.没有看过介绍篇的,也许想从这里开始。本周的文章介绍的是应用程序如何确定在特定适配器上哪些输入和输出可用,并且在它们之间做出选择。在很多情况下,视频适配器并不能提供很多的输入输出选项。比如说摄像头控制器,可能只是提供摄像头,而没什么别的功能。然而,在一些其他的情况下,事情将变得很复翻译 2013-03-30 19:47:00 · 1164 阅读 · 0 评论 -
v4l2文档之——basic frame IO
一、v4l2驱动编写篇第六A--基本的帧输入输出 1、基本的帧输入输出关于视频驱动的这一系列文章己经更新了好几期,但是我们还没有传输过一帧的视频数据。虽然在这一点上,我们己经了解了足够多的关于格式协定方面的细节,我们可以看一下视频帧是如何在应用和设备之间传输的了。V4L2 API定义了三种不同的传输视频帧的方法,现在有两种是可以实现的:read() 和write() 系统调被用于普翻译 2013-03-30 21:23:47 · 1236 阅读 · 0 评论 -
v4l2驱动文档之——controls
v4l2驱动编写篇第七--控制方法 刚刚完成了这一系列文章的第六部分,我们现在知道如何设置视频设备,并来回传输帧了。然而,有一个众所周知的事实,那就是用户永远也不会满意,不会满足于能从摄像头上看到视频,他们马上就会问我可不可以调参数啊?像亮度、对比度等等。这些参数可以在视频应用中调整,有时也的确会这样做,但是当硬件支持时,在 硬件中进行调整有其优势。比如说亮度调整,如果不这样做的话,可能会丢失翻译 2013-03-30 21:35:30 · 973 阅读 · 0 评论 -
v4l2文档之——register and open
v4l2驱动编写篇二--注册和打开 这篇文章是LWN写V4L2接口的设备驱动系列文章的第二篇。没看过介绍篇的,也许可以从那篇开始看。这一期文章将关注Video for Linux驱动的总体结构和设备注册过程。开始之前,有必要提一点,那就是对于搞视频驱动的人来说,有两份资料是非常有价值的。•TheV4L2 API Specification . (V4L2 API说明)这份文档涵盖了翻译 2013-03-30 19:44:41 · 942 阅读 · 0 评论 -
v4l2_device.c浅析
关于v4l2及v4l2_subdev设备实例的注册注消等操作在deriver/media/video/v4l2_device.c文件中,下边将各个函数分析一下(分析的时候以2.6.32.40内核为主,并列出与3.3.1的区别):注册一个v4l2设备实例,主要建立dev和v4l2_dev的关系(下边黄低红字)。初始化v4l2_dev,使dev_driver_data指向v4l2_dev,dev在原创 2013-03-31 08:58:13 · 2292 阅读 · 0 评论 -
v4l2驱动文档之——filed
video的帧可区分为隔行和逐行: 逐行顺序的传输一帧所有的行,而隔行则把一帧划分成两个fields,分别保存帧的奇数行和偶数行,被称作奇场和偶场. 阴极射线电视机需要交替的显示两场来组成一个完整的帧,交替的时延需要我们交替的传输奇场和偶场。这个奇怪技术的引入是因为:在刷新率接近电影时,图片会 消退的过快。使用奇偶场可以避免使用双倍的buffer以及额外的带宽需求。 首先要明确camer翻译 2013-03-30 22:22:07 · 1016 阅读 · 0 评论 -
v4l2文档之——media framework
Linux kernel media framework============================ This document describes the Linux kernel media framework, its data structures,functions and their usage. Linux 内核多媒体驱动框架 这个文档描述linu翻译 2013-03-30 19:43:22 · 2877 阅读 · 0 评论 -
videobuf处理流程
videobuf是应用程序和v4l2驱动程序的一个中间层,用它来进行视频数据缓冲区的分配和管理。它根据应用程序的需求(缓冲区的数量的大小),分配相应的视频缓冲区,这个缓冲区是在内核空间分配的,并通过mmap方法映射到用户空间,在内核空间形成一个缓冲区队列,在应用程序中有相应的缓冲区数组对应,它们指向的内存地址是一样的。在驱动程序中,根据配置的硬件参数(FIFO阈值),将vip硬件图像存储器中的原创 2013-04-01 22:54:32 · 2505 阅读 · 0 评论