Android 相机MFNR 拍照trace 分析

和你一起终身学 习,这里是程序员Android

其实一眼就喜欢的不是文案,

而是似曾相识的经历 O(∩_∩)O
经典好文推荐,通过阅读本文,您将收获以下知识点:

一、多帧拍照请求trace流程分析

二、多帧拍照回帧trace流程分析

三、多帧拍照 log流程分析

一、多帧拍照请求trace流程分析

多帧拍照请求概览如下:


多帧拍照请求概览

1.1 APP 下发拍照请求到 Camera Framework

1.1.1 Trace关键字如下:

APP

deliverInputEvent: app 点击事件处理

CameraUnitCamera2ImplTakePicture: app 下发拍照请求

binder transaction :通过bind 跟FWK交互

FWK

binder reply :响应app 下发的bind

submitRequestList:Camera FWK提交拍照请求给HAL,并包含拍照帧数

captureList

submitRequestsHelper

createCaptureRequest :比如多帧会下发4 帧

queueRequestList

unpauseForNewRequests:暂停新的拍照请求

1.1.2 trace 拍照截图举例

点击拍照按钮后,app 下发拍照请求举例如下:

trace 拍照截图举例

1.1.3 MFNR 下发4帧请求createCaptureRequest举例

多帧拍照,下发多帧的张数,trace 上可以通过createCaptureRequest 来确认

MFNR 下发4帧请求createCaptureRequest举例 如下:

MFNR 下发4帧请求createCaptureRequest举例

1.2 Camera Framework下发拍照请求到 camera HAL中

1.2.1 Trace关键字如下

FWK

sendRequestsBatch:Camera FWK 下发批处理请求

CameraHal::processBatchCaptureRequests: Camera FWK 每帧请求到HAL

HIDL::ICameraDeviceSession::processCaptureRequest_3_4::client: Camera 向Camera HAL请求一帧

binder transaction

CAM HAL

binder reply

HIDL::ICameraDeviceSession::processCaptureRequest_3_4::server :Camera HAL接受处理Camera FWK 请求

processCaptureRequest_3_4

processCaptureRequest

submitOneRequest

onRequest_EvaluateRequest

evaluateRequest

FeatureSettingPolicy::evaluateRequest

evaluateCaptureSetting

negotiate

onRequest_ProcessEvaluatedFrame

processEvaluatedFrame

onProcessEvaluatedFrame

submitZslRequest:Camera HAL 提交拍照请求帧

makePipelineFrame

queue|requestNo:97 frameNo:97

onFrameUpdated

1.2.2 下发拍照请求 trace 截图举例如下

确认请求拍照帧号举例:

下发拍照请求 trace 截图举例

1.2.3 拍照log关键字

control.captureIntent:2|capture req#

拍照 log 举例如下
go 复制代码
01-02 09:05:10.695442  1161  1642 I mtkcam-PipelineModelSession: [submitRequest] <Default/1> requestNo:94 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:2 control.enableZsl:1 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:2 }
01-02 09:05:10.695560  1161  1642 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] (0xb4000075a3a43020) capture req#:94
01-02 09:05:10.734815  1161  1642 I mtkcam-PipelineModelSession: [submitRequest] <Default/1> requestNo:95 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:2 control.enableZsl:1 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:2 }
01-02 09:05:10.734937  1161  1642 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] (0xb4000075a3a43020) capture req#:95
01-02 09:05:10.770126  1161  1645 I mtkcam-PipelineModelSession: [submitRequest] <Default/1> requestNo:96 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:2 control.enableZsl:1 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:2 }
01-02 09:05:10.770526  1161  1645 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] (0xb4000075a3a43020) capture req#:96
01-02 09:05:10.795720  1161  1645 I mtkcam-PipelineModelSession: [submitRequest] <Default/1> requestNo:97 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:2 control.enableZsl:1 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:2 }
01-02 09:05:10.795846  1161  1645 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] (0xb4000075a3a43020) capture req#:97
01-02 09:05:10.958217  1161  1642 I mtkcam-FeatureSettingPolicy_ISP: [evaluateCaptureSetting] (0xb4000075a3be0c58) capture req#:94 (count:4, index:0)
01-02 09:05:13.924135  1161  1644 I mtkcam-FeatureSettingPolicy_ISP: [evaluateCaptureSetting] (0xb400007592195818) capture req#:94 (count:1, index:0)

二、多帧拍照回帧trace流程分析

2.1 多帧拍照回帧概览如下

