[RK3288][Android6.0] 调试笔记 --- 同时支持两颗USB UVC Camera

来源:互联网 发布:淘宝国产高达禁卖 编辑:程序博客网 时间:2024/05/17 21:54
Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92


现象:
平台是支持同时使用两颗USB Camera,但事实上打开的时候只有一个能正常工作.

原因:

在HAL层会根据USB的card name来设置当前是前置还是后置Camera:

rk3288/hardware/rockchip/camera/CameraHal/CameraHal_Module.cpp

if (strstr((char*)&capability.card[0], "front") != NULL) {
    camInfoTmp[cam_cnt&0x01].facing_info.facing = CAMERA_FACING_FRONT;
} else {
    camInfoTmp[cam_cnt&0x01].facing_info.facing = CAMERA_FACING_BACK;
}  

事实上, UVC驱动返回给HAL层的card值都是USB 2.0 Camera, 这就导致了上层APK看到的
结果两颗Camera都是后置摄像头而只能打开一颗了.

解决办法:
1. 修改驱动返回上来的card值. 比如根据UVC Camera的pid/vid不同来处理.
2. 根据不同分辨率来设置前后置. 前后摄像头分辨率一般会有差异.
2 0
原创粉丝点击