Linux版本用的是TI的2.6.32,Android也是TI的,版本2.2.我们知道无论是Linux还是Android摄像头都是通过V4L2来工作的。在TI的Linux源码中具体为
drivers/media/video,这里有很多摄像头的驱动程序,比如omap34xxcam.c,ov3640.c。ov3640.c我理解,就是摄像头的驱动。但是omap34xxcam.c是干嘛用的?它与
V4L2层是如何联系的?因为ov3640.c里有ioctl的函数描述,omap34xxcam.c也有ioctl的函数描述。这不冲突吗?
还有Android源码中在camerahardware.cpp,v4l2camera.cpp中也有ioctl的函数描述,我的疑问就是V4L2既然在linux驱动层理有了为什么在Android层面还有呢?Android
层面里的东西是如何对驱动层施加影响的呢?
具体例子在camerahardware.cpp中有pixwidth和pixhight的宏定义,修改他们的值可以直接导致ov3640.c中是选择XGA配置还是QXGA配置。