项目随记:8250-Oneplus

OP8/OP8Pro基本指标

如下产品在2020年3月份发布:

OP8/OP8Pro基本指标:
一加8:
6.55英寸 FHD+ 90Hz AMOLED曲面屏
骁龙865,LPDDR4x,UFS 3.0
后置三摄:48MP主摄:IMX586,6P,OIS,F1.75;16MP超广角:116°,F2
          16MP超广角:116°,F2.2;
          2MP微距:F2.4
          前置16MP:IMX471,F2.45
          4300mAh电池,30W Warp有线闪充,
          Wi-Fi 6,蓝牙5.1,
          USB 3.1,杜比双扬声器,IP68防水功能
机身尺寸160.2×72.9×8mm,重180g

一加8 Pro:
6.78英寸 QHD+ 120Hz AMOLED曲面屏,支持MEMC
骁龙865,LPDDR5,UFS 3.0
后置四摄:48MP主摄:IMX689,7P,OIS,F1.78
          8MP长焦:3X,OIS,F2.44
          48MP超广角:IMX586,120°,F2.2
          5MP色彩风格:F2.4,滤镜
          前置16MP:IMX471,F2.45
          4510mAh电池,
          30W Warp闪充+30W无线闪充,
          Wi-Fi 6,蓝牙5.1,
          USB 3.1,杜比双扬声器。
机身尺寸165.3×74.3×8.5mm,重199g
-------------------------------------------------------------------------------------------------------------------
一.Display
Oneplus8Pro:19811的屏幕比率是2.2,刷新率最高到120Hz,6.78英寸,如下。
[xugd0702.LAPTOP-7JS0VS4E] ? adb shell wm size
Physical size: 1080x2376         //FHD+           2.2    2k                                                                                                      
[xugd0702.LAPTOP-7JS0VS4E] ? adb shell wm size
Physical size: 1440x3168         //QHD+               2.2     3k
Oneplus8:19821的屏幕分辨率只有1080x2400,比率也是2.2.
Camera APP预览显示时,申请的surface view大小的比率会参考上面的2.2,尤其是全屏时。

普通Camera预览:30fps,每秒30帧,1帧33.333ms

Display显示刷新率通常最低是60fps,否则会有明显的闪烁,只要低于50fps,就会有明显的闪烁,来自AR调试。

2.Camera
19811有四个rear
四个rear:imx689,imx586,s5k3m5,gc5035。
imx689,     // 8000*6000, 48M, 广角, 主摄,4800万
imx586,     // 8000*6000, 48M,120度超广角
s5k3m5,     // 4208*3120 (13M),长焦,tele,800万3倍长焦镜头,可以到30倍混合变焦。
gc5035,     // 这个一直不知道怎么用的。500万,做滤镜用。
SAT是三摄,Bokeh是双摄
一个front:
imx471        //1600万, 16M

19821/OnePlus8 屏的刷新率只能到90Hz,SAT是双摄不是三摄,只能到10倍变焦,主摄像头是imx586。

3.Debug
开发者选项 -> 输入:指针位置,打开后可以显示当前触摸屏幕的坐标。

一加机型:
15801 一加3
15811 一加3T        //8996P
16859 一加5
17801 一加5T        //835
17819 一加6  EID(P)
18801 一加6T FAT    //845    AndroidQ
18821 一加7T        //8150
19811 一加8T        //8250    19821 EE103/19811 EE007
OPPO find x


一加暗码:
*##*37847#
*#808#     // 工厂模式
*#6776#    //看版本
*#888#
*#368#    // 刷机后跳过登录界面
*#800#  oneplus logkit->click 

编译及代码下载

ln -s /usr/bin/python android/prebuilts/python/linux-x86/2.7.5/bin/python

repo init -u ssh://pgerrit.oneplus.cn:29418/QCOM/manifest/sm8250 -m SM8250_AP_DEV_EXTERNAL.xml

编译:
./build.sh target_only bootimage -j32
build command:
19821:
. build/envsetup.sh
lunch 1 2 1

19811:
. build/envsetup.sh
lunch 3 2 1

第一次编译先编译kernel
./build.sh target_only bootimage -j32
根目录:
mmma -j32 vendor/qcom/proprietary/chi-cdk/
mmma -j32 vendor/qcom/proprietary/camx/
mmma -j32 vendor/qcom/proprietary/camx-lib-stats/
mmma -j32 vendor/oneplus/oneplus_camera_aps/
mmma -j32 vendor/qcom/proprietary/camx | tee tmp_build.log | grep -nsiE "install:| error: |successfully"

