CTS fail项 testCameraToSurfaceTextureMetadata
问题:
11-22 10:37:50 I/RemoteAndroidTest: Running am instrument -w -r -e class android.hardware.cts.CameraGLTest#testCameraToSurfaceTextureMetadata com.android.cts.hardware/android.test.InstrumentationCtsTestRunner on tcl-tcl_p689l-bc59c8c9
11-22 10:46:08 I/bc59c8c9: android.hardware.cts.CameraGLTest#testCameraToSurfaceTextureMetadata FAIL
junit.framework.AssertionFailedError: Too many frame intervals out of frame rate bounds: 99, limit 4
at android.hardware.cts.CameraGLTest$5.run(CameraGLTest.java:622)
at android.hardware.cts.CameraGLTest.runForAllCameras(CameraGLTest.java:323)
at android.hardware.cts.CameraGLTest.testCameraToSurfaceTextureMetadata(CameraGLTest.java:500)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.access$000(InstrumentationTestCase.java:36)
at android.test.InstrumentationTestCase$2.run(InstrumentationTestCase.java:189)
at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:1719)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5095)
at java.lang.reflect.Method.invokeNative(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
分析:
这问题是由于摄像头的实际帧率没在设置的帧率范围内造成的。
处理方法:
1、首先抓取log看一下实际帧率在什么范围内,抓取方法如下:
adb root
adb shell setprop persist.debug.sf.showfps 1
adb logcat > logfps.txt
然后再搜索关键字PROFILE_PREVIEW_FRAMES_PER_SECOND。
2、然后再根据实际的帧率修改sensor_out_info和default_fps_ranges的范围。
static cam_fps_range_t default_fps_ranges[] = {
{ 15.0, 15.0, 15.0, 15.0},
{ 24.0, 24.0, 24.0, 24.0},
{ 30.0, 30.0, 30.0, 30.0},
};
————在mct_pipeline.c里修改,前面两个参数是preview的min和max,后面两个参数是video的min和max。
static struct sensor_lib_out_info_t sensor_out_info[] = {
#if SNAPSHOT_PARAMS
{/* 30 fps full size settings */
.x_output = 3264,
.y_output = 2448,
.line_length_pclk = 3688,
.frame_length_lines = 2530,
.vt_pixel_clk = 280000000,
.op_pixel_clk = 280000000,
.binning_factor = 1,
.max_fps = 30.0,
.min_fps = 1,
.mode = SENSOR_DEFAULT_MODE,
},
#endif
————在xxx_lib.c里修改,这里主要修改max_fps和min_fps的值。