高通 Camera HAL3:添加一条PipeLine

一.概述

添加一条PipeLine实现两路Raw进,一路Raw出

二.简介

要添加的PipeLine:SWMFMergeRawTwo2One

  • 包含1个memcpy node,
  • 这个node用于将2个raw buffer input输入 变为 1个raw buffer output输出

三.添加 

3.1 在相应的Usecase下添加一个pipeline xml

vendor\qcom\proprietary\chi-cdk\oem\qcom\topology\usecase\components\usecases\UsecaseZSL\pipelines\
目录下放置pipline文件:camxSWMFMergeRawTwo2One.xml

3.2 填充pipline xml文件

填充camxSWMFMergeRawTwo2One.xml

  • (1).SWMFMergeRawTwo2One //PipelineName 是唯一的
  • (2).在NodesList里链接所有需要链接的Node //List all nodes required by the pipeline in

3.3 修改NodesList:

  • NodeId:外部定制的Node使用 NodeId 255 (例如自己加的算法Node)
  • NodePropertyId:1是定制的Lib
  • NodePropertyValue:填入chi node lib name

关于 NodeProperty 的相关定义可以在 vendor\qcom\proprietary\chi-cdk\api\common\chi.h 中查到

3.4 修改PortLinkages

PortLinkages:input target,chi/camx Node 和 output target 的链接链表

  • SourceBuffer:NodeId 4
  • SinkBuffer:NodeId 2

所有软件softeware和硬件hardware NodeId的定义可以在 vendor\qcom\proprietary\camx\src\core\Camxhwdefs.h文件中查阅到

Source Target:

  • TARGET_BUFFER_RAW_IN0
  • TARGET_BUFFER_RAW_IN1

需要被填写不同的 NodeInstanceId 

3.5 CamxInclude添加对 pipeline 的引用

在相应的Usecase xml文件中,使用CamxInclude添加对 pipeline 的引用

vendor\qcom\proprietary\chi-cdk\oem\qcom\topology\usecase\components\usecases\usecasezsl\camxUsecaseZSL.xml

3.6 为pipeline添加一个新的target(TARGET_BUFFER_RAW_OUT2)

在camxUsecaseZSL.xml中为 pipeline 添加一个新的 target 定义

3.7 更新vendor\qcom\proprietary\chi\cdk\core\chifeature2\Chifeature2utils.h 文件中的 TargetStreamMap

3.8 为ChiUseCase添加pipeline Id

这个pipeline Id必须和pipeline name一致

\chi-cdk\core\chiusecase\chxadvancedcamerausecase.cpp

3.9 对pipeline id进行添加 

3.10 添加pipeline type

添加pipeline type:\chi-cdk\core\chiframework\chxfeature.h

四.使用

4.1 在Feature2架构的Feature中使用pipeline

在ChiFeature2PipelineDescriptor数组中添加 pipeline

feature target descriptor的target name 必须和pipeline xml文件中的target name保持一致

五.结束

猜你喜欢

转载自blog.csdn.net/geyichongchujianghu/article/details/131033444
今日推荐