[RK3288][Android6.0] 除錯筆記 --- 同時支援多顆Camera開啟的問題
阿新 • • 發佈:2019-02-17
Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92
有遇到若干朋友在做Camera模組的時候說同一時間只能開啟一顆Camera, 這是因為RK在HAL層
把Camera最大的support number限制成了1.
hardware/rockchip/camera/CameraHal/CameraHal_Module.h
#define CAMERAS_SUPPORT_MAX 2
#define CAMERAS_SUPPORTED_SIMUL_MAX 1
呼叫處:
int camera_device_open(const hw_module_t* module, const char* name,
hw_device_t** device)
{
......
if(gCamerasOpen >= CAMERAS_SUPPORTED_SIMUL_MAX) {
LOGE("maximum number(%d) of cameras already open",gCamerasOpen);
rv = -EUSERS;
goto fail;
}
......
}
也就是說同一時刻只允許你開啟一顆Camera.
因此只要將CAMERAS_SUPPORTED_SIMUL_MAX改成2就可以了.
那麼3顆呢?
理論上是可以的,但由於rk3288平臺只有一顆ISP, 所以raw sensor只能有一顆,然後可以再加兩顆
YUV的Camera, 比如兩顆USB Camera.
注意 CAMERAS_SUPPORT_MAX 要一起修改.
OS: Android 6.0
Kernel: 3.10.92
有遇到若干朋友在做Camera模組的時候說同一時間只能開啟一顆Camera, 這是因為RK在HAL層
把Camera最大的support number限制成了1.
hardware/rockchip/camera/CameraHal/CameraHal_Module.h
#define CAMERAS_SUPPORT_MAX 2
#define CAMERAS_SUPPORTED_SIMUL_MAX 1
呼叫處:
int camera_device_open(const hw_module_t* module, const char* name,
hw_device_t** device)
{
......
if(gCamerasOpen >= CAMERAS_SUPPORTED_SIMUL_MAX) {
LOGE("maximum number(%d) of cameras already open",gCamerasOpen);
rv = -EUSERS;
goto fail;
}
......
}
也就是說同一時刻只允許你開啟一顆Camera.
因此只要將CAMERAS_SUPPORTED_SIMUL_MAX改成2就可以了.
那麼3顆呢?
理論上是可以的,但由於rk3288平臺只有一顆ISP, 所以raw sensor只能有一顆,然後可以再加兩顆
YUV的Camera, 比如兩顆USB Camera.
注意 CAMERAS_SUPPORT_MAX 要一起修改.