Camx 添加pipeline实现流程

共 2251字,需浏览 5分钟

 ·

2024-03-19 15:44


fa494f6e4f879e36fe2b6d7d65ea30e8.webp


和你一起终身学 习,这里是程序员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:4862cbbc47406ee5943788b71c0a163d.webp



  • NodeId:
    外部定制的Node使用 NodeId 255 (例如自己加的算法Node)


  • NodePropertyId:
    1是定制的Lib


  • NodePropertyValue:
    填入chi node lib name
    关于 NodeProperty 的相关定义可以在 vendor\qcom\proprietary\chi-cdk\api\common\chi.h 中查到



a489642b569df0396fdb4667818081e9.webp


3.4 修改PortLinkages


PortLinkages:input target,chi/camx Node 和 output target 的链接链表2370d78e8749c3c86e27b84272119983.webp



  • SourceBuffer:NodeId 4


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



9bac6d582a1ff3967efdc349af1a2450.webp


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.xmle1bd2a08a5b1176b902b60e4ea66deff.webp


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


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


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


3.8 为ChiUseCase添加pipeline Id


这个pipeline Id必须和pipeline name一致


\chi-cdk\core\chiusecase\chxadvancedcamerausecase.cpp75b66003ce4957731a2c95fac4e22bcb.webp


3.9 对pipeline id进行添加97d12b785afd2a63c9870fdf4b4622a6.webp


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


四.使用


4.1 在Feature2架构的Feature中使用pipeline


在ChiFeature2PipelineDescriptor数组中添加 pipelineafaeadc8c561fcfac8f9d9fd4589837b.webp


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


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


参考文献:


【腾讯文档】Camera学习知识库
https://docs.qq.com/doc/DSWZ6dUlNemtUWndv


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



点击阅读原文,为大佬点赞!


浏览 85
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报