mirror of
https://gitlab.freedesktop.org/pipewire/wireplumber.git
synced 2026-02-04 05:00:26 +01:00
read-only mirror of https://gitlab.freedesktop.org/pipewire/wireplumber
At the moment the libcamera monitor and "Device" objects are loaded in the wireplumber process, but the "Node" objects are loaded in the pipewire daemon. Due to that, both processes have their own separate `libcamera::CameraManager` objects. These operate independently. As a consequence of the above, there is an inherent race condition: when a new camera appears and the wireplumber process detects it and instructs the pipewire process to create a "Node" for it, at that point, the camera might not exist in the `CameraManager` of the "pipewire" process. This can happen during the initial enumeration as well as hotplug. So load the nodes locally in the wireplumber process so that all libcamera objects use the same `CameraManager`, thus eliminating the race condition. |
||
|---|---|---|
| docs | ||
| lib | ||
| modules | ||
| po | ||
| src | ||
| subprojects | ||
| tests | ||
| .editorconfig | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| AGENTS.md | ||
| LICENSE | ||
| Makefile | ||
| meson.build | ||
| meson_options.txt | ||
| NEWS.rst | ||
| README.rst | ||
| wp-uninstalled.sh | ||
WirePlumber =========== .. image:: https://gitlab.freedesktop.org/pipewire/wireplumber/badges/master/pipeline.svg :alt: Pipeline status .. image:: https://scan.coverity.com/projects/21488/badge.svg :alt: Coverity Scan Build Status .. image:: https://img.shields.io/badge/license-MIT-green :alt: License .. image:: https://img.shields.io/badge/dynamic/json?color=informational&label=tag&query=%24%5B0%5D.name&url=https%3A%2F%2Fgitlab.freedesktop.org%2Fapi%2Fv4%2Fprojects%2F2941%2Frepository%2Ftags :alt: Tag WirePlumber is a modular session / policy manager for `PipeWire <https://pipewire.org>`_ and a GObject-based high-level library that wraps PipeWire's API, providing convenience for writing the daemon's modules as well as external tools for managing PipeWire. The WirePlumber daemon implements the session & policy management service. It follows a modular design, having plugins that implement the actual management functionality. The WirePlumber Library provides API that allows you to extend the WirePlumber daemon, to write management or status tools for PipeWire (apps that don't do actual media streaming) and to write custom session managers for embedded devices. Documentation ------------- The latest version of the documentation is available online `here <https://pipewire.pages.freedesktop.org/wireplumber/>`_