(code base version: 4.0.4)
一、使用Emulated Camera HAL验证总体流程
Emulated Camera HAL是android原生代码中提供的一个模拟摄像头的实现,它没有和具体的kernel driver进行通信,而是通过软件的方式生成、获取和传送帧数据来模拟一个摄像头,可以用于在没有实际摄像头的情况下调试camera程序,同时它也可以作为实际的Camera HAL层设计实现的一个参考。
代码所在路径:
development\tools\emulator\system\camera
编译最终生成的库文件:
out/target/product/xxx/system/lib/hw/camera.goldfish.so
我们可以使用camera.goldfish.so来替换实际需要加载的Camera HAL的库文件来验证HAL层之上的流程是否有问题。
先来看下系统如何加载Camera HAL层的库文件(.so):
void CameraService::onFirstRef()
if (hw_get_module(CAMERA_HARDWARE_MODULE_ID,
(const hw_module_t **)&mModule) < 0) {
LOGE("Could not load camera HAL module: %s.", CAMERA_HARDWARE_MODULE_ID);
mNumberOfCameras = 0;
}
------------>