点击快门键拍照后移动预览,自动开始采样
拍照后800ms自动采样,上层分析为hal上帧晚,
hal预览上帧晚根本原因是拍照帧请求下发在app端准备buffer阶段阻塞耗时过长,导致长时间无预览请求下发引起
原因:remosaic和非remosaic都是走的32M YUV 导致目前会出现申请BUF慢的问题
方案:增加一路8M的YUV 配流 非REMOSIC的拍照选8M YUV配流 REMOSIC拍照走32M YUV的配流,(拍照BUF走YUV流),hal需做Jpegsize/2适配
APP修改配流并按照是否remosaic场景判定拍照用哪路YUV,除fullsize拍照不存JPEG,其他比例均正常预览拍照,fullsize拍照不存JPEG分析如下:
对比16:9比例正常拍照
APP配流
点击拍照后 可以拿到拍照流buffer
正常收帧每个request有带两个stream buffer下来(streamId:3,streamId:5)
fullsize比例异常不存JPEG
APP配流
点击拍照后拿不到拍照流buffer,所以一直显示hal不上帧导致的JPEG不存图
异常时HAL不上帧,isValid: false这里表示只上了meta还没有上buffer,可以看到拍照时只带了一个预览streambuffer(streamId:3),没有带拍照帧的buffer(streamId:5),APP接力分析
app增加YUV拍照流后HAL增加对应3264X1464的meta,hal增加后dump如下,确认修改生效
Hal配置meta
APP获取到的size
app始终获取不到hal的配置项,但是三方APP可以
fullsize不带拍照buffer的原因即为app获取不到3264X1464拍照size,app自检fullsize不带拍照buffer的原因即为app获取不到3264X1464拍照size,检查发现在API2处APP存在不添加此size的限制,介于1464不为16的整数倍,选择使用3264x1472作为hal上帧
APP通过JPEGsize/2来选取hal中meta,默认fullsize拍照size为6528x2928,改后上层做Upscale需得到JPEGsize为6528x2944,hal修改Jpegsize后 fullsize正常拍照
4:3比例成功修改的buffer对比
非remosaic拍照
修改前32M buffer
修改后8M buffer
remosaic拍照不受影响