1. 程式人生 > >mtk camera faq

mtk camera faq

一mtk修改對焦模式
1.log中搜索SensorId知道對應 SensorId
LensMCU : LensMCU[isSupportLens][CurrSensorDev]0x0001 [CurrSensorId]0x1241
2.根據SensorId(如0x1241)從kernel中知道對應的巨集名稱OV12A10MIPI_SENSOR_ID
[email protected]:~/codes/mtk_8.1_6763_baseline_for_GomeMultiScan/kernel-4.4/drivers/misc/mediatek/imgsensor$ grep -rni "0x1241" ./
./src/mt6763/ov12a10_mipi_raw/ov12a10mipiraw_Sensor.c:914:static kal_uint32 return_sensor_id(void) // jack_yan 0x1241
./inc/kd_imgsensor.h:190:#define OV12A10MIPI_SENSOR_ID 0x1241
3.根據sensor巨集名稱從vendor中查詢對應的引數配置目錄ov12a10_mipi_raw/,在目錄中搜索MTK_CONTROL_AF關鍵字設定相關對焦配置

通過上述驅動配置找到對應的sensor
/codes/mtk_8.1_6763_baseline_for_GomeMultiScan/vendor/mediatek/proprietary/custom/mt6763/hal/imgsensor_metadata/ov12a10_mipi_raw

查詢所有配置自動對焦模式的地方,修改自動對焦模式
CONFIG_METADATA_BEGIN(MTK_CONTROL_AF_MODE)//(pre:auto)
CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_OFF, MUINT8)

config_request_metadata__.h
搜MTK_CONTROL_AF

4.修改後編譯
編譯hal預設配置引數路徑
A:\codes\mtk_8.1_6763_baseline_for_GomeMultiScan\vendor\mediatek\proprietary\hardware\mtkcam\utils\metastore

二.如何判斷當前預覽或者拍照,走的tuning profile是否正常
1
adb shell setprop debug.paramctrl.enable 1
adb shell setprop debug.isp_debug.enable 1
2.
logcat | grep -i "isp_tuning_idx"
08-06 14:20:47.850 581 17192 D isp_tuning_idx: [IndexMgr][dump] DBS:2, OBC:0, BPC:2, NR1:2, PDC:2, RNR:2, UDM:2, ANR:2, ANR2:2, CCR:2, HFG:2, EE:2, MFB:0, MIX3:0
08-06 14:20:47.850 581 17192 D isp_tuning_idx: [IndexMgr][dump] DBS:2, OBC:0, BPC:2, NR1:2, PDC:2, RNR:2, UDM:2, ANR:2, ANR2:2, CCR:2, HFG:2, EE:2, MFB:0, MIX3:0
08-06 14:20:47.850 581 17192 D isp_tuning_idx: [IndexMgr][dump] DBS:1, OBC:0, BPC:1, NR1:1, PDC:1, RNR:1, UDM:1, ANR:1, ANR2:1, CCR:1, HFG:1, EE:1, MFB:0, MIX3:0
08-06 14:20:47.850 581 17192 D isp_tuning_idx: [IndexMgr][dump] DBS:1, OBC:0, BPC:1, NR1:1, PDC:1, RNR:1, UDM:1, ANR:1, ANR2:1, CCR:1, HFG:1, EE:1, MFB:0, MIX3:0
08-06 14:20:47.850 581 17192 D isp_tuning_idx: [IndexMgr][dump] DBS:2, OBC:0, BPC:2, NR1:2, PDC:2, RNR:2, UDM:2, ANR:2, ANR2:2, CCR:2, HFG:2, EE:2, MFB:0, MIX3:0
08-06 14:20:47.851 581 17192 D isp_tuning_idx: [IndexMgr][dump] DBS:2, OBC:0, BPC:2, NR1:2, PDC:2, RNR:2, UDM:2, ANR:2, ANR2:2, CCR:2, HFG:2, EE:2, MFB:0, MIX3:0
08-06 14:20:47.851 581 17192 D isp_tuning_idx: [IndexMgr][dump] DBS:1, OBC:0, BPC:1, NR1:1, PDC:1, RNR:1, UDM:1, ANR:1, ANR2:1, CCR:1, HFG:1, EE:1, MFB:0, MIX3:0
08-06 14:20:47.851 581 17192 D isp_tuning_idx: [IndexMgr][dump] DBS:1, OBC:0, BPC:1, NR1:1, PDC:1, RNR:1, UDM:1, ANR:1, ANR2:1, CCR:1, HFG:1, EE:1, MFB:0, MIX3:0
3.grep -rni "define DBS" ./
找到對應DBS配置
/vendor/mediatek/proprietary/custom/mt6763/hal/imgsensor/ver1/ov12a10_mipi_raw$ grep -rni "define DBS_0001"
camera_isp_regs_preview_ov12a10mipiraw.h:135:#define DBS_0001 /*profile = Preview, sensor = Preview, ISO_1*/{{

三。mtk修改支援的拍照尺寸
1.log中搜索SensorId知道對應SensorId
LensMCU : LensMCU[isSupportLens][CurrSensorDev]0x0001 [CurrSensorId]0x1241
2.根據SensorId(如0x1241)從kernel中知道對應的巨集名稱OV12A10MIPI_SENSOR_ID
3.搜尋config.ftbl*找到如下路徑檔案config.ftbl.ov12a10_mipi_raw.h
/vendor/mediatek/proprietary/custom/mt6763/hal$ find ./ -name config.ftbl*
./sendepfeature/ov12a10_mipi_raw/config.ftbl.ov12a10_mipi_raw.h
4.開啟config.ftbl.ov12a10_mipi_raw.h,搜尋KEY_PICTURE_SIZE即對應配置的支援的拍照尺寸列表


四 log列印會退出處理方法?
修改logd列印容量 diff如下
/device/gome/gm18a$ git diff
diff --git a/device.mk b/device.mk
index 61d9e6a..4930c9a 100644
--- a/device.mk
+++ b/device.mk
@@ -163,3 +163,4 @@ PRODUCT_BRAND := GOME
PRODUCT_MANUFACTURER := GOME
PRODUCT_PROPERTY_OVERRIDES += ro.build.display.factoryid=$(strip $(MTK_BUILD_FACTORYID))

+PRODUCT_PROPERTY_OVERRIDES += ro.logd.size=16M

五 錄屏功能
screenrecord --size 1280x720 --time-limit 60 sdcard/weixin.mp4

六.mtk判斷微信是否走turning效果
請在復現問題前,輸入如下adb命令,這樣可以在log中實時打印出當前幀所用到的的ISP index,可搜尋關鍵字“isp_tuning_idx”。
adb shell setprop debug.paramctrl.enable 1
adb shell setprop debug.isp_debug.enable 1
七.mtk 列印更多debuglog
請進camera之前輸入:抓取更多log
adb shell setprop debug.camera.log 3


八.mtk hal中修改配置的攝像頭安裝角度
vendor/mediatek/proprietary/custom/mt6763/hal/imgsensor_src/cfg_setting_imgsensor.cpp
其中u4Degree_1設定前攝的安裝角度,若果預覽不正常可以嘗試修改角度值
getSensorOrientation()
{
static SensorOrientation_T const inst = {
.u4Degree_0 = 90, // main sensor in degree (0, 90, 180, 270)
.u4Degree_1 = 270, // sub sensor in degree (0, 90, 180, 270)
.u4Degree_2 = 90, // main2 sensor in degree (0, 90, 180, 270)
.u4Degree_3 = 90, // sub2 sensor in degree (0, 90, 180, 270)
};