CTS测试中“RAW_SENSOR must be supported if RAW capability is advertised“报错解决思路记录

博客围绕Android CTS测试中的报错信息展开,从testStreamConfigurationMap测试项入手,通过查看源码、分析metadata值等方式,逐步定位到问题所在。发现客制化修改对列表过滤更新,导致测试找不到对应配置项,最终调整客制化代码解决问题。

相关报错信息:

  1. android.hardware.camera2.cts.ExtendedCameraCharacteristicsTest#[1]:junit.framework.AssertionFailedError: RAW_SENSOR must be supported if RAW capability is advertised
  2. android.hardware.camera2.cts.StaticMetadataTest#testCapabilities[1]:
    java.lang.Exception: Test failed for camera 0: REQUEST_AVAILABLE_CAPABILITIES_RAW should support RAW_SENSOR output
  3. 多项测试:junit.framework.AssertionFailedError: No capture sizes available for RAW format!

从testStreamConfigurationMap测试项入手:
直接查看源码:ExtendedCameraCharacteristicsTest.java

public void testStreamConfigurationMap() throws Exception {
   
   
    ……
            StreamConfigurationMap config =
                    c.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
    ……
            int[] actualCapabilities = c.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES);
            assertNotNull("android.request.availableCapabilities must never be null",
                    actualCapabilities);
    ……
            // Check RAW
            if (arrayContains(actualCapabilities,
                    CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_RAW)) {
   
   
                assertTrue("RAW_SENSOR must be supported if RAW capability is advertised",
                    config.isOutputSupportedFor(ImageFormat.RAW_SENSOR));
            }
    ……
}

测试时首先检查actualCapabilities中是否包含REQUEST_AVAILABLE_CAPABILITIES_RAW项。同一个函数往上翻可以看到actualCapabilities的来源:获取metadata REQUEST_AVAILABLE_CAPABILITIES对应的值。这个metadata的值可以直接通过"dumpsys media.camera"命令查看,对应其中的"android.request.availableCapabilities"一项。查看dump结果,包含RAW一项,且从报错看这里if条件为真,所以继续往下看。

assertTrue("RAW_SENSOR must be supported if RAW capability is advertised",
                    config.isOutputSupportedFor(ImageFormat.RAW_SENSOR));

报错就在这里,这句的意思是:调用config对象中的"isOutputSupportedFor"方法,传入的参数是"ImageFormat.RAW_SENSOR"。

查找定义:ImageFormat.RAW_SENSOR = 0x20

查找config的来源:获取metadata SCALER_STREAM_CONFIGURATION_MAP对应的值。这个值在dumpsys中找不到,直接从总接口文件中去找:CameraMetadataNative.java

        sGetCommandMap.put(
                CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP.getNativeKey
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值