128、Camera HAL 的 MTK 平台适配:Pipeline Model 与 Feature 注册机制
一、从一次“黑屏”调试说起
去年Q3,我接手一个MTK Dimensity 9000平台的客制化项目。客户要求实现一个“超级夜景+AI去噪”的复合功能,硬件上用了三星的JN1传感器。按照惯例,我在MTK HAL层新增了一个Feature,注册到Pipeline里,编译烧录,开机——预览画面直接黑屏,log里疯狂刷“Pipeline node not found”。
当时第一反应是Feature ID冲突,查了MTK的Feature ID枚举表,确认没重复。又怀疑是Node配置顺序问题,调了三天,黑屏依旧。最后是MTK FAE(现场应用工程师)点醒我:“你注册的Feature,在Pipeline Model里没有对应的Node描述,HAL根本不知道这个Feature该走哪条硬件路径。”
这个坑让我彻底理解了MTK平台Pipeline Model和Feature注册机制的本质——它不是简单的“加个功能开关”,而是要在HAL层构建一个完整的“功能-节点-硬件”映射关系。
二、Pipeline Model:别把它当成流程图
很多从高通转过来的工程师,第一次看MTK的Pipeline Model会懵。高通的Pipeline是线性的,一个Stream对应一条固定的处理链路。MT