Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Overview of PipeWire


     

SPA Plugin Creation (pipewire/spa/plugins )

  1. Implemented each SPA plugins with a group of factories.
  2. 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()
  3. Each SPA plugin's factories are associated with the spa_handle_factory_enum() function.
  4. libcamera SPA plugin’s factories(libcamera.c)