微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > mt6735 Android M: testCameraToSurfaceTextureMetadata

mt6735 Android M: testCameraToSurfaceTextureMetadata

时间:10-02 整理:3721RD 点击:
测试简介:
此条测试是根据CAMERA feature table的fps-range的配置,设定相应的min-fps和max-fps, 并检查返回的fps是否在预期之内,有一定的误差允许。

底层修改:
1 Feature Table fps range:
请根据camera sensor的能力来填写fps range信息。Google CTS要求至少有一条range是在min <= 15, max >= 30, 且必须有fixed fps: 30.
还有一个原则是: 最小不要小于5fps.
另外,由于video mode night需要15fps, video可能还需要20fps.
一般的配置如下(Base: 1000x):
(5000,30000),
(15000,15000), // 如果fps性能偏差,可以改成(5000,15000)
(20000,20000),
(30000,30000), // 一定需要有
如支持PIP, 还需要配置24000,24000)

2 Driver:
Driver需要实现对于max framerate的控制,这个其实就是Fixed Framerate的含义。
因为Camera Sensor可能在不同光源下fps会自动调整,默认我们在足够明亮的环境下,所以设定
max framerate其实就是指把sensor固定在max framerate这种fps下。
当然,实际上,会有一定误差。
RAW Sensor:
实现SENSOR_FEATURE_SET_MAX_FRAME_RATE_BY_SCENARIO
SENSOR_FEATURE_GET_DEFAULT_FRAME_RATE_BY_SCENARIO
YUV Sensor:
实现SENSOR_FEATURE_SET_VIDEO_MODE
有些driver中会hardcode写死支持某些特定fps, 这种情况就需要根据情况修正或者放宽fps range.
修改之后还是fail?
1 FAQ14945的方法确定环境明亮;
2 确定是main还是sub fail了:如果是main fail的,测试过程中不会切换到sub camera就会退出,否则则是sub fail了;
3 从log确定是设定哪个fps range出错:
设定fps的log类似:
Min(15000),Max(15000)
可以搜索Min(或者Max(来确定。
比如,如下是设定(15000,15000)的log:
mtkCam/DisplayCLIent: [handleReturnBuffers] + (66) 34ms < Duration( 67) ......
15fps, 每帧的时间大概是66ms,如上67ms就是符合要求的。
同理,如果设定(20000,20000):
MtkCam/DisplayClient: [handleReturnBuffers] + (49) 34ms < Duration( 49) ......
如果设定(30000,30000):
MtkCam/DisplayClient: [handleReturnBuffers] + (33)( 32) ......
当然,这个数值不是一定的,可能是稍微变动一点。
如果搜不到handleReturnBuffers这种log,可能是user版本此log不会输出导致。
请参考FAQ14945,可以使用userdebug或者修改代码使输出。

log信息:
此条测试一般持续时间较长,用CTS生成的log将只保留最后的一些log,很多log都丢失,对于测试
可能没有太大的用处。除非刚测试就fail了, log不多的情况。
所以,建议对于测试开始和结束抓全log, 如遇log太大,可能需要split成小文件单独分析。

路過看看!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top