注册函数的关系
hi_mpi_isp_ae_lib_reg_callback和hi_mpi_isp_awb_lib_reg_callback这两个接口是ISP firmware库提供的钩子函数,用于开发3A算法库时实现注册动作。例如3A算法库的hi_mpi_ae_register和hi_mpi_awb_register接口,在实现时调用了相应的钩子函数,所以调用hi_mpi_ae_register能实现AE算法库向ISP firmware库注册。
同样的,3A算法库同样也提供了钩子函数,用于Sensor库实现向3A算法库注册的动作。例如hi_mpi_ae_sensor_reg_callback和hi_mpi_awb_sensor_reg_callback,在xxx_cmos.c中可以看到调用了这些钩子函数的函数sensor_register_callback。用户在开发3A算法库时,也可以通过提供钩子函数的方式,实现Sensor库向3A算法库的注册。
当然,ISP firmware库也提供了钩子函数,用于Sensor库实现向ISP firmware库注册的动作。例如hi_mpi_isp_sensor_reg_callback,在xxx_cmos.c中可以看到调用了该钩子函数的函数sensor_register_callback。所以,当用户调用hi_mpi_ae_register、hi_mpi_awb_register和sensor_register_callback就完成了3A算法库向ISP firmware库注册、Sensor库向3A算法库和ISP firmware库注册。
用户开发3A算法库时,请自行实现hi_mpi_axx_register接口。同时也请自行实现hi_mpi_axx_sensor_reg_callback钩子函数,并在sensor_register_callback中增加调用该钩子函数的代码,相关代码可以参考ISP firmware库的开源代码。