首先确保core config的log是有打开的,logCoreCfgMask全部填成0xFFFFFFFFFFFFFFFF 复现问题后,在log中搜索如下关键字 logcat |grep -iE "findBest|sensorname|sensormode:" 示例Log: 09-29 22:57:32.577 328 1948 I CHIUSECASE: [CORE_CFG ] chxsensorselectmode.cpp:651 FindBestSensorMode() Selected Usecase:...
回答于 2021-12-21 09:02
首先,设置Setting打开Sensor模块的Info和Verbose Log logInfoMask=0x2 logVerboseMask=0x2 复现问题后,在log中搜索:搜索ApplyGains和CalculateExposure logcat |grep -iE "ApplyGains|CalculateExposure" 示例Log: 11-09 11:09:41.331 6792 6822 I CamX : [ INFO][SENSOR ] camxsensornode.cpp:3156 ExecuteP...
回答于 2021-12-21 08:44
camxoverridesettings提供了debug方法,将overrideForceSensorMode设置为想要的sensor mode,这样就会跳过sensor mode的选择逻辑,直接使用设置的sensor mode。 比如 overrideForceSensorMode=0x3 表示前置选择Senosr Mode 3 相关文章:CamX 中如何查看当前Sensor走的哪种Mode
回答于 2021-12-21 08:18
1.在哪里定义新增的Size 在 camx\src\hwl\titan17x\camxtitan17xcontext.cpp 文件中有定义一个数组:SupportedImageSizes。如果要新增Size,则在这个数组中添加。 高通另外也提供了一个客制化文件:camx/src/core/oem/camxcustomization.cpp,在InitializeExtendedPlatformStaticCaps里面修改pCaps[sensorIndex].defaultI...
回答于 2021-12-20 12:13
修改:camx\src\core\hal\camxhal3defs.h /// The maximum number of concurrent devices supported by the HAL static const UINT32 MaxConcurrentDevices = 16; MaxConcurrentDevices改成1即可
回答于 2021-12-20 08:52
在DRQ的异步线程中调用ready nodes的ExecuteProcessRequest的。 当dependency满足或者CamX Pipeline的ProcessRequest被执行时,都会去检查和dispatch ready nodes并执行,以pipelineProcessRequest为例说明 Pipeline::ProcessRequest 1---->遍历每个Node(m_orderedNodeCount),调用 result = m_pDeferredRequestQueue-&...
回答于 2021-12-19 12:09
DRQ的全称是DeferredRequestQueue,意思是需要被延迟处理的Request队列,通常是因为有其他dependency未满足条件,无法马上运行。 1. DRQ有什么作用 Pipeline XML中定义了Node间的连接顺序,但并未定义Node的执行时机。 a.当一个Node有多个输出时,先执行后续的哪个Node? b.当一个Pipeline中有多个Node实例时(比如多个...
回答于 2021-12-19 10:57
ChiFeature2Base有一个成员变量m_frameNumber(也就意味着每个Feature2都有自己的Frame Number),每次执行HandleExecuteProcessRequest时,会将当前的m_frameNumber保存在ChiFeatureSequenceData并对m_frameNumber++动作 ChiFeature2Base::HandleExecuteProcessRequest |---->ChiFeature2Base::InitializeSequenceFram...
回答于 2021-12-18 23:33
URO是ChiFeature2UsecaseRequestObject的缩写,FRO是ChiFeature2RequestObject的缩写 1. URO创建的时机点 CameraService送CaptureRequest下来后,这个CaptureRequest会选到一个FG去执行,在执行时会为每个CaptureRequest创建一个URO,具体创建的代码点如下: AdvancedCameraUsecase::ExecuteCaptureRequest |---->Fea...
回答于 2021-12-18 22:38
surface本质上是一个bufferqueue,surface创建出来后还没有申请buffer,等发送CaptureRequest时,camera service会通知buffer queue去申请buffer,申请后里面的数据是随机值,camera service会为每个request去dequeue一个buffer handle(fd),然后送给hal进程去填buffer
回答于 2021-12-18 09:51