HAL3主要的客制化位置是SettingPolicy(请参考02 Pipeline — 04 SettingPolicy的内容)以及PipelinePlugin,本节会主要介绍PipelinePlugin。
1. PipelinePlugin Overview
PipelinePlugin是HAL3统一的三方算法挂载界面,无论是Streaming/Capture/DualCam,还是RAW/YUV算法,都是在PipelinePlugin里面挂载并运行。
PipelinePlugin主要有2个部分:
IInterface部分:提供三方算法的接入,会用selection详细描述可以提供的buffer & metadata形式;
IProvider部分:提供三方算法的挂载(将三方算法能力提供出来),同样也会用selection来声明可以使用什么buffer & metadata形式;
举例如下:
其中REGISTER_PLUGIN_INTERFACE与REGISTER_PLUGIN_PROVIDER分别为IInterface与IProvider注册。