uvc驱动记录
来源:互联网 发布:邓布利多 知乎 编辑:程序博客网 时间:2024/05/17 04:19
Linux uvc驱动分析
一、ioctl调用流程
1.common/drivers/media/video/uvc/uvc_driver.c
module_init(uvc_init);static int __init uvc_init(void){ result = usb_register(&uvc_driver.driver);}struct uvc_driver uvc_driver = {.driver = {.name= "uvcvideo",.probe= uvc_probe,.disconnect= uvc_disconnect,.suspend= uvc_suspend,.resume= uvc_resume,.reset_resume= uvc_reset_resume,.id_table= uvc_ids,.supports_autosuspend = 1,},};static int uvc_probe(struct usb_interface *intf, const struct usb_device_id *id){ uvc_register_chains(dev)}static int uvc_register_chains(struct uvc_device *dev){ ret = uvc_register_terms(dev, chain);}static int uvc_register_terms(struct uvc_device *dev, struct uvc_video_chain *chain){ ret = uvc_register_video(dev, stream);}static int uvc_register_video(struct uvc_device *dev,struct uvc_streaming *stream){ ret = uvc_video_init(stream); vdev = video_device_alloc(); vdev->v4l2_dev = &dev->vdev; vdev->fops = &uvc_fops; vdev->release = uvc_release; strlcpy(vdev->name, dev->name, sizeof vdev->name); stream->vdev = vdev; video_set_drvdata(vdev, stream); ret = video_register_device(vdev, VFL_TYPE_GRABBER, -1);}
2.common/drivers/media/video/uvc/uvc_v4l2.c
const struct v4l2_file_operations uvc_fops = {.owner= THIS_MODULE,.open= uvc_v4l2_open,.release= uvc_v4l2_release,.unlocked_ioctl= uvc_v4l2_ioctl,.read= uvc_v4l2_read,.mmap= uvc_v4l2_mmap,.poll= uvc_v4l2_poll,#ifndef CONFIG_MMU.get_unmapped_area = uvc_v4l2_get_unmapped_area,#endif};static long uvc_v4l2_ioctl(struct file *file, unsigned int cmd, unsigned long arg){ return video_usercopy(file, cmd, arg, uvc_v4l2_do_ioctl);}static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg){ return uvc_query_v4l2_ctrl(chain, arg);}
3.common/drivers/media/video/uvc/uvc_ctrl.c
int uvc_query_v4l2_ctrl(struct uvc_video_chain *chain,struct v4l2_queryctrl *v4l2_ctrl){ }
0 0
- uvc驱动记录
- UVC驱动测试程序
- Linux uvc驱动分析
- 测试UVC摄像头驱动
- uvc驱动源码 -- 浅析
- UVC驱动外接摄像头
- linux UVC摄像头驱动 简介
- Linux uvc摄像头驱动初探
- USB Camera摄像头 UVC 驱动
- usb免驱动之UVC
- 第一章 UVC驱动之虚拟视频驱动
- UVC
- UVC
- uvc
- linux设备驱动——UVC驱动程序
- UVC设备驱动之描述符分析
- UVC 摄像头驱动(一)硬件描述
- [RK3288][Android6.0] USB UVC 驱动小结
- Objective-C基本数据类型取值范围、字节
- ToolBar学习笔记
- 有5个学生每个学生有3门课程的成绩,从键盘输入学生数据(包括学号,姓名,3门成绩)。
- ExpandListView 的一种巧妙写法
- Android开源图表库MPAndroidChart
- uvc驱动记录
- VS2010中的代码段功能
- Linux系统密码策略设置详解
- 今天起持续半年记录DPI产品的研发过程,欢迎大家一起讨论(1)
- Log4j 配置
- UICollectionView使用以及与UITableView的区别
- 【转】解决SecureCRT超时自动断开的问题
- 第十四条建议:使类和成员变量的可访问性降到最低
- OpenSceneGraph实现的NeHe OpenGL教程 - 第三十五课