加载中……
Android Camera FlashLight 设置笔记

编译配置

关闭闪光灯

ProjectConfig.mk

CUSTOM_HAL_FLASHLIGHT = dummy_flashlight 
CUSTOM_KERNEL_FLASHLIGHT = dummy_flashlight

android.hardware.camera.xml

注释掉:<feature name=”android.hardware.camera.flash” />

打开闪光灯

ProjectConfig.mk

CUSTOM_HAL_FLASHLIGHT = constant_flashlight
CUSTOM_KERNEL_FLASHLIGHT = constant_flashlight

android.hardware.camera.xml

确保:<feature name=”android.hardware.camera.flash” />

flash_tuning_custom.cpp解析

作用

主要用于设定闪光灯强度、亮度、闪光灯预闪

函数

cust_isNeedAFLamp

return 1 //打开触摸对焦辅助灯
return 0 //关闭触摸对焦辅助灯

cust_getFlashProjectPara

duty //占空比,数值越大,电流越大
step //阻抗,数值越大,电阻越小,电流越大
para.coolTimeOutPara.tabId[2]=12; //分段管理,第三段duty值为12
para.coolTimeOutPara.coolingTM[2]=2; //分段保护,第三段冷却时间为发光持续时间两倍
para.coolTimeOutPara.timOutMs[2]=600; //分段持续时间,第三段发光时间最多为600ms
para.maxCapExpTimeUs=50000;//66000; //最大曝光时间

Flashlight Kernel Driver

MTK PMIC/GPIO Flashlight IC

constant_flashlight_open
fl_Init();
timerInit();

 

constant_flashlight_ioctl
FLASH_IOC_SET_TIME_OUT_TIME_MS
FLASH_IOC_SET_DUTY  //fl_dim_duty()设置电流
FLASH_IOC_SET_STEP //fl_step()设置阻抗
FLASH_IOC_SET_ONOFF //fl_enable 开关
constant_flashlight_release
fl_uninit()

flash_tuning_custom_cct.cpp解析

作用

太暗或太亮、ISO过高、曝光时间过长、预闪太久

函数

getDefaultStrobeNVRam

engTab[] //存储闪光灯段数亮度
//tuning para 所有值为-10到10
yTar //闪光灯AE target,AE收敛值,值越大,亮度越高
antiIsoLevel //值越大,ISO越低
antiExpLevel //值越大,曝光时间越短
antiStrobeLevel //值越大,曝光时间越长
antiUnderLevel //值越大,画面越亮、越容易过曝
antiOverLevel //值越大,画面越暗
foregroundLevel //加强主体权重,值越大,前景越重要
isRefAfDistance //尚未开放
accuracyLevel //值越高,比较暗的场景preflash的时间会变长,画面亮度较亮

LOG解析

搜索Flashlight

preiew log

setOnOff() isOn = 1 //预闪打开 keyword:VsyncUpdate
setOnOff() isOn = 0 //预闪关闭 keyword:PrecaptureEnd

Capture log

setOnOff() isOn = 1 //主闪打开 keyword:CaptureStart
setOnOff() isOn = 0//主闪打开 keyword:CaptureEnd

ISSUE汇总

闪光灯异常闪烁

解决:到MTK申请patch ALPS00477654

APK手电筒无法打开闪光灯

解决:到MTK申请patch ALPS00507478

video flash异常

解决:到MTK申请patch ALPS00497611

开闪光灯拍照,概率性黑片

解决:到MTK申请patch ALPS00488383

外挂Flash,连拍闪光灯发热量大,导致重启

解决:根据flash_tuning_custom.cpp文件中定义的duty(pfduty = 0 mfdupy = 1)值来判断是flash/torch mode,区分主闪和预闪

开闪光灯拍照概率性死机重启

解决:fl_init函数中添加timeout保护函数:

INIT_WORK(&workTimeOut, work_timeOutFunc);
版权声明: 若无特殊说明,文章均为原创,版权归本文作者所有,转载请保留出处和此说明!
本文链接: Android Camera FlashLight 设置笔记
本文作者: Jan.
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