四.思路:
查看log-》找到测试源码code-》弄清测试原理-》分析rootcause –》复测
五.CtsCameraTestCases模块
5.1 android.hardware.camera2.cts.BurstCaptureRawTest#testTimestamp[1]
log:
junit.framework.AssertionFailedError: Available sizes for RAW format must include either the pre-corrected active array size, or the full pixel array size : No elements from [4640x3488] in [4640x3480, 4640x3480]
log源码:
cts/tests/camera/utils/src/android/hardware/camera2/cts/helpers/AssertHelpers.java
原因:setting中配置的activeDimension不是4640*3488
解决:
+++ b/vendor/qcom/proprietary/chi-cdk/oem/qcom/sensor/s5k3p9/s5k3p9_sensor.xml
@@ -13882,8 +13882,8 @@
<dimension>
<xStart>0</xStart>
<yStart>0</yStart>
- <width>4208</width>
- <height>3120</height>
+ <width>4640</width>
+ <height>3488</height>
</dimension>
</opticalBlackRegionInfo>
<!--Information about the pixel array
@@ -13894,7 +13894,7 @@
<xStart>0</xStart>
<yStart>0</yStart>
<width>4640</width>
- <height>3480</height>
+ <height>3488</height>
</activeDimension>
<!--Dummy pixels surrounding the active pixel array -->
<dummyInfo>
复测:Pass
5.2 android.hardware.camera2.cts.BurstCaptureRawTest#testTimestamp[1]
Log:
java.lang.Throwable(Test failed for camera 0: The standard deviation of frame interval is larger then threshold: stddev = 16134081.93, threshold = 5000000.00.
测试case:
cts/tests/camera/src/android/hardware/camera2/cts/BurstCaptureRawTest.java
解决:关闭无用Log、增加DefaultMaxIFEPipelineDelay=4
--- a/vendor/qcom/proprietary/camx/src/core/camxpipeline.cpp
+++ b/vendor/qcom/proprietary/camx/src/core/camxpipeline.cpp
@@ -60,7 +60,9 @@ static const struct NodeVendorTag PipelineVendorTags[] =
static const UINT SingleMetadataResult = 1;
static const UINT DefaultFPS = 30;
-static const UINT DefaultMaxIFEPipelineDelay = 3;
+//fix cts for android.hardware.camera2.cts.BurstCaptureRawTest#testTimestamp
+//static const UINT DefaultMaxIFEPipelineDelay = 3;
+static const UINT DefaultMaxIFEPipelineDelay = 4;
static const UINT DefaultMaxBPSPipelineDelay = DefaultMaxIFEPipelineDelay + 2;
static const UINT DefaultNodesRequestDoneTimeout = 300; ///< Default nodes request done time out in ms
static const UINT DefaultStreamOnTimeout = (LivePendingRequestTimeoutDefault - 100);
复测:Pass
5.3 android.hardware.camera2.cts.BurstCaptureTest#testJpegBurst[1]
log:
junit.framework.AssertionFailedError: Cam 1: Target FPS range of (x, 24) where x <= 15 must be supported
源码:
cts/tests/camera/utils/src/android/hardware/camera2/cts/CameraTestUtils.java
分析:adb shell dumpsys media.camera > camera.info
Front:
android.control.aeAvailableTargetFpsRanges (10014): int32[8]
[15 15 24 24 ]
[13 30 30 30 ]
-》(15,15); (24,24), (13,30),(30,30)无(15,24)这一组
解决:增加一组(15,24)
--- a/vendor/qcom/proprietary/camx/src/hwl/titan17x/camxtitan17xcontext.cpp
+++ b/vendor/qcom/proprietary/camx/src/hwl/titan17x/camxtitan17xcontext.cpp
@@ -479,6 +479,7 @@ static const RangeINT32 SupportedDefaultTargetFpsRanges[MaxTagValues] =
{ 7, 30 },
{ 10, 10 },
{ 15, 15 },
+ { 15, 24 },
{ 24, 24 },
{ 30, 30 }
};
验证:adb shell dumpsys media.camera //新增15,24
android.control.aeAvailableTargetFpsRanges (10014): int32[10]
[15 15 15 24 ]
[24 24 13 30 ]
[30 30 ]
复测:Pass
5.4 android.hardware.camera2.cts.BurstCaptureTest#testJpegBurst[1]
Log:
junit.framework.AssertionFailedError: Cam 1: Target FPS range of (x, 24) where x <= 15 must be supported
分析:adb shell dumpsys media.camera
android.control.aeAvailableTargetFpsRanges (10014): int32[6]
[24 24 16 30 ]
[30 30 ]
实测:16-30 最小fps>15
-》确认是min fps=16 > 15导致
-》和FAE确认是修改tuning参数引起,
解决:FAE修改min fps –》修改AE曝光表
--- a/vendor/qcom/proprietary/chi-cdk/oem/qcom/tuning/e7165uo_fae_s5k4h7/Scenario.Default/XML/STATS/Arbitration.xml
+++ b/vendor/qcom/proprietary/chi-cdk/oem/qcom/tuning/e7165uo_fae_s5k4h7/Scenario.Default/XML/STATS/Arbitration.xml
@@ -31,17 +31,17 @@
<gain type="float" range="[1,512]">8</gain>
<expTime type="ulong" range="[1,60000000000]">41666667</expTime>
<incrementPriority range="[0,2]">AECExpIncExpTime</incrementPriority>
- <expIndex type="float" range="[-100,1000]">342.9969</expIndex>
+ <expIndex type="float" range="[-100,1000]">342.996918</expIndex>
</expKneeEntries>
<expKneeEntries>
<gain type="float" range="[1,512]">16</gain>
<expTime type="ulong" range="[1,60000000000]">50000000</expTime>
<incrementPriority range="[0,2]">AECExpIncExpTime</incrementPriority>
- <expIndex type="float" range="[-100,1000]">372.6148</expIndex>
+ <expIndex type="float" range="[-100,1000]">372.614777</expIndex>
</expKneeEntries>
<expKneeEntries>
<gain type="float" range="[1,512]">32</gain>
- <expTime type="ulong" range="[1,60000000000]">66666660</expTime>
+ <expTime type="ulong" range="[1,60000000000]">66666667</expTime>
<incrementPriority range="[0,2]">AECExpIncGain</incrementPriority>
<expIndex type="float" range="[-100,1000]">405.7971</expIndex>
</expKneeEntries>
复测:Pass