95 lines
2.7 KiB
Markdown
95 lines
2.7 KiB
Markdown
# Daemon
|
|
|
|
The WirePlumber daemon implements the session & policy management service.
|
|
|
|
## Running
|
|
|
|
1. First of all, you will need to run PipeWire. PipeWire itself comes with
|
|
an example session manager that you will need to disable in order to run
|
|
WirePlumber. This can be achieved by editing `src/daemon/pipewire.conf.in`
|
|
on the PipeWire git tree to disable the execution of the session manager:
|
|
|
|
```
|
|
diff --git a/src/daemon/pipewire.conf.in b/src/daemon/pipewire.conf.in
|
|
index bf64c574..e733e76c 100644
|
|
--- a/src/daemon/pipewire.conf.in
|
|
+++ b/src/daemon/pipewire.conf.in
|
|
@@ -24,4 +24,4 @@ load-module libpipewire-module-access
|
|
load-module libpipewire-module-adapter
|
|
load-module libpipewire-module-link-factory
|
|
load-module libpipewire-module-session-manager
|
|
-exec build/src/examples/media-session
|
|
+#exec build/src/examples/media-session
|
|
```
|
|
|
|
2. Second, you will need to run pipewire: in the **pipewire** source tree, do `make run`
|
|
|
|
3. Without stopping pipewire, in the **wireplumber** source tree, do `make run`
|
|
|
|
## Testing with an audio client
|
|
|
|
The easiest way to test that things are working is to start a gstreamer pipeline
|
|
that outputs a test sound to pipewire.
|
|
|
|
In the **pipewire** source tree, do:
|
|
|
|
```
|
|
$ make shell
|
|
$ gst-launch-1.0 audiotestsrc ! pwaudiosink
|
|
```
|
|
|
|
Note that `pwaudiosink` is currently only available in the `agl-next` branch.
|
|
|
|
It is also possible to easily test *pulseaudio* and *jack* audio clients with
|
|
**mplayer**. For example, for pulse clients, do:
|
|
|
|
```
|
|
$ make shell
|
|
$ mplayer -ao pulse file.mp3
|
|
```
|
|
|
|
For jack clients, do:
|
|
|
|
```
|
|
$ make shell
|
|
$ mplayer -ao jack file.mp3
|
|
```
|
|
|
|
Note that *pipewire-pulseaudio* and *pipewire-jack* compatibility libraries from
|
|
the **pipewire** project need to be installed.
|
|
|
|
## Testing with a video client
|
|
|
|
Video capturing is also possible using the pipewiresrc **gstreamer** element, which
|
|
is included by default when installing **pipewire**. You can capture video buffers
|
|
from the default camera by doing the following:
|
|
|
|
```
|
|
$ make shell
|
|
$ gst-launch-1.0 pipewiresrc ! videoconvert ! ximagesink
|
|
```
|
|
|
|
## Debugging
|
|
|
|
The Makefile included with WirePlumber also supports the `gdb` and `valgrind`
|
|
targets. So, instead of `make run` you can do `make gdb` or `make valgrind`
|
|
to do some debugging.
|
|
|
|
Getting debug messages on the command line is a matter of setting the
|
|
`G_MESSAGES_DEBUG` environment variable as documented in the GLib documentation.
|
|
Usually you can just do:
|
|
|
|
```
|
|
G_MESSAGES_DEBUG=all make run
|
|
```
|
|
|
|
Note that this only gives out WirePlumber's debug messages. If you want to also
|
|
see *libpipewire*'s debug messages, then you can also set:
|
|
|
|
```
|
|
PIPEWIRE_DEBUG=4 G_MESSAGES_DEBUG=all make run
|
|
```
|
|
|
|
... where `PIPEWIRE_DEBUG` can be set to a value between 1 and 5, with 5 being the
|
|
most verbose and 1 the least verbose.
|