一、Streaming 的各个dump方法
1.整个P2S I/O buffer 的 dump
1.1 整个P2S I/O buffer 的 NDD Dump(Normal Data Dump)方法
Dump P2S 的 input/output buffer, contain rrzo, lcso, img3o, preview, record, and other yuv buffers which AP request.
Dump 步骤:
- 测试前,先下adb命令准备dump:
adb root
adb shell setenforce 0
adb shell setprop debug.cam.drawid 1 --> draw magic number on camera output buffer
adb shell setprop vendor.debug.fpipe.force.img3o 1 --> force enable img3o
adb shell rm -rf /data/vendor/camera_dump/*
adb shell setprop vendor.debug.p2f.dump.enable 1
adb shell setprop vendor.debug.p2f.dump.mode 1
- 复现问题,并下adb命令开始dump:
- 2.1 如果问题复现后,异常画面是一直存在的而不是闪现,则异常画面出现后,下 adb 命令开始 dump
- 2.2 如果问题是概率性出现的,异常画面不会一直存在,则异常画面出现前,下 adb 命令开始 dump
- 2.3 如果是录像录出的视频画面异常,则需要在录像时,就要下 adb 命令开始 dump,才能 dump 到 camera 输出的 record buffer
adb shell setprop vendor.debug.camera.preview.dump 1
- 停止dump:
- 3.1 如果问题复现后,异常画面是一直存在的而不是闪现,则 dump 一小会儿(大概2s, 3s左右),立马下adb命令停止 dump(防止 dump时间长,dump 信息过大)
- 3.2 如果问题是概率性出现的, 异常画面不会一直存在,则要等异常画面复现后,再下adb命令停止 dump
adb shell setprop vendor.debug.camera.preview.dump 0
- 将dump到的信息pull到本地目录:
adb pull /data/vendor/camera_dump <本地电脑存放路径>
dump 完后,dump 出来的 buffer 都放到 /data/vendor/camera_dump 这个目录下了。
camera_dump文件夹下的文件名称命令格式:
UniqueKey-RequestNo-FrameNo-SensorDev-Port-BufferWidth-BufferHeight-BufferStride_ImageWidthxImageHeight_xxx.Format
Dump example:
053310842-0032-0032-main-rrzo-PW1920-PH1440-BW3600__1920x1440_10_2.packed_word --> main sensor 的P1 rrzo buffer
053310842-0032-0032-main-img3o-PW1920-PH1472-BW1920__1920x1440_8_s0.yv12 --> main sensor 的img3o buffer(P2Anode 下过了ISP 但是还没过MDP 的buffer,供3DNR用)
053310842-0032-0032-main-wdmao-PW1920-PH1080-BW1920__1920x1080_8_s0.nv21 --> wdmao 代表判断为 display output buffer,也就是P2S 最终输出的main sensor的display buffer
053310842-0032-0032-main-PW352-PH352-BW704__352x264_12_s0.lcso --> main sensor 的P1 lcso buffer
040521031-2275-1954-sub-wroto-PW640-PH480-BW640__640x480_8_s0.yv12 --> wroto代表判断为record output buffer,也就是 P2S 最终输出的sub sensor 的record buffer
064306554-0118-0118-main-undef-PW1920-PH1080-BW1920__1920x1080_8_s0.nv21 --> previewCallback ,也就是P2S 最终输出的main sensor 的previewCallback buffer
5G project(除了5G B) 上,P1输出的 yuvo buffer(分两个文档存,由以往的P1输出rrzo buffer改为P1 直接输出yuvo buffer) :
040751403-0451-0246-sub-yuvo-cplane-PW1280-PH976-BW1600__1280x976_10_s0.packed_word
040751403-0451-0246-sub-yuvo-yplane-PW1280-PH976-BW1600__1280x976_10_s0.packed_word
1.2 整个P2S I/O buffer 的自定义 Dump方法
有时候,可能不需要每一帧都 dump,只需要 dump 指定的某些帧的P2S I/O buffer,就可以用自定义dump 方法去 dump。
Dump 步骤:
- 测试前,直接下以下命令开始 dump:
adb root
adb shell setenforce 0
adb shell setprop debug.cam.drawid 1 --> draw magic number on camera output buffer
adb shell mkdir /data/vendor/p2_dump
adb shell setprop vendor.debug.p2f.dump.enable 1
adb shell setprop vendor.debug.p2f.dump.mode 2
adb shell setprop vendor.debug.p2f.dump.start 50 --> P2S