和你一起终身学习,这里是程序员 Android
经典好文推荐,通过阅读本文,您将收获以下知识点:
一、Flash 基础知识
二、MTK 闪光灯拍照l分析
一、Flash 基础知识
1.1 Flash HAL 场景枚举值
1.2 AE AF mode State 枚举值
1.3 AWB mode State 枚举值
二、MTK 闪光灯拍照分析
2.1 闪光灯拍照预闪、主闪总体流程
2.2 拍照log关键字
connect call|AppMgr-configureStreams|AppMgr-ResCbHelper::performCallback\] requestNo:0|Frame timer \[# 1/|convertCallbackParcelToHidl\] requestNo:0|evaluateCaptureSetting|capture req#|setduty|setonoff|setFlashO|takePicture|onShutterButtonClick|submitRequest.*control.captureIntent:2|submitRequest.*requestNo:0|MTK_CONTROL_AF_TRIGGER|MTK_CONTROL_AE_PRECAPTURE_TRIGGER|Backup|Precapture Trigger|AEPrecaptureStart|endPrecapture|doCapAE|CaptureNode.*queue|CaptureProcessor.*onEnque|CaptureProcessor.*onContinue|CaptureProcessor.*notifyRelease|Open with FUSE
2.3 MTK Camera log 分析
2.3.1 闪光灯第一次打闪:预闪
2.3.2 闪光灯第二次打闪:主闪
2.3.3 MTK camera 闪光灯拍照 log
MTK 相机on 状态下,闪光灯拍照走预闪,主闪流程。
// 相机调用
02-10 11:20:30.671910 1001 26533 I CameraService: CameraService::connect call (PID 26709 "com.mediatek.camera", camera ID 0) and Camera API version 2
//预览、拍照、缩略图尺寸
02-10 11:20:30.852660 4720 5025 D mtkcam-AppStreamMgr: [AppMgr-configureStreams] 0 1920x1080 OUT ImgFormat:0x11(NV21) BufPlanes(strides/sizeInBytes):[ 1920/2073600 1920/1062720 ] startOffset:0 bufStep:0 t:0/r:0 maxBuffers:12 d/s:0x00000000(UNKNOWN) s0:d0:App:YCrCb_420_SP:0|HW_TEXTURE AllocImgFormat:0x11(NV21) AllocBufPlanes(strides/sizeInBytes):[ 1920/2073600 1920/1062720 ] Real:0x11(YCrCb_420_SP) Request:0x22(IMPLEMENTATION_DEFINED) Override:0x11(YCrCb_420_SP) Hal-Client-usage:0x100(0|HW_TEXTURE) Hal-usage:0x20033(0|SW_READ_OFTEN|SW_WRITE_OFTEN|HW_CAMERA_WRITE) HalStream::(consumer/producer)Usage:0/0x20033 0xb400007a43dcde50 phy:-1
02-10 11:20:30.852684 4720 5025 D mtkcam-AppStreamMgr: [AppMgr-configureStreams] 0x1 4080x2296 OUT ImgFormat:0x2300(JPEG) BufPlanes(strides/sizeInBytes):[ 14461181/14461184 ] startOffset:0 bufStep:0 t:0/r:0 maxBuffers:11 d/s:0x08c20000(V0_JFIF|STANDARD_BT601_625|TRANSFER_SMPTE_170M|RANGE_FULL) s1:d0:App:BLOB:0|SW_READ_OFTEN AllocImgFormat:0x21(BLOB) AllocBufPlanes(strides/sizeInBytes):[ 14461181/14461184 ] Real:0x21(BLOB) Request:0x21(BLOB) Override:0x21(BLOB) Hal-Client-usage:0x3(0|SW_READ_OFTEN) Hal-usage:0x20033(0|SW_READ_OFTEN|SW_WRITE_OFTEN|HW_CAMERA_WRITE) HalStream::(consumer/producer)Usage:0/0x20033 0xb400007a43dce8d0 phy:-1
02-10 11:20:30.852710 4720 5025 D mtkcam-AppStreamMgr: [AppMgr-configureStreams] 0x2 160x96 OUT ImgFormat:0x11(NV21) BufPlanes(strides/sizeInBytes):[ 192/18432 192/9504 ] startOffset:0 bufStep:0 t:0/r:0 maxBuffers:12 d/s:0x08c20000(V0_JFIF|STANDARD_BT601_625|TRANSFER_SMPTE_170M|RANGE_FULL) s2:d0:App:YCrCb_420_SP:0|SW_READ_OFTEN AllocImgFormat:0x11(NV21) AllocBufPlanes(strides/sizeInBytes):[ 192/18432 192/9504 ] Real:0x11(YCrCb_420_SP) Request:0x23(YCbCr_420_888) Override:0x23(YCbCr_420_888) Hal-Client-usage:0x3(0|SW_READ_OFTEN) Hal-usage:0x20033(0|SW_READ_OFTEN|SW_WRITE_OFTEN|HW_CAMERA_WRITE) HalStream::(consumer/producer)Usage:0/0x20033 0xb400007a43d9f310 phy:-1
//第一帧请求 requestNo:0 第一帧 control.captureIntent:1 行为为预览
02-10 11:20:31.076045 4720 5025 I mtkcam-PipelineModelSession: [submitRequest] <4Cell/0> requestNo:0 { repeating:0 control.aeTargetFpsRange:10,30 control.captureIntent:1 control.enableZsl:0 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:1 }
//第一帧出图
02-10 11:20:31.232717 4720 26780 D MtkCam/StreamingPipe/Timer: [print]Frame timer [# 1/ 0][t 47][io 0][tof 0/ 0][d 0/ 0][mss 0/ 0/ 0/ 0][a 47/ 24/ 22][tun 0/ 0][msf 0/ 0][vnr 0/ 0/ 0][am 0][b 0/ 0][tpi( 0/ 0)/( 0/ 0)/( 0/ 0)][vmdp_A 0/ 0 vmdp_B 0/ 0][h 3/ 0/ 0][e 0][r 0/ 0][w_A 0/ 0/ 0/ 0 w_B 0/ 0/ 0/ 0][x 0][disp 0/ 0][async 0/ 0][p2sm 0/ 0/ 0][fps0.00/0.00/ 10/ 30]
//第一帧callback image && meta
02-10 11:20:31.234330 4720 26736 D mtkcam-AppStreamMgr: [0-CallbackHandler::convertCallbackParcelToHidl] requestNo:0 o:image#:1
02-10 11:20:31.234601 4720 26735 D mtkcam-AppStreamMgr: [0:AppMgr-ResCbHelper::performCallback] requestNo:0 o:image#:1
02-10 11:20:31.234619 4720 26735 D mtkcam-AppStreamMgr: [0:AppMgr-ResCbHelper::performCallback] requestNo:0
02-10 11:20:31.320917 4720 26736 D mtkcam-AppStreamMgr: [0-CallbackHandler::convertCallbackParcelToHidl] requestNo:0 o:meta#:4
02-10 11:20:31.321192 4720 26735 D mtkcam-AppStreamMgr: [0:AppMgr-ResCbHelper::performCallback] requestNo:0 o:meta#:1
02-10 11:20:31.321293 4720 26735 D mtkcam-AppStreamMgr: [0:AppMgr-ResCbHelper::performCallback] requestNo:0
//预闪 AE AF tag MTK_CONTROL_AE_PRECAPTURE_TRIGGER
02-10 11:20:33.500835 4720 5014 D Hal3Av3 : [parseMeta] MTK_CONTROL_AE_PRECAPTURE_TRIGGER(0 -> 1)
02-10 11:20:33.500874 4720 5014 D Hal3Av3 : [parseMeta] MTK_CONTROL_AF_TRIGGER(0 -> 1)
02-10 11:20:33.500897 4720 5014 D Hal3Av3 : [parseMeta] MTK_CONTROL_AF_TRIGGER_ID(1)
02-10 11:20:33.540439 4720 26740 D Hal3Av3 : [setNormal] Precapture Trigger @ i4MagicNum(62)
02-10 11:20:33.540502 4720 26740 W TaskMgr : [sendEvent] AEPrecaptureStart, fgLampflashCond(1)
02-10 11:20:33.541150 4720 25786 D Hal3Av3 : [parseMeta] MTK_CONTROL_AE_PRECAPTURE_TRIGGER(1 -> 0)
02-10 11:20:33.541199 4720 25786 D Hal3Av3 : [parseMeta] MTK_CONTROL_AF_TRIGGER(1 -> 0)
// 2A backup doBackupAE AWB
02-10 11:20:33.546911 4720 26740 D ae_mgr : [doBackupAE()+] i4SensorDev:1
02-10 11:20:33.546930 4720 26740 D ae_mgr : [doBackupAE()-] i4SensorDev:1 m_rAESettingBackup.EvSetting:39998/5904/4100 (ISO:144) m_rAESettingBackup.u4Index/F:111/335 (IndexBase:3)Pre-flash:0
02-10 11:20:33.565240 4720 26740 D awb_mgr : [backup] AWB(908,512,765)
02-10 11:20:33.581089 4720 26740 D ae_mgr : [doBackupAE()+] i4SensorDev:1
02-10 11:20:33.581107 4720 26740 D ae_mgr : [doBackupAE()-] i4SensorDev:1 m_rAESettingBackup.EvSetting:39998/5904/4100 (ISO:144) m_rAESettingBackup.u4Index/F:111/335 (IndexBase:3)Pre-flash:0
02-10 11:20:33.602423 4720 26740 D awb_mgr : [backup] AWB(908,512,765)
02-10 11:20:33.605946 4720 26740 D Hal3ARaw: [doBackup2A]
02-10 11:20:33.605960 4720 26740 D ae_mgr : [doBackupAE()+] i4SensorDev:1
02-10 11:20:33.605974 4720 26740 D ae_mgr : [doBackupAE()-] i4SensorDev:1 m_rAESettingBackup.EvSetting:39998/5904/4100 (ISO:144) m_rAESettingBackup.u4Index/F:111/335 (IndexBase:3)Pre-flash:1
//预闪 flash on type:1:后摄 enable:1 开启闪光灯 scenario:3:预闪 duty(0).
02-10 11:20:33.606962 4720 26847 I FlashHal: [CAT][flash] setOnOff(): type:1 enable:1 scenario:3
02-10 11:20:33.606982 4720 26847 I FlashHal: setFlashOn(): duty(0), timeout(0), lt duty(0), lt timeout(0).
02-10 11:20:33.607010 4720 26847 I StrobeDrvFlashlight: setDuty(): duty(0).
02-10 11:20:33.607125 4720 26847 I StrobeDrvFlashlight: setOnOff(): enable(1).
02-10 11:20:33.613575 4720 26847 I StrobeDrvFlashlight: setOnOff(): on time(148789707).
02-10 11:20:33.632018 4720 26740 D awb_mgr : [backup] AWB(908,512,765)
02-10 11:20:33.651878 26709 26746 I CamAp_FocusCaptureRequestConfigure: [onCaptureStarted] ae precapture triggered
02-10 11:20:34.264236 4720 26740 D ae_mgr : [doRestoreAE()] i4SensorDev:1 m_rAESettingBackup.EvSetting:39998/6016/4100 (ISO:147) m_rAESettingBackup.u4Index/F:111/335 (IndexBase: 3) bIsRestorePreflash:1
02-10 11:20:34.265317 4720 26740 D ae_mgr : [doRestoreAE] backup FD information at AFAE state (for main flash)
//预闪 flash off
02-10 11:20:34.288120 4720 26847 I FlashHal: [CAT][flash] setOnOff(): type:1 enable:0 scenario:3
02-10 11:20:34.288137 4720 26847 I FlashHal: setFlashOff().
02-10 11:20:34.288156 4720 26847 I StrobeDrvFlashlight: setOnOff(): enable(0).
02-10 11:20:34.289802 4720 26847 I StrobeDrvFlashlight: setOnOff(): off time(148790388).
02-10 11:20:34.386669 4720 26740 I FlashMgrM: endPrecapture().
02-10 11:20:34.386770 4720 26740 I FlashMgrM: endPrecapture().
//开始拍照
02-10 11:20:34.538837 26709 26746 I CamAp_PhotoMode: onShutterButtonClick, is storage ready : true,isDeviceReady = true
02-10 11:20:34.540462 26709 26746 I CamAp_PhotoDevice2Controller: [takePicture] mSession= com.mediatek.camera.common.device.v2.Camera2CaptureSessionProxy@8fee002
//拍照请求帧 control.captureIntent:2
02-10 11:20:34.589042 4720 25786 I mtkcam-PipelineModelSession: [submitRequest] <4Cell/0> requestNo:88 { repeating:0 control.aeTargetFpsRange:10,30 control.captureIntent:2 control.enableZsl:1 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:2 }
02-10 11:20:34.589203 4720 25786 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] (0xb4000079e3e13630) capture req#:88
02-10 11:20:34.589717 4720 25786 D mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] openId(0), sensorId(0), subsensorId(-1), sub sensor nums 0
//拍照决策 MTK_CAMERA_SCENARIO_CAPTURE_NORMAL MTK_FEATURE_COMBINATION_SINGLE frames count
02-10 11:20:34.589850 4720 25786 D mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] find scenario:MTK_CAMERA_SCENARIO_CAPTURE_NORMAL for (openId:0, scenario:1)
02-10 11:20:34.605578 4720 25786 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] trigger feature:NO_FEATURE_NORMAL(0), feature combination:MTK_FEATURE_COMBINATION_SINGLE(0x20000000300f0) for req#88
02-10 11:20:34.605586 4720 25786 D mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] capture request frames count(mainFrame:1, subFrames:0, preDummyFrames:2, postDummyFrames:3)
//主闪开启 scenario:4 主闪 duty(1).
02-10 11:20:34.738555 4720 26740 I FlashHal: [CAT][flash] setOnOff(): type:1 enable:1 scenario:4
02-10 11:20:34.738580 4720 26740 E FlashHal: FLASH_HAL_SCENARIO_MAIN_FLASH dutyLt=-1,duty=1 (setOnOff){#610:vendor/mediatek/proprietary/hardware/mtkcam/aaa/source/isp_6s/../common/flash_mgr/flash_hal.cpp}
02-10 11:20:34.738602 4720 26740 I FlashHal: setFlashOn(): duty(1), timeout(0), lt duty(-1), lt timeout(0).
02-10 11:20:34.738627 4720 26740 I StrobeDrvFlashlight: setDuty(): duty(1).
02-10 11:20:34.738738 4720 26740 I StrobeDrvFlashlight: setOnOff(): enable(1).
02-10 11:20:34.743919 4720 26740 I StrobeDrvFlashlight: setOnOff(): on time(148790839).
02-10 11:20:34.744568 4720 26740 D ae_mgr : [doBackupAE()+] i4SensorDev:1
02-10 11:20:34.744582 4720 26740 D ae_mgr : [doBackupAE()-] i4SensorDev:1 m_rAESettingBackup.EvSetting:39998/5904/4100 (ISO:144) m_rAESettingBackup.u4Index/F:111/335 (IndexBase:3)Pre-flash:0
02-10 11:20:34.763537 4720 26740 D ae_mgr : [doCapAE()] i4SensorDev:1 CamMode:5 TargetMode:0 minISO:25 bIsSyncAE:0
02-10 11:20:34.763652 4720 26740 D ae_mgr : [prepareAlgoFrameInfo] send backup FD information to algo at POSTCAP state (during main flash)
02-10 11:20:34.764276 4720 26740 D ae_mgr : [doCapAE():monitor] SensorDev:1 Mag:88 CWVY:450 AEStable:1 AlgoAPAELock/AlgoAFAELock:0/0 Index/F:111/335 Algo:39998/5904/4100(144) Real:20004/1632/4156(40) EV/BV/BVWOStrobe:68/18/18 SkipCount:0 hdr LE(39998/3643/4112/89) ME(39998/3643/4112/89) SE(39998/3643/4112/89) VSE(39998/3643/4112/89) R(100)
02-10 11:20:34.836886 4720 26740 D ae_mgr : [doRestoreAE()] i4SensorDev:1 m_rAESettingBackup.EvSetting:39998/6016/4100 (ISO:147) m_rAESettingBackup.u4Index/F:111/335 (IndexBase: 3) bIsRestorePreflash:0
// 主闪关闭 enable:0 setFlashOff
02-10 11:20:34.863356 4720 26763 I FlashHal: [CAT][flash] setOnOff(): type:1 enable:0 scenario:4
02-10 11:20:34.863367 4720 26763 E FlashHal: FLASH_HAL_SCENARIO_MAIN_FLASH dutyLt=-1,duty=1 (setOnOff){#610:vendor/mediatek/proprietary/hardware/mtkcam/aaa/source/isp_6s/../common/flash_mgr/flash_hal.cpp}
02-10 11:20:34.863374 4720 26763 I FlashHal: setFlashOff().
02-10 11:20:34.863382 4720 26763 I StrobeDrvFlashlight: setOnOff(): enable(0).
02-10 11:20:34.863939 4720 26763 I StrobeDrvFlashlight: setOnOff(): off time(148790964).
// P2 capture 处理
02-10 11:20:34.883859 4720 26765 I MtkCam/P2/CaptureNode: [queue] P2C cam 0: (0xb400007883da59b0) R/F Num: 88/90
02-10 11:20:34.884348 4720 26792 D MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0: isZoom 0, isVsdof 0, isMultiCam 0, isHidlIsp 0
02-10 11:20:34.885773 4720 26792 D MtkCam/P2/CaptureProcessor: [onEnque]P2 frame number(90) main sensorId(0) sub sensor(-1) isPhyStream(0) isPhyControl(0)
02-10 11:20:34.885797 4720 26792 I MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0 MWFrame:#90 MWReq:#88, frame 90 : Index/Count:-1/0 Feature:0x20000000300f0
02-10 11:20:34.885813 4720 26792 I MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0 MWFrame:#90 MWReq:#88, frame 90 : Index/Count:-1/0 isEarlyNotificationTrigger:1, isCshot:0, SS_CapHint:0
02-10 11:20:34.885845 4720 26792 D MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0 MWFrame:#90 MWReq:#88, frame 90 : [SS] iShootingMode (0)
02-10 11:20:34.885893 4720 26792 D MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0 MWFrame:#90 MWReq:#88, frame 90 : [SS] use out_jpeg size as validSize(2296,4080)
02-10 11:20:34.885906 4720 26792 D MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0 MWFrame:#90 MWReq:#88, frame 90 : [SS] Update SEC_ANDROID_SCALER_VALID_IMAGE_REGION (0,0)(2296x4080)
02-10 11:20:34.885917 4720 26792 I MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0 MWFrame:#90 MWReq:#88, frame 90 : enqued request to captureFeaturePipe, R/F Num:88/90
02-10 11:20:34.895019 4720 26791 I MtkCam/P2/CaptureProcessor: [onContinue] P2C cam 0 MWFrame:#90 MWReq:#88, frame 90-0 : (0xb400007993dd3470) notify next capture, request count:1, R/F Num:88/90
02-10 11:20:34.926198 4720 26896 I MtkCam/P2/CaptureProcessor: [notifyRelease] P2C cam 0: notify release, R/F Num:88/90
02-10 11:20:34.926335 4720 26896 I MtkCam/P2/CaptureProcessor: [notifyRelease] P2C cam 0: notify release, R/F Num:88/90
//保存图片
02-10 11:20:35.025687 2150 2164 D MediaProvider: Open with FUSE. FilePath: /storage/emulated/0/DCIM/Camera/IMG_20250210_112034_998.jpg. Uid: 10100. Media Capabilities Uid: 0. ShouldRedact: false. ShouldTranscode: false
2.4 MTK闪光灯拍照trace 分析
1.点击拍照按钮事件处理
- 点击拍照Trace TAG: AppLaunch_dispatchPtr:Up && deliverInputEvent
Start time 00:00:08.617971754
2.Camera FWK 提交拍照trace
- 提交拍照请求Trace TAG:submitRequestList
Start time 00:00:08.624287677
AIDL::cpp::ICameraDeviceUser::submitRequestList::cppServer
submitRequestList
captureList
submitRequestsHelper
createCaptureRequest
3.预闪阶段: Task3APrecapture 帧号:96
- Task3APrecapture 预闪Trace TAG:doPrecapAE 、doPrecapAWB
Start time 00:00:08.710852369
- MTK log Tag:
MTK_CONTROL_AE_PRECAPTURE_TRIGGER|doPreCapAE|Frame Count|doBackupAE
MTK_CONTROL_AE_PRECAPTURE_TRIGGER|doPreCapAE|Frame Count|doBackupAE
Task3APrecap :
帧号96
02-11 16:46:46.760270 1073 2101 D Hal3Av3 : [parseMeta] MTK_CONTROL_AE_PRECAPTURE_TRIGGER(0 -> 1) // 下发预闪 TAG MTK_CONTROL_AE_PRECAPTURE_TRIGGER
02-11 16:46:46.804209 1073 5014 D ae_mgr : [doPreCapAE():monitor] SensorDev:1 Mag:93 CWVY:657 AEStable:1 Index/F:114/342 Algo:39998/7104/4184(177) Real:39998/7104/4184(177) EV/BV/BVWOStrobe:71/21/21 bAAASchedule:0
02-11 16:46:46.804339 1073 5014 D Task3APrecap: [run] Frame Count(1) - doPrecapAE // AEStable:1 没开灯的情况下通常都是下发1帧
02-11 16:46:46.806170 1073 5014 D Task3APrecap: [run] Cam 1 : Req(#96)/Frm(#95)/Stt(#93)/i4Opt(4)/FlashOnOff(0) Lv(71)/ISO(177)/RGB(881,512,791) FlashTask(1)
02-11 16:46:46.806186 1073 5014 D ae_mgr : [doBackupAE()+] i4SensorDev:1
02-11 16:46:46.806204 1073 5014 D ae_mgr : [doBackupAE()-] i4SensorDev:1 m_rAESettingBackup.EvSetting:39998/7104/4184 (ISO:177) m_rAESettingBackup.u4Index/F:114/342 (IndexBase:3)Pre-flash:0
02-11 16:46:46.806532 1073 5014 D Task3APrecap: [run] Frame Count(1) - Done
02-11 16:46:46.818777 1073 5124 D TaskAFTrigger: [run] Frame Count(1) Initial //AFTrigger 初始化
4. 预闪 开灯、关灯 阶段:Task3AFlashTouch 帧号:97 98 99 100 ... ... 112 114 115 116
Task3AFlashTouch 共3个阶段: front 、touch 、back
Front(固定 3帧) --> touch --> back(固定4帧) :对应帧数 97 98 99 100 ... 112 114 115 116
- Trace TAG:Task3AFlash_start
Start time 00:00:08.793206446
- MTK log TAG
Task3AFlashTouch: \[|Frame Count|doBackupAE|setOnOff|setDuty
Front(3帧) --> touch --> back(4帧) :对应帧数 97 98 99 100 ... 112 114 115 116
Task3AFlashTouch:: Front state 固定3帧 97 98 99
Task3AFlashTouch: \[|Frame Count|doBackupAE|setOnOff|setDuty
02-11 16:46:46.844675 1073 5014 D Task3AFlashTouch: [front] Cam 1 : Req(#97)/Frm(#96)/Stt(#94)/i4Opt(4)/FlashOnOff(0) Lv(71)/ISO(177)/RGB(883,512,787) isMvHDREnable(0)
02-11 16:46:46.844682 1073 5014 D Task3AFlashTouch: [front] Frame Count(1) //固定执行3 帧
02-11 16:46:46.844690 1073 5014 D Task3AFlashTouch: [front] SkipFrame, Frame Count(1)
02-11 16:46:46.844727 1073 5014 D ae_mgr : [doBackupAE()+] i4SensorDev:1 // 确保保存的AE 参数是稳定的
02-11 16:46:46.844736 1073 5014 D ae_mgr : [doBackupAE()-] i4SensorDev:1 m_rAESettingBackup.EvSetting:39998/7104/4184 (ISO:177) m_rAESettingBackup.u4Index/F:114/342 (IndexBase:3)Pre-flash:1
02-11 16:46:46.867331 1073 5125 I FlashHal: [CAT][flash] setOnOff(): type:1 enable:1 scenario:3 //预闪开灯
02-11 16:46:46.867370 1073 5125 I StrobeDrvFlashlight: setDuty(): duty(0).
02-11 16:46:46.867480 1073 5125 I StrobeDrvFlashlight: setOnOff(): enable(1).
02-11 16:46:46.873723 1073 5125 I StrobeDrvFlashlight: setOnOff(): on time(6090713).
02-11 16:46:46.883578 1073 5014 D Task3AFlashTouch: [front] Cam 1 : Req(#98)/Frm(#97)/Stt(#95)/i4Opt(4)/FlashOnOff(0) Lv(71)/ISO(177)/RGB(883,512,787) isMvHDREnable(0)
02-11 16:46:46.883586 1073 5014 D Task3AFlashTouch: [front] Frame Count(2) //by pass
02-11 16:46:46.924059 1073 5014 D Task3AFlashTouch: [front] Cam 1 : Req(#99)/Frm(#98)/Stt(#96)/i4Opt(4)/FlashOnOff(0) Lv(71)/ISO(177)/RGB(883,512,788) isMvHDREnable(0)
02-11 16:46:46.924074 1073 5014 D Task3AFlashTouch: [front] Frame Count(3)
02-11 16:46:46.924087 1073 5014 D Task3AFlashTouch: [proceed] Previous Status 0 //流转到下一个状态 touch
-
TaskAFTrigger_start
Start time 00:00:09.209619061
程序员Android MTK log TAG
Task3AFlashTouch:: Touch state Task3AFlashTouch: \[|Frame Count|doAFAE|TaskAFTrigger: \[|af_mgr_v3.*AfState
Task3AFlashTouch:: Touch state
Task3AFlashTouch: \[|Frame Count|doAFAE|TaskAFTrigger: \[|af_mgr_v3.*AfState
02-11 16:46:46.961651 1073 5014 D Task3AFlashTouch: [touch] Inform AFAE of AFTrigger ActiveItem 0 // 做AE 收敛
02-11 16:46:46.962263 1073 5014 D ae_mgr : [doAFAE():monitor] SensorDev:1 Mag:97 CWVY:876 AEStable:0 Index/F:110/332 Algo:39998/5600/4192(139) Real:39998/5600/4192(139) EV/BV/BVWOStrobe:75/25/21 bAAASchedule:0 i4EvComp:0
02-11 16:46:46.964752 1073 5014 D Task3AFlashTouch: [touch] Cam 1 : Req(#100)/Stt(#97)/i4Opt(4)/FlashOnOff(0)/FlashTypeByTask(3)/FlashOpenByTask(1) Lv(75)/ISO(139)/RGB(886,512,795)
02-11 16:46:47.001954 1073 5014 D Task3AFlashTouch: [touch] Inform AFAE of AFTrigger ActiveItem 0
02-11 16:46:47.004094 1073 5014 D ae_mgr : [doAFAE():monitor] SensorDev:1 Mag:98 CWVY:880 AEStable:0 Index/F:110/332 Algo:39998/5600/4192(139) Real:39998/5600/4192(139) EV/BV/BVWOStrobe:75/25/21 bAAASchedule:0 i4EvComp:0
02-11 16:46:47.005879 1073 5014 D Task3AFlashTouch: [touch] Cam 1 : Req(#101)/Stt(#98)/i4Opt(4)/FlashOnOff(0)/FlashTypeByTask(3)/FlashOpenByTask(1) Lv(75)/ISO(139)/RGB(888,512,796)
... ... 102 -106 省略
02-11 16:46:47.243513 1073 5014 D ae_mgr : [doAFAE():monitor] SensorDev:1 Mag:104 CWVY:673 AEStable:0 Index/F:110/330 Algo:39998/5376/4104(131) Real:39998/5376/4104(131) EV/BV/BVWOStrobe:75/25/21 bAAASchedule:0 i4EvComp:0
02-11 16:46:47.244428 1073 5014 D Task3AFlashTouch: [touch] Cam 1 : Req(#107)/Stt(#104)/i4Opt(4)/FlashOnOff(0)/FlashTypeByTask(3)/FlashOpenByTask(1) Lv(75)/ISO(131)/RGB(892,512,791)
02-11 16:46:47.283495 1073 5014 D Task3AFlashTouch: [touch] Inform AFAE of AFTrigger ActiveItem 0
02-11 16:46:47.284156 1073 5014 D ae_mgr : [doAFAE():monitor] SensorDev:1 Mag:105 CWVY:675 AEStable:1 Index/F:110/330 Algo:39998/5376/4104(131) Real:39998/5376/4104(131) EV/BV/BVWOStrobe:76/26/21 bAAASchedule:0 i4EvComp:0
02-11 16:46:47.285157 1073 5014 D Task3AFlashTouch: [touch] Cam 1 : Req(#108)/Stt(#105)/i4Opt(4)/FlashOnOff(0)/FlashTypeByTask(3)/FlashOpenByTask(1) Lv(76)/ISO(131)/RGB(892,512,791)
02-11 16:46:47.285422 1073 5014 D Task3AFlashTouch: [updateStatus] status(1->2)
02-11 16:46:47.285431 1073 5014 D Task3AFlashTouch: [touch] Frame Count(9), start waiting AF, exp/afe/isp(39998/5376/4104) //AE 收敛完成,等待AF 收敛
02-11 16:46:47.300013 1073 5124 D TaskAFTrigger: [updateStatus] status(0->1)
02-11 16:46:47.300312 1073 5124 D TaskAFTrigger: [run] Cam 1 : Req(#108)/Stt(#106)/i4Opt(18)/FlashOnOff(0)/AfTrigger(0, 0)
02-11 16:46:47.323328 1073 5014 D Task3AFlashTouch: [touch] Inform AFAE of AFTrigger ActiveItem 16
02-11 16:46:47.324490 1073 5014 D ae_mgr : [doAFAE():monitor] SensorDev:1 Mag:106 CWVY:676 AEStable:1 Index/F:110/330 Algo:39998/5376/4104(131) Real:39998/5376/4104(131) EV/BV/BVWOStrobe:76/26/21 bAAASchedule:0 i4EvComp:0
02-11 16:46:47.324638 1073 5014 D Task3AFlashTouch: [touch] Cam 1 : Req(#109)/Stt(#106)/i4Opt(18)/FlashOnOff(0)/FlashTypeByTask(3)/FlashOpenByTask(1) Lv(76)/ISO(131)/RGB(892,512,791)
02-11 16:46:47.324817 1073 5014 D Task3AFlashTouch: [touch] Frame Count(9), start waiting AF, exp/afe/isp(39998/5376/4104)
02-11 16:46:47.341004 1073 5124 D TaskAFTrigger: [run] Cam 1 : Req(#109)/Stt(#107)/i4Opt(18)/FlashOnOff(0)/AfTrigger(0, 0)
02-11 16:46:47.363335 1073 5014 D Task3AFlashTouch: [touch] Inform AFAE of AFTrigger ActiveItem 16
02-11 16:46:47.363878 1073 5014 D ae_mgr : [doAFAE():monitor] SensorDev:1 Mag:107 CWVY:675 AEStable:1 Index/F:110/330 Algo:39998/5376/4104(131) Real:39998/5376/4104(131) EV/BV/BVWOStrobe:76/26/21 bAAASchedule:0 i4EvComp:0
02-11 16:46:47.363997 1073 5014 D Task3AFlashTouch: [touch] Cam 1 : Req(#110)/Stt(#107)/i4Opt(18)/FlashOnOff(0)/FlashTypeByTask(3)/FlashOpenByTask(1) Lv(76)/ISO(131)/RGB(892,512,791)
02-11 16:46:47.364768 1073 5014 D Task3AFlashTouch: [touch] Frame Count(9), start waiting AF, exp/afe/isp(39998/5376/4104)
02-11 16:46:47.380516 1073 5124 D TaskAFTrigger: [run] Cam 1 : Req(#110)/Stt(#108)/i4Opt(18)/FlashOnOff(0)/AfTrigger(0, 0)
02-11 16:46:47.404716 1073 5014 D Task3AFlashTouch: [touch] Inform AFAE of AFTrigger ActiveItem 16
02-11 16:46:47.405882 1073 5014 D ae_mgr : [doAFAE():monitor] SensorDev:1 Mag:108 CWVY:675 AEStable:1 Index/F:110/330 Algo:39998/5376/4104(131) Real:39998/5376/4104(131) EV/BV/BVWOStrobe:76/26/21 bAAASchedule:0 i4EvComp:0
02-11 16:46:47.406135 1073 5014 D Task3AFlashTouch: [touch] Cam 1 : Req(#111)/Stt(#108)/i4Opt(18)/FlashOnOff(0)/FlashTypeByTask(3)/FlashOpenByTask(1) Lv(76)/ISO(131)/RGB(892,512,791)
02-11 16:46:47.406330 1073 5014 D Task3AFlashTouch: [touch] Frame Count(9), start waiting AF, exp/afe/isp(39998/5376/4104)
02-11 16:46:47.420763 1073 5124 D TaskAFTrigger: [run] Cam 1 : Req(#111)/Stt(#109)/i4Opt(18)/FlashOnOff(0)/AfTrigger(0, 0)
02-11 16:46:47.442911 1073 5014 D Task3AFlashTouch: [touch] Inform AFAE of AFTrigger ActiveItem 16
02-11 16:46:47.444222 1073 5014 D ae_mgr : [doAFAE():monitor] SensorDev:1 Mag:109 CWVY:674 AEStable:1 Index/F:110/330 Algo:39998/5376/4104(131) Real:39998/5376/4104(131) EV/BV/BVWOStrobe:76/26/21 bAAASchedule:0 i4EvComp:0
02-11 16:46:47.444341 1073 5014 D Task3AFlashTouch: [touch] Cam 1 : Req(#112)/Stt(#109)/i4Opt(18)/FlashOnOff(0)/FlashTypeByTask(3)/FlashOpenByTask(1) Lv(76)/ISO(131)/RGB(892,512,791)
02-11 16:46:47.444483 1073 5014 D Task3AFlashTouch: [touch] Frame Count(9), start waiting AF, exp/afe/isp(39998/5376/4104)
02-11 16:46:47.460832 1073 5124 I af_mgr_v3: [getResult] resultNum = 112, afMode = 4, afState = 4, lensState = 0, cafEvReq = 16000, lockAEReq = 0, lensPosition = 491, isFocusFinish = 1, isFocused = 1, focusDistance = 2.235563, eEvent = 0x80
02-11 16:46:47.460845 1073 5124 D TaskAFTrigger: [run] Cam 1 : Req(#112)/Stt(#110)/i4Opt(18)/FlashOnOff(0)/AfTrigger(0, 0)
02-11 16:46:47.460857 1073 5124 D TaskAFTrigger: [updateStatus] status(1->4)
02-11 16:46:47.460863 1073 5124 D TaskAFTrigger: [run] TASK_STATUS_DONE Frame Count(6) //AF 收敛完成,进入下一个状态
02-11 16:46:47.484194 1073 5014 D Task3AFlashTouch: [updateStatus] status(2->1)
02-11 16:46:47.484202 1073 5014 D Task3AFlashTouch: [proceed] Previous Status 1
-
TaskAFTrigger_end
Start time 00:00:09.370467446
Trace TAG:Task3AFlash_end
Start time 00:00:09.517450754
- MTK log TAG
Task3AFlashTouch: \[|Frame Count|setOnOff|setDuty
Task3AFlashTouch:Backstate 固定4帧 113 114 115 116
Task3AFlashTouch: \[|Frame Count|setOnOff|setDuty
02-11 16:46:47.484219 1073 5014 D Task3AFlashTouch: [back] Cam 1 : Req(#113)/Stt(#110)/i4Opt(274)/FlashOnOff(0) Lv(76)/ISO(131)/RGB(892,512,791)
02-11 16:46:47.484307 1073 5014 D Task3AFlashTouch: [back] Frame Count(0), WAIT CLOSE FLASH & GET FLASH OPEN DATA, addr(d46e9000), exp/afe/isp(39998/5376/4104) //取开灯的AAO
02-11 16:46:47.484328 1073 5014 D Task3AFlashTouch: [back] Frame Count(1)
02-11 16:46:47.485845 1073 5014 D ae_mgr : [updateAEInfo2ISP] m_eSensorDev:1 State:5 eAEstate:5 CCU ON:0 Algo:39998/5376/4104(131) P1RealSetting:39998/7104/4108(173/0/0) P2RealSetting:39998/7104/4108(173) P1/P2GainRatioX100:173/173 FrameDuration:40020000 Index:0(110/170) m_u4ISOIdx1StableCount:0 m_u4ISOIdx2StableCount:0 IsNeedUpdateSensor:0 i4LightValue_x10(Real):76(76) Lux:160000 FaceNum:0 RequestNum:112 MagicNum:109 u4ISOBase_1xGain:25 m_u4BinSumRatio:1000 i4AEComp:0 bIsAutoDetHDR:0 i4FDEVdiff:-9344 i4TouchEVdiff:0 i4EVbarEVdiff:0 Ratio:100 FDY/FDT/FDLink: 0/0/650 AI-Shutter(bMotion/MIP/exp/afe/isp/iso): 0/0/39998/7104/4108/174 flicker:0/0 OBC:1024/1024/1024
02-11 16:46:47.509123 1073 5125 I FlashHal: [CAT][flash] setOnOff(): type:1 enable:0 scenario:3 //预闪 关灯
02-11 16:46:47.509165 1073 5125 I StrobeDrvFlashlight: setOnOff(): enable(0).
02-11 16:46:47.510806 1073 5125 I StrobeDrvFlashlight: setOnOff(): off time(6091354).
02-11 16:46:47.523751 1073 5014 D Task3AFlashTouch: [back] Cam 1 : Req(#114)/Stt(#111)/i4Opt(4)/FlashOnOff(0) Lv(76)/ISO(173)/RGB(883,512,787)
02-11 16:46:47.523875 1073 5014 D Task3AFlashTouch: [back] Frame Count(1) Off(1), UPDATE FLASH OPEN DATA, addr(cad61000)
02-11 16:46:47.523897 1073 5014 D Task3AFlashTouch: [back] Frame Count(2)
02-11 16:46:47.563795 1073 5014 D Task3AFlashTouch: [back] Cam 1 : Req(#115)/Stt(#112)/i4Opt(4)/FlashOnOff(0) Lv(76)/ISO(173)/RGB(883,512,787)
02-11 16:46:47.563811 1073 5014 D Task3AFlashTouch: [back] Frame Count(2) Off(1), BYPASS PARTIAL, addr(cab0b000)
02-11 16:46:47.563820 1073 5014 D Task3AFlashTouch: [back] Frame Count(3)
02-11 16:46:47.603369 1073 5014 D Task3AFlashTouch: [back] Cam 1 : Req(#116)/Stt(#113)/i4Opt(4)/FlashOnOff(0) Lv(76)/ISO(173)/RGB(883,512,787)
02-11 16:46:47.603464 1073 5014 D Task3AFlashTouch: [back] Frame Count(3) Off(1), GET FLASH CLOSE DATA, addr(0x78cad61000/19803000) //取关灯的AAO
02-11 16:46:47.603542 1073 5014 I FlashMgrM: setAlgoExpPara(): exp(39998), iso(173)
02-11 16:46:47.604148 1073 5014 W Task3AFlashTouch: [back] doPfOneFrame no-flash, exp/afe/isp(39998/7104/4108)
02-11 16:46:47.604163 1073 5014 I FlashMgrM: setAlgoExpPara(): exp(39998), iso(131)
02-11 16:46:47.607673 1073 5014 D ae_mgr : [getCaptureSetting()] m_i4SensorDev:1 input index/F/base:110/330/3 input setting:39998/5376/4104(131) output setting:40005/5376/4100(131) isSkipManlPline:0
02-11 16:46:47.607694 1073 5014 D ae_mgr : [updateCaptureParams()] m_i4SensorDev:1 Exp.mode:0 Capture Shutter:20004 Sensor gain:3296 Isp gain:4104 ISO:80 u4Index/F/base:110/330/3
02-11 16:46:47.607703 1073 5014 D ae_mgr : [updateCaptureParams()] m_i4SensorDev:1 Modify Exp.mode:0 Capture Shutter:20004 Sensor gain:3296 Isp gain:4104 ISO:80
02-11 16:46:47.604148 1073 5014 W Task3AFlashTouch: [back] doPfOneFrame no-flash, exp/afe/isp(39998/7104/4108)
02-11 16:46:47.607742 1073 5014 W Task3AFlashTouch: [back] doPfOneFrame flash, exp/afe/isp(39998/5376/4104)
02-11 16:46:47.607763 1073 5014 D Task3AFlashTouch: [back] duty(1) weight(50)
02-11 16:46:47.607841 1073 5014 D Task3AFlashTouch: [updateStatus] status(1->4)
02-11 16:46:47.607850 1073 5014 D Task3AFlashTouch: [back] Frame Count(4)
02-11 16:46:47.607909 1073 5014 D Task3AFlashTouch: [~Task3AFlashTouchImp] FlashTouch Destruct done // 预闪流程完成
5. 主闪下发拍照: photoDevice.takePicture
MTK camera app 下发拍照帧
Trace TAG: photoDevice.takePicture
Start time 00:00:09.658526446
- MTK log TAG
onShutterButtonClick|takepicture
onShutterButtonClick|takepicture
02-11 16:46:47.747987 4987 5021 I CamAp_PhotoMode: onShutterButtonClick, is storage ready : true,isDeviceReady = true
02-11 16:46:47.748255 4987 5021 I CamAp_PhotoDevice2Controller: [takePicture] mSession= com.mediatek.camera.common.device.v2.Camera2CaptureSessionProxy@2645571 // app 下发 takepicture
6. Take3ACapture 拍照帧数决策evaluateCaptureSetting
Trace TAG:evaluateCaptureSetting
Start time 00:00:09.679118831
-
主闪拍照决策6帧 : 121 122 123 124 125 126
程序员Android MTK log TAG
MTK_CONTROL_CAPTURE_INTENT|Task3ACapture:|evaluateCaptureSetting|takePicture|doBackupAE|setOnOff|setDuty|TaskEvent:Capture|control.captureIntent:2|onShutterButtonClick
MTK_CONTROL_CAPTURE_INTENT|Task3ACapture:|evaluateCaptureSetting|takePicture|doBackupAE|setOnOff|setDuty|TaskEvent:Capture|control.captureIntent:2|onShutterButtonClick
02-11 16:46:47.747987 4987 5021 I CamAp_PhotoMode: onShutterButtonClick, is storage ready : true,isDeviceReady = true
02-11 16:46:47.748255 4987 5021 I CamAp_PhotoDevice2Controller: [takePicture] mSession= com.mediatek.camera.common.device.v2.Camera2CaptureSessionProxy@2645571 // app 下发 takepicture
02-11 16:46:47.769334 1073 3713 I mtkcam-PipelineModelSession: [submitRequest] <4Cell/0> requestNo:121 { repeating:0 control.aeTargetFpsRange:10,30 control.captureIntent:2 control.enableZsl:1 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:2 }
02-11 16:46:47.769508 1073 3713 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] (0xb400007b93684de0) capture req#:121 // capture 帧号121
02-11 16:46:47.786708 1073 3713 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] trigger feature:NO_FEATURE_NORMAL(0), feature combination:MTK_FEATURE_COMBINATION_SINGLE(0x20000000300f0) for req#121 //capture Feature
02-11 16:46:47.786716 1073 3713 D mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] capture request frames count(mainFrame:1, subFrames:0, preDummyFrames:2, postDummyFrames:3)
02-11 16:46:47.803635 1073 3713 D Hal3Av3 : [parseMeta] MTK_CONTROL_CAPTURE_INTENT(1 -> 2) //连续3帧 下发capture intent 2
02-11 16:46:47.843090 1073 5014 D Hal3Av3 : [setNormal] Dev(1) Req(#122) FrameNum(#121) Dummy(0/1/0) CapInt(1) AE(M:0/E:10000000/F:10000000/S:100) FLASH(M:0) //连续两帧pre dummy 帧
02-11 16:46:47.844604 1073 3713 D Hal3Av3 : [parseMeta] MTK_CONTROL_CAPTURE_INTENT(1 -> 2) //连续3帧 下发capture intent 2
02-11 16:46:47.882767 1073 5014 D Hal3Av3 : [setNormal] Dev(1) Req(#123) FrameNum(#122) Dummy(0/1/0) CapInt(1) AE(M:0/E:10000000/F:10000000/S:100) FLASH(M:0) //连续两帧pre dummy 帧
02-11 16:46:47.884304 1073 3713 D Hal3Av3 : [parseMeta] MTK_CONTROL_CAPTURE_INTENT(1 -> 2) //连续3帧 下发capture intent 2
02-11 16:46:47.917908 1073 5014 I FlashHal: [CAT][flash] setOnOff(): type:1 enable:1 scenario:4 // 主闪光灯开灯
02-11 16:46:47.917968 1073 5014 I StrobeDrvFlashlight: setDuty(): duty(1).
02-11 16:46:47.918082 1073 5014 I StrobeDrvFlashlight: setOnOff(): enable(1).
02-11 16:46:47.923274 1073 5014 I StrobeDrvFlashlight: setOnOff(): on time(6091763).
02-11 16:46:47.923396 1073 5014 W TaskMgr : [sendEvent] TaskEvent:Capture
02-11 16:46:47.923599 1073 5014 D Task3ACapture: [run] Cam 1 : Req(#124)/Stt(#121)/Frm(#123)/i4Opt(516)/FlashOnOff(1)/HQC(1)/RemosaicEn(0)
02-11 16:46:47.923612 1073 5014 D Task3ACapture: [run] Capture Start #(124)
02-11 16:46:47.923736 1073 5014 D Task3ACapture: [run] FLASH UPDATED + #(121)
02-11 16:46:47.923745 1073 5014 D ae_mgr : [doBackupAE()+] i4SensorDev:1
02-11 16:46:47.923760 1073 5014 D ae_mgr : [doBackupAE()-] i4SensorDev:1 m_rAESettingBackup.EvSetting:39998/6272/4148 (ISO:155) m_rAESettingBackup.u4Index/F:112/337 (IndexBase:3)Pre-flash:0
02-11 16:46:47.924113 1073 5014 D Task3ACapture: [run] FLASH UPDATED - #(121)
02-11 16:46:47.924168 1073 5014 D Task3ACapture: [run] Retrieve Capture ExpIndex = 0
02-11 16:46:47.925616 1073 5014 D Task3ACapture: [updateStatus] status(0->1)
02-11 16:46:47.949472 1073 5014 D Hal3Av3 : [setNormal] Dev(1) Req(#125) FrameNum(#124) Dummy(0/0/1) CapInt(1) AE(M:3/E:0/F:0/S:0) FLASH(M:0)
02-11 16:46:47.950135 1073 3713 D Hal3Av3 : [parseMeta] MTK_CONTROL_CAPTURE_INTENT(1 -> 2)
02-11 16:46:47.951652 1073 5014 D Task3ACapture: [run] Cam 1 : Req(#125)/Stt(#122)/Frm(#124)/i4Opt(516)/FlashOnOff(1)/HQC(1)/RemosaicEn(0)
02-11 16:46:47.982897 1073 5014 D Hal3Av3 : [setNormal] Dev(1) Req(#126) FrameNum(#125) Dummy(0/0/1) CapInt(1) AE(M:3/E:0/F:0/S:0) FLASH(M:0)
02-11 16:46:47.984236 1073 3713 D Hal3Av3 : [parseMeta] MTK_CONTROL_CAPTURE_INTENT(1 -> 2)
02-11 16:46:47.985183 1073 5014 D Task3ACapture: [run] Cam 1 : Req(#126)/Stt(#123)/Frm(#125)/i4Opt(516)/FlashOnOff(1)/HQC(1)/RemosaicEn(0)
02-11 16:46:48.010671 1073 5040 I FlashHal: [CAT][flash] setOnOff(): type:1 enable:0 scenario:4 //主闪光灯关灯
02-11 16:46:48.010721 1073 5040 I StrobeDrvFlashlight: setOnOff(): enable(0).
02-11 16:46:48.011339 1073 5040 I StrobeDrvFlashlight: setOnOff(): off time(6091856).
02-11 16:46:48.015948 1073 5014 D Hal3Av3 : [setNormal] Dev(1) Req(#127) FrameNum(#126) Dummy(0/0/1) CapInt(1) AE(M:3/E:0/F:0/S:0) FLASH(M:0)
02-11 16:46:48.017513 1073 5014 D Task3ACapture: [run] Cam 1 : Req(#127)/Stt(#124)/Frm(#126)/i4Opt(516)/FlashOnOff(0)/HQC(1)/RemosaicEn(0)
02-11 16:46:48.017534 1073 5014 D Task3ACapture: [run] Capture End #(124)
02-11 16:46:48.023046 1073 5014 D Task3ACapture: [run] MFNR + flash (0, 0, 1) // MFNR 不是指MultiFrame,而是指mainFlash
02-11 16:46:48.023054 1073 5014 D Task3ACapture: [run] Batch CAP + unlock ratio (pre, cur)=(-1, 124)
02-11 16:46:48.023828 1073 5014 D Task3ACapture: [updateStatus] status(1->4)
02-11 16:46:48.099810 1073 5123 D awb_mgr : [doPvAWB] Skip Frame Count for SEC fast AEC: 2, m_eSensorDev: 1, i4NewSensorMode: 0, rCurrentAWBGain: 883/512/787
02-11 16:46:48.141348 1073 5123 D awb_mgr : [doPvAWB] Skip Frame Count for SEC fast AEC: 1, m_eSensorDev: 1, i4NewSensorMode: 0, rCurrentAWBGain: 883/512/787
02-11 16:46:50.874861 1073 5014 I StrobeDrvFlashlight: setOnOff(): enable(0).
02-11 16:46:50.875427 1073 5014 I StrobeDrvFlashlight: setOnOff(): off time(6091856).
02-11 16:46:51.080360 1073 2103 I StrobeDrvFlashlight: setOnOff(): enable(0).
02-11 16:46:51.080920 1073 2103 I StrobeDrvFlashlight: setOnOff(): off time(6091856)
7. Camera HAL P1 P2 处理
Trace TAG : NormalPipe::deque 、CaptureNode::queue、P2_Capture:enque
P1:NormalPipe::deque: 需要开P1 trace 拆可以看到p1::queue
P2 : CaptureNode::queue
P2_Capture:enque
P2_Capture:enque 拍照帧enque到P2 ,可以以此定位最新的点击拍照按钮的处理事件。
8. Camera P2 拍照帧处理
Trace TAG:p2a:process
p2a:setIsp
Start time 00:00:09.942486831
p2a:process|r121f123s0
r121:请求帧
f123:拍照主帧
s0:sensor 0
9. Camera P2 拍照帧处理结束
Trace TAG: p2a:finish 、P2_Capture:releaseImage()、P2:ApplyRelease
Start time 00:00:10.003458138
10. Camera HAL MDP Node处理
Trace TAG:mdp:process
Start time 00:00:10.004205523
11. Camera Jpeg Node 处理
Trace TAG: hardwareOps_encode、onProcessRequest
Start time 00:00:10.052295446
12. 拍照结果图callback,到app imagereader 收图
Trace TAG:processCaptureResult 、ImageReader 、queueBuffer
MTK log TAG
onLastStrongRef.*requestNo:121|removeRequest.*requestNo:121|CamAp_PhotoDevice2Controller|onShutterButtonClick|capture req#|ImageReader|Open with FUSE|getBuffer|ppl_context.*121|CaptureProcessor|P2C |hardwareOps_encode|waitJpegEncodeReqDone|onRequestProcess|\[capture\]
02-11 16:46:47.747987 4987 5021 I CamAp_PhotoMode: onShutterButtonClick, is storage ready : true,isDeviceReady = true // 点击拍照按钮
02-11 16:46:47.748255 4987 5021 I CamAp_PhotoDevice2Controller: [takePicture] mSession= com.mediatek.camera.common.device.v2.Camera2CaptureSessionProxy@2645571 //下发拍照
02-11 16:46:47.769464 1073 3713 D mtkcam-P2NodeDecisionPolicy: [evaluateRequest] Only use P2C node
02-11 16:46:47.769478 1073 3713 D mtkcam-P2NodeDecisionPolicy: [checkIsOutputYuvFromP2c] find output YUV stream (0x2) from P2C in imageIds_Capture
02-11 16:46:47.769508 1073 3713 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] (0xb400007b93684de0) capture req#:121
02-11 16:46:47.803794 1073 3713 D MtkCam/ppl_context: [sendFrameToRootNodes] r121 frameNo:121 (X) -> 0x1 success; erase record // 拍照帧流经的pipeline
02-11 16:46:47.842812 1073 5014 D MtkCam/ppl_context: [onCallback] param: (id:1), (lastFrameNum = 121), (eNoticeType = 0)
02-11 16:46:47.844740 1073 3713 D MtkCam/ppl_context: [sendFrameToRootNodes] r121 frameNo:122 (X) -> 0x1 success; erase record
02-11 16:46:47.884431 1073 3713 D MtkCam/ppl_context: [sendFrameToRootNodes] r121 frameNo:123 (X) -> 0x1 success; erase record
02-11 16:46:47.918096 1073 3713 D MtkCam/ppl_context: [sendFrameToRootNodes] r121 frameNo:124 (X) -> 0x1 success; erase record
02-11 16:46:47.950248 1073 3713 D MtkCam/ppl_context: [sendFrameToRootNodes] r121 frameNo:125 (X) -> 0x1 success; erase record
02-11 16:46:47.984367 1073 3713 D MtkCam/ppl_context: [sendFrameToRootNodes] r121 frameNo:126 (X) -> 0x1 success; erase record
02-11 16:46:48.026995 1073 5042 D MtkCam/ppl_context: [onDispatchFrame] r121 frameNo:123 0x1 -> 0x14 READY(1/1)
02-11 16:46:48.027120 1073 5042 I MtkCam/P2/CaptureNode: [queue] P2C cam 0: (0xb400007ac3653d30) R/F Num: 121/123 // queue 拍照帧 到p2 CaptureNode
02-11 16:46:48.027234 1073 5042 D MtkCam/P2/MWFrameRequest: [printIOMap] P2C cam 0 MWFrame:#123 MWReq:#121, frame 123 : iomap: [0]=>img[3/3], meta[3/2], fps[0.00]
02-11 16:46:48.027474 1073 5080 D MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0: isZoom 0, isVsdof 0, isMultiCam 0, isHidlIsp 0
02-11 16:46:48.028875 1073 5080 D MtkCam/P2/CaptureProcessor: [onEnque]P2 frame number(123) main sensorId(0) sub sensor(-1) isPhyStream(0) isPhyControl(0)
02-11 16:46:48.028898 1073 5080 I MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0 MWFrame:#123 MWReq:#121, frame 123 : Index/Count:-1/0 Feature:0x20000000300f0
02-11 16:46:48.028911 1073 5080 I MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0 MWFrame:#123 MWReq:#121, frame 123 : Index/Count:-1/0 isEarlyNotificationTrigger:1, isCshot:0, SS_CapHint:0
02-11 16:46:48.028941 1073 5080 D MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0 MWFrame:#123 MWReq:#121, frame 123 : [SS] iShootingMode (0)
02-11 16:46:48.028991 1073 5080 D MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0 MWFrame:#123 MWReq:#121, frame 123 : [SS] use out_jpeg size as validSize(2296,4080)
02-11 16:46:48.029003 1073 5080 D MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0 MWFrame:#123 MWReq:#121, frame 123 : [SS] Update SEC_ANDROID_SCALER_VALID_IMAGE_REGION (0,0)(2296x4080)
02-11 16:46:48.029015 1073 5080 I MtkCam/P2/CaptureProcessor: [onEnque] P2C cam 0 MWFrame:#123 MWReq:#121, frame 123 : enqued request to captureFeaturePipe, R/F Num:121/123
02-11 16:46:48.032876 1073 5074 I MtkCam/CapturePipe/P2ANode: [onRequestProcess](4) +, R/F/S Num: 121/123/0
02-11 16:46:48.032908 1073 5074 D MtkCam/CapturePipe/P2ANode: [onRequestProcess]Main Full size enque process
02-11 16:46:48.037758 1073 5074 I MtkCam/CapturePipe/P2ANode: [onRequestProcess](4) -, R/F/S Num: 121/123/0
02-11 16:46:48.038761 1073 5074 I MtkCam/P2/CaptureProcessor: [onContinue] P2C cam 0 MWFrame:#123 MWReq:#121, frame 123-0 : (0xb400007a33641c30) notify next capture, request count:1, R/F Num:121/123
02-11 16:46:48.041062 4987 5021 I CamAp_PhotoDevice2Controller: [doCreateAndConfigRequest] mCamera2Proxy =com.mediatek.camera.common.device.v2.Camera2Proxy@c77aae7
02-11 16:46:48.094012 1073 5162 D MtkCam/P2/MWFrame: [doRelease] P2C cam 0 MWFrame:#123 MWReq:#121, frame 123 : all streams(11), using(8), status: s2:d0:App:YCrCb_420_SP:0|SW_READ_OFTEN(2),Meta:App:Control(2),Hal:Image:P1:Fullraw_main1(1),Hal:Image:P1:Resizeraw_main1(1),Hal:Image:STT_main1(1),Hal:Image:JpegYuv(2),Hal:Image:ThumbnailYuv(2),Hal:Meta:P1:Dynamic_main1(2),Hal:Meta:P2C:Dynamic(2),App:Meta:DynamicP1_main1(2),App:Meta:DynamicP2Cap(2),
02-11 16:46:48.094188 1073 5162 I MtkCam/P2/CaptureProcessor: [notifyRelease] P2C cam 0: notify release, R/F Num:121/123
02-11 16:46:48.094278 1073 5162 D MtkCam/P2/MWFrame: [doRelease] P2C cam 0 MWFrame:#123 MWReq:#121, frame 123 : all streams(11), using(7), status: s2:d0:App:YCrCb_420_SP:0|SW_READ_OFTEN(1),Meta:App:Control(2),Hal:Image:P1:Fullraw_main1(0),Hal:Image:P1:Resizeraw_main1(0),Hal:Image:STT_main1(0),Hal:Image:JpegYuv(2),Hal:Image:ThumbnailYuv(2),Hal:Meta:P1:Dynamic_main1(2),Hal:Meta:P2C:Dynamic(2),App:Meta:DynamicP1_main1(2),App:Meta:DynamicP2Cap(2),
02-11 16:46:48.094421 1073 5162 I MtkCam/P2/CaptureProcessor: [notifyRelease] P2C cam 0: notify release, R/F Num:121/123
02-11 16:46:48.094604 1073 5075 I MtkCam/CapturePipe/MDPNode: [onRequestProcess](25) +, R/F/S Num: 121/123/0
02-11 16:46:48.094633 1073 5075 D MtkCam/CapturePipe/MDPNode: [onRequestProcess]isIgnoreCrop:0, isCroppedFSYUV:0
02-11 16:46:48.094666 1073 5075 D MtkCam/CapturePipe/MDPNode: [onRequestProcess]Use source image size as active region size
02-11 16:46:48.095346 1073 5075 D MtkCam/CapturePipe/MDPNode: [onRequestProcess]Resized(0) ignoreCrop(0) CroppedFSYUV(0) sensorId(0) R/F/M:121/123/124, Type(jpeg) Rot(4) Crop(0,388)(4080x2296) Size(2296x4080) Cap(1)
02-11 16:46:48.095608 1073 5075 D MtkCam/CapturePipe/MDPNode: [onRequestProcess]CZ Port(0) nvram:0xb4000078e0502408 idx:0 ispProfile:2 HFG Port(0) nvram:0xb4000078e0552e44 idx:452 ispProfile:2 DRE cmd:0x4 Type:0x1(0/0) User:30977 Buffer:0x0 nvram:0xb4000078e051621c idx:0 ispProfile:2 pTuningBuffer: 0xb400007a43695ec0, iTuningBufSize: 52 setting:0x0xb400007a13639e90 PQtype:0xe Iso:80 Timestamp:164642717
02-11 16:46:48.097002 4987 5021 I CamAp_CaptureSurface: [getBuffer] image.getFormat = 35 image.getWidth = 160 image.getHeight = 96 format = 35 captureType = thumbnail //app 接收拍照帧的缩略图
02-11 16:46:48.131586 1073 5075 I MtkCam/CapturePipe/MDPNode: [onRequestProcess]Update Mdp debug info: addr 0xb400007b6378f310, size 30000 95 95
02-11 16:46:48.132341 1073 5075 I MtkCam/CapturePipe/MDPNode: [onRequestProcess](25) -, R/F/S Num: 121/123/0
02-11 16:46:48.132743 1073 5075 D MtkCam/P2/MWFrame: [doRelease] P2C cam 0 MWFrame:#123 MWReq:#121, frame 123 : all streams(11), using(0), status: s2:d0:App:YCrCb_420_SP:0|SW_READ_OFTEN(0),Meta:App:Control(1),Hal:Image:P1:Fullraw_main1(0),Hal:Image:P1:Resizeraw_main1(0),Hal:Image:STT_main1(0),Hal:Image:JpegYuv(1),Hal:Image:ThumbnailYuv(1),Hal:Meta:P1:Dynamic_main1(1),Hal:Meta:P2C:Dynamic(1),App:Meta:DynamicP1_main1(1),App:Meta:DynamicP2Cap(1),
02-11 16:46:48.133006 1073 5075 D MtkCam/ppl_context: [onDispatchFrame] r121 frameNo:123 0x14 -> 0x16 READY(1/1)
02-11 16:46:48.133052 1073 5075 D MtkCam/ppl_context: [onDispatchFrame] r121 frameNo:123 0x14 -> 0x23 READY(1/1)
02-11 16:46:48.133278 1073 5075 I MtkCam/P2/CaptureProcessor: [onCompleted] P2C cam 0 MWFrame:#123 MWReq:#121, frame 123-0 : (0xb400007a33641c30) erased a completed request, request count:0, R/F Num:121/123
02-11 16:46:48.133466 1073 5041 I MtkCam/JpegNode: [waitJpegEncodeReqDone] mReqNewTriggerEncodeCond wait -
02-11 16:46:48.133477 1073 5041 D MtkCam/JpegNode: [waitJpegEncodeReqDone] wait start: mJpegWaitDoneQueue size 1!
02-11 16:46:48.142688 1073 5163 D MtkCam/JpegNode: [hardwareOps_encode] + frameNo(123), requestNo(121), src: 2296x4080, dst: 2296x4080, format: 0x2300, crop(0,0;2296,4080), bsOffset(290688)
02-11 16:46:48.142779 1073 5164 D MtkCam/JpegNode: [hardwareOps_encode] + frameNo(123), requestNo(121), src: 170x96, dst: 160x96, format: 0x2300, crop(56,0;58,96), bsOffset(1408)
02-11 16:46:48.163314 1073 5041 D mtkcam-pipeline: [onLastStrongRef] [ requestNo:121 frameNo:123 ] frame end //拍照帧 HAL 处理完成
02-11 16:46:48.165027 4987 5021 I CamAp_CaptureSurface: [getBuffer] image.getFormat = 256 image.getWidth = 4080 image.getHeight = 2296 format = 256 captureType = jpeg
// APP 接收拍照帧
02-11 16:46:48.198899 2193 3478 D MediaProvider: Open with FUSE. FilePath: /storage/emulated/0/DCIM/Camera/IMG_20250211_164648_175.jpg. Uid: 10100. Media Capabilities Uid: 0. ShouldRedact: false. ShouldTranscode: false
2.5 腾讯水印相机闪光灯拍照
腾讯水印相机 拍照流程几乎跟MTK camera 流程一致,走预闪,主闪流程。
scenario:3 预闪
scenario:4 主闪
2.5.1 水印相机下发预闪Tag,进行预闪,主闪
2.5.2 主闪存图处理
2.6 美图秀秀,美颜相机、B612 闪光灯拍照
美图秀秀、美颜相机、B612等相机 拍照与视频录制统一一个button(点击拍照,长按录制视频),app 下发的flash on 场景为scenario:1 视频手电筒 scenario;
至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!