首页 > 其他分享 >Preview pipeline: Display_Out SetupTargetBuffer

Preview pipeline: Display_Out SetupTargetBuffer

时间:2024-03-15 16:12:59浏览次数:29  
标签:case pipeline pRequestObject SetupTargetBuffer break result CDKResult Preview re

camx/src/core/hal/camxhaldevice.cpp

  CamxResult HALDevice::ProcessCaptureRequest(
      Camera3CaptureRequest* pRequest)
  {
          result = GetCHIAppCallbacks()->chi_override_process_request(reinterpret_cast<const camera3_device*>(&m_camera3Device),
                                                                      reinterpret_cast<camera3_capture_request_t*>(pRequest),
                                                                      NULL);
HALDevice::ProcessCaptureRequest

chi-cdk/core/chiframework/chxextensioninterface.cpp

  static CDKResult chi_override_process_request(
      const camera3_device_t*     camera3_device,
      camera3_capture_request_t*  capture_request,
      void*                       priv)
  {
      return pExtensionModule->OverrideProcessRequest(camera3_device, capture_request, priv);
chi_override_process_request

chi-cdk/core/chiframework/chxextensionmodule.cpp 

CDKResult ExtensionModule::OverrideProcessRequest(
      const camera3_device_t*     camera3_device,
      camera3_capture_request_t*  pCaptureRequest,
      VOID*                       pPriv)
  {
                 result = m_pSelectedUsecase[logicalCameraId]->ProcessCaptureRequest(pCaptureRequest);
ExtensionModule::OverrideProcessRequest 

chi-cdk/core/chiframework/chxusecase.cpp

  CDKResult Usecase::ProcessCaptureRequest(
      camera3_capture_request_t* pRequest)
  {
         result = ExecuteCaptureRequest(pRequest);
Usecase::ProcessCaptureRequest

chi-cdk/core/chiusecase/chxadvancedcamerausecase.cpp

  CDKResult AdvancedCameraUsecase::ExecuteCaptureRequest(
      camera3_capture_request_t* pRequest)
  {
              result = pFeature->ExecuteProcessRequest(pRequest);
AdvancedCameraUsecase::ExecuteCaptureRequest

chi-cdk/core/chifeature2/chifeature2wrapper.cpp

  CDKResult Feature2Wrapper::ExecuteProcessRequest(
      camera3_capture_request_t* pRequest)
  {
                  result = m_pChiFeatureGraphManager->ExecuteProcessRequest(pUsecaseRequestObject);  
Feature2Wrapper::ExecuteProcessRequest

chi-cdk/core/chifeature2/chifeature2graphmanager.cpp

  CDKResult ChiFeature2GraphManager::ExecuteProcessRequest(
      ChiFeature2UsecaseRequestObject* pRequestObject)
  {
              result = pFeatureGraph->ExecuteProcessRequest(pRequestObject);
ChiFeature2GraphManager::ExecuteProcessRequest

 chi-cdk/core/chifeature2/chifeature2graph.cpp

  CDKResult ChiFeature2Graph::ExecuteProcessRequest(
      ChiFeature2UsecaseRequestObject* pUsecaseRequestObj)
  {
      CDKResult result = CDKResultSuccess;
  
      m_pUsecaseRequestObj = pUsecaseRequestObj;
  
      // Depending on state, either gather input dependencies for URO or set input dependencies from URO
      ChiFeature2UsecaseRequestObjectState requestState = pUsecaseRequestObj->GetRequestState();
  
      switch (requestState)
      {
          case ChiFeature2UsecaseRequestObjectState::Initialized:
              // Setup links, feature request objects, and gather input dependencies for the usecase request object
              result = WalkAllExtSinkLinks(pUsecaseRequestObj);
              break;
  
          case ChiFeature2UsecaseRequestObjectState::InputConfigPending:
              // Set any available input dependencies for the usecase request object
              result = WalkAllExtSrcLinks(pUsecaseRequestObj);
              break;
  
          default:
              CHX_LOG_ERROR("Unsupported ChiFeature2UsecaseRequestObjectState: %d", requestState);
              result = CDKResultEInvalidArg;
              break;
      }
  
      return result;
  }
  
  CDKResult ChiFeature2Graph::WalkAllExtSinkLinks(
      ChiFeature2UsecaseRequestObject* pUsecaseRequestObj)
  {
          // Walk back to the source node of the sink link, checking all of its output links to determine next step
          result = WalkBackFromLink(pUsecaseRequestObj, pExtSinkLinkData);
    
  CDKResult ChiFeature2Graph::WalkBackFromLink(
      ChiFeature2UsecaseRequestObject*    pUsecaseRequestObj,
      ChiFeature2GraphLinkData*           pOutputLinkData)
  {
              // Submit the feature request object, if all links have been visited
              result = ProcessUpstreamFeatureRequest(pUsecaseRequestObj, pOutputLinkData->pSrcGraphNode);
              
  CDKResult ChiFeature2Graph::ProcessUpstreamFeatureRequest(
      ChiFeature2UsecaseRequestObject*    pUsecaseRequestObj,
      ChiFeature2GraphNode*               pGraphNode)
  {
                      // Give the feature request object to the feature and continue the walk-back
                      result = pGraphNode->pFeatureBaseObj->ProcessRequest(pSrcFeatureRequestObj,
                                                                           ChiFeature2RequestCommands::Execute);
ChiFeature2Graph::ExecuteProcessRequest chi-cdk/core/chifeature2/chifeature2base.cpp
  CDKResult ChiFeature2Base::ProcessRequest(
      ChiFeature2RequestObject*  pRequestObject,
      ChiFeature2RequestCommands requestCommand)
  {
              switch (requestCommand)
              {
                  case ChiFeature2RequestCommands::InputResource:
                      result = ProcessInputResource(pRequestObject, requestId);
                      break;
  
                  case ChiFeature2RequestCommands::Execute:
                      result = ProcessExecute(pRequestObject, requestId);
                      break;
  
                  case ChiFeature2RequestCommands::OutputResource:
                      result = ProcessOutputResource(pRequestObject, requestId);
                      break;
  
                  case ChiFeature2RequestCommands::ReleaseResource:
                      result = ProcessReleaseResource(pRequestObject, requestId);
                      break;
  
                  case ChiFeature2RequestCommands::Complete:
                      ProcessComplete(pRequestObject, requestId);
                      break;
                  default:
                      break;
              }
  CDKResult ChiFeature2Base::ProcessExecute(
      ChiFeature2RequestObject* pRequestObject,
      UINT8                     requestId)
  {
              switch(requestState)
              {
                  case ChiFeature2RequestState::Initialized:
                      if (TRUE == static_cast<BOOL>(ChxUtils::AtomicLoadU32(&m_isFlushInProgress)))
                      {
                          CHX_LOG_WARN("%s requestId:%d has been dropped as flush is in progress",
                              pRequestObject->IdentifierString(), requestId);
                          result = CDKResultECancelledRequest;
                      }
                      else
                      {
                          result = HandlePrepareRequest(pRequestObject);
                          if (CDKResultSuccess != result)
                          {
                              CHX_LOG_ERROR("HandlePrepareRequest returned error: %d", result);
                          }
                      }
                      canExecute = TRUE;
                      break;
                  case ChiFeature2RequestState::ReadyToExecute:
                  case ChiFeature2RequestState::Executing:
                      result = OnProcessRequest(pRequestObject, requestId);
                      if (CDKResultSuccess != result)
                      {
                          CHX_LOG_ERROR("OnProcessRequest failed with result: %d", result);
                      }
                      canExecute = TRUE;
                      break;
                  case ChiFeature2RequestState::InputResourcePending:
                      result = ProcessDependency(pRequestObject, requestId);
                      canExecute = FALSE;
                      break;
                  case ChiFeature2RequestState::OutputResourcePending:
                  case ChiFeature2RequestState::Complete: // During flush error mechanism makes state to complete.
                      canExecute = FALSE;
                      break;
                  default:
                      canExecute = FALSE;
                      CHX_LOG_WARN("%s: Failed: FRO is in incorrect state: %d requestId:%d",
                          GetFeatureName(), requestState, requestId);
              }
  CDKResult ChiFeature2Base::OnProcessRequest(
      ChiFeature2RequestObject* pRequestObject,
      UINT8                     requestId)
  {
              switch (requestState)
              {
                  case ChiFeature2RequestState::ReadyToExecute:
                  case ChiFeature2RequestState::Executing:
                  {
                      result = HandleExecuteProcessRequest(pRequestObject, requestId);
                      if (CDKResultENoMore == result)
                      {
                          CHX_LOG_WARN("HandleExecuteProcessRequest is not continuing due to errors");
                      }
                      else if (CDKResultSuccess != result)
                      {
                          if (CDKResultECancelledRequest != result)
                          {
                              CHX_LOG_ERROR("HandleExecuteProcessRequest returned error: %d", result);
                          }
                          else
                          {
                              CHX_LOG_INFO("HandleExecuteProcessRequest request cancelled result: %d", result);
                          }
                      }
                      break;
                  }
                  case ChiFeature2RequestState::Complete:
                      CHX_LOG_INFO("Already in complete state for requestId: %d", requestId);
                      break;
                  default:
                      CHX_LOG_INFO("Move to State: %d", requestState);
                      break;
              }
  CDKResult ChiFeature2Base::HandleExecuteProcessRequest(
      ChiFeature2RequestObject* pRequestObject,
      UINT8                     requestId)
  {
                  result = OnExecuteProcessRequest(pRequestObject);
ChiFeature2Base::ProcessRequest chi-cdk/oem/qcom/feature2/chifeature2rt/chifeature2realtime.cpp
  CDKResult ChiFeature2RealTime::OnExecuteProcessRequest(
      ChiFeature2RequestObject * pRequestObject
      ) const
  {
                              PopulatePortConfiguration(pRequestObject, NULL, &filtered);
ChiFeature2RealTime::OnExecuteProcessRequest

chi-cdk/core/chifeature2/chifeature2base.cpp

  CDKResult ChiFeature2Base::PopulatePortConfiguration(
      ChiFeature2RequestObject*     pRequestObject,
      const ChiFeature2PortIdList*  pInputList,
      const ChiFeature2PortIdList*  pOutputList
      ) const
  {
                      // Check if the TBM of this port is shared with other linked port and the linked
                      // port has setup TBH, if yes, get TBH from the linked port. Otherwise, get
                      // TBH from TargetBufferManager.
                      bufferResult = GetBufferHandleFromLinkedPort(pRequestObject,
                          pPortData, requestId, 0, outputBufferMetaInfo);
                      if (CDKResultSuccess != bufferResult)
                      {
                          outputBufferMetaInfo.hBuffer = GetOutputBufferHandle(pPortData, pRequestData->frameNumber);
                          
  CHITARGETBUFFERINFOHANDLE ChiFeature2Base::GetOutputBufferHandle(
      const ChiFeaturePortData* pPortData,
      UINT32                    sequenceNumber
      ) const
  {
          pTargetBufferManager = pPortData->pOutputBufferTbm;
          hBuffer              = pTargetBufferManager->SetupTargetBuffer(sequenceNumber);
ChiFeature2Base::PopulatePortConfiguration

chi-cdk/core/chifeature2/chitargetbuffermanager.cpp

标签:case,pipeline,pRequestObject,SetupTargetBuffer,break,result,CDKResult,Preview,re
From: https://www.cnblogs.com/mywayhome/p/17897692.html

相关文章

  • .NET Aspire Preview 4 发布!
    .NETAspirePreview4isnowavailable!Here'sasummaryofwhat'snewinthispreviewrelease:.NETAspirePreview4现已推出!以下是此预览版中新增内容的摘要:Podman  Supportforrunningappswith podman支持使用 podman 运行应用程序Dashboard  仪表板......
  • Windows Server 2025 简体中文版下载 (Inside Preview, updated Mar 2024) - 下一代 W
    WindowsServer2025简体中文版下载(InsidePreview,updatedMar2024)-下一代Windows11ServerWindowsServer2025正式版发布在即请访问原文链接:https://sysin.org/blog/windows-server-2025/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org我们知道Windo......
  • c#之asp.net的管道处理模式pipeline
    管道在进入管道之前首先要知道asp.netisApi所有的请求是由IIS转发给asp.netisApiHttpWorkerRequest监听asp.netisApi中的队列,HttpWorkerRequest是管道的执行入口 注册中间件的过程在响应请求的时候会触发事件,需要Config中配置以下是HtttpAplacation中的部分事件,在请求进......
  • Angr Execution Pipeline
    ReferenceUnderstandingtheExecutionPipelineIfyou’vemadeitthisfaryouknowthatatitscore,angrisahighlyflexibleandintenselyinstrumentableemulator.Inordertogetthemostmileageoutofit,you’llwanttoknowwhathappensateveryste......
  • 实例详解在Go中构建流数据pipeline
    本文分享自华为云社区《Go并发范式流水线和优雅退出Pipeline与Cancellation》,作者:张俭。介绍Go的并发原语可以轻松构建流数据管道,从而高效利用I/O和多个CPU。本文展示了此类pipelines的示例,强调了操作失败时出现的细微之处,并介绍了干净地处理失败的技术。什么是pipeli......
  • A trip through the Graphics Pipeline 2011: Index
    原文地址https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/Welcome.ThisistheindexpageforaseriesofblogpostsI’mcurrentlywritingabouttheD3D/OpenGLgraphicspipelinesasactuallyimplementedbyGPUs.Alot......
  • tensorflow distributed training in tfx pipeline run by kubeflow
    1.deployworker,parameterserveronkubernetescluster1.1buildcontainerimageofworker,parameterserver$gitclonehttps://github.com/tensorflow/ecosystem.git$cdecosystem/distribution_strategy$sudonerdctlbuild--no-cache-ttf_std_server:......
  • Debug : kfp.Client().upload_pipeline(): Failed to start a transaction to create
    [ERROR:Failedtostartatransactiontocreateanewpipelineandanewpipelineversion:dialtcp:lookupmysqlon10.96.0.10:53:nosuchhost","]>>>kfp.Client().upload_pipeline("/home/maye/pipeline_wafer_distribute.yaml",......
  • 全基因组测序流程 | WGS pipeline
     创建conda环境,安装必要软件condacreate-nwgscondaactivatewgscondainstallbioconda::bwa 下载最佳reffastagcloudstoragecpgs://BUCKET_NAME/OBJECT_NAMESAVE_TO_LOCATIONgs://gcp-public-data--broad-references/hg38/v0/Homo_sapiens_assembly38.fastaR......
  • kekingcn/file-online-preview服务打包arm架构镜像
    1.gitte地址https://gitee.com/kekingcn/file-online-preview?_from=gitee_search 2.基础镜像打包FROMubuntu:20.04MAINTAINERchenjh"[email protected]"#内置一些常用的中文字体,避免普遍性乱码COPYfonts/*/usr/share/fonts/chinese/RUNapt-getclean&&apt-ge......