camera打开流程(preview)(hal)

单独分析6:生成Adapter
//BaseCamAdapter.Instance.cpp (vendor\mediatek\proprietary\hardware\mtkcam\legacy\platform\mt6735\v1\adapter)
createMtkDefaultCamAdapter
    return new CamAdapter(rName,  i4OpenId,  pParamsMgr );
 
 
CamAdapter分析
CamAdapter::CamAdapter(String8 const&      rName,  int32_t const       i4OpenId,   sp<IParamsManager>  pParamsMgr)
    : BaseCamAdapter(rName, i4OpenId, pParamsMgr)  //初始化BaseCamAdapter,单独分析1
    //
    , mpStateManager(NULL) //摄像头的一些状态,比如现在是预览还是拍照
    //
    , mpCaptureCmdQueThread(0)   //拍摄的流的线程
    , mpZipCallbackThread(0)  //ZIP (Compressed) Image Callback Thread
    //
    , mpShot(0)
    #if '1'==MTKCAM_HAVE_3A_HAL
    , mpCallback3a(NULL)
    #endif
    //
    , mUserName("None")
    , mpCamGraph(NULL)  //ICamGraph相关
    , mpAllocBufHdl(NULL)  //分配内存的函数
    , mpDefaultBufHdl(NULL)
    //
     , mpPass1Node(NULL)   //处理第一阶段
    , mpDefaultCtrlNode(NULL)
    , mpPass2Node(NULL)  //处理第二阶段
    , mpRecBufSnapshotlNode(NULL)
    //
    , mbTwoRunP2(MFALSE)
    , mpTwoRunP1AllocBufHdl(NULL)
    , mpExtImgProcNode(NULL)
    , mpImgTransformNode(NULL)
    //
    , mpPdafNode(NULL)
    //
    , mpCapBufMgr(NULL)
    //, mbTakePicPrvNotStop(false)
    , mbFixFps(false)
    , mPreviewMaxFps(0)
    , mShotMode(0)
    //
    , mLastVdoWidth(0)
    , mLastVdoHeight(0)
    //
    , mspThermalMonitor(NULL)
    , mpResMgrDrv(NULL)
    , mb4K2KVideoRecord(MFALSE)
    , mbLowPowerVideoRecord(MFALSE)
    , mPipStartPreviewFail(MFALSE)
    //
    , mpCpuCtrl(NULL)
    {
    //Set default value
    mpParamsMgr->getDefaultPreviewFps(mDefaultPreviewFps);
     mpParamsMgr->getDefaultPreviewFpsRange(mDefaultPreviewFpsRange[0],mDefaultPreviewFpsRange[1]);
}
 
 
单独分析1:初始化BaseCamAdapter
BaseCamAdapter::BaseCamAdapter(String8 const&      rName,   int32_t const       i4OpenId,   sp<IParamsManager>  pParamsMgr)
    : ICamAdapter()
    , mName(rName)  //记录模式的名字
    , mi4OpenId(i4OpenId)  //记录open的id
    , mpCamMsgCbInfo(new CamMsgCbInfo)  //Message-Callback Info ,消息的回调
     , mpParamsMgr(pParamsMgr)  //Reference to Parameters Manager. 参数管理的引用
    , mpImgBufProvidersMgr(new ImgBufProvidersManager) //生成一个摄像头书籍缓存提供管理结构体,并放入一个管理
    //
{
}
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2020-11-25 14:54  luoyuna  阅读(578)  评论(0编辑  收藏  举报