Android Camera 学习记录-驱动篇

本文详细记录了Android Camera驱动的学习,主要涉及基于Linux的Video for Linux (V4L2) 视频驱动框架。内容涵盖了驱动头文件的位置、V4L2框架的相机控制标志和能力,包括曝光、聚焦、白平衡等,并提到了数据结构和操作定义。
摘要由CSDN通过智能技术生成

Android Camera驱动部分学习记录

摄像头驱动程序:通常基于Linux的Video for Linux 视频驱动框架.
有关该框架的详细描述请点击查看 Video For Linux 的官方描述.

V4L2

目前的驱动头文件的存放目录是Android源码中:

  1. /kernel/include/uapi/linux/v4l2-common.h
  2. /kernel/include/uapi/linux/v4l2-controls.h
  3. /kernel/include/uapi/linux/videodev2.h
  4. /kernel/include/media/v4l2-dev.h

下面的章节会对这四个文件进行详细的描述:

  • v4l2-common.h.这个文件里面定义了很多常量.
标志 定义
V4L2_SEL_TGT_CROP 0x0000 真实的取样区域(左上角及源矩形区域的宽高)
V4L2_SEL_TGT_CROP_DEFAULT 0x0001 默认裁剪区域(左上角的坐标(0,0),区域的宽和高)
V4L2_SEL_TGT_CROP_BOUNDS 0x0002 裁剪区域(包括左上角的坐标,建议(0,0),区域的宽和高)
V4L2_SEL_TGT_COMPOSE 0x0100 控制缓冲部分插入硬件的哪一个图片中,矩形区域使用的坐标系统与边界矩形区域相同。组合矩形区域必须完全在辩解矩形区域内。驱动必须使组合矩形区域适应边界限制。另外,驱动还要根据硬件限制做出其他调整。应用程序同样可以通过constraint_flags进行舍入控制。
V4L2_SEL_TGT_COMPOSE_DEFAULT 0x0101 默认的组合矩形区域,通常它的值与边界区域相同
V4L2_SEL_TGT_COMPOSE_BOUNDS 0x0102 给出了组合坐标的限制。所有坐标都是以像素为单位的。矩形区域的左上角必须定位到位置(0,0),宽高与VIDIOC_S_FMT设置的图片尺寸相同。
V4L2_SEL_TGT_COMPOSE_PADDED 0x0103 给出硬件会修改哪部分缓存,它包含了V4L2_SEL_TGT_COMPOSE的所有像素, 硬件会修改填充的数据,硬件不能对此矩形区域外的所有的像素进行任何改变。那些在活跃区域外却在填充区域内的像素内容是未定义的(不确定的)。应用程序可以检查填充和活跃矩形区域中哪里有垃圾像素,必要时可以删除他们。
V4L2_SEL_TGT_CROP_ACTIVE V4L2_SET_TGT_CROP 待描述 已经过时
V4L2_SEL_TGT_COMPOSE_ACTIVE V4L2_SEL_TGT_COMPOSE 待描述 已经过时
V4L2_SUBDEV_SEL_TGT_CROP_ACTUAL V4L2_SEL_TGT_CROP 待描述 已经过时
V4L2_SUBDEV_SEL_TGT_COMPOSE_ACTUAL V4L2_SEL_TGT_COMPOSE 待描述 已经过时
V4L2_SUBDEV_SEL_TGT_CROP_BOUNDS V4L2_SEL_TGT_CROP_BOUNDS 待描述 已经过时
V4L2_SUBDEV_SEL_TGT_COMPOSE_BOUNDS V4L2_SEL_TGT_COMPOSE_BOUNDS<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值