之后,更新代码,可以这样编译,根目录
mmm -j32 vendor/qcom/proprietary/chi-cdk/
mmm -j32 vendor/qcom/proprietary/camx/
mmm -j32 vendor/qcom/proprietary/camx-lib-stats/
mmm -j32 vendor/oneplus/oneplus_camera_aps/

常用命令


adb root
adb remount

adb shell "echo overrideLogLevels=0x7F >> /vendor/etc/camera/camxoverridesettings.txt"


adb shell "echo logVerboseMask=0x2 >> /vendor/etc/camera/camxoverridesettings.txt"
adb shell "echo logInfoMask=0x10082>> /vendor/etc/camera/camxoverridesettings.txt"
adb shell "echo logDRQEnable=TRUE > /vendor/etc/camera/camxoverridesettings.txt"
adb reboot 
adb shell "echo 0x2000 > /sys/module/cam_debug_util/parameters/debug_mdl"
adb shell "echo 0x1000000 > /sys/module/cam_debug_util/parameters/debug_mdl"
adb shell "echo 0x2000 > /sys/module/cam_debug_util/parameters/debug_mdl"

make -j6 vendorimage
make -j6 systemimage
make -j6 bootimage
make -j6 com.qti.chi.override
make -j16 camera.qcom
make -j6 com.qti.stats.af
make -j6 libcameraservice
make -j6 com.oneplus.node.snapshot


adb push libcameraservice.so_32 ./system/lib/libcameraservice.so    //32位,vensor下的是64位
常用so:
835:/vendor/lib/hw/camera.msm8998.so
com.qti.chi.override.so
camera.qcom.so

845下usecase的xml需要单独编译:
rm -rf vendor/chioverride/default/g_pipelines.h
perl cdk/topology/usecaseconverter.pl vendor/topology/default/titan17x_usecases.xml vendor/chioverride/default/g_pipelines.h
perl ../chi-cdk/cdk/topology/usecaseconverter.pl src/core/camxsettings.xml src/core/g_camxsettings.h

Issue

与录像有关的两个问题

一个是pipeline delay的值设置错误导致卡顿

另一个是结束录像时,马上结束预览也会有问题

更多的问题总结来自文件:OP_Philip_8250_issue.txt,已上传飞书。

80-P9301-175Y_B_Camera

pipeline delay是2, 写sensor的shutter和gain时是隔帧生效
pipeline delay是1, ISP的setting是下帧生效,也就是IFE的pipeline delay是1.
V4L2 subdevices are registered to V4L2 root device of the bridge driver. The CRM(Camera request manager) of QCOM is bridge driver.
The V4L2 root devices in /dev/media.

注意切换时如果CameraId不变,那么就不需要做chi_extend_close|chi_extend_open,但是切换到新mode做configure_stream时,需要做chi_teardown_override_session。
当前SAT使用了三个sensor,但是最多只有两个sensor会同时出帧。

19811一共五个camera,四个rear:imx689, imx586, s5k3m5, gc5035, 其中 imx689是主摄,一个front:imx471.因此前摄的Bokeh是单摄。

quaCFA与remosaic。

软件Remosaic处理需要花费更长的时间,目前仅作为Full Size拍照时候使用。
光线好的时候会选择size大的序列,走remosaic,光线不好的时候会选择小size的序列,不走remosaic,这个逻辑要打log看一下。


