路径:vendor\mediatek\proprietary\hardware\mtkcam3\pipeline\hwnode\fd\FDNodeImp.cpp 入口函数:FdNode:: createInstance() { return new FdNodeImp(); } init(InitParams const& rParams):执行run(),从而不停执行threadLoop()不停处理mRequestQueue信息; threadLoop():Fd的线程函数,返回true会不停的被执行,返回false则结束。 Queue():往mRequestQueue挂frame让fd node处理 onProcessFrame()在threadLoop()中执行,具体处理frame的函数 onDispatchFrame():具体是在basenode.cpp中实现, { FUNCTION_IN sp<IPipelineNodeCallback> cb = pFrame->getPipelineNodeCallback(); if (cb != NULL) { cb->onDispatchFrame(pFrame, getNodeId()); } FUNCTION_OUT } Config()参数配置,输入参数变量,输出结果变量 Flush(): 删掉request_queue上的request,等待所有帧处理完 描述:执行的模型:fdnode自己有线程处理各个挂载queue上的帧,处理完会用basenode的统一函数onDispatchFrame将帧传回。对外接口:init,queue,flush,createInstance,config,flush |
|
来自: 新用户8389DdzY > 《mtk》