Android Camera驱动部分学习记录
摄像头驱动程序:通常基于Linux的Video for Linux 视频驱动框架.
有关该框架的详细描述请点击查看 Video For Linux 的官方描述.
目前的驱动头文件的存放目录是Android源码中:
/kernel/include/uapi/linux/v4l2-common.h
/kernel/include/uapi/linux/v4l2-controls.h
/kernel/include/uapi/linux/videodev2.h
/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< |