system/core/libsystem/include/system/graphics-base-v1.0.h
typedef enum {                                      
    HAL_PIXEL_FORMAT_RGBA_8888 = 1,                                      
    HAL_PIXEL_FORMAT_RGBX_8888 = 2,                                      
    HAL_PIXEL_FORMAT_RGB_888 = 3,                                      
    HAL_PIXEL_FORMAT_RGB_565 = 4,                                      
    HAL_PIXEL_FORMAT_BGRA_8888 = 5,                                      
    HAL_PIXEL_FORMAT_YCBCR_422_SP = 16,                                      
    HAL_PIXEL_FORMAT_YCRCB_420_SP = 17,                                      
    HAL_PIXEL_FORMAT_YCBCR_422_I = 20,                                      
    HAL_PIXEL_FORMAT_RGBA_FP16 = 22,                                      
    HAL_PIXEL_FORMAT_RAW16 = 32, 
    HAL_PIXEL_FORMAT_BLOB = 33,          // jpg拍照             
    HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED = 34,     // 预览
    HAL_PIXEL_FORMAT_YCBCR_420_888 = 35,           // YUV拍照

    HAL_PIXEL_FORMAT_RAW_OPAQUE = 36,                                      
    HAL_PIXEL_FORMAT_RAW10 = 37,                                      
    HAL_PIXEL_FORMAT_RAW12 = 38,                                      
    HAL_PIXEL_FORMAT_RGBA_1010102 = 43,                                      
    HAL_PIXEL_FORMAT_Y8 = 538982489,                                      
    HAL_PIXEL_FORMAT_Y16 = 540422489,                                      
    HAL_PIXEL_FORMAT_YV12 = 842094169,                                      
} android_pixel_format_t;


1.FIRST_FRAME_CALLBACK后才会出第0帧的数据:process_capture_result() frame_number 0
2.先notify,再process_capture_result
//18811 PHOTO拍照log
//26是预览帧,27是拍照帧,notify返回的比ProcessCaptureResult要早。
01-08 01:53:04.765  5828  8881 I CamX    : [ INFO][HAL    ] camxhal3.cpp:925 configure_streams() Number of streams: 3
01-08 01:53:04.765  5828  8881 I CamX    : [ INFO][HAL    ] camxhal3.cpp:941 configure_streams()   stream[0] = 0xdec6fe54 - info:
01-08 01:53:04.765  5828  8881 I CamX    : [ INFO][HAL    ] camxhal3.cpp:944 configure_streams()             format       : 34, HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED
01-08 01:53:04.765  5828  8881 I CamX    : [ INFO][HAL    ] camxhal3.cpp:941 configure_streams()   stream[1] = 0xdec6feb4 - info:
01-08 01:53:04.765  5828  8881 I CamX    : [ INFO][HAL    ] camxhal3.cpp:944 configure_streams()             format       : 35, HAL_PIXEL_FORMAT_YCbCr_420_888
01-08 01:53:04.765  5828  8881 I CamX    : [ INFO][HAL    ] camxhal3.cpp:941 configure_streams()   stream[2] = 0xdec6fdf4 - info:
01-08 01:53:04.765  5828  8881 I CamX    : [ INFO][HAL    ] camxhal3.cpp:944 configure_streams()             format       : 33, HAL_PIXEL_FORMAT_BLOB
01-08 01:53:04.800  5828  8881 D CHIUSECASE: [Initialize][2398] "[OP_EXT] stream = 0xdec6fe54 streamType = 0 streamFormat = 34 streamWidth = 1440 streamHeight = 1080"
01-08 01:53:04.800  5828  8881 D CHIUSECASE: [Initialize][2398] "[OP_EXT] stream = 0xdec6feb4 streamType = 0 streamFormat = 35 streamWidth = 1440 streamHeight = 1080"
01-08 01:53:04.800  5828  8881 D CHIUSECASE: [Initialize][2398] "[OP_EXT] stream = 0xdec6fdf4 streamType = 0 streamFormat = 33 streamWidth = 4608 streamHeight = 3456"

01-08 01:53:06.764  5828  5828 I CamX    : [ INFO][HAL    ] camxhal3.cpp:1096 process_capture_request() frame_number 26, no of buff 2
01-08 01:53:06.858  5828  5828 I CamX    : [ INFO][HAL    ] camxhal3.cpp:1096 process_capture_request() frame_number 27, no of buff 1

