查看当前使能了哪些级别的log,可以使用参考命令:
adb shell getprop | grep "camera"
下面是开启各个模块log级别的简单描述。
1. persist.camera.global.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性是总的log级别开关。
注意:若子模块的log级别小于该属性设置值,则以该属性为准;若子模块的log级别大于该属性设置值,则以子模块设置的log级别为准。
示例:adb shell setprop persist.camera.global.debug 5
2. persist.camera.mct.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制MCT模块的log级别。
示例:adb shell setprop persist.camera.mct.debug 5
3. persist.camera.sensor.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制SENSOR模块的log级别。
示例:adb shell setprop persist.camera.sensor.debug 5
4. persist.camera.iface.logs
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制IFACE模块的log级别。
示例:adb shell setprop persist.camera.iface.logs 5
5. persist.camera.isp.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制ISP模块的log级别。
示例:adb shell setprop persist.camera.isp.debug 5
6. persist.camera.stats.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制STATS模块的log级别。
注意:这是一个container模块。
示例:adb shell setprop persist.camera.stats.debug 5
7. persist.camera.stats.af.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制AF模块的log级别。
示例:adb shell setprop persist.camera.stats.af.debug 5
8. persist.camera.stats.aec.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制AEC模块的log级别。
示例:adb shell setprop persist.camera.stats.aec.debug 5
9. persist.camera.stats.awb.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制AWB模块的log级别。
示例:adb shell setprop persist.camera.stats.awb.debug 5
10. persist.camera.stats.asd.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制ASD模块的log级别。
示例:adb shell setprop persist.camera.stats.asd.debug 5
11. persist.camera.stats.afd.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制AFD模块的log级别。
示例:adb shell setprop persist.camera.stats.afd.debug 5
12. persist.camera.stats.q3a.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制Q3A模块的log级别。
注意:这是一个container模块。
示例:adb shell setprop persist.camera.stats.q3a.debug 5
13. persist.camera.stats.is.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制IS模块的log级别。
示例:adb shell setprop persist.camera.stats.is.debug 5
14. persist.camera.stats.haf.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制HAF模块的log级别。
示例:adb shell setprop persist.camera.stats.haf.debug 5
15. persist.camera.pproc.debug.mask
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制PPROC模块的log级别。
注意:这是一个container模块。
示例:adb shell setprop persist.camera.pproc.debug.mask 5
16. persist.camera.cpp.debug.mask
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制CPP模块的log级别。
示例:adb shell setprop persist.camera.cpp.debug.mask 5
17. persist.camera.c2d.debug.mask
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制C2D的log级别。
示例:adb shell setprop persist.camera.c2d.debug.mask 5
18. persist.camera.imglib.logs
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制IMGLIB模块的log级别。
示例:adb shell setprop persist.camera.imglib.logs 5
19. persist.camera.hal.debug
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制HAL的log级别。
示例:adb shell setprop persist.camera.hal.debug 5
20. persist.camera.mmstill.logs
数值:0-5
功能:设置不同的数值,将打印对应级别的log。该属性控制mm-still的log级别。
示例:adb shell setprop persist.camera.mmstill.logs 5
21. 从HAL层dump camera yuv buffer的方法:
1.chmod 777 /data
2.setprop persist.vendor.camera.dumpimg xxxxx
persist.vendor.camera.dumpimg 对该属性设置不同的值,来dump不同的数据。
bit解析
bits meaning
31-16(frame number) 用来设置要dump的帧数,最小10帧,最大256帧,默认值是10
15-8(skip mode) 用来设置skip多少帧dump一帧,默认值是1
7-0(frame type) 用来设置dump哪种数据,具体见下面定义
HAL_DUMP_FRM_PREVIEW = 1,
HAL_DUMP_FRM_VIDEO = 1<<1,
HAL_DUMP_FRM_MAIN = 1<<2,
HAL_DUMP_FRM_THUMBNAIL = 1<<3,
HAL_DUMP_FRM_RDI = 1<<4,
/*8 bits mask*/
HAL_DUMP_FRM_MAX = 1 << 8
例如,dump预览帧,每隔10帧dump一帧,一共dump 20帧,根据上面的说明设置如下:
1313281(10进制,0x140A10)
22. 帧率打开
persist.vendor.debug.sf.showfps
============================= 局部开关 ======================================
1. SENSOR模块
1) persist.camera.sensor.gain
数值:非负数
功能:手动设置real gain到sensor。
注意:该属性在宏ENABLE_MANUAL_EXPOSURE_UPDATE被使能的前提下生效。
示例:adb shell setprop persist.camera.sensor.gain 1
2) persist.camera.sensor.linecount
数值:非负数
功能:手动设置line count到sensor。
注意:该属性在宏ENABLE_MANUAL_EXPOSURE_UPDATE被使能的前提下生效。
示例:adb shell setprop persist.camera.sensor.linecount 1024
3) persist.dual.gain_tune
数值:非负数
功能:手动设置双摄像头gain factor。
注意:该属性在双摄像头使用场景中生效。
4) persist.dual.line_tune
数值:非负数
功能:手动设置双摄像头line count factor。
注意:该属性在双摄像头使用场景中生效。
5) persist.camera.fastaec
数值:非负整数
功能:fast aec模式下,手动设置frame skip数目。
示例:adb shell setprop persist.camera.fastaec 2
6) persist.camera.iso100
数值:非负数
功能:手动设置iso100的gain数值。
示例:adb shell setprop persist.camera.iso100 1
7) persist.camera.csid.payload
数值:0或4
功能:test模式下,将csid设置为0或4模式,以便产生相应的测试pattern。
示例:adb shell setprop persist.camera.csid.payload 4
8) persist.camera.sensorliveconnect
数值:0或1
功能:设置为1,则在代码中开启sensor live connect线程,方便调试工具实时控制AF。
示例:adb shell setprop persist.camera.sensorliveconnect 1
9) persist.partial.skip
数值:0或1
功能:设置为1,则使能闪光灯下的frame skip模式。
示例:adb shell setprop persist.partial.skip 1
10) persist.camera.led.rerdbg
数值:0或1
功能:开启闪光灯去红眼功能后,若将该属性设置为1,则会打印预闪电流、持续时间、脉冲数目等调试信息。
示例:adb shell setprop persist.camera.led.rerdbg 1
11) persist.camera.cal.af
数值:0或1
功能:如果设置为0,则不加载eeprom中af校准数据。
示例:adb shell setprop persist.camera.cal.af 1
12) persist.camera.cal.awb
数值:0或1
功能:如果设置为0,则不加载eeprom中awb校准数据。
示例:adb shell setprop persist.camera.cal.awb 1
13) persist.camera.cal.lsc
数值:0或1
功能:如果设置为0,则不加载eeprom中lsc校准数据。
示例:adb shell setprop persist.camera.cal.lsc 1
14) persist.camera.cal.dp
数值:0或1
功能:如果设置为0,则不加载eeprom中dp校准数据。
示例:adb shell setprop persist.camera.cal.dp 1
15) persist.camera.cal.dual
数值:0或1
功能:如果设置为0,则不做dual camera校准。
示例:adb shell setprop persist.camera.cal.dual 1
16) persist.camera.dumpmetadata
数值:0或1
功能:若设置为1,则将sensor中的meta数据发送到MCT BUS,然后通过mct_stream_fill_metadata_v1接口将信息传递给HAL。
注意:该属性需要配合HAL/PPROC中同名属性进行使用,此处仅仅是HAL/PPROC中同名属性生效的前提。
示例:adb shell setprop persist.camera.dumpmetadata 1
2. IFACE2模块
1) persist.camera.isp.testgen
数值:0或1
功能:若设置为1,折预览将呈现七彩条纹图像。
示例:adb shell setprop persist.camera.isp.testgen 1
2) persist.camera.isp.dump
数值:需要dump的stream type所对应的enum数值。
功能:使能后,会根据设置的stream type去dump相应的帧数据。路径:/data/misc/camera/
示例:adb shell setprop persist.camera.isp.dump 2
3) persist.camera.isp.dump_cnt
数值:非负整数
功能:该属性定义persist.camera.isp.dump需要dump的帧数。
示例:adb shell setprop persist.camera.isp.dump_cnt 10
4) persist.camera.isp.ppbypass
数值:0或1
功能:使能该属性后,isp不再自己申请native buffer,而是使用从HAL map过来的buffer,并且buffer将不做pproc处理。
注意:生效前提是HAL已经申请过足够数量的buffer。
示例:adb shell setprop persist.camera.isp.ppbypass 1
5) persist.camera.isp.buf_cnt
数值:非零正整数
功能:stream on后,会request image buffer,有两种方式,一是map HAL的buffer,二是自己在本地申请native buffer。如果选择方式二,则该属性将定义native buffer的数量。
注意:生效前提是ISP自己在本地申请native buffer。
示例:adb shell setprop persist.camera.isp.buf_cnt 4
6) persist.camera.hvx_lib_1
数值:external chromatix lib名称
功能:手动指定加载的后置external chromatix lib。
注意:生效前提是tuning没有设置external chromatix的name。
示例:adb shell setprop persist.camera.hvx_lib_1 libchromatix_xxx.so
7) persist.camera.hvx_lib_2
数值:external chromatix lib名称
功能:手动指定加载的前置external chromatix lib。
注意:生效前提是tuning没有设置external chromatix的name。
示例:adb shell setprop persist.camera.hvx_lib_2 libchromatix_xxx.so
3. ISP2模块
1) persist.camera.isp.turbo
数值:0或1
功能:若设置为1,则将turbo clk设置为ISP默认工作clk。
注意:设置完成后,需要重启手机才会生效。
示例:adb shell setprop persist.camera.isp.turbo 1
2) persist.camera.isp.dualisp
数值:0或1
功能:若设置为1,将强制使用两个VFE工作。若设置为0,则将根据默认clk与user请求clk的大小关系来决定使用VFE数量。
注意:若channel中有raw stream存在,该属性将失效。
示例:adb shell setprop persist.camera.isp.dualisp 1
3) persist.camera.dumpmetadata
数值:0或1
功能:若设置为1,将分配meta dump的资源。同时,将打印mesh_roll、tintless_algo等sub isp module中的调试信息或在/data/misc/camera/路径下生成相关调试信息文件。
注意:该属性需要配合HAL/PPROC中同名属性进行使用,此处仅仅是HAL/PPROC中同名属性生效的前提。
示例:adb shell setprop persist.camera.dumpmetadata 1
4) persist.camera.tintless.skip
数值:非负整数
功能:设置tintless所需要skip的frame数目,默认是skip 2帧。
示例:adb shell setprop persist.camera.tintless.skip 2
5) persist.camera.isp.regdump
数值:非负整数
功能:isp online process时,根据设定的数值去dump相应帧数的register信息。
示例:adb shell setprop persist.camera.isp.regdump 30
6) persist.camera.isp.offregdump
数值:非负整数
功能:isp offline process时,根据设定的数值去dump相应帧数的register信息。
示例:adb shell setprop persist.camera.isp.offregdump 30
7) persist.camera.isp.cac_disable
数值:0或1
功能:手动开/关CAC功能。
示例:adb shell setprop persist.camera.isp.cac_disable 1
8) persist.camera.isp.ltm_disable
数值:0或1
功能:手动开/关LTM功能。
示例:adb shell setprop persist.camera.isp.ltm_disable 1
9) persist.camera.ltm.overlap
数值:0-50
功能:手动定义cell overlap factor的大小。
示例:adb shell setprop persist.camera.isp.ltm_disable 10
4. STATS模块
1) persist.camera.ledcalib.enabled
数值:0或1
功能:手动开/关双色温LED校准功能。
示例:adb shell setprop persist.camera.ledcalib.enabled 1
2) persist.camera.mobicat
数值:0或1
功能:手动开/关mobicat。
示例:adb shell setprop persist.camera.mobicat 1
5. PPROC-NEW模块
1) persist.enable.max.pending.buf
数值:1或2
功能:定义cpp硬件一次操作所处理的buffer数量。
示例:adb shell setprop persist.enable.max.pending.buf 1
2) persist.camera.c2d.disable
数值:0或1
功能:手动开/关C2D。
示例:adb shell setprop persist.camera.c2d.disable 1
3) persist.camera.tnr.force_enable
数值:0或1
功能:手动开/关TNR。
示例:adb shell setprop persist.camera.tnr.force_enable 1
4) persist.camera.enable_vpu
数值:0或1
功能:手动开/关VPU。
示例:adb shell setprop persist.camera.enable_vpu 1
5) persist.camera.dumpmetadata
数值:0或1
功能:使能后,将dump PPROC的Metadata到/data/misc/camera/路径下。
示例:adb shell setprop persist.camera.dumpmetadata 1
6. IMGLIB模块
1) persist.camera.imglib.hdr.dump
数值:no/in/out/in out
功能:设置为no,关闭HDR dump功能;设置为in,将dump输入帧;设置为out,将dump输出帧;设置为in out,将同时dump输入与输出帧。
示例:adb shell setprop persist.camera.imglib.hdr.dump in
2) persist.camera.imglib.cac.dump
数值:no/in/out/inout
功能:设置为no,关闭CAC dump功能;设置为in,将dump输入帧;设置为out,将dump输出帧;设置为in out,将同时dump输入与输出帧。
示例:adb shell setprop persist.camera.imglib.cac.dump no
3) persist.camera.mobicat
数值:0与非0
功能:设置为0,关闭这个功能;设置为其他值,将在返回给HAL的meta信息中添加mobicat相关的调试信息。
注意:该属性需要配合HAL中的同名属性使用。
示例:adb shell setprop persist.camera.mobicat 0
4) persist.camera.imglib.cf.ver
数值:chroma flash 库的版本号
功能:返回使用的chroma flash 库版本号给chroma flash初始化提供版本信息。
注意:该属性一般有系统设置,此处仅做读取操作。
示例:adb shell getprop persist.camera.imglib.cf.ver
5) persist.imglib.cf.tune
数值:0或1
功能:“手动设置chroma flash参数”的总开关,使能后,才能通过其他属性手动修改相应参数。
示例:adb shell setprop persist.imglib.cf.tune 1
6) persist.imglib.cf.deghost
数值:0或1
功能:手动开/关deghost功能。
注意:该属性在persist.imglib.cf.tune被使能后才能生效。
示例:adb shell setprop persist.imglib.cf.deghost 1
7) persist.imglib.cf.flash_weight
数值:1-15
功能:手动设置chroma flash 亮度等级。
注意:该属性在persist.imglib.cf.tune被使能后才能生效。
示例:adb shell setprop persist.imglib.cf.flash_weight 1
8) persist.camera.imglib.dump
数值:0或1
功能:imglib模块frame dump总开关。
示例:adb shell setprop persist.camera.imglib.dump 1
9) persist.camera.fd.dump
数值:0-4
功能:设置为0,将关闭face frame dump功能;设置为1,将dump non-tracked faces帧数据;设置为2,将dump tracked faces帧数据;设置为3,将dump non-detected faces帧数据;设置为4,将dump所有的帧数据。
注意:该属性只有在persist.camera.imglib.dump为1的前提下才能生效。
示例:adb shell setprop persist.camera.fd.dump 1
10) persist.camera.imglib.face_sw
数值:0或1
功能:手动开/关软件辅助人脸识别功能。
示例:adb shell setprop persist.camera.imglib.face_sw 1
11) persist.camera.imglib.face_all
数值:0或1
功能:手动开/关全角度搜寻人脸功能。使能该功能后,在识别人脸时,将不考虑手机的方向。
示例:adb shell setprop persist.camera.imglib.face_all 1
12) persist.camera.fd_region_filter
数值:0或1
功能:使能后,将根据region来执行相应的滤波设定。相应region参数,由chromatix加载进来。
示例:adb shell setprop persist.camera.fd_region_filter 1
13) persist.camera.imglib.bsgc
数值:0或1
功能:设置为1,将Enable blink, smile, gaze, contour detection。
示例:adb shell setprop persist.camera.imglib.bsgc 1
14) persist.camera.imglib.fd_arm
数值:0或1
功能:设置为0,将优先申请HW FD资源。设置为1,将不优先使用HW FD资源,将会优先去申请DSP FD资源。
示例:adb shell setprop persist.camera.imglib.fd_arm 1
15) persist.camera.imglib.tp.mask
数值:0或1
功能:在TruePortrait模式下,设置为1,将使能bodymask。
示例:adb shell setprop persist.camera.imglib.tp.mask 1
16) persist.camera.imglib.tp.effect
数值:0-2
功能:在TruePortrait模式下,手动设置effect,0代表boke effect,1代表halo effect,2代表notion blur effect。
示例:adb shell setprop persist.camera.imglib.tp.effect 1
17) persist.camera.imglib.tp.power
数值:正整数
功能:在TruePortrait模式下,手动设置effect的强度,数值越大,强度越大。
示例:adb shell setprop persist.camera.imglib.tp.power 1
18) persist.camera.imglib.fddsp
数值:0或1
功能:设置为1,将强制使用FD DSP资源。
示例:adb shell setprop persist.camera.imglib.fddsp 1
19) persist.camera.imglib.cds
数值:0-5
功能:手动选择CDS的运行模式:C、NEON、NENO_ASM、DSP、GPU、FCV。
示例:adb shell setprop persist.camera.imglib.cds 1
20) persist.camera.dumpmetadata
数值:0或1
功能:使能后,将meta中填充CAC相关调试信息。并且,可以dump WNR相关参数到/data/misc/camera/路径下
示例:adb shell setprop persist.camera.dumpmetadata 1
7. MCT模块
1) persist.camera.max_prev.enable
数值:0或1
功能:使能后,将使用符合条件的最大尺寸来做preview。
示例:adb shell setprop persist.camera.max_prev.enable 1
2) persist.camera.max.snapshot
数值:0或1
功能:使能后,将使用符合条件的最大尺寸来做sanpshot。
示例:adb shell setprop persist.camera.max.snapshot 1
8. MM-STILL模块
1) persist.camera.max_prev.enable persist.camera.jpeg.dumpqtable
数值:0或1
功能:开启后,将打印jpeg的quality table调试信息。
示例:adb shell setprop persist.camera.jpeg.dumpqtable 1
2) persist.camera.kpi.debug
数值:1或2
功能:设置KPI调试信息的级别,设置为1表示KPI_APT,设置为2表示KPI_DBG级别。
示例:adb shell setprop persist.camera.kpi.debug 1
《未完待续》