多帧拍照回帧概览 举例如下:

多帧拍照回帧概览

2.2 Camera HAL 请求返回帧处理

请求返回帧 举例如下:

Camera HAL 请求返回帧

2.2.1 Trace 关键字如下:

CAM HAL

onDispatchFrame|requestNo:97 frameNo:97 nodeId:1 : 处理拍照请求帧97

CaptureNode::queue

P2_Capture:enque()

MWFrameRequest::createRequests->createP2ImgMap

p2a:process|r97f97s1 :RequestNo : 97 FrameNo: 97 SensorID :1 前摄

请求帧trace 举例


r97f97s1 请求帧trace 举例

p2a:finish|r97f971)

P2_Capture:notifyRelease()

P2:ApplyRelease

P2:DispatchFrame

processCaptureResult

convertToHidlCaptureResults

HIDL::ICameraDeviceCallback::processCaptureResult_3_4::client

2.3 Camera FWK && Camera APP 请求返回帧处理

2.3.1 请求返回帧处理举例:


请求返回帧处理举例

CAM FWK

HIDL::ICameraDeviceCallback::processCaptureResult_3_4::server

queueBuffer

APP

binder reply

queueBuffer

ImageReader : APP 接收到 Camera FWK PostView

2.4 MTK BSS效果选帧处理

2.4.1 BSS效果选帧

BSS(Best Shot Selection)MTK 最佳选帧算法,拍照返回帧的效果的一些处理,主要优化图片质量效果

packIspTuningDataToHeap: 4帧拍照会有5个,每帧一个,在MFNR处理后会还有一个

downSampleImageBufferHeap

doZipWithBss

MTK BSS效果选帧处理举例如下:

MTK BSS效果选帧处理

2.5 app 请求返回帧处理

APP拿到请求返回帧后对图片进行处理,

比如多帧算法,人脸识别,美颜算法,滤镜,镜像等等,app 处理完之后就开始压jpeg进行图片保存。

app 请求返回帧处理大致流程如下:

app 请求返回帧处理

三、多帧拍照 log流程分析

3.1 拍照log分析

拍照 log关键字:
CameraTest |capture req#|select size|connect call|imgoDefaultRequest|MtkCam/StreamingPipe/Timer.*Frame timer|P2C cam 1: notify release|AppMgr-configureStreams|capture_algo_list|submitRequest.*requestNo:0|powerOn|configureStreams_3_6|convertStreamConfigurationFromHidl|control.captureIntent:2|1st request - OK|evaluateCaptureSetting.*trigger feature|onProcessEvaluatedFrame|ImageReader

3.2 open camera 上电阶段

log分析举例如下:

go 复制代码
// apk 包名, camera id 1: 前置  API2
01-02 09:05:07.465981  1069  1713 I CameraService::connect call (PID -1 "com.android.camera", camera ID 1) and Camera API version 2
// Sensor 上电 PowerOn 
01-02 09:05:07.479948  1161 16439 I mtkcam-DeviceAdapter: 1[HalDeviceAdapter::powerOn] powerOn +
01-02 09:05:07.479982  1161 16439 D mtkcam-DeviceAdapter: 1[HalDeviceAdapter::powerOn] change priority
01-02 09:05:07.480312  1161 16440 D mtkcam-DeviceAdapter: [initSensor] powerOnSensor0
01-02 09:05:07.480366  1161 16440 D MtkCam/HalSensor: [powerOn] sensorIdx : 1
01-02 09:05:07.487151  1161 16439 D MtkCam/Utils: {CamProfile}[HalDeviceAdapter:1::powerOn] 3A Hal -: (0-th) ===> [start-->now: 7 ms]
01-02 09:05:07.490895  1161 16439 D MtkCam/Utils: {CamProfile}[HalDeviceAdapter:1::powerOn] ISP Hal -: (1-th) ===> [start-->now: 10 ms] [last-->now: 3 ms]
01-02 09:05:07.515776  1161 16440 D MtkCam/HalSensor: [powerOn] - <HalDeviceAdapter:1> mSensorIdx = 0x1
01-02 09:05:07.515791  1161 16440 D MtkCam/HalSensor: [sensorPowerOnCountInc] caller(HalDeviceAdapter:1) sensorIdx(0x1) powerOn count: 1
01-02 09:05:07.515858  1161 16439 D MtkCam/Utils: {CamProfile}[HalDeviceAdapter:1::powerOn] Sensor powerOn -: (2-th) ===> [start-->now: 35 ms] [last-->now: 24 ms]
01-02 09:05:07.515915  1161 16439 I mtkcam-DeviceAdapter: 1[HalDeviceAdapter::powerOn] 3A notifyPowerOn
01-02 09:05:07.516048  1161 16439 D MtkCam/Utils: {CamProfile}[HalDeviceAdapter:1::powerOn] 3A notifyPowerOn -: (3-th) ===> [start-->now: 36 ms] [last-->now: 0 ms]
01-02 09:05:07.516056  1161 16439 I mtkcam-DeviceAdapter: 1[HalDeviceAdapter::powerOn] powerOn -