01-08 01:53:06.923  5828  5834 I CamX    : [ INFO][HAL    ] camxhal3.cpp:1321 notify()     frame_number 26
//预览数据返回,两个Buffer和Metadata
01-08 01:53:06.953  5828  5862 I CamX    : [ INFO][HAL    ] camxhaldevice.cpp:199 ProcessCaptureResult() Returning framework result metadata only for frame: 26, Metadata: 0xcde03340
01-08 01:53:06.953  5828  5862 I CamX    : [ INFO][HAL    ] camxhal3.cpp:1262 process_capture_result() frame_number 26, num of buf 0, partial result 1 result: 0xcde03340
01-08 01:53:06.955  5828  5862 I CamX    : [ INFO][HAL    ] camxhaldevice.cpp:175 ProcessCaptureResult() Returning framework result Frame: 26, Metadata: 0x0, Stream 0xdec6feb4, Fmt: 35 Width: 1440 Height: 1080
01-08 01:53:06.955  5828  5862 I CamX    : [ INFO][HAL    ] camxhal3.cpp:1262 process_capture_result() frame_number 26, num of buf 1, partial result 0 result: 0x0
01-08 01:53:06.955  5828  5862 I CamX    : [ INFO][HAL    ] camxhal3.cpp:1272 process_capture_result()         stream  : 0xdec6feb4
01-08 01:53:06.957  5828  5834 I CamX    : [ INFO][HAL    ] camxhal3.cpp:1321 notify()     frame_number 27
01-08 01:53:06.958  5828  5861 I CamX    : [ INFO][HAL    ] camxhaldevice.cpp:175 ProcessCaptureResult() Returning framework result Frame: 26, Metadata: 0x0, Stream 0xdec6fe54, Fmt: 34 Width: 1440 Height: 1080
01-08 01:53:06.958  5828  5861 I CamX    : [ INFO][HAL    ] camxhal3.cpp:1262 process_capture_result() frame_number 26, num of buf 1, partial result 0 result: 0x0
//拍照数据返回,只有一个数据Buffer和Metadata
01-08 01:53:06.985  5828  5863 I CamX    : [ INFO][HAL    ] camxhaldevice.cpp:199 ProcessCaptureResult() Returning framework result metadata only for frame: 27, Metadata: 0xcd603ec0
01-08 01:53:06.985  5828  5863 I CamX    : [ INFO][HAL    ] camxhal3.cpp:1262 process_capture_result() frame_number 27, num of buf 0, partial result 1 result: 0xcd603ec0

01-08 01:53:07.970  5828  5863 D CHIUSECASE: [ReturnFrameworkResult][632] "[OP_EXT] SNAPSHOT CALLBACK 27"
01-08 01:53:07.970  5828  5863 I CamX    : [ INFO][HAL    ] camxhaldevice.cpp:175 ProcessCaptureResult() Returning framework result Frame: 27, Metadata: 0x0, Stream 0xdec6fdf4, Fmt: 33 Width: 4608 Height: 3456
01-08 01:53:07.970  5828  5863 I CamX    : [ INFO][HAL    ] camxhal3.cpp:1262 process_capture_result() frame_number 27, num of buf 1, partial result 0 result: 0x0

Log关键字

Oneplus-OP8/OP8Pro-骁龙865-上海高通(2020.11)

camxpipeline.cpp:3367 CSLMessageHandler() request id 3639, error type = 3, device handle = 16318746, resource index = 0 这种error type = 3的错误通常与Overflow有关。

低内存:Out of memory

------------------ HAL:

grep -nrsiE "op_ext|E CHIUSECASE|OPScreenshotHelper|Stopping current Feature|OnProcessRequest failed with result|ExecuteProcessRequest failed with result|f debug|Last picture frame consumed|Add frame|Picture frame received|writeData|onCaptureCompleted|onPrimaryButton|Raise SigAbort|TriggerRecovery|erious error|fatal|\(-110\)|\(-38\)|CamxResultETimeout|Lets do a Reset|signaled with failure|Failed setting up NCS link|Request timed out|Connection timed out|waitUntilDrainedLocked: Timed out|stuck on Sequence Id|Hit SOF threshold|Raise SigAbort|Semaphore count exceeds the allocated number|Recovery:Sending recovery|IOCTL fail|Type:CSLHwLensActuator|Wait for Semaphore timed out|GetImageBuffer failed|leak or performance|setup internal stream buffer|with error reason|change active pipeline to|StreamOn|Stream On|error type =|F DEBUG|backtrace:|TimedWait for results|in error state|onError|errorusing error stream|Error notification not|Insufficient memory|Failed to add input frame|errorMessageCode|error_code|CaptureBarImpl|frameMessage:requestID=0|stopPreview|startpreview|onCloseCaptureSessionSafely|switchToCaptureMode|PhotoResolutions|RequestedPictureSize|Create capture session|16:20:29.958   851  1823|abortcapture|process_capture_request\(\) frame_number|process_capture_result\(\) frame_number" OPBR_5--2020-01-06-14-42-58_current/android.log

