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): [setParameters]ERROR: 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

}

相关推荐
ii_best1 天前
安卓/ios开发辅助软件按键精灵小精灵实现简单的UI多配置管理
android·ui·ios·自动化
码农xo1 天前
android 设备实时传输相机采集的视频到电脑pc端 通过内网wifi 方案
android·数码相机·音视频
常利兵1 天前
解锁Android的隐藏超链接:Deep Link与App Link探秘
android·gitee
for_syq1 天前
trace抓取工具
android·python
黄林晴1 天前
Compose Multiplatform 1.10 发布:统一 Preview、Navigation 3、Hot Reload 三箭齐发
android·flutter
Kapaseker1 天前
一杯 Kotlin 美式品味 object 声明
android·kotlin
常利兵1 天前
Room 3.0大变身:安卓开发的新挑战与机遇
android·jvm·oracle
阿拉斯攀登1 天前
【RK3576 安卓 JNI/NDK 系列 09】RK3576 实战(三):JNI 调用 librga 实现 2D 硬件加速图像处理
android·驱动开发·rk3568·瑞芯微·rk安卓驱动·rk3576 rga加速
落羽的落羽1 天前
【Linux系统】信号机制拆解,透过内核三张表深入本质
android·java·linux·服务器·c++·spring·机器学习
峥嵘life1 天前
Android16 EDLA【GTS】GtsPermissionTestCases存在fail项
android·学习