mirror of
https://gitlab.freedesktop.org/pipewire/wireplumber.git
synced 2026-02-10 04:30:30 +01:00
read-only mirror of https://gitlab.freedesktop.org/pipewire/wireplumber
Calling sync() in loops may end up looping forever if the operating system's scheduling allows pipewire to reply to this sync() before wireplumber's event loop has a chance to become idle. In order for the new ports to appear, the object manager that monitors them needs to emit "objects-changed", which only ever happens in an idle callback. If the reply to sync() arrives before the idle callback, it gets prioritized and processed, which causes another sync(), and so on... Since setting PortFormat in the adapter always changes the ports, watching for "ports-changed" feels like a better solution. Still, there is more room for improvement. |
||
|---|---|---|
| docs | ||
| lib | ||
| modules | ||
| src | ||
| subprojects | ||
| tests | ||
| .editorconfig | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| 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/tokei/lines/gitlab.freedesktop.org/pipewire/wireplumber :alt: Lines of code .. 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/>`_