------------------ Other:
E CHIUSECASE:|SessionCbCaptureResult|CSLFenceCallback|CSLMessageHandler|process_capture_request\(\) frame_number|process_capture_result\(\) frame_number
frameMessage:requestID=0

------------------ APS Keywords:
grep -nrsiE "is not contained in parent|Failed to create processing|initAlgo: aps_algo|auto-test"
initAlgo: aps_algo|ALGO_INTERFACE
Waiting for activating picture processing service

Aps20PictureProcessingCore
not enough|Fail to enqueue captured picture frame|Low storage|Insufficient memory|Failed to add input frame|not enough|capture state|
capture state
W PhotoCaptureControllerImpl: capture() - Low storage

------------------ APP Keywords:
Last picture frame consumed|Add frame|Picture frame received|writeData|onCaptureCompleted|onPrimaryButton|Complete writing data
CaptureBarImpl|OPCamera2CoreImpl|PhotoCaptureControllerImpl
other: OPCameraManager: updateCameraInfoLis|Exposure compensation
createCaptureRequestBuilder
KEYCODE_HOME
interceptKeyBeforeDispatching KeyEvent { action=ACTION_UP, keyCode=KEYCODE_HOME, scanCode=0, metaState=0, flags=0x48, repeatCount=0, eventTime=1019857, downTime=1019802, deviceId=-1, source=0x101, displayId=0 }, interactive = true

stopPreview|startpreview|onCloseCaptureSessionSafely|switchToCaptureMode|PhotoResolutions|RequestedPictureSize|Create capture session
|prepareStreamMap|onPrepareCaptureRequest|onCaptureStarted|onCaptureCompleted|CaptureBarImpl: onPrimaryButton|onCaptureCompleted
//prepareStreamMap 打印配置的流的信息,onPrepareCaptureRequest,设置的参数信息


------------------ Flush Keywords:
Flush start|FLUSH started|Flush End|HalOp: Begin FLUSH|HalOp: End FLUSH|ExecuteFlush - END
|HalOp: Begin CONFIG|HalOp: End CONFIG|DESTROY_SESSION|CREATE_SESSION|InitializeOverrideSession|chi_teardown_override_session
|ClassifyTargetStream|Create capture session|HalOp: Begin CLOSE|HalOp: End CLOSE|HalOp: Begin OPEN|HalOp: End OPEN|chi_extend_close|chi_extend_open
|Flush Already in progress|Flush because a flush has
|flush\(\).*(begin|end)|close\(\)
chi_extend_close|chi_extend_open,但是切换到新mode做configure_stream时,需要做chi_teardown_override_session

------------------ Snapshot Keywords:
SNAPSHOT E :|SNAPSHOT CALLBACK|Feature hint for
|PortTargetBuffer_MFSR

------------------ Camera keep closing Keywords:
connect call|HW resource insufficient|ExtendOpen failed|Could not open camera|Too many users

------------------ Camera flashback Keywords:

AutoCameraUi: writeResult:

grep -nrsiE "Feature hint|Picture frame counts|Error occurred while writing data|not enough|Fail to enqueue captured picture frame|Low storage|Insufficient memory|Failed to add input frame|not enough|Feature hint|Picture frame counts|buffer has been freed|auto-test|Raise SigAbort|TriggerRecovery|erious error|fatal|\(-110\)|\(-38\)|CamxResultETimeout|Lets do a Reset|signaled with failure|Request timed out|Connection timed out|waitUntilDrainedLocked: Timed out|stuck on Sequence Id|Hit SOF threshold|Raise SigAbort|Semaphore count exceeds the allocated number|Recovery:Sending recovery|IOCTL fail|Type:CSLHwLensActuator|Wait for Semaphore timed out|backtrace:|f debug|op_ext|GetImageBuffer failed|leak or performance|setup internal stream buffer|with error reason|change active pipeline to|StreamOn|Stream On|error type =|F DEBUG|backtrace:|TimedWait for results|in error state|onError|errorusing error stream|Error notification not|Unexpected Frame|Error Messagedoes not match Reques|JPEG aggregartion failed|signaled with failure|error type|error state|Insufficient |Insufficient output buffer size|lowmemorykiller: Kill|e chiusecase|IllegalStateException: buffer has been freed|Picture frame received|onCaptureCompleted|onPrimaryButton|Complete writing data|completePreparingCapturing|oncapture|JPEG SNAPSHOT CALLBACK"


