Versions Compared

Key

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

...

Architecture PipeWire-libcamera.

                       

Integration of RDKC with PipeWire-libcamera.

PipeWire overview and Flow in RDK-C.



  • It can create audio and video server
  • Apps and devices are represented by node
  • Each node has the input and output port to share media between node
  • The session manager is to configure nodes, ports and linking nodes
  • SPA: It will link to the driver to control the driver parameter and send and receive media.
  • SPA plugins: libcamera, ALSA, v4l2, JACK and etc...
  • WebRTC Live Streaming- Can View from Web Application
  • RMS live streaming with RTSP protocol – Can View live streaming in VLC
  • CVR with KVS SDK – Can view/record data in AWS KVS service
  • Session manager will control these app nodes and ports and it will link nodes along with ports for communication
  • Used libcamera SPA to fetch data from the v4l2 driver

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)

libcamera API sequence.



PipeWire API sequence in RDK-C:


Image Added


libcamera Usecase:


Image Added


libcamera Roadmap:

Configuration and control algorithms using libcamera.

  • 3A algorithm
  • AEC/AGC control                                                                                                                   
  • AWB control
  • AF control    


Image Added