【QNX+Android虚拟化方案】90 - QNX AIS Camera 出图流程 之 Rawdata数据从中断到用户完整流程分析(SOF -> FRAME_DONE ->FRAME_READY)
- 一、IFE1 Device 初始化流程
- 二、IFE_MSG_ID_SOF 事件处理过程分析
-
- 2.1 中断处理函数:VFEDriver::ProcessSofIRQ()
- 2.2 m_pfnCallBack 回调函数的配置与处理过程分析,解析 IFE_MSG_ID_SOF 事件,下发 AIS_EVENT_SOF 事件
- 2.3 VFEDriver::SubmitAvailableBuffers() :将可用Buffer 放入 fifoQHandle 队列,通过寄存器送给HW 使用,用于拷贝Camera Frame数据,拷贝完毕后,会触发 IFE_MSG_ID_FRAME_DONE 事件
- 2.4 AIS_EVENT_SOF 事件处理函数ProcessSOF():如果Client 注册了监听QCARCAM_EVENT_FRAME_SOF事件,则下发 QCARCAM_EVENT_FRAME_SOF 事件
- 三、IFE_MSG_ID_FRAME_DONE 事件处理过程分析
-
- 3.1 中断处理函数:VFEDriver::ProcessWrBusIRQ()
- 3.2 m_pfnCallBack 回调函数的配置与处理过程分析,解析 IFE_MSG_ID_FRAME_DONE 事件,下发 AIS_EVENT_RAW_FRAME_DONE 事件
- 3.3 AIS_EVENT_RAW_FRAME_DONE 事件处理函数 ProcessRawFrameDone():获取存放Camera Raw Data 的AisBuffer* pBuffer,绑定jobid 放入 pBufferList 的 m_readyQ队列中,最近触发 运行 AIS_EVENT_PPROC_JOB 事件
- 3.4 AIS_EVENT_PPROC_JOB 事件处理函数 ProcessRawFrameDone():调用AisPProcUsrDone::ProcessEvent() 函数进行处理
- 3.5 用户获取 Buffer 数据流程:m_bufferDoneQ 队列数据处理
- 3.6 QCARCAM_EVENT_FRAME_READY 事件处理流程:m_eventCbFcn()
基于原生纯净代码,自学总结 纯技术分享,不会也不敢涉项目、不泄密、不传播代码文档!!!
本文禁止转载分享 !!!
汇总链接:《【QNX+Android虚拟化方案】00 - 系列文章链接汇总》
本文链接:《【QNX+Android虚拟化方案】90 - QNX AIS Camera 出图流程 之 Rawdata数据从中断到用户完整流程分析(SOF -> FRAME_DONE ->FRAME_READY)》
在前文《【QNX+Android虚拟化方案】78 - QNX AIS Camera 如何在各个环节 Dump 摄像头Raw Data(含代码追踪分析全过程)》中,
我们以 qcarcam_test
为起点,分析了各个阶段如何 Dump Camera Raw