FAQ05047:在进入camera或者在camera中切换场景时,出现“很抱歉,相机已停止运行”

描述:进入camera或者切换场景时,出现"很抱歉,相机已停止运行",LOG中出现:

11-15 09:37:57.222: E/MtkCam/MCamHw(102): Error count of area!(parseCamAreas){#1952:mediatek/source/external/camera/mt6575/CamAdapter/mHal/mHalCamParameters.cpp}

11-15 09:37:57.222: E/MtkCam/MCamHw(102): setParametersERROR: metering areas = (0,0,0,0,0) (setParameters){#1402:mediatek/source/external/camera/mt6575/CamAdapter/mHal/mHalCamParameters.cpp}

分析:YUV sensor在进入camera或者在camera中切换场景模式时,会从底层driver中query支持touch AE/AF区域的个数(1表示支持touch AE/AF,0表示不支持),若在sensor driver中没有返回该值的时候,则默认返回一个随机值,当该随机值为1时,认为支持touch AE/AF,当随机值不为1时,认为不支持touch AE/AF。而当连续两次query回来的值不一样时,就会报出上述错误,进而导致相机停止运行,因此该问题会概率性复现,且复现概率并不高。

解决:根据如上分析,只需在sensor driver里面固定返回是否支持touch AE/AF,该问题就得到解决。

具体方法:

在sensor driver的XXXXXFeatureControl 加入以下两个case:

case SENSOR_FEATURE_GET_AF_MAX_NUM_FOCUS_AREAS:

XXXXXGetAFMaxNumFocusAreas(pFeatureReturnPara32);

*pFeatureParaLen=4;

break;

case SENSOR_FEATURE_GET_AE_MAX_NUM_METERING_AREAS:

XXXXXGetAFMaxNumMeteringAreas(pFeatureReturnPara32);

*pFeatureParaLen=4;

break;

并实现这两个函数:

void XXXXXGetAFMaxNumFocusAreas(UINT32 *pFeatureReturnPara32)

{

*pFeatureReturnPara32=0; //若支持,则填1

}

Void XXXXXGetAFMaxNumMeteringAreas(UINT32 *pFeatureReturnPara32)

{

*pFeatureReturnPara32=0; //若支持,则填1

}

相关推荐
千里马学框架2 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台2 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone2 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc2 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo2 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077002 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼2 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone2 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen2 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone2 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui