平台 | os版本 | 内核 |
---|---|---|
MT6739 | Android 9.0 | kernel-4.4 |
[DESCRIPTION]
【偶现】办公室环境下开启自动闪光灯拍照或录像,闪光灯亮起,说明闪光灯阈值偏大,需要调整闪光灯在 auto 模式下的打闪阈值
【前提条件】无
【操作步骤】明亮环境下开启自动闪光灯拍照或录像
【实际结果】闪光灯亮起
【预期结果】闪光灯不亮起
【概率】9/10
[SOLUTION]
修改 camera_AE_PLineTable_gc5035mipiraw.h
文件中注释为 i4StrobeTrigerBV
的值,例如下面代码。
文件路径:
vendor/mediatek/proprietary/custom/mt6739/hal/imgsensor/gc5035_mipi_raw/camera_AE_PLineTable_gc5035mipiraw.h
static strAETable g_AE_CaptureAutoTable =
{
AETABLE_CAPTURE_AUTO, //eAETableID
146, //u4TotalIndex
20, //i4StrobeTrigerBV
118, //i4MaxBV
-27, //i4MinBV
90, //i4EffectiveMaxBV
0, //i4EffectiveMinBV
LIB3A_AE_ISO_SPEED_AUTO, //ISO
sCapturePLineTable_60Hz,
sCapturePLineTable_50Hz,
NULL,
};
修改其中
20, //i4StrobeTrigerBV
这一行的数值,这个值越大越容易打闪,越小越不容易打闪。
[具体分析]
相机中有一个自动打闪的小图标,设置为自动打闪后,比较亮的环境下也会打开闪光灯,这时需要修改闪光灯的阀值,相关代码如下:
vendor/mediatek/proprietary/hardware/mtkcam/legacy/platform/mt6739/core/featureio/pipe/aaa/ae_mgr/ae_mgr.cpp
MBOOL AeMgr::IsStrobeBVTrigger()
{
MBOOL bStrobeBVTrigger;
MINT32 i4Bv = 0;
strAETable strCurrentPreviewTable;