grep -nrsiE "wait for output buffer return timed out|HIGH_BATTERY_TEMPERATURE|Waiting for all camera wrappers ready|not enough|Fail to enqueue captured picture frame|Low storage|Insufficient memory|Failed to add input frame|not enough|buffer has been freed|dequeue next output buffer|auto-test"
grep -nrsiE "Function not implemented|wait for output buffer return timed out|HIGH_BATTERY_TEMPERATURE|Waiting for all camera wrappers ready|algoProcess|onPrepareCapturing|Feature hint|Picture frame counts|Error occurred while writing data|not enough|Fail to enqueue captured picture frame|Low storage|Insufficient memory|Failed to add input frame|not enough|Feature hint|Picture frame counts|buffer has been freed|auto-test|Raise SigAbort|TriggerRecovery|erious error|fatal|\(-110\)|\(-38\)|CamxResultETimeout|Lets do a Reset|signaled with failure|Request timed out|Connection timed out|waitUntilDrainedLocked: Timed out|stuck on Sequence Id|Hit SOF threshold|Raise SigAbort|Semaphore count exceeds the allocated number|Recovery:Sending recovery|IOCTL fail|Type:CSLHwLensActuator|Wait for Semaphore timed out|backtrace:|f debug|op_ext|GetImageBuffer failed|leak or performance|setup internal stream buffer|with error reason|change active pipeline to|StreamOn|Stream On|error type =|F DEBUG|backtrace:|TimedWait for results|in error state|onError|errorusing error stream|Error notification not|Unexpected Frame|Error Messagedoes not match Reques|JPEG aggregartion failed|signaled with failure|error type|error state|Insufficient |Insufficient output buffer size|lowmemorykiller: Kill"

