Android 系统中camera中 自动对焦的解决方案

关于camera中 自动对焦的解决方案 和 框架流程,在此总结一下。

freescale平台的Android Camera很多功能都没有实现;驱动里面也是;HAL层也是;因为工作需要;添加了自动对焦和白平衡功能;测试OK;在这里把主要修改的地方写出来;希望以后遇到的朋友可以少走弯路;

首先是Android HAL层:

android/hardware/imx/mx6/libcamera/CameraModule.cpp   =>这个文件和再往上层的代码都不用修改;作为你看Camera代码的开始;
android/hardware/imx/mx6/libcamera/CameraHal.cpp   =>主要修改这个文件;很多功能都是没有实现;
android/hardware/imx/mx6/libcamera/CaptureDeviceInterface.cpp  =>是调用V4L2层的;所有Camera V4L2设备都继承它;要改;
android/hardware/imx/mx6/libcamera/V4l2CapDeviceBase.cpp       =>这个文件是你要添加功能V4L2具体实现;要改;
android/hardware/imx/mx6/libcamera/V4l2CsiDevice.cpp =>这个文件不需要修改;

Android kernel driver层:

kernel/drivers/media/video/mxc/capture/mxc_v4l2_capture.c     =>需要修改;因为V4L2协议传下来的命令首先到了这个文件;等于是Camera master设备;
kernel/drivers/media/video/mxc/capture/ov5640.c =>这个文件就是具体的驱动代码;实现你接收的V4L2命令然后去控制Camera做什么;

Android camera HAL四个callback

其中包括:
camera_notify_callback

用来传递一些消息: 如快门消息,自动对焦完成消息,出错消息,拍照编码结束等

参数@msg_type可以是:

CAMERA_MSG_ERROR
CAMERA_MSG_SHUTTER
CAMERA_MSG_FOCUS
CAMERA_MSG_ZOOM
CAMERA_MSG_FOCUS_MOVE

Android Camera框架


Camera从驱动到应用


你可能感兴趣的:(android,system)