9.0 camera模塊的改動較大,關於GMS測試方面的改動基本都在以下路徑配置:
1.Camera Size
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 需要改爲攝像頭支持的最大分辨率
2.Camera 閃光燈
閃光燈的配置其他文件的修改與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 修改如下
3.Camera 對焦
有對焦功能的,在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()
4.FOV修改
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測試項。
5.其他測試注意事項
攝像頭測試結果與環境息息相關
測試攝像頭過程中 確保環境亮度足夠
鏡頭前後無遮擋,儘量對着白色背景提高通過率
FAIL項出現時,請多複測幾遍。