9.0 camera模块的改动较大,关于GMS测试方面的改动基本都在以下路径配置:
config_static_metadata_scaler.h文件中 HAL_PIXEL_FORMAT_BLOB相当于preview-size目前遇到的只支持4:3比例,只需要配置4:3就好 HAL_PIXEL_FORMAT_YCbCr_420_888相当于picture-size Video Size HAL_PIXEL_FORMAT_YCbCr_420_888<=HAL_PIXEL_FORMAT_BLOB MTK_SCALER_AVAILABLE_JPEG_SIZES设置为支持的最大preview-size MTK_JPEG_MAX_SIZE设置为MTK_SCALER_AVAILABLE_JPEG_SIZES*2*0.6 MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS
MTK_SCALER_AVAILABLE_MIN_FRAME_DURATIONS
MTK_SCALER_AVAILABLE_STALL_DURATIONS 以上中配置的分辨率要一样
在200万摄像头中因为picture-size Video Size最大是1920*1080 preview-size最大是1600*1200。 需要修改device\mediatek\mt8163\media_profiles.xml文件把1080P的支持去掉。picture-size Video Size最大设置为1280*720 其他关于尺寸的FAIL查看报错LOG进行尺寸的添加或者删除 注意:9.0摄像头尺寸不能做差值。 device\mediatek\mt8163\media_profiles.xml此处修改只有200万摄像头需要
MTK_SENSOR_INFO_ACTIVE_ARRAY_REGION
MTK_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
MTK_SENSOR_INFO_PIXEL_ARRAY_SIZE 需要改为摄像头支持的最大分辨率
闪光灯的配置其他文件的修改与8.1相同 metadata文件中关于闪光灯的设置平台集成到alps\vendor\mediatek\proprietary\custom\mt6739\hal\imgsensor_metadata\common\中 MTK_FLASH_INFO_AVAILABLE设置为 MTK_FLASH_INFO_AVAILABLE_TRUE 有闪光灯 MTK_FLASH_INFO_AVAILABLE_FALSE 无闪光灯 注意前后摄区分 在没有集成的平台中metadata文件中带有flashlight的文件中设置与上面相同 config_static_metadata.tuning_3a.gc5025mipiraw.h中 CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_AVAILABLE_MODES) CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_MODE_OFF, MUINT8) CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_MODE_ON, MUINT8) CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_MODE_ON_AUTO_FLASH, MUINT8) CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_MODE_ON_ALWAYS_FLASH, MUINT8) CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE, MUINT8) CONFIG_METADATA_END() 后面三项根据闪光灯的有无增加或者注释。
config_static_metadata.tuning_3a.gc5025mipiraw.h MTK_CONTROL_SCENE_MODE_OVERRIDES中
没有闪光灯关于AE设置全部设置为MTK_CONTROL_AE_MODE_OFF
有闪光灯的第一个设置为MTK_CONTROL_AE_MODE_OFF
其他全部设置为MTK_CONTROL_AE_MODE_ON
在8765中在闪光灯都配置正确情况下 前摄的闪光灯测试项还是FAIL CtsCameraTestCases android.hardware.camera2.cts.CaptureRequestTest#testFlashControl 修改如下
有对焦功能的,在config_static_metadata.tuning_3a.gc5025mipiraw.h中 配置 CONFIG_METADATA_BEGIN(MTK_CONTROL_AF_AVAILABLE_MODES) CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_OFF, MUINT8) CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_AUTO, MUINT8) CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_MACRO, MUINT8) CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_CONTINUOUS_VIDEO, MUINT8) CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_CONTINUOUS_PICTURE, MUINT8)
CONFIG_METADATA_END() MTK_CONTROL_SCENE_MODE_OVERRIDES中全部配置为
CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_AUTO, MUINT8)
在config_static_metadata.lens.gc5025mipiraw.h中配置 CONFIG_METADATA_BEGIN(MTK_LENS_INFO_HYPERFOCAL_DISTANCE)
CONFIG_ENTRY_VALUE((1.0/5.0), MFLOAT)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_LENS_INFO_MINIMUM_FOCUS_DISTANCE)
CONFIG_ENTRY_VALUE((1.0/0.1), MFLOAT)
CONFIG_METADATA_END()
无对焦功能config_static_metadata.tuning_3a.gc5025mipiraw.h中只保留 CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_OFF, MUINT8)
MTK_CONTROL_SCENE_MODE_OVERRIDES中全部配置为
CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_OFF, MUINT8)
在config_static_metadata.lens.gc5025mipiraw.h中配置 CONFIG_METADATA_BEGIN(MTK_LENS_INFO_HYPERFOCAL_DISTANCE)
CONFIG_ENTRY_VALUE(0, MFLOAT)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_LENS_INFO_MINIMUM_FOCUS_DISTANCE)
CONFIG_ENTRY_VALUE(0, MFLOAT)
CONFIG_METADATA_END()
9.0是HAL3,请参考下面的方式修改Metadata。
a.向供应商确认sensor信息,需要确认如下图
b.修改 config_static_metadata.lens.*****.h
CONFIG_METADATA_BEGIN(MTK_LENS_INFO_AVAILABLE_FOCAL_LENGTHS)
CONFIG_ENTRY_VALUE(4.52f, MFLOAT)
CONFIG_METADATA_END()
c.修改config_static_metadata.sensor.*****.h
CONFIG_METADATA_BEGIN(MTK_SENSOR_INFO_PHYSICAL_SIZE) // mm
CONFIG_ENTRY_VALUE(5.98f, MFLOAT)//可调整
CONFIG_ENTRY_VALUE(4.49f, MFLOAT)
CONFIG_METADATA_END()
镜头宽高:Resolution*Pixel Size
宽(d):5344*1.12=5985 --> 约5.98mm
高(f):4016*1.12=4497 --> 约4.49mm
可能会有误差,可以调整上面标注可调整的数字大小PASS测试项。
摄像头测试结果与环境息息相关
测试摄像头过程中 确保环境亮度足够
镜头前后无遮挡,尽量对着白色背景提高通过率
FAIL项出现时,请多复测几遍。