1、相机启动时间增加100ms
从N版本升级到O版本后,Camera Startup time 增加大约100ms。
N 版本log:
12304 01-06 13:39:11.753147 6411 6435 E TraceLog: [CamKPI] [UPTIME=337764] [CameraOpener][open-close-camera-thread] : openCamera() : CameraOpener.open() : E 12351 01-06 13:39:11.790232 643 1322 I CameraFlashlight: Opening camera 0 12451 01-06 13:39:11.836197 6411 6435 E TraceLog: [CamKPI] [UPTIME=337847] [CameraOpener][open-close-camera-thread] : openCamera() : CameraOpener.open() : X: android.hardware.Camera@b2e6037
时间差:11.836197 - 11.753147 = 0.08305
O 版本log:
11168 02-06 01:02:11.595895 5950 6037 E TraceLog: [CamKPI] [UPTIME=176726] [CameraOpener][open-close-camera-thread] : openCamera() : CameraOpener.open() : E 11195 02-06 01:02:11.615402 603 7118 I CameraHardwareInterface: Opening camera 0 11337 02-06 01:02:11.664174 625 990 E MtkCam/BaseHeap: Unvalid Image Size(0x1) (onCreate){#276:vendor/mediatek/proprietary/hardware/mtkcam/utils/imgbuf/BaseImageBufferHeap.cpp} 11443 02-06 01:02:11.755864 625 990 E isp_mgr_bnr: [BPCI_tbl] ImageBufferHeap create fail (setBPCIBuf){#459:vendor/mediatek/proprietary/hardware/mtkcam/aaa/source/mt6757/isp_mgr/isp_mgr_bnr.cpp} 11467 02-06 01:02:11.779142 5950 6037 E TraceLog: [CamKPI] [UPTIME=176909] [CameraOpener][open-close-camera-thread] : openCamera() : CameraOpener.open() : X: android.hardware.Camera@5c2725a
时间差:11.779142 - 11.595895 = 0.183247
0.183247 - 0.08305 = 0.100197,为O版本增加的时间。
2 解决方法
1).确认 isp_tuning/paramctrl/paramctrl_attributes.cpp已经包含
CAM_LOGE("No BPCI Table");
2)修改camera_tuning_para_***mipiraw.cpp(如camera_tuning_para_imx300mipiraw.cpp)
namespace NSFeature {
template <>
UINT32
SensorInfoSingleton_T::
impGetDefaultData(CAMERA_DATA_TYPE_ENUM const CameraDataType, VOID*const pDataBuf, UINT32 const size) const
{
UINT32 dataSize[CAMERA_DATA_TYPE_NUM] = {sizeof(NVRAM_CAMERA_ISP_PARAM_STRUCT),
sizeof(NVRAM_CAMERA_3A_STRUCT),
sizeof(NVRAM_CAMERA_SHADING_STRUCT),
sizeof(NVRAM_LENS_PARA_STRUCT),
sizeof(AE_PLINETABLE_T),
0,
sizeof(CAMERA_TSF_TBL_STRUCT),
0,
sizeof(NVRAM_CAMERA_FEATURE_STRUCT)
};
将
if (CameraDataType > CAMERA_NVRAM_DATA_FEATURE || NULL == pDataBuf || (size < dataSize[CameraDataType]))
template <>
UINT32
SensorInfoSingleton_T::
impGetDefaultData(CAMERA_DATA_TYPE_ENUM const CameraDataType, VOID*const pDataBuf, UINT32 const size) const
{
UINT32 dataSize[CAMERA_DATA_TYPE_NUM] = {sizeof(NVRAM_CAMERA_ISP_PARAM_STRUCT),
sizeof(NVRAM_CAMERA_3A_STRUCT),
sizeof(NVRAM_CAMERA_SHADING_STRUCT),
sizeof(NVRAM_LENS_PARA_STRUCT),
sizeof(AE_PLINETABLE_T),
0,
sizeof(CAMERA_TSF_TBL_STRUCT),
0,
sizeof(NVRAM_CAMERA_FEATURE_STRUCT)
};
将
if (CameraDataType > CAMERA_NVRAM_DATA_FEATURE || NULL == pDataBuf || (size < dataSize[CameraDataType]))
改为
if (CameraDataType > CAMERA_NVRAM_DATA_FEATURE || NULL == pDataBuf || (size != dataSize[CameraDataType]))
{
return 1;
}
return 1;
}