mtk6835 ISP6S
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1-> FdNodeImp::FDHalThreadLoop(MVOID* arg) X:\bruce\SI\mtkcam3\pipeline\hwnode\fd\FDNodeImp.cpp
2-> _FDNode->RunFaceDetection();
3-> FDRet |= mvpFDHalObj[i]->oplusHalFDInit(getOpenId(), &faceData); //三方商汤FD
4-> MINT32 CustomFDApi::oplusHalFDInit(MINT8 camID, oplusFaceInitData* faceData) X:\bruce\SI\custom\mt6835\hal\camera_fd\custom_fd.cpp
5-> FdAlgoApi::createInstance(type, mpFdAlgolObj);
6-> cusAlgo = std::make_shared<CustomVgeaFdApi>(); X:\bruce\SI\custom\mt6835\hal\camera_fd\custom_fd_algo_api.cpp
5-> mpFdAlgolObj->cusHalFDInit(camID, faceData);
6-> int32_t CustomVgeaFdApi::cusHalFDInit(int camId, oplusFaceInitData* faceData) X:\bruce\SI\custom\mt6835\hal\camera_fd\custom_vgea_fd.cpp
7-> custom_fd_algo_init(mLogLevel, mBypassAlgo, mAlgoWConf, camId);
3-> FDRet |= mvpFDHalObj[i]->halFDInit(srcWidth, srcHeight //MTK平台FD
4-> halFDVT50Base::halFDInit( X:\bruce\SI\mtkcam3\feature\common\faceeffect\FaceDetection\FD5.0\fd_hal50_base.cpp
5->
6->
7->
8->
9->
10->
3-> numFace = mpFDHalObj->halFDGetFaceResult(mpDetectedFaces, 1);
3-> FDRet = mpFDHalObj->halFDDo(Param);
4-> iMINT32 CustomFDApi::halFDDo( //三方商汤FD X:\bruce\SI\custom\mt6835\hal\camera_fd\custom_fd.cpp
5-> mpFdAlgolObj->process(Param, &p3AFaceResult);
6-> int32_t CustomVgeaFdApi::process( X:\bruce\SI\custom\mt6835\hal\camera_fd\custom_vgea_fd.cpp
7-> custom_fd_algo_face_detect(&mFrame, ¶m, p3AFaceResult);
8-> ret = m_custom_fd_ops.vega_face_track_set_detect_interval_t(m_track_handle
8-> ret = m_custom_fd_ops.vega_face_track_t(m_track_handle, &tempFrame,
8-> ret = m_custom_fd_ops.vega_face_ret_get_faces_cnt_t(m_result_handle, &mFacesCnt);
8-> ret = m_custom_fd_ops.vega_face_ret_get_face_at_t(m_result_handle, i,
8-> ret = m_custom_fd_ops.vega_face_ret_get_face_rect_t(m_face_handle, &id,
8-> setFdRectInfo(in, &tempFrame, p3AFaceResult, face_points, rect, i);
9-> p3AFaceResult->faces[i].rect[0] = (int32_t)rect.left;
8-> setFfdInfo(in, &tempFrame, p3AFaceResult, rotateInfo, face_points, occlusions, i);
9-> p3AFaceResult->fld_rop[i] = -(int)rotateInfo.yaw;
10->
7-> custom_fd_algo_face_attribute(&mFrame, ¶m, p3AFaceResult);
8-> ret = m_custom_fd_ops.vega_face_attribute_detect_t(m_attribute_handle, frame,
9-> setFdAttribute(face_attribute, p3AFaceResult, &raceResult, i);
10-> raceResult->race[i] = race[0].label;
4-> halFDVT50Base::halFDDo( //MTK平台FD X:\bruce\SI\mtkcam3\feature\common\faceeffect\FaceDetection\FD5.0\fd_hal50_base.cpp
5-> doHWFaceDetection(pfd_cal_data, &FDOps);
6-> halFDVT51::doHWFaceDetection( X:\bruce\SI\mtkcam3\feature\common\faceeffect\FaceDetection\FD5.0\fdvt_hal51.cpp
7-> mpFDStream->EGNenque(mFdvtParams_face);
8-> MBOOL DPEV4L2Stream::EGNenque(DPEParamV4L2 &enqueData) X:\bruce\SI\mtkcam3\feature/core/featurePipe/vsdof/depthmap/4.5/driverInterface/DPEDrv.cpp
9->
10->
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1-> FdNodeImp::threadLoop()
2-> onProcessFrame(pFrame);
3-> ReturnFDResult(pOutMetadataResult
3->
3->
3->
3->
3->
4->
5->
6->
7->
8->
9->
10->
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1-> bool CamThread::CamThreadHandle::threadLoop() mtkcam3/feature/core/featurePipe/core/src/CamThread.cpp
2-> mParent->onThreadLoop();
3-> MBOOL HelperNode::onThreadLoop() mtkcam3/feature/core/featurePipe/streaming/HelperNode.cpp
4-> processHelper(request, cbRequest.mData);
5-> processTPIMeta(request, helpReq.mCBMsg);
6-> ret = mTPIMgr->enqueNode(mTPIMetaNode.mNodeID, request->mRequestNo,
7-> bool TPIMgr_PluginWrapper::enqueNode(T_NodeID nodeID, unsigned frame, mtkcam3/feature/core/featurePipe/streaming/tpi/TPIMgr_PluginWrapper.cpp
8-> if( plugin->process(request) == OK )
9-> return mImpl.process(pRequest, pCallback); mtkcam3/include/mtkcam3/3rdparty/plugin/PluginInterceptor.h
10-> MERROR OcamMeta::process(RequestPtr pRequest, RequestCallbackPtr pCallback) X:\bruce\SI\mtkcam3\oplus\3rdparty\customer\ocam_async\ocam_meta.cpp
11-> setFfdData2App(facedata, pOMetadataApp);
12-> pOMetadataApp->update(OPLUS_CONTROL_CAPTURE_FB_FACE_INFO, faceInfoEntry);
12-> pOMetadataApp->update(OPLUS_CONTROL_CAPTURE_FFDPOINTS_INFO, ffdInfoEntry);
13->
14->
15->
5-> processAsync(request, helpReq.mCBMsg);
6->
7->
8->
9->
10->
11->
12->
13->
14->
15->
5-> processCB(request, helpReq.mCBMsg);
6->
7->
8->
9->
10->
11->
12->
13->
14->
15->
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1-> NSCam::NSCamFeature::NSFeaturePipe::TPI_AsyncNode::onThreadLoop() mtkcam3/feature/core/featurePipe/streaming/TPI_AsyncNode.cpp
2-> result = process(request, data);
3-> TPI_AsyncNode::process(const
4-> ret = mTPIMgr->enqueNode(mTPINodeIO.mNodeInfo.mNodeID,
5-> TPIMgr_PluginWrapper::enqueNode mtkcam3/feature/core/featurePipe/streaming/tpi/TPIMgr_PluginWrapper.cpp
6-> if( plugin->process(request) == OK )
7-> bool TPIMgr_PluginWrapper::enqueNode(T_NodeID nodeID, unsigned frame, mtkcam3/feature/core/featurePipe/streaming/tpi/TPIMgr_PluginWrapper.cpp
8-> if( plugin->process(request) == OK )
9-> return mImpl.process(pRequest, pCallback); mtkcam3/include/mtkcam3/3rdparty/plugin/PluginInterceptor.h
10-> OcamAsync::process(RequestPtr pRequest, RequestCallbackPtr pCallback) X:\bruce\SI\mtkcam3\oplus\3rdparty\customer\ocam_async\ocam_async.cpp
11-> doProcess(&preview_frame);
12-> int OcamAsync::doProcess(buffer_def_t* preview_frame)
13->
14->
15->
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1-> PipelineModelImpl::open( mtkcam3/pipeline/model/PipelineModelImpl.cpp
2-> CC_LIKELY( mHalDeviceAdapter->powerOn() mtkcam3/pipeline/model/PipelineModelImpl.cpp
3-> virtual auto powerOn() -> bool override X:\bruce\SI\mtkcam3\pipeline\model\adapter\HalDeviceAdapter.cpp
4-> if (CC_UNLIKELY( !mvHalSensor[i]->powerOn(mName.c_str(), 1, &sensorIndex) ))
5-> HalSensor::powerOn( X:\bruce\SI\mtkcam\drv\src\sensor\common\v1_1\HalSensor.cpp
6-> ret = pSensorDrv->open();
7-> ImgSensorDrv::open() X:\bruce\SI\mtkcam\drv\src\sensor\common\v1_1\imgsensor_drv.cpp
8-> ret = featureControl(SENSOR_FEATURE_OPEN
9-> ret = ioctl(m_fd, KDIMGSENSORIOC_X_FEATURECONCTROL, &featureCtrl);
10->
6-> HalSensor::setSensorMclk
6-> HalSensor::setSensorMclkDrivingCurrent
7-> ImgSensorDrv::sendCommand mtkcam/drv/src/sensor/mt6835/../common/v1_1/imgsensor_drv.cpp
4-> mvHal3A.push_back(IHal3AAdapter::create(mvPhySensorId[i], mName.c_str()));
5-> IHal3AAdapter::create mtkcam3/pipeline/model/adapter/Hal3AAdapter.cpp
6-> Hal3AAdapter::init() at vendor/mediatek/proprietary/hardware/mtkcam3/pipeline/model/adapter/Hal3AAdapter.cpp
7-> createInstance_Hal3A at vendor/mediatek/proprietary/hardware/mtkcam/aaa/source/common/hal3a/v3.0/IHal3A.cpp
8-> NS3Av3::Hal3AAdapter3::createInstance(int, char const*) at vendor/mediatek/proprietary/hardware/mtkcam/aaa/source/common/hal3a/v3.0/Hal3AAdapter3.cpp
9-> NS3Av3::Hal3AAdapter3::init
10-> NS3Av3::Hal3AAdapter3::doInit()
11-> NS3Av3::Hal3AFlowCtrl::getInstance(int)
12-> NS3Av3::Hal3AFlowCtrl::init(int)
13-> Hal3ARawImp::getInstance(int) at vendor/mediatek/proprietary/hardware/mtkcam/aaa/source/isp_6s/wrapper/Hal3ARawImp.cpp
14-> Hal3ARawImp::init(int)
15-> NS3Av3::AeMgr::cameraPreviewInit(int, NS3Av3::Param_T&) at vendor/mediatek/proprietary/hardware/mtkcam/aaa/source/isp_6s/ae_mgr/ae_mgr.cpp
16-> AeMgr::PreviewAEInit
17-> AAASensorMgr::getSensorDeviceInfo2( mtkcam/aaa/source/common/lsc_mgr/../../isp_6s/sensor_mgr/aaa_sensor_mgr.cpp
18-> HalSensor::sendCommand( mtkcam/drv/src/sensor/mt6835/../common/v1_1/HalSensor.cpp
19-> ImgSensorDrv::sendCommand( mtkcam/drv/src/sensor/mt6835/../common/v1_1/imgsensor_drv.cpp
20-> ImgSensorDrv::featureControl
15-> LscMgrDefault::init() mtkcam/aaa/source/common/lsc_mgr/../../isp_6s/lsc_mgr/LscMgrDefault.cpp
16-> LscMgrDefault::getSensorResolution()
17-> HalSensor::sendCommand
18-> ImgSensorDrv::sendCommand( mtkcam/drv/src/sensor/mt6835/../common/v1_1/imgsensor_drv.cpp
19-> ImgSensorDrv::featureControl
20->
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1-> main at vendor/mediatek/proprietary/hardware/mtkcam3/main/hal/service/service.cpp
2-> NSCam::hidl_dev3::HidlCameraDevice3::open mtkcam3/main/hal/entry/hidl/device/3.x/HidlCameraDevice3.cpp
3-> hidlSession->open(V3_5::ICameraDeviceCallback::castFrom(callback));
4-> HidlCameraDeviceSession::open mtkcam3/main/hal/entry/hidl/device/3.x/HidlCameraDeviceSession.cpp
5-> HidlCameraDeviceSession::initialize
6-> CameraDevice3SessionImpl::open mtkcam3/main/hal/device/3.x/device/CameraDevice3SessionImpl.cpp
7-> CameraDevice3SessionImpl::tryRunCommandLocked
8-> err = onOpenLocked(callback);
9-> PipelineModelManagerImpl::getPipelineModel(int) const at vendor/mediatek/proprietary/hardware/mtkcam3/pipeline/model/PipelineModelManagerImpl.cpp
10-> PipelineModelImpl::createInstance mtkcam3/pipeline/model/PipelineModelImpl.cpp
11-> PipelineModelImpl::init()
12-> PipelineModelImpl::initPipelineStaticInfo
13-> querySeamlessSwitchStaticInfo
14-> HalSensor::sendCommand mtkcam/drv/src/sensor/mt6835/../common/v1_1/HalSensor.cpp
15-> ImgSensorDrv::sendCommand mtkcam/drv/src/sensor/mt6835/../common/v1_1/imgsensor_drv.cpp
16-> ImgSensorDrv::featureControl
17->
18->
19->
20->
gc32e2mipiraw_avatarl5_Sensor.c feature_control(MSDK_SENSOR_FEATURE_ENUM feature_id,UINT8 *feature_para, UINT32 *feature_para_len)
case SENSOR_FEATURE_GET_AWB_REQ_BY_SCENARIO:
case SENSOR_FEATURE_GET_GAIN_RANGE_BY_SCENARIO:
case SENSOR_FEATURE_GET_BASE_GAIN_ISO_AND_STEP:
case SENSOR_FEATURE_GET_MIN_SHUTTER_BY_SCENARIO:
case SENSOR_FEATURE_GET_PIXEL_CLOCK_FREQ_BY_SCENARIO:
case MSDK_SCENARIO_ID_CAMERA_CAPTURE_JPEG:
case MSDK_SCENARIO_ID_VIDEO_PREVIEW:
case MSDK_SCENARIO_ID_HIGH_SPEED_VIDEO:
case MSDK_SCENARIO_ID_SLIM_VIDEO:
case MSDK_SCENARIO_ID_CUSTOM1:
case MSDK_SCENARIO_ID_CUSTOM2:
case MSDK_SCENARIO_ID_CAMERA_PREVIEW:
case SENSOR_FEATURE_GET_PERIOD_BY_SCENARIO:
case MSDK_SCENARIO_ID_CAMERA_CAPTURE_JPEG:
case MSDK_SCENARIO_ID_VIDEO_PREVIEW:
case MSDK_SCENARIO_ID_HIGH_SPEED_VIDEO:
case MSDK_SCENARIO_ID_SLIM_VIDEO:
case
mtk-camera-flow.txt
于 2025-03-18 17:30:23 首次发布