mirror of
https://gitlab.freedesktop.org/pipewire/wireplumber.git
synced 2026-06-13 04:38:19 +02:00
read-only mirror of https://gitlab.freedesktop.org/pipewire/wireplumber
Scripts are always deactivated (and not finalized) before core disconnects, so we need to make sure the scripts don't hold a strong reference when creating them. They must only hold a strong reference of the Lua state if activated. In order to implement this properly, the lua_State has been wrapped into a GObject so that the 'lua-engine' construct-only property is a weak reference of the Lua state. Then, when the script is activated, a strong reference of the Lua state is held so the script can work. This strong reference is later dropped when the script is deactivated (right before the core is disconnected), avoiding leaked proxy warning messages in the log if a script has a global variable holding a proxy (Eg the alsa monitor in alsa.lua). |
||
|---|---|---|
| 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/>`_