2,853
社区成员




手动设置ISO&S连拍后,查看照片信息,发现信息显示的ISO&S数值错误?
手动设置ISO&S后,单拍发现照片信息显示正常,但是连拍照片信息显示错误,将连拍的相片散开发现,只有第一张照片显示正常,其他均错误;进一步抓log分析发现,单拍时,camera处于ZSL模式,而连拍时,camera处于非ZSL模式。
ZSL模式:sensor通过MIPI接口将数据流传送到ISP中并分成多个相同(size不同)的流(preview流、thumbnail流、capture流),在拍照时,takepicture会从capture流中取到数据传输给APP,此时也就是说,预览和拍照处于相同全尺寸流状态,即拍照只是从流里取一张而已
非ZSL模式:拍照时,stream off,会停止preview,takepicture从sensor获取一张图片数据传给APP,APP接收到图片后,发送一个命令给sensor,sensor会通过(preview setting、capture setting、video setting等)重新使stream on,重新preview,sensor通过MIPI接口将数据流传送到ISP中并分成多个相同(size不同)的流(preview流、thumbnail流、capture流),takepicture从capture 流获取图片数据传送给APP(故此时的图片信息与第一张图片信息会有所差异),预览是小尺寸,拍照需切换设置到全尺寸,会有一定的延时
解决方案:将连拍模式的camera模式强制转化成ZSL模式,即将hardware/qcom/camera/QCamera2/HAL/QCameraParameters.cpp中setZslMode()函数下的
if(!strcmp(str_asus_camera_mode_val,"PRO")||!strcmp(str_asus_camera_mode_val,"HDR")){}改成
if(/!strcmp(str_asus_camera_mode_val,"PRO")||/!strcmp(str_asus_camera_mode_val,"HDR")){}
原文链接:https://blog.csdn.net/liujun3512159/article/details/123946890