Raise SigAbort|TriggerRecovery|erious error|fatal|\(-110\)|\(-38\)|CamxResultETimeout|Lets do a Reset|signaled with failure
|Request timed out|Connection timed out|waitUntilDrainedLocked: Timed out|stuck on Sequence Id|Hit SOF threshold|Raise SigAbort
|Semaphore count exceeds the allocated number|Recovery:Sending recovery|IOCTL fail|Type:CSLHwLensActuator|Wait for Semaphore timed out
|GetImageBuffer failed|leak or performance|setup internal stream buffer|with error reason
|change active pipeline to|StreamOn|Stream On|error type =|F DEBUG|backtrace:
|TimedWait for results|in error state|onError
|errorusing error stream|Error notification not
|Unexpected Frame|Error Messagedoes not match Reques
|\[ DUMP\]|\[ERROR
|Insufficient memory|Failed to add input frame|not enough|Fail to enqueue captured

JPEG aggregartion failed|signaled with failure|error type|error state|Insufficient |Insufficient output buffer size|lowmemorykiller: Kill

------------------ Framework Keywords
Camera3-Device

------------------  

------------------ Screenshot Keywords:
OPScreenshotHelper: OPLongshot Screenshot

------------------ Kernel Keywords:
IPP Overflow due to back pressure|CAM_ERR: CAM-CSIPHY: cam_csiphy_core_cfg
|cam_ife_csid_irq|Semaphore count exceeds the allocated number|over flow||exited due to signal|lowmemorykiller: Kill
|Overflow|CAM_ERR: CAM-ISP|CAM_ERR|CAM-SENSOR|CAM_START_DEV|CAM_STOP_DEV|CAM_ACQUIRE_DEV|CAM-ACTUATOR|cam_ife_csid_irq
|cam_ife_csid_irq: 3932 CSID:0 lane 1 over flow
|CAM_ERR
|Failed to notify|over flow|SOF freeze|CAM_ERR: CAM-ISP|cam_vfe_camif_ver3|CAM_START_DEV|CAM_STOP_DEV

CAM_INFO: CAM-SENSOR: cam_sensor_driver_cmd: 923 CAM_START_DEV Success, sensor_id:0x689,sensor_slave_addr:0x34  //rear 1x and 3x, rear Portrait
CAM_INFO: CAM-SENSOR: cam_sensor_driver_cmd: 923 CAM_START_DEV Success, sensor_id:0x586,sensor_slave_addr:0x20  //rear 0.6x
CAM_INFO: CAM-SENSOR: cam_sensor_driver_cmd: 923 CAM_START_DEV Success, sensor_id:0x30d5,sensor_slave_addr:0x5a    //rear 3x, rear Portrait
CAM_INFO: CAM-SENSOR: cam_sensor_driver_cmd: 923 CAM_START_DEV Success, sensor_id:0x471,sensor_slave_addr:0x20    //front 

------------------ Usecase/feature/graph Keywords
SelectFeatureToExecuteCaptureRequest|cameraId|selected use case|operation_mode|InitializeOverrideSession|GetMatchingUsecase
|advancefeature
|Feature2Graph|FeatureGrap|FeatureSetup|GetCustomVendorTag
|usecase.*selected|usecase.*usecase selected|configure_streams|ClassifyStream
|change to MultiCameraMFNRFusionSuperGraph

------------------ Face detect Keywords:
camxopfdmanagernode|imagefw_android

------------------ Dump AE info:
debug文档14.1里有详细的说明,关于怎样打印AE的值,给3A前的值,3A输出的值,sensor计算的值,最终给sensor的值。
adb shell "echo logVerboseMask=0x2000202 > /vendor/etc/camera/camxoverridesettings.txt"
camxcaecstatsprocessor.cpp:2120 PublishPropertyPoolFrameControl() AEC: Publish FrameControl for ReqId=509 camID:0 G ET (0: 39.655956 60000000) (1: 142.222214 60000000) (2: 142.222214 60000000)  LuxIndex=475.451355 LEDInfluenceRatio=1.000000 LEDFirstEntryRatio=1.000000 LEDLastEntryRatio=0.000000  FlashType=0 PreFlashState=0 PredictiveGain=1.000000 LEDCurrents=0:0 HxV = 64x48i pInfo:0x789e63a908
camxcaecstatsprocessor.cpp:2512 PublishExternalCameraMetadata() Published AEC Meta:camId:0 ReqId=39 AECompensation:0 AELock:0 AEMode:1,AE State:1 AE Precapture trigger:0, ExposureCompStep:6 InputAntiBandingMode:3, DetectedAntiBandingMode:1, FPS Range(min:10 max:30)
camxcaecstatsprocessor.cpp:3732 ReadHALAECParam() ReqId:40, camID:0, AECompensation:0, AELock:0, AEMode:1, AEMeteringMode:1, AETrigger:0, AFTrigger:0, captureIntent:1, controlMode:1, controlSceneMode:1, flashMode:0, exposureTime:-1, sensitivity:-1, AEAntibandingModeValue:3, ISOExpTimePrioritySet:-1, ISOorExposureTimePriorityValue:0, Gain:0.000000 ISOValue:0, FPS Range:(min:10 max:30), AEBracketMode:0, videoHDRType:0, ZSLEnable 0, FrameDuration:33333333 Face (Cnt:0 x:0 y:0 dx:0 dy:0), Touch (x:0.000000 y:0.000000 dx:0.000000 dy:0.000000), controlPostRawSensitivityBoost: 100, disableADRC: 0, DynamicConvergenceSpeed: 0.000000, Tracker (Cnt:0 x:0 y:0 dx:0 dy:0), InstantAecMode: 0
camxaecengine.cpp:3346 DumpAEEngineOutputResults() AEC_DEBUG_OUTPUT: AEFC:Preview FrameControl: G ET (0:23.785707 60000000)(1:142.222214 60000000)(2:142.222214 60000000) TMP G ET (0:23.785707 60000000)(1:142.222214 60000000)(2:142.222214 60000000) LuxInd=474.887329 EngAEState=3 PreFlashState=0 FlashType=0 LED 1:2=0:0
camxaecengine.cpp:1208 ProcessStats() AEC_DEBUG_CAPTURE: Normal Snapshot - RequestId=118
camxaecengine.cpp:3301 DumpAEEngineOutputResults() [AECDBG] Type: AEFC:NormalSnapshot FrameControl: G ET (0:63.183830 270000000)(1:63.183830 270000000)(2:63.183830 270000000) TMP G ET (0:63.183830 270000000)(1:63.183830 270000000)(2:63.183830 270000000) LuxInd=474.994141 EngAEState=3 PreFlashState=0 FlashType=0 LED 1:2=0:0

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值