mirror of
https://gitlab.freedesktop.org/pipewire/media-session.git
synced 2025-12-20 04:10:02 +01:00
Update auxiliary files
This commit is contained in:
parent
9df68b0dd8
commit
d2880ed23a
7 changed files with 23 additions and 3098 deletions
158
INSTALL.md
158
INSTALL.md
|
|
@ -1,6 +1,6 @@
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
PipeWire uses a build tool called *Meson* as a basis for its build
|
PipeWire Media Session uses a build tool called *Meson* as a basis for its build
|
||||||
process. It's a tool with some resemblance to Autotools and CMake. Meson
|
process. It's a tool with some resemblance to Autotools and CMake. Meson
|
||||||
again generates build files for a lower level build tool called *Ninja*,
|
again generates build files for a lower level build tool called *Ninja*,
|
||||||
working in about the same level of abstraction as more familiar GNU Make
|
working in about the same level of abstraction as more familiar GNU Make
|
||||||
|
|
@ -17,7 +17,7 @@ $ meson setup builddir
|
||||||
```
|
```
|
||||||
|
|
||||||
For distribution-specific build dependencies, please check our
|
For distribution-specific build dependencies, please check our
|
||||||
[CI pipeline](https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/.gitlab-ci.yml)
|
[CI pipeline](https://gitlab.freedesktop.org/pipewire/pipewire-media-session/-/blob/master/.gitlab-ci.yml)
|
||||||
(search for `FDO_DISTRIBUTION_PACKAGES`). Note that some dependencies are
|
(search for `FDO_DISTRIBUTION_PACKAGES`). Note that some dependencies are
|
||||||
optional and depend on options passed to meson.
|
optional and depend on options passed to meson.
|
||||||
|
|
||||||
|
|
@ -33,7 +33,7 @@ Define the installation prefix:
|
||||||
$ meson configure builddir -Dprefix=/usr # Default: /usr/local
|
$ meson configure builddir -Dprefix=/usr # Default: /usr/local
|
||||||
```
|
```
|
||||||
|
|
||||||
PipeWire specific build options are listed in the "Project options"
|
PipeWire Media Session specific build options are listed in the "Project options"
|
||||||
section. They are defined in `meson_options.txt`.
|
section. They are defined in `meson_options.txt`.
|
||||||
|
|
||||||
Finally, invoke the build:
|
Finally, invoke the build:
|
||||||
|
|
@ -47,29 +47,17 @@ which orchestrates multi-component builds.
|
||||||
|
|
||||||
## Running
|
## Running
|
||||||
|
|
||||||
If you want to run PipeWire without installing it on your system, there is a
|
If you want to run PipeWire Media Session without installing it on your system, there is a
|
||||||
script that you can run. This puts you in an environment in which PipeWire can
|
script that you can run. This puts you in an environment in which PipeWire Media Session can
|
||||||
be run from the build directory, and ALSA, PulseAudio and JACK applications
|
be run from the build directory. You can get into this environment with:
|
||||||
will use the PipeWire emulation libraries automatically
|
|
||||||
in this environment. You can get into this environment with:
|
|
||||||
|
|
||||||
```
|
```
|
||||||
$ ./pw-uninstalled.sh -b builddir
|
$ ./media-session-uninstalled.sh
|
||||||
|
$ pipewire-media-session
|
||||||
```
|
```
|
||||||
|
|
||||||
In most cases you would want to run the default pipewire daemon. Look
|
This will use the default config file to configure and start PipeWire Media
|
||||||
below for how to make this daemon start automatically using systemd.
|
Session.
|
||||||
If you want to run pipewire from the build directory, you can do this
|
|
||||||
by doing:
|
|
||||||
|
|
||||||
```
|
|
||||||
cd builddir/
|
|
||||||
make run
|
|
||||||
```
|
|
||||||
|
|
||||||
This will use the default config file to configure and start the daemon.
|
|
||||||
The default config will also start pipewire-media-session, a default
|
|
||||||
example media session and pipewire-pulse, a PulseAudio compatible server.
|
|
||||||
|
|
||||||
You can also enable more debugging with the PIPEWIRE_DEBUG environment
|
You can also enable more debugging with the PIPEWIRE_DEBUG environment
|
||||||
variable like so:
|
variable like so:
|
||||||
|
|
@ -79,21 +67,16 @@ cd builddir/
|
||||||
PIPEWIRE_DEBUG="D" make run
|
PIPEWIRE_DEBUG="D" make run
|
||||||
```
|
```
|
||||||
|
|
||||||
You might have to stop the pipewire service/socket that might have been
|
You might have to stop the pipewire-media-session service that might have been
|
||||||
started already, with:
|
started already, with:
|
||||||
|
|
||||||
```
|
```
|
||||||
systemctl --user stop pipewire.service \
|
systemctl --user stop pipewire-media-session.service
|
||||||
pipewire.socket \
|
|
||||||
pipewire-media-session.service \
|
|
||||||
pipewire-pulse.service \
|
|
||||||
pipewire-pulse.socket
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Installing
|
## Installing
|
||||||
|
|
||||||
PipeWire comes with quite a bit of libraries and tools, run
|
Inside `builddir`, run:
|
||||||
inside `builddir`:
|
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo meson install
|
sudo meson install
|
||||||
|
|
@ -102,118 +85,3 @@ sudo meson install
|
||||||
to install everything onto the system into the specified prefix.
|
to install everything onto the system into the specified prefix.
|
||||||
Some additional steps will have to be performed to integrate
|
Some additional steps will have to be performed to integrate
|
||||||
with the distribution as shown below.
|
with the distribution as shown below.
|
||||||
|
|
||||||
### PipeWire daemon
|
|
||||||
|
|
||||||
A correctly installed PipeWire system should have a pipewire
|
|
||||||
process, a pipewire-media-session (or alternative) and an (optional)
|
|
||||||
pipewire-pulse process running. PipeWire is usually started as a
|
|
||||||
systemd unit using socket activation or as a service.
|
|
||||||
|
|
||||||
Configuration of the PipeWire daemon can be found in
|
|
||||||
/usr/share/pipewire/pipewire.conf. Please refer to the comments in the
|
|
||||||
config file for more information about the configuration options.
|
|
||||||
|
|
||||||
The daemon is started with:
|
|
||||||
```
|
|
||||||
systemctl --user start pipewire.service pipewire.socket
|
|
||||||
```
|
|
||||||
|
|
||||||
If you did not start the media-session in pipewire.conf, you will
|
|
||||||
also need to start it like this:
|
|
||||||
```
|
|
||||||
systemctl --user start pipewire-media-session.service
|
|
||||||
```
|
|
||||||
To make it start on system startup:
|
|
||||||
```
|
|
||||||
systemctl --user enable pipewire-media-session.service
|
|
||||||
```
|
|
||||||
you can write ```enable --now``` to start service immediately.
|
|
||||||
|
|
||||||
### ALSA plugin
|
|
||||||
|
|
||||||
The ALSA plugin is usually installed in:
|
|
||||||
|
|
||||||
On Fedora:
|
|
||||||
```
|
|
||||||
/usr/lib64/alsa-lib/libasound_module_pcm_pipewire.so
|
|
||||||
```
|
|
||||||
On Ubuntu:
|
|
||||||
```
|
|
||||||
/usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_pcm_pipewire.so
|
|
||||||
```
|
|
||||||
|
|
||||||
There is also a config file installed in:
|
|
||||||
|
|
||||||
```
|
|
||||||
/usr/share/alsa/alsa.conf.d/50-pipewire.conf
|
|
||||||
```
|
|
||||||
|
|
||||||
The plugin will be picked up by alsa when the following files
|
|
||||||
are in /etc/alsa/conf.d/
|
|
||||||
|
|
||||||
```
|
|
||||||
/etc/alsa/conf.d/50-pipewire.conf -> /usr/share/alsa/alsa.conf.d/50-pipewire.conf
|
|
||||||
/etc/alsa/conf.d/99-pipewire-default.conf
|
|
||||||
```
|
|
||||||
|
|
||||||
With this setup, aplay -l should list a pipewire: device that can be used as
|
|
||||||
a regular alsa device for playback and record.
|
|
||||||
|
|
||||||
### JACK emulation
|
|
||||||
|
|
||||||
PipeWire reimplements the 3 libraries that JACK applications use to make
|
|
||||||
them run on top of PipeWire.
|
|
||||||
|
|
||||||
These libraries are found here:
|
|
||||||
|
|
||||||
```
|
|
||||||
/usr/lib64/pipewire-0.3/jack/libjacknet.so -> libjacknet.so.0
|
|
||||||
/usr/lib64/pipewire-0.3/jack/libjacknet.so.0 -> libjacknet.so.0.304.0
|
|
||||||
/usr/lib64/pipewire-0.3/jack/libjacknet.so.0.304.0
|
|
||||||
/usr/lib64/pipewire-0.3/jack/libjackserver.so -> libjackserver.so.0
|
|
||||||
/usr/lib64/pipewire-0.3/jack/libjackserver.so.0 -> libjackserver.so.0.304.0
|
|
||||||
/usr/lib64/pipewire-0.3/jack/libjackserver.so.0.304.0
|
|
||||||
/usr/lib64/pipewire-0.3/jack/libjack.so -> libjack.so.0
|
|
||||||
/usr/lib64/pipewire-0.3/jack/libjack.so.0 -> libjack.so.0.304.0
|
|
||||||
/usr/lib64/pipewire-0.3/jack/libjack.so.0.304.0
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
The provided pw-jack script uses LD_LIBRARY_PATH to set the library
|
|
||||||
search path to these replacement libraries. This allows you to run
|
|
||||||
jack apps on both the real JACK server or on PipeWire with the script.
|
|
||||||
|
|
||||||
It is also possible to completely replace the JACK libraries by adding
|
|
||||||
a file `pipewire-jack-x86_64.conf` to `/etc/ld.so.conf.d/` with
|
|
||||||
contents like:
|
|
||||||
|
|
||||||
```
|
|
||||||
/usr/lib64/pipewire-0.3/jack/
|
|
||||||
```
|
|
||||||
|
|
||||||
Note that when JACK is replaced by PipeWire, the SPA JACK plugin (installed
|
|
||||||
in /usr/lib64/spa-0.2/jack/libspa-jack.so) is not useful anymore and
|
|
||||||
distributions should make them conflict.
|
|
||||||
|
|
||||||
|
|
||||||
### PulseAudio replacement
|
|
||||||
|
|
||||||
PipeWire reimplements the PulseAudio server protocol as a small service
|
|
||||||
that runs on top of PipeWire.
|
|
||||||
|
|
||||||
The binary is normally placed here:
|
|
||||||
|
|
||||||
```
|
|
||||||
/usr/bin/pipewire-pulse
|
|
||||||
```
|
|
||||||
|
|
||||||
The server can be started with provided systemd activation files or
|
|
||||||
from PipeWire itself. (See `/usr/share/pipewire/pipewire.conf`)
|
|
||||||
|
|
||||||
```
|
|
||||||
systemctl --user start pipewire-pulse.service pipewire-pulse.socket
|
|
||||||
```
|
|
||||||
|
|
||||||
You can also start additional PulseAudio servers listening on other
|
|
||||||
sockets with the -a option. See `pipewire-pulse -h` for more info.
|
|
||||||
|
|
|
||||||
11
LICENSE
11
LICENSE
|
|
@ -1,11 +1,2 @@
|
||||||
All PipeWire source files are licensed under the MIT License.
|
All PipeWire Media Session source files are licensed under the MIT License.
|
||||||
(see file COPYING for details)
|
(see file COPYING for details)
|
||||||
|
|
||||||
With the exception of:
|
|
||||||
|
|
||||||
libspa-alsa.so in spa/plugins/alsa, which contains LGPL code from
|
|
||||||
Pulseaudio and is thus licensed as LGPL.
|
|
||||||
|
|
||||||
libjackserver.so which links against the GPL2 jack/control.h, which
|
|
||||||
makes it GPL2
|
|
||||||
|
|
||||||
|
|
|
||||||
74
Makefile.in
74
Makefile.in
|
|
@ -1,74 +0,0 @@
|
||||||
VERSION = @VERSION@
|
|
||||||
TAG = @TAG@
|
|
||||||
SOURCE_ROOT = @SOURCE_ROOT@
|
|
||||||
BUILD_ROOT = @BUILD_ROOT@
|
|
||||||
|
|
||||||
all:
|
|
||||||
ninja -C $(BUILD_ROOT)
|
|
||||||
|
|
||||||
install:
|
|
||||||
ninja -C $(BUILD_ROOT) install
|
|
||||||
|
|
||||||
uninstall:
|
|
||||||
ninja -C $(BUILD_ROOT) uninstall
|
|
||||||
|
|
||||||
clean:
|
|
||||||
ninja -C $(BUILD_ROOT) clean
|
|
||||||
|
|
||||||
run: all
|
|
||||||
SPA_PLUGIN_DIR=$(BUILD_ROOT)/spa/plugins \
|
|
||||||
PIPEWIRE_MODULE_DIR=$(BUILD_ROOT)/src/modules \
|
|
||||||
PATH=$(BUILD_ROOT)/src/examples:$(PATH) \
|
|
||||||
PIPEWIRE_CONFIG_DIR=$(BUILD_ROOT)/src/daemon \
|
|
||||||
ACP_PATHS_DIR=$(SOURCE_ROOT)/spa/plugins/alsa/mixer/paths \
|
|
||||||
ACP_PROFILES_DIR=$(SOURCE_ROOT)/spa/plugins/alsa/mixer/profile-sets \
|
|
||||||
$(DBG) $(BUILD_ROOT)/src/daemon/pipewire-uninstalled
|
|
||||||
|
|
||||||
run-pulse: all
|
|
||||||
SPA_PLUGIN_DIR=$(BUILD_ROOT)/spa/plugins \
|
|
||||||
PIPEWIRE_MODULE_DIR=$(BUILD_ROOT)/src/modules \
|
|
||||||
PIPEWIRE_CONFIG_DIR=$(BUILD_ROOT)/src/daemon \
|
|
||||||
ACP_PATHS_DIR=$(SOURCE_ROOT)/spa/plugins/alsa/mixer/paths \
|
|
||||||
ACP_PROFILES_DIR=$(SOURCE_ROOT)/spa/plugins/alsa/mixer/profile-sets \
|
|
||||||
$(DBG) $(BUILD_ROOT)/src/daemon/pipewire-pulse
|
|
||||||
|
|
||||||
gdb:
|
|
||||||
$(MAKE) run DBG=gdb
|
|
||||||
|
|
||||||
valgrind:
|
|
||||||
$(MAKE) run DBG="DISABLE_RTKIT=1 valgrind --trace-children=yes"
|
|
||||||
|
|
||||||
test: all
|
|
||||||
ninja -C $(BUILD_ROOT) test
|
|
||||||
|
|
||||||
benchmark: all
|
|
||||||
ninja -C $(BUILD_ROOT) benchmark
|
|
||||||
|
|
||||||
monitor: all
|
|
||||||
SPA_PLUGIN_DIR=$(BUILD_ROOT)/spa/plugins \
|
|
||||||
PIPEWIRE_MODULE_DIR=$(BUILD_ROOT)/src/modules/ \
|
|
||||||
$(BUILD_ROOT)/src/tools/pw-mon
|
|
||||||
|
|
||||||
cli: all
|
|
||||||
SPA_PLUGIN_DIR=$(BUILD_ROOT)/spa/plugins \
|
|
||||||
PIPEWIRE_MODULE_DIR=$(BUILD_ROOT)/src/modules/ \
|
|
||||||
$(BUILD_ROOT)/src/tools/pw-cli
|
|
||||||
|
|
||||||
shell: all
|
|
||||||
ninja -C $(BUILD_ROOT) pw-uninstalled
|
|
||||||
|
|
||||||
dist: all
|
|
||||||
git archive --prefix=pipewire-$(VERSION)/ -o pipewire-$(VERSION).tar.gz $(TAG)
|
|
||||||
|
|
||||||
rpm: dist
|
|
||||||
rpmbuild -ta pipewire-$(VERSION).tar.gz
|
|
||||||
|
|
||||||
publish: all
|
|
||||||
git branch -D gh-pages 2>/dev/null || true && \
|
|
||||||
git branch -D draft 2>/dev/null || true && \
|
|
||||||
git checkout -b draft && \
|
|
||||||
git add -f $(BUILD_ROOT)/doc/html && \
|
|
||||||
git commit -anm "Deploy on gh-pages" && \
|
|
||||||
git subtree split --prefix $(BUILD_ROOT)/doc/html -b gh-pages && \
|
|
||||||
git push --force origin gh-pages:gh-pages && \
|
|
||||||
git checkout work 2>/dev/null
|
|
||||||
189
README.md
189
README.md
|
|
@ -1,193 +1,20 @@
|
||||||
# PipeWire
|
# PipeWire Media Session
|
||||||
|
|
||||||
[PipeWire](https://pipewire.org) is a server and user space API to
|
PipeWire Media Session is an example session manager for
|
||||||
deal with multimedia pipelines. This includes:
|
[PipeWire](https://pipewire.org).
|
||||||
|
|
||||||
- Making available sources of video (such as from a capture devices or
|
Note that we recommend the use of
|
||||||
application provided streams) and multiplexing this with
|
[WirePlumber](https://gitlab.freedesktop.org/pipewire/wireplumber) instead.
|
||||||
clients.
|
|
||||||
- Accessing sources of video for consumption.
|
|
||||||
- Generating graphs for audio and video processing.
|
|
||||||
|
|
||||||
Nodes in the graph can be implemented as separate processes,
|
|
||||||
communicating with sockets and exchanging multimedia content using fd
|
|
||||||
passing.
|
|
||||||
|
|
||||||
## Building and installation
|
## Building and installation
|
||||||
|
|
||||||
The preferred way to install PipeWire is to install it with your
|
The preferred way to install PipeWire Media Session is to install it with your
|
||||||
distribution package system. This ensures PipeWire is integrated
|
distribution package system. This ensures PipeWire Media Session is integrated
|
||||||
into the rest of your system for the best experience.
|
into the rest of your system for the best experience.
|
||||||
|
|
||||||
If you want to build and install PipeWire yourself, refer to
|
If you want to build and install PipeWire Media Session yourself, refer to
|
||||||
[install](INSTALL.md) for instructions.
|
[install](INSTALL.md) for instructions.
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
The most important purpose of PipeWire is to run your favorite apps.
|
|
||||||
|
|
||||||
Some applications use the native PipeWire API, such as most compositors
|
|
||||||
(gnome-shell, wayland, ...) to implement screen sharing. These apps will
|
|
||||||
just work automatically.
|
|
||||||
|
|
||||||
Most audio applications can use either ALSA, JACK or PulseAudio as a
|
|
||||||
backend. PipeWire provides support for all 3 backends. Depending on how
|
|
||||||
your distribution has configured things this should just work automatically
|
|
||||||
or with the provided scripts shown below.
|
|
||||||
|
|
||||||
PipeWire can use environment variables to control the behaviour of
|
|
||||||
applications:
|
|
||||||
|
|
||||||
* `PIPEWIRE_DEBUG=<level>` to increase the debug level (or use one of
|
|
||||||
`XEWIDT` for none, error, warnings, info,
|
|
||||||
debug, or trace, respectively).
|
|
||||||
* `PIPEWIRE_LOG=<filename>` to redirect log to filename
|
|
||||||
* `PIPEWIRE_LOG_SYSTEMD=false` to disable logging to systemd journal
|
|
||||||
* `PIPEWIRE_LATENCY=<num/denom>` to configure latency as a fraction. 10/1000
|
|
||||||
configures a 10ms latency. Usually this is
|
|
||||||
expressed as a fraction of the samplerate,
|
|
||||||
like 256/48000, which uses 256 samples at a
|
|
||||||
samplerate of 48KHz for a latency of 5.33ms.
|
|
||||||
* `PIPEWIRE_NODE=<id>` to request a link to the specified node
|
|
||||||
|
|
||||||
### Using tools
|
|
||||||
|
|
||||||
`pw-cat` can be used to play and record audio and midi. Use `pw-cat -h` to get
|
|
||||||
some more help. There are some aliases like `pw-play` and `pw-record` to make
|
|
||||||
things easier:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ pw-play /home/wim/data/01.\ Firepower.wav
|
|
||||||
```
|
|
||||||
|
|
||||||
### Running JACK applications
|
|
||||||
|
|
||||||
Depending on how the system was configured, you can either run PipeWire and
|
|
||||||
JACK side-by-side or have PipeWire take over the functionality of JACK
|
|
||||||
completely.
|
|
||||||
|
|
||||||
In dual mode, JACK apps will by default use the JACK server. To direct a JACK
|
|
||||||
app to PipeWire, you can use the `pw-jack` script like this:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ pw-jack <appname>
|
|
||||||
```
|
|
||||||
|
|
||||||
If you replaced JACK with PipeWire completely, `pw-jack` does not have any
|
|
||||||
effect and can be omitted.
|
|
||||||
|
|
||||||
JACK applications will automatically use the buffer-size chosen by the
|
|
||||||
server. You can force a maximum buffer size (latency) by setting the
|
|
||||||
`PIPEWIRE_LATENCY` environment variable like so:
|
|
||||||
|
|
||||||
```
|
|
||||||
PIPEWIRE_LATENCY=128/48000 jack_simple_client
|
|
||||||
```
|
|
||||||
Requests the `jack_simple_client` to run with a buffer of 128 or
|
|
||||||
less samples.
|
|
||||||
|
|
||||||
|
|
||||||
### Running PulseAudio applications
|
|
||||||
|
|
||||||
PipeWire can run a PulseAudio compatible replacement server. You can't
|
|
||||||
use both servers at the same time. Usually your package manager will
|
|
||||||
make the server conflict so that you can only install one or the
|
|
||||||
other.
|
|
||||||
|
|
||||||
PulseAudio applications still use the regular PulseAudio client
|
|
||||||
libraries and you don't need to do anything else than change the
|
|
||||||
server implementation.
|
|
||||||
|
|
||||||
A successful swap of the server can be verified by checking the
|
|
||||||
output of
|
|
||||||
|
|
||||||
```
|
|
||||||
pactl info
|
|
||||||
```
|
|
||||||
It should include the string:
|
|
||||||
```
|
|
||||||
...
|
|
||||||
Server Name: PulseAudio (on PipeWire 0.3.x)
|
|
||||||
...
|
|
||||||
```
|
|
||||||
|
|
||||||
You can use pavucontrol to change profiles and ports, change volumes
|
|
||||||
or redirect streams, just like with PulseAudio.
|
|
||||||
|
|
||||||
|
|
||||||
### Running ALSA applications
|
|
||||||
|
|
||||||
If the PipeWire alsa module is installed, it can be seen with
|
|
||||||
|
|
||||||
```
|
|
||||||
$ aplay -L
|
|
||||||
```
|
|
||||||
|
|
||||||
ALSA applications can then use the `pipewire:` device to use PipeWire
|
|
||||||
as the audio system.
|
|
||||||
|
|
||||||
### Running GStreamer applications
|
|
||||||
|
|
||||||
PipeWire includes 2 GStreamer elements called `pipewiresrc` and
|
|
||||||
`pipewiresink`. They can be used in pipelines such as this:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ gst-launch-1.0 pipewiresrc ! videoconvert ! autovideosink
|
|
||||||
```
|
|
||||||
|
|
||||||
Or to play a beeping sound:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ gst-launch-1.0 audiotestsrc ! pipewiresink
|
|
||||||
```
|
|
||||||
|
|
||||||
PipeWire provides a device monitor as well so that
|
|
||||||
|
|
||||||
```
|
|
||||||
$ gst-device-monitor-1.0
|
|
||||||
```
|
|
||||||
|
|
||||||
shows the PipeWire devices and applications like cheese will
|
|
||||||
automatically use the PipeWire video source when possible.
|
|
||||||
|
|
||||||
### Inspecting the PipeWire state
|
|
||||||
|
|
||||||
To inspect and manipulate the PipeWire graph via GUI, you can use [Helvum](https://gitlab.freedesktop.org/ryuukyu/helvum).
|
|
||||||
|
|
||||||
Alternatively, you can use use one of the excellent JACK tools, such as `Carla`,
|
|
||||||
`catia`, `qjackctl`, ...
|
|
||||||
However, you will not be able to see all features like the video
|
|
||||||
ports.
|
|
||||||
|
|
||||||
`pw-mon` dumps and monitors the state of the PipeWire daemon.
|
|
||||||
|
|
||||||
`pw-dot` can dump a graph of the pipeline, check out the help for
|
|
||||||
how to do this.
|
|
||||||
|
|
||||||
`pw-top` monitors the real-time status of the graph. This is handy to
|
|
||||||
find out what clients are running and how much DSP resources they
|
|
||||||
use.
|
|
||||||
|
|
||||||
`pw-dump` dumps the state of the PipeWire daemon in JSON format. This
|
|
||||||
can be used to find out the properties and parameters of the objects
|
|
||||||
in the PipeWire daemon.
|
|
||||||
|
|
||||||
There is a more complicated tool to inspect the state of the server
|
|
||||||
with `pw-cli`. This tool can be used interactively or it can execute
|
|
||||||
single commands like this to get the server information:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ pw-cli info 0
|
|
||||||
```
|
|
||||||
|
|
||||||
## Documentation
|
|
||||||
|
|
||||||
Find tutorials and design documentation [here](doc/index.md).
|
|
||||||
|
|
||||||
The (incomplete) autogenerated API docs are [here](https://docs.pipewire.org).
|
|
||||||
|
|
||||||
The Wiki can be found [here](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home)
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
PipeWire is Free Software and is developed in the open. It is mostly
|
PipeWire is Free Software and is developed in the open. It is mostly
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ if [ -z "$MESON" ]; then
|
||||||
fi
|
fi
|
||||||
if [ -z "$MESON" ]; then
|
if [ -z "$MESON" ]; then
|
||||||
echo "error: Meson not found."
|
echo "error: Meson not found."
|
||||||
echo "Install meson to configure and build PipeWire. If meson" \
|
echo "Install meson to configure and build PipeWire Media Session. If meson" \
|
||||||
"is already installed, set the environment variable MESON" \
|
"is already installed, set the environment variable MESON" \
|
||||||
"to the binary's path."
|
"to the binary's path."
|
||||||
exit 1;
|
exit 1;
|
||||||
|
|
@ -15,4 +15,3 @@ fi
|
||||||
|
|
||||||
mkdir -p builddir
|
mkdir -p builddir
|
||||||
$MESON setup "$@" builddir # use 'autogen.sh --reconfigure' to update
|
$MESON setup "$@" builddir # use 'autogen.sh --reconfigure' to update
|
||||||
ln -sf builddir/Makefile Makefile
|
|
||||||
|
|
|
||||||
|
|
@ -193,10 +193,6 @@ else
|
||||||
makedata.set('TAG', media_session_version)
|
makedata.set('TAG', media_session_version)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
configure_file(input : 'Makefile.in',
|
|
||||||
output : 'Makefile',
|
|
||||||
configuration : makedata)
|
|
||||||
|
|
||||||
# Find dependencies
|
# Find dependencies
|
||||||
mathlib = cc.find_library('m', required : false)
|
mathlib = cc.find_library('m', required : false)
|
||||||
rt_lib = cc.find_library('rt', required : false) # clock_gettime
|
rt_lib = cc.find_library('rt', required : false) # clock_gettime
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue