问题1
现象
切换夜模式后,切换采集帧率,图像会出现斑点
排查方法
RAW图正常,YUV不正常。
可能的原因
夜模式会有两个动作,一个是硬件操作(打开红外,关闭IRCUT),一个是软件的黑白效果。
经过实测,主要问题在黑白效果这里,当开启黑白效果后,切换采集帧率,图像会出现斑点。
向高通提交了case,待解决。
在设置帧率时候强制切换到日模式,设置完再切换到夜模式,这种方法不可行。可以成功切到日模式,但是夜模式不能生效。
解决方案
开启夜模式或者自动模式的同时会设置帧率为30帧,并保存日模式时的帧率。
开启日模式的同时会设置存储的帧率,如果没有存储帧率,就不进行设置。
在切换帧率的时候,如果判断是在夜模式,就不进行切换。
问题2
现象
出图出不了
排查方法
- 骁龙相机可以出图,而执法仪APP不能出图,可以缩小问题范围到媒控或者isp组件。
- ispversion没有打印,代表ispctrl没有初始化。也没有startpreview,说明媒控没有开启采集。
- 媒控设置分辨率和帧率的时候,会获取camera的能力集,帧率需要大于15帧,支持的分辨率需要大于等于设置的分辨率,
否则就不会加载ispctrl,也不会开启采集。preview支持的分辨率最大只有320*240
原因
Android8.0的代码对上报的preview尺寸做了限制,最大为屏幕尺寸
解决方案
去除相关逻辑
小结
- 摸清楚帧率的整个初始化设置流程。最一开始,camera初始化会有一个初始帧率,然后媒控初始化,会再次设置一个帧率。然后ISP组件初始化的时候,会根据抗闪烁模式和编码帧率设置一个采集帧率。
- 高通设备不要在黑白模式下切换采集帧率,图像会出现异常!
- Android8.0之后的代码对preview的原始支持的分辨率有限制,最大为屏幕尺寸