linux的V4L2子系统分析_第1页
linux的V4L2子系统分析_第2页
linux的V4L2子系统分析_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.1、drivers/media/video/v4l2-dev.c1.1 、static DECLARE_BITMAP(devnode_numsVFL_TYPE_MAX, VIDEO_NUM_DEVICES);分析:静态全局变量定义,宏定义展开后的形式为:static unsigned long devnode_nums4BITS_TO_LONG(256);实际上相当于定义了一个全局的二维数组,这个二维数组的第一维对应V4L2 规范支持的 4 种设备(分别为 VFL_TYPE_GRABBER、VFL_TYPE_VBI、 VFL_TYPE_RADIO、VFL_TYPE_SUBDEV),第二维中

2、8 个 long 型元素总共 256 个 bit ,每个 bit 用来作为位图的一个位使用。这种以数组形式出现,以位为单位来使用的方式,在内核很多地方都有,譬如input子系统中的 struct input_dev中。1.2 、 static struct video_device *video_deviceVIDEO_NUM_DEVICES;在 v4l2-dev.c中定义了全局变量video_device,这是一个指针数组,共包含256 个指针,该数组用来记录系统中注册的所有video_device结构体的首地址,是video 子系统用来管理所有注册设备的总索引。struct video_d

3、evice中的 minor 成员用来记录本 vodeo_device 实例(每个在系统中注册的 video 设备都是 video_device 的一个实例)在数组 vodeo_device 中的索引值。1.3 、struct video_device#if defined(CONFIG_MEDIA_CONTROLLER)struct media_entity entity;#endif/* device ops */const struct v4l2_file_operations *fops;/* sysfs */struct device dev;/* v4l device */struc

4、t cdev *cdev;/* character device */* Set either parent or v4l2_dev if your driver uses v4l2_device */struct device *parent;/* device parent */1 / 3.struct v4l2_device *v4l2_dev;/* v4l2_device parent */* Control handler associated with this device node. May be NULL. */ struct v4l2_ctrl_handler *ctrl_

5、handler;/* Priority state. If NULL, then v4l2_dev->prio will be used. */ struct v4l2_prio_state *prio;/* device info */char name32;/ 4种 V4L2 设备的类型码,视频抓取类设备为0int vfl_type;/* 'minor' is set to -1 if the registration failed */ 次设备号,同时又是全局变量 video_deivce 数组中对应下标索引int minor;/设备名编号后缀,如/dev/vide

6、o0, /dev/video3中 0 和 3 就记录在这里u16 num;/* use bitops to set/clear/test flags */unsigned long flags;/* attribute to differentiate multiple indices on one physical device */int index;/* V4L2 file handles */ spinlock_tstruct list_headfh_lock; /* Lock for all v4l2_fhs */fh_list; /* List of struct v4l2_fh */int debug;/* Activates debug level*/2 / 3./* Video standard vars */v4l2_std_id tvnorms; /* Supported tv norms */ v4l2_std_id current_norm; /* Current tvnorm */* callbacks */void (*release)(struct video_device *vdev);/*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论