Camx 添加pipeline 流程实现

和你一起终身学习,这里是程序员 Android

经典好文推荐,通过阅读本文,您将收获以下知识点:

一.需求概述
二.简介
三.添加pipeline实现

一.需求概述

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

二.简介

要添加的PipeLine:SWMFMergeRawTwo2One

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

三.添加pipeline实现

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:
5b9cef336bd5f5bfebcb0780494c4727.jpeg
  • NodeId:
    外部定制的Node使用 NodeId 255 (例如自己加的算法Node)
  • NodePropertyId:
    1是定制的Lib
  • NodePropertyValue:
    填入chi node lib name
    关于 NodeProperty 的相关定义可以在 vendor\qcom\proprietary\chi-cdk\api\common\chi.h 中查到
f727359f77d969dd1d56a4796d81cf72.jpeg
3.4 修改PortLinkages

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

73ae96c9856bfe93c74a83a8d525a63e.jpeg
  • SourceBuffer:NodeId 4
  • SinkBuffer:NodeId 2
    所有软件softeware和硬件hardware NodeId的定义可以在 vendor\qcom\proprietary\camx\src\core\Camxhwdefs.h文件中查阅到
584e515e0af01404ad0e77a794c5182f.jpeg

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

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

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

d37ecdba82f1207985b9bf0ec64dda59.jpeg
3.7 更新vendor\qcom\proprietary\chi\cdk\core\chifeature2\Chifeature2utils.h 文件中的 TargetStreamMap
8165b7c43ff3e1c648f156a570da1a04.jpeg
3.8 为ChiUseCase添加pipeline Id

这个pipeline Id必须和pipeline name一致

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

a7eb7ce7fb336a4e6197d6aeba173c99.jpeg
3.9 对pipeline id进行添加
5f999a2148645e479d60f016989d44e8.jpeg

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

1c0903f2b31c3d83962eaf4d8eb340c5.jpeg

四.使用

4.1 在Feature2架构的Feature中使用pipeline

在ChiFeature2PipelineDescriptor数组中添加 pipeline

baa821b0e6b52e33a5515e01c0ef94c1.jpeg

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

37de86ae3e8db6692f2a38e3d9d1b334.jpeg

原文链接:https://blog.csdn.net/geyichongchujianghu/article/details/131033444

至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值