Implemented each SPA plugins with a group of factories.
Each factory should have the below details * Version ( SPA_VERSION_HANDLE_FACTORY ) * Factory Name ( SPA_NAME_API_* - eg.SPA_NAME_API_LIBCAMERA_ENUM_UDEV) * SPA dictionary information ( struct spa_dict ) * Get size callback - impl_get_size() - Each factory has its own impl structure for to maintain some specific details. - With this callback, we can get the size of this factory impl structure * Initialization callback – impl_init() - This will initialize this factory-specific activity * Enum interface info callback - impl_enum_interface_info()
Each SPA plugin's factories are associated with the spa_handle_factory_enum() function.