5.5 android.hardware.cts.CameraGLTest#testCameraToSurfaceTextureMetadata
Log:
java.lang.AssertionError: Too many frame intervals out of frame rate bounds: 14, limit 4
源码:
cts/tests/camera/src/android/hardware/cts/CameraGLTest.java
-》测试原理:对平台支持的Preview Size列表 + FpsRange进行测试,查看是否满足条件
前后摄每个Preview size需要测试100帧,
camera id=0, Threshold=100/25=4 //后摄超过4帧不满足条件则fail;
camera id=1, Threshold=100/10=10 //前摄超过10帧不满足条件则fail;
分析:
有14帧时间戳不符合要求,可能和系统流畅性有关。
使用user版本、关闭camera所有log -》复测fail
强制设置fps挡位只有(15,30) 这一档 -》复测fail
同步提Case给高通:
Width>1920,height>1080时固定fps=24 -》复测Pass;
解决:
--- a/vendor/qcom/proprietary/camx/src/core/camxhwenvironment.cpp
+++ b/vendor/qcom/proprietary/camx/src/core/camxhwenvironment.cpp
@@ -1617,10 +1617,15 @@ VOID HwEnvironment::InitializeScalerStaticCaps()
supportedFPS = ClosestMaxFps(supportedFPS, sensorIndex);
- CAMX_LOG_VERBOSE(CamxLogGroupHWL, "supportedFPS = %d BPS = %d,",
- "IPE/OPE = %d for width x height = %d x %d",
+ CAMX_LOG_VERBOSE(CamxLogGroupHWL, "debug111 supportedFPS = %d BPS = %d,IPE/OPE = %d for width x height = %d x %d\n",
supportedFPS, maxBPSProcessingFPS, maxPostProcProcessingFPS, width, height);
+ if((width > 1920 || height > 1080) && (supportedFPS > 24)){
+ supportedFPS = 24;
+ CAMX_LOG_VERBOSE(CamxLogGroupHWL, "debug1112 %s %d supportedFPS=%d\n",__func__,__LINE__,supportedFPS);
+ }
+
+
SetAvailableMinFrameDuration(&(m_caps[sensorIndex].minFrameDurations[numMinFrameDurations]),
pPlatformCaps->scalerFormats[format],
width,
复测:Pass
5.6 android.hardware.camera2.cts.StillCaptureTest#testFullRawCapture[1]
android.hardware.camera2.cts.StillCaptureTest#testFullRawZSLCapture[1]
Log:
java.lang.Exception: There were 4 errors:
java.lang.Throwable(Test failed for camera 1: NoiseProfile coefficients Pair{0.0 0.0} must have: S > 0, O >= 0)
java.lang.Throwable(Test failed for camera 1: NoiseProfile coefficients Pair{0.0 0.0} must have: S > 0, O >= 0)
java.lang.Throwable(Test failed for camera 1: NoiseProfile coefficients Pair{0.0 0.0} must have: S > 0, O >= 0)
java.lang.Throwable(Test failed for camera 1: NoiseProfile coefficients Pair{0.0 0.0} must have: S > 0, O >= 0)
源码:
cts/tests/camera/src/android/hardware/camera2/cts/StillCaptureTest.java
-》上面4个NoiseProfile属性需要>0
分析:
怀疑时noiseCofficent配置0导致
-》检测驱动vendor/qcom/proprietary/chi-cdk/oem/qcom/sensor/s5k4h7/s5k4h7_sensor.xml
无属性:noiseCofficent 即默认为0
-》对比后摄驱动有这4个属性,copy至前摄
解决:
--- a/vendor/qcom/proprietary/chi-cdk/oem/qcom/sensor/s5k4h7/s5k4h7_sensor.xml
+++ b/vendor/qcom/proprietary/chi-cdk/oem/qcom/sensor/s5k4h7/s5k4h7_sensor.xml
@@ -1140,4 +1140,10 @@
<sensingMethod>ONE_CHIP_COLOR_AREA</sensingMethod>
<ADCReadoutTime>0</ADCReadoutTime>
</sensorProperty>
+ <noiseCoefficent>
+ <gradient_S>1.504952e-06</gradient_S>
+ <offset_S>1.444901e-05</offset_S>
+ <gradient_O>6.742849e-12</gradient_O>
+ <offset_O>6.392815e-07</offset_O>
+ </noiseCoefficent>
</sensorDriverData>
5.7 android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceStillTemplate[1]
android.hardware.camera2.cts.StaticMetadataTest#testCapabilities[1]
android.hardware.camera2.cts.StaticMetadataTest#testHwSupportedLevel[1]
log:
java.lang.Throwable
(Test failed for camera 0: Test failed for camera 0: Key android.statistics.lensShadingMapMode value 1 doesn't match the expected value 0 Expected: <0> but: was <1>)
java.lang.Throwable
(Test failed for camera 1: Test failed for camera 1: Key android.statistics.lensShadingMapMode value 1 doesn't match the expected value 0 Expected: <0> but: was <1>)
java.lang.Throwable
(Test failed for camera 0: Camera 0 doesn't list capability REQUEST_AVAILABLE_CAPABILITIES_RAW but contain all required keys and RAW format output)
java.lang.Throwable
(Test failed for camera 1: Camera 1 doesn't list capability REQUEST_AVAILABLE_CAPABILITIES_RAW but contain all required keys and RAW format output)
->Log显示camera0,camera1没有REQUEST_AVAILABLE_CAPABILITIES_RAW,但是支持raw图
源码:
cts/tests/camera/utils/src/android/hardware/camera2/cts/helpers/CameraErrorCollector.java
cts/tests/camera/src/android/hardware/camera2/cts/CameraDeviceTest.java
通过android.statistics.lensShadingMapMode查找定位
request.availableCapabilities:REQUEST_AVAIABLE_CAPABILITIES_RAW 不支持导致;
分析:adb shell dumpsys media.camera
android.request.availableCapabilities (c000c): byte[7]
[BACKWARD_COMPATIBLE YUV_REPROCESSING PRIVATE_REPROCESSING READ_SENSOR_SETTINGS MANUAL_SENSOR BURST_CAPTURE MANUAL_POST_PROCESSING ]
//使用上个pass版本
android.request.availableCapabilities (c000c): byte[8]
[BACKWARD_COMPATIBLE RAW YUV_REPROCESSING PRIVATE_REPROCESSING READ_SENSOR_SETTINGS MANUAL_SENSOR BURST_CAPTURE MANUAL_POST_PROCESSING ]
-》2个版本差异是fail版本中不支持RAW功能
-》查看提交确认和camera raw提交有关的:
adb shell "echo enableRAWProcessing=FALSE >> /vendor/etc/camera/camxoverridesettings.txt"
-》设置TRUE手动复测Pass
解决:
--- a/vendor/qcom/proprietary/camx/src/settings/common/camxsettings.xml
+++ b/vendor/qcom/proprietary/camx/src/settings/common/camxsettings.xml
@@ -433,7 +433,7 @@
<VariableName>enableRAWProcessing</VariableName>
<VariableType>BOOL</VariableType>
<SetpropKey>persist.vendor.camera.enableRAWProcessing</SetpropKey>
- <DefaultValue>FALSE</DefaultValue>
+ <DefaultValue>TRUE</DefaultValue>
<Dynamic>FALSE</Dynamic>
<Public>TRUE</Public>
</setting>
diff --git a/vendor/qcom/proprietary/camx/src/settings/g_camxsettings.xml b/vendor/qcom/proprietary/camx/src/settings/g_camxsettings.xml
index e39c3a12ff..642b8425f2 100755
--- a/vendor/qcom/proprietary/camx/src/settings/g_camxsettings.xml
+++ b/vendor/qcom/proprietary/camx/src/settings/g_camxsettings.xml
@@ -395,7 +395,7 @@
<VariableName>enableRAWProcessing</VariableName>
<VariableType>BOOL</VariableType>
<SetpropKey>persist.vendor.camera.enableRAWProcessing</SetpropKey>
- <DefaultValue>FALSE</DefaultValue>
+ <DefaultValue>TRUE</DefaultValue>
<Dynamic>FALSE</Dynamic>
<Public>TRUE</Public>
</setting>