3.3 预览请求配流

log分析举例如下:

go 复制代码
//app 请求配流
01-02 09:05:07.530467  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::configureStreams_3_6] +
01-02 09:05:07.530577  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::convertStreamConfigurationFromHidl] {.v3_2 = {.id = 0, .streamType = OUTPUT, .width = 960, .height = 720, .format = YCBCR_420_888, .usage = CPU_READ_NEVER | CPU_READ_RARELY | CPU_READ_OFTEN | CPU_WRITE_NEVER | GPU_TEXTURE (0x103), .dataSpace = UNKNOWN | STANDARD_UNSPECIFIED | STANDARD_BT601_625 | TRANSFER_UNSPECIFIED | TRANSFER_LINEAR | TRANSFER_SRGB | TRANSFER_SMPTE_170M | RANGE_UNSPECIFIED | RANGE_FULL | V0_JFIF (0x8c20000), .rotation = ROTATION_0}, .physicalCameraId = "", .bufferSize = 0}
01-02 09:05:07.530609  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::convertStreamConfigurationFromHidl] {.v3_2 = {.id = 1, .streamType = OUTPUT, .width = 3264, .height = 2448, .format = YCBCR_420_888, .usage = CPU_READ_NEVER | CPU_READ_RARELY | CPU_READ_OFTEN | CPU_WRITE_NEVER (0x3), .dataSpace = UNKNOWN | STANDARD_UNSPECIFIED | STANDARD_BT601_625 | TRANSFER_UNSPECIFIED | TRANSFER_LINEAR | TRANSFER_SRGB | TRANSFER_SMPTE_170M | RANGE_UNSPECIFIED | RANGE_FULL | V0_JFIF (0x8c20000), .rotation = ROTATION_0}, .physicalCameraId = "", .bufferSize = 0}
01-02 09:05:07.530665  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::convertStreamConfigurationFromHidl] {.v3_2 = {.id = 2, .streamType = OUTPUT, .width = 3264, .height = 2448, .format = RAW10, .usage = CPU_READ_NEVER | CPU_READ_RARELY | CPU_READ_OFTEN | CPU_WRITE_NEVER (0x3), .dataSpace = UNKNOWN | ARBITRARY | STANDARD_UNSPECIFIED | TRANSFER_UNSPECIFIED | RANGE_UNSPECIFIED (0x1), .rotation = ROTATION_0}, .physicalCameraId = "", .bufferSize = 0}
01-02 09:05:07.530709  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::convertStreamConfigurationFromHidl] {.v3_2 = {.id = 3, .streamType = OUTPUT, .width = 2560, .height = 1920, .format = YV12, .usage = CPU_READ_NEVER | CPU_READ_RARELY | CPU_READ_OFTEN | CPU_WRITE_NEVER (0x3), .dataSpace = UNKNOWN | STANDARD_UNSPECIFIED | STANDARD_BT601_625 | TRANSFER_UNSPECIFIED | TRANSFER_LINEAR | TRANSFER_SRGB | TRANSFER_SMPTE_170M | RANGE_UNSPECIFIED | RANGE_FULL | V0_JFIF (0x8c20000), .rotation = ROTATION_0}, .physicalCameraId = "", .bufferSize = 0}
01-02 09:05:07.530735  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::convertStreamConfigurationFromHidl] {.v3_2 = {.id = 4, .streamType = OUTPUT, .width = 1280, .height = 720, .format = YV12, .usage = CPU_READ_NEVER | CPU_READ_RARELY | CPU_READ_OFTEN | CPU_WRITE_NEVER (0x3), .dataSpace = UNKNOWN | STANDARD_UNSPECIFIED | STANDARD_BT601_625 | TRANSFER_UNSPECIFIED | TRANSFER_LINEAR | TRANSFER_SRGB | TRANSFER_SMPTE_170M | RANGE_UNSPECIFIED | RANGE_FULL | V0_JFIF (0x8c20000), .rotation = ROTATION_0}, .physicalCameraId = "", .bufferSize = 0}
01-02 09:05:07.530753  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::convertStreamConfigurationFromHidl] operationMode=32769
01-02 09:05:07.531418  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::convertStreamConfigurationFromHidl] streamId:0 type:OUT (w,h) = (960,720) format:35 usage:0x103 dataSpace:8c20000 rotation:0 physicalCameraId: bufferSize:0
01-02 09:05:07.531446  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::convertStreamConfigurationFromHidl] streamId:1 type:OUT (w,h) = (3264,2448) format:35 usage:0x3 dataSpace:8c20000 rotation:0 physicalCameraId: bufferSize:0
01-02 09:05:07.531470  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::convertStreamConfigurationFromHidl] streamId:2 type:OUT (w,h) = (3264,2448) format:37 usage:0x3 dataSpace:1 rotation:0 physicalCameraId: bufferSize:0
01-02 09:05:07.531493  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::convertStreamConfigurationFromHidl] streamId:3 type:OUT (w,h) = (2560,1920) format:842094169 usage:0x3 dataSpace:8c20000 rotation:0 physicalCameraId: bufferSize:0
01-02 09:05:07.531517  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::convertStreamConfigurationFromHidl] streamId:4 type:OUT (w,h) = (1280,720) format:842094169 usage:0x3 dataSpace:8c20000 rotation:0 physicalCameraId: bufferSize:0
01-02 09:05:07.531529  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::convertStreamConfigurationFromHidl] operationMode=32769
// selectsize sensormode
01-02 09:05:07.540522  1161  1644 I mtkcam-SensorSettingPolicy: select size(3264x2448)@30  sensorMode:0 hdrSensorMode:0 hdrHalMode:0, hfpsMode:0, staggerScenarios:0
// P1 IMGO RRZO
01-02 09:05:07.540946  1161  1644 I mtkcam-P1HwSettingPolicy: { .imgoAlloc={ format:0x2201 3264x2448 } .imgoDefaultRequest={ format:0x2201 3264x2448 } .imgoSeamlessRequest={ format:0 0x0 } .rrzoDefaultRequest={ format:0x2205 1280x960 } .rssoSize=288x512 .pixelMode=2 .usingCamSV=0 }
//app 请求配流
01-02 09:05:07.552660  1161  1644 D mtkcam-AppStreamMgr: [AppMgr-configureStreams]  0  960x720  OUT ImgFormat:0x1000(NV12) BufPlanes(strides/sizeInBytes):[ 960/691200 960/345600 ] startOffset:0 bufStep:0 t:0/r:0 maxBuffers:12 d/s:0x08c20000(V0_JFIF|STANDARD_BT601_625|TRANSFER_SMPTE_170M|RANGE_FULL) s0:d1:App:NV12:0|SW_READ_OFTEN|HW_TEXTURE AllocImgFormat:0x1000(NV12) AllocBufPlanes(strides/sizeInBytes):[ 960/691200 960/345600 ] Real:0x1000(NV12) Request:0x23(YCbCr_420_888) Override:0x23(YCbCr_420_888) Hal-Client-usage:0x103(0|SW_READ_OFTEN|HW_TEXTURE) Hal-usage:0x20033(0|SW_READ_OFTEN|SW_WRITE_OFTEN|HW_CAMERA_WRITE) HalStream::(consumer/producer)Usage:0/0x20033 0xb4000075a3a274c0 phy:-1
01-02 09:05:07.552684  1161  1644 D mtkcam-AppStreamMgr: [AppMgr-configureStreams]  0x1 3264x2448 OUT ImgFormat:0x11(NV21) BufPlanes(strides/sizeInBytes):[ 3264/7990272 3264/4157248 ] startOffset:0 bufStep:0 t:0/r:0 maxBuffers:12 d/s:0x08c20000(V0_JFIF|STANDARD_BT601_625|TRANSFER_SMPTE_170M|RANGE_FULL) s1:d1:App:YCrCb_420_SP:0|SW_READ_OFTEN AllocImgFormat:0x11(NV21) AllocBufPlanes(strides/sizeInBytes):[ 3264/7990272 3264/4157248 ] 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 0xb4000075593c6840 phy:-1
01-02 09:05:07.552708  1161  1644 D mtkcam-AppStreamMgr: [AppMgr-configureStreams]  0x2 3264x2448 OUT ImgFormat:0x2201(BAYER10) BufPlanes(strides/sizeInBytes):[ 4080/9987840 ] startOffset:0 bufStep:0 t:0/r:0 maxBuffers:8 d/s:0x00000001(ARBITRARY) s2:d1:App:RAW10:0|SW_READ_OFTEN AllocImgFormat:0x21(BLOB) AllocBufPlanes(strides/sizeInBytes):[ 9987840/9987840 ] Real:0x25(RAW10) Request:0x25(RAW10) Override:0x25(RAW10) 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 0xb4000075920f0040 phy:-1
01-02 09:05:07.552733  1161  1644 D mtkcam-AppStreamMgr: [AppMgr-configureStreams]  0x3 2560x1920 OUT ImgFormat:0x32315659(YV12) BufPlanes(strides/sizeInBytes):[ 2560/4915200 1280/1228800 1280/1232640 ] startOffset:0 bufStep:0 t:0/r:0 maxBuffers:12 d/s:0x08c20000(V0_JFIF|STANDARD_BT601_625|TRANSFER_SMPTE_170M|RANGE_FULL) s3:d1:App:YV12:0|SW_READ_OFTEN AllocImgFormat:0x32315659(YV12) AllocBufPlanes(strides/sizeInBytes):[ 2560/4915200 1280/1228800 1280/1232640 ] Real:0x32315659(YV12) Request:0x32315659(YV12) Override:0x32315659(YV12) 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 0xb4000075593c5180 phy:-1
01-02 09:05:07.552756  1161  1644 D mtkcam-AppStreamMgr: [AppMgr-configureStreams]  0x4 1280x720  OUT ImgFormat:0x32315659(YV12) BufPlanes(strides/sizeInBytes):[ 1280/921600 640/230400 640/263040 ] startOffset:0 bufStep:0 t:0/r:0 maxBuffers:12 d/s:0x08c20000(V0_JFIF|STANDARD_BT601_625|TRANSFER_SMPTE_170M|RANGE_FULL) s4:d1:App:YV12:0|SW_READ_OFTEN AllocImgFormat:0x32315659(YV12) AllocBufPlanes(strides/sizeInBytes):[ 1280/921600 640/230400 640/263040 ] Real:0x32315659(YV12) Request:0x32315659(YV12) Override:0x32315659(YV12) 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 0xb4000075a3a25540 phy:-1
01-02 09:05:07.553218  1161  1644 D mtkcam-dev3-hidl: [1-hidl-session::configureStreams_3_6] -
//下发第一帧预览请求
01-02 09:05:07.592050  1161  1644 I mtkcam-PipelineModelSession: [submitRequest] <Default/1> requestNo:0 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:1 control.enableZsl:0 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:1 }
01-02 09:05:07.597302  1161  1644 D mtkcam-dev3: [1-session::processCaptureRequest] -> 1st request - OK

