android.hardware.cts.CameraTest#testJpegExif

[DESCRIPTION]
CTS测试时,android.hardware.cts.CameraTest 中的testJpegExif 测项fail ,测试报告一般会报出如下类似的错误:

junit.framework.AssertionFailedError: expected:<3.5> but was:<3.3> at android.hardware.cts.CameraTest.testJpegExifByCamera(CameraTest.java:843)

[ANALYSE]

该项cts测试主要是测试拍照时,拍出来的jpeg图片中的focal length的值(最终读取sensor 的相关设定)是否与parameters中的值一致,若不一致则fail。

由于目前平台上面parameters中的focal length只有一个默认的初始赋值,而没有真正从sensor driver去query,所以若要修改sensor设定的focal length的值,也要同步修改parameters中的focal length值,并且前后摄像头的这个值也需要保持一致。

[SOLUTION]

需要保证前后sensor设定的focal length值与ParamsManager.update.cpp文件中的KEY_FOCAL_LENGTH的值一致即可。

注意:raw sensor对应的设定在Camera_tuning_para_【sensorName】.cpp文件

yuv sensor统一在aaa_hal_yuv.cpp文件。

 

具体代码如下:

  1. Sensor设定部分:

(1)  Raw sensor:Camera_tuning_para_【sensorName】.cpp文件

const NVRAM_CAMERA_3A_STRUCT CAMERA_3A_NVRAM_DEFAULT_VALUE =

{

NVRAM_CAMERA_3A_FILE_VERSION, // u4Version

SENSOR_ID, // SensorId

// AE NVRAM

{

// rDevicesInfo

{

……

28,      // u4LensFno, Fno = 2.8

350     // u4FocusLength_100x ,这个值便是focal length的值

},

 

(2)  Yuv sensor:aaa_hal_yuv.cpp文件

MBOOL Hal3AYuv::set3AEXIFInfo(IBaseCamExif *pIBaseCamExif) const

{

……

rEXIFInfo.u4FocalLength = 350; //这个便是focal length的值

……

return MTRUE;

}

 

  1. Parameter部分:

ParamsManager.update.cpp文件

Bool ParamsManager::updateDefaultParams3()

{

……

//  3A related

mParameters.set(CameraParameters::KEY_FOCAL_LENGTH, "3.5"); //  3.5 =350/100

……

}

 

补充说明:

如果当前是mt6763或者mt6762等O版本项目,以上修改依然无法pass的话,请检查imgsensor_metadata目录下对应的sensor文件夹下,是否有文件中包含如下字样,确保该值设置为3.50f:

MTK_LENS_INFO_AVAILABLE_FOCAL_LENGTHS

 

作者: RESSRC

个人资源站

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据