Find a file
Carlos Rafael Giani 401de84fc2 si-linkables: add int format-preference-priority SI audio adapter property
This property influences how the SI standard link picks a format during
negotiations. An adapter with a higher priority is preferred then, that is,
its format has priority over the other adapter's.

The minimum valid priority is 0. The value 0 is the default. 0 means that
there is no priority for this adapter format. If both adapters have
priority 0, the behavior is as it was before this commit.

If an adapter's priority is greater than 0, the following changes in
behavior occur:

1. In si_audio_adapter_find_format (), new formats are always picked
   over a format that is already in use. Normally, the new format would
   only be picked over the one in use if the new format has a greater
   number of channels.
2. si_audio_adapter_configure_node () is called immediately when the
   adapter is activated. Normally, this is only done in certain cases,
   like when the stream.dont-remix property is true.
3. In the SI link, the adapter is configured even if the unpositioned
   flags of one or both adapters are set to true.

The intent of this property is to be used when "upstream" (that
is, the media source) wants to enforce its format "downstream". Normally,
for example, audio sinks tend to open an audio output device with the
maximum amount of channels it can handle, and then keep it open with that
amount, even if incoming streams have fewer channels (the extra channels
then remain unused). By using these format priorities, a different
behavior can be configured where the output device reconfigures the
audio hardware to use the amount of channels from upstream.
2024-09-02 11:05:22 +02:00
docs docs: add info on how to set the log level via configuration 2024-07-09 08:59:18 +03:00
lib lib: settings: find the first loaded instance of WpSettings when metadata_name is NULL 2024-08-29 17:15:50 +03:00
modules si-linkables: add int format-preference-priority SI audio adapter property 2024-09-02 11:05:22 +02:00
po po: add Slovenian (sl) language 2024-08-26 17:33:36 +03:00
src main: show the profile name on the app name 2024-08-29 17:15:50 +03:00
subprojects subprojects: bump lua to 5.4.4 2022-07-05 16:14:05 +03:00
tests script-tester: load find-media-role-target.lua to fix test failure 2024-06-26 15:50:20 +03:00
.editorconfig editorconfig: remove obsolete entry and add python script rules 2021-05-26 09:36:41 +03:00
.gitignore gitignore: remove obsolete entry 2021-05-26 09:38:03 +03:00
.gitlab-ci.yml gitlab-ci: bump ubuntu image to 22.04 LTS 2023-06-20 12:39:29 +03:00
LICENSE LICENSE: update copyright years 2021-05-26 09:33:18 +03:00
Makefile Makefile: run valgrind with better arguments & environment 2021-10-15 14:00:05 +03:00
meson.build 0.5.5 2024-06-28 18:18:02 +03:00
meson_options.txt meson: make sure the boolean options have boolean values 2024-03-09 15:58:01 +02:00
NEWS.rst 0.5.5 2024-06-28 18:18:02 +03:00
README.rst README: remove broken badge 2024-02-10 11:44:19 +02:00
wp-uninstalled.sh wp-uninstalled: fix a few shellcheck complaints 2021-10-26 13:06:46 +10:00

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/>`_