3.4 HAL 出图阶段并返回APP 显示

log分析举例如下:

go 复制代码
//第一帧预览HAL 测返回
01-02 09:05:07.756047  1161 16485 D MtkCam/StreamingPipe/Timer: [print]Frame timer [#    1/   0][t  24][io   0][tof  0/  0][d  0/  0][mss  0/  0/  0/  0][a 15/  5/ 10][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  6/  1/  4][e  0][r  0/  0][w_A  0/  0/  0/  0 w_B  0/  0/  0/  0][x  0][disp  0/  0][async 20/ 20][p2sm  0/  0/  0][fps0.00/0.00/  5/ 30]
// camera app display 显示
01-02 09:05:07.759964  2392  2392 E CameraManager: CameraTest Displayed com.android.camera

3.5 点击拍照,选帧存图阶段

log分析举例如下:

go 复制代码
//点击拍照, 多帧拍照 4帧 mfll
01-02 09:05:10.609488  2392 16153 E CameraManager: CameraTest Shutter Respond Start, count: 0
01-02 09:05:10.609667  2392 16153 E CameraManager: CameraTest Shutter Respond Start
01-02 09:05:10.736028  2392  2392 E BaseMode: CameraTest Shutter clickable Restart
01-02 09:05:10.788154  2392  2392 E BaseMode: CameraTest Shutter clickable Restart
01-02 09:05:10.803813  2392  2392 E BaseMode: CameraTest Shutter clickable Restart
01-02 09:05:10.834660  2392  2392 E BaseMode: CameraTest Shutter clickable Restart
//capture req# / control.captureIntent:2  2表示拍照
01-02 09:05:10.695442  1161  1642 I mtkcam-PipelineModelSession: [submitRequest] <Default/1> requestNo:94 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:2 control.enableZsl:1 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:2 }
01-02 09:05:10.734815  1161  1642 I mtkcam-PipelineModelSession: [submitRequest] <Default/1> requestNo:95 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:2 control.enableZsl:1 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:2 }
01-02 09:05:10.770126  1161  1645 I mtkcam-PipelineModelSession: [submitRequest] <Default/1> requestNo:96 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:2 control.enableZsl:1 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:2 }
01-02 09:05:10.795720  1161  1645 I mtkcam-PipelineModelSession: [submitRequest] <Default/1> requestNo:97 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:2 control.enableZsl:1 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:2 }
01-02 09:05:10.695560  1161  1642 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] (0xb4000075a3a43020) capture req#:94
01-02 09:05:10.734937  1161  1642 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] (0xb4000075a3a43020) capture req#:95
01-02 09:05:10.770526  1161  1645 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] (0xb4000075a3a43020) capture req#:96
01-02 09:05:10.795846  1161  1645 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] (0xb4000075a3a43020) capture req#:97
// 拍照Feature 多帧降噪 MTK_FEATURE_MFNR 
01-02 09:05:10.703491  1161  1642 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] trigger feature:MTK_FEATURE_MFNR(0x1), feature combination:MTK_FEATURE_COMBINATION_ISP_HIDL_SOURCE_MFNR(0x300d1) for req#94
01-02 09:05:10.736608  1161  1642 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] trigger feature:MTK_FEATURE_MFNR(0x1), feature combination:MTK_FEATURE_COMBINATION_ISP_HIDL_SOURCE_MFNR(0x300d1) for req#95
01-02 09:05:10.774027  1161  1645 I mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] trigger feature:MTK_FEATURE_MFNR(0x1), feature combination:MTK_FEATURE_COMBINATION_ISP_HIDL_SOURCE_MFNR(0x300d1) for req#96
01-02 09:05:10.705427  1161  1642 D mtkcam-PipelineModelSessionDefault: [onProcessEvaluatedFrame] [requestNo:94] submit Zsl Request
01-02 09:05:10.737615  1161  1642 D mtkcam-PipelineModelSessionDefault: [onProcessEvaluatedFrame] [requestNo:95] submit Zsl Request
01-02 09:05:10.775992  1161  1645 D mtkcam-PipelineModelSessionDefault: [onProcessEvaluatedFrame] [requestNo:96] submit Zsl Request
01-02 09:05:10.815992  1161  1645 D mtkcam-PipelineModelSessionDefault: [onProcessEvaluatedFrame] [requestNo:96] submit Zsl Request
01-02 09:05:13.924135  1161  1644 I mtkcam-FeatureSettingPolicy_ISP: [evaluateCaptureSetting] (0xb400007592195818) capture req#:94 (count:1, index:0)
// 图片保存
01-02 09:05:14.084218  2392 16945 E ImageSaverThread: CameraTest Picture Save End, picture.mFormat: jpeg, picture.mUri: content://media/external/images/media/1211
01-02 09:05:14.324900 14552 14552 W PhotoPage: CameraTest Camera View Picture End

至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,比如:文章底部留言,12小时内必删,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

如果觉得有点用,欢迎您来点点赞👍🏻,

❤️爱心发射, biu~收到请留言!

相关推荐
祉猷并茂,雯华若锦2 小时前
Appium 3.x安卓APP企业级安装实战
android·appium
微露清风3 小时前
浅析 MySQL 索引
android·数据库·mysql
91刘仁德4 小时前
MySQL 数据类型详解
android·笔记·mysql·adb
编程圈子5 小时前
操作系统学习14 IDT + PIC + 键盘中断
android·学习·计算机外设
齊家治國平天下12 小时前
Android 14 Vehicle HAL (VHAL) 设计与实现深度解析
android·aaos·carservice·车载开发·android 14·vhal·vehicle hal
AFinalStone18 小时前
Android 7系统网络(八)应用API层—ConnectivityManager使用与实战调试
android·网络
plainGeekDev18 小时前
kapt 替换为 KSP
android·java·kotlin
蜡台18 小时前
通过Gradle脚本声明更改Java变量
android·java·开发语言·python·kotlin·gradle·groovy
gaosushexiangji20 小时前
基于多视角高速成像与体素建模的特斯拉线圈放电电弧三维重建实验研究
数码相机
神经智研社21 小时前
ROS2-16章:机器人仿真软件Gazebo
数码相机