Commits (3129)
task:
freebsd_instance:
matrix:
- image_family: freebsd-11-4-snap
- image_family: freebsd-13-0-snap
env:
# /usr/ports/Mk/Uses/localbase.mk localbase:ldflags
LOCALBASE: /usr/local
CFLAGS: -isystem $LOCALBASE/include
CPPFLAGS: $CFLAGS
CXXFLAGS: $CFLAGS
LDFLAGS: -L$LOCALBASE/lib
deps_script:
- sed -i.bak -e 's/quarterly/latest/' /etc/pkg/FreeBSD.conf
- pkg install -y meson pkgconf dbus glib libepoll-shim libudev-devd vulkan-loader vulkan-headers gstreamer1 gstreamer1-plugins libinotify
- pkg install -y meson pkgconf git-lite dbus glib libepoll-shim libudev-devd vulkan-loader vulkan-headers v4l_compat gstreamer1 gstreamer1-plugins libinotify gettext libsndfile sdl2 alsa-lib
- sysrc dbus_enable=YES
- service dbus restart
build_script:
- mkdir build
- cd build
- meson setup -Dalsa=disabled -Dpipewire-alsa=disabled -Dbluez5=disabled -Djack=disabled -Dpipewire-jack=disabled -Dpipewire-pulseaudio=disabled -Dv4l2=disabled -Dsystemd=disabled ..
- meson setup -Dalsa=enabled -Draop=enabled -Dv4l2=enabled -Dpipewire-alsa=enabled -Dbluez5=disabled -Djack=disabled -Dpipewire-jack=enabled -Dpw-cat=enabled -Dpipewire-v4l2=disabled -Dsdl2=enabled -Dsystemd=disabled -Dsession-managers=media-session ..
- ninja
test_script:
- cd build
......
ba
capela
cas
crasher
datas
endcode
files'
goin
hda
hist
hve
......
......@@ -21,3 +21,7 @@ indent_size = 2
[*.{conf,conf.in}]
indent_style = space
indent_size = 4
[*.{xml,xml.in}]
indent_style = space
indent_size = 2
.*
.tarball-version
.version
.*.swp
......@@ -6,12 +7,14 @@ ABOUT-NLS
*.tar.gz
*.tar.xz
*.o
build/
config.h.meson
cscope.out
cscope.in.out
cscope.po.out
Makefile
subprojects/lua*
subprojects/wireplumber
subprojects/media-session
subprojects/packagecache
# Created by https://www.gitignore.io/api/vim
......
stages:
- container
- container_coverity
- build
- analysis
- pages
variables:
FDO_UPSTREAM_REPO: 'pipewire/pipewire'
# ci-templates as of May 1st 2020
.templates_sha: &templates_sha 59de540b620c45739871d1a073d76d5521989d11
# ci-templates as of Jan 27th 2022
.templates_sha: &templates_sha 0c312d9c7255f46e741d43bcd1930f09cd12efe7
include:
- project: 'freedesktop/ci-templates'
ref: *templates_sha
file: '/templates/fedora.yml'
- project: 'freedesktop/ci-templates'
ref: *templates_sha
file: '/templates/ubuntu.yml'
- project: 'freedesktop/ci-templates'
ref: *templates_sha
file: '/templates/alpine.yml'
.fedora:
variables:
# Update this tag when you want to trigger a rebuild
FDO_DISTRIBUTION_TAG: '2020-05-19.1'
FDO_DISTRIBUTION_VERSION: '32'
FDO_DISTRIBUTION_TAG: '2022-03-05.0'
FDO_DISTRIBUTION_VERSION: '35'
FDO_DISTRIBUTION_PACKAGES: >-
alsa-lib-devel
avahi-devel
bluez-libs-devel
clang
dbus-devel
doxygen
fdk-aac-free-devel
findutils
gcc
gcc-c++
git
glib-devel
graphviz
gstreamer1-devel
gstreamer1-plugins-base-devel
jack-audio-connection-kit-devel
libcanberra-devel
libldac-devel
libsndfile-devel
libusb-devel
lilv-devel
libv4l-devel
libva-devel
libX11-devel
meson
openssl-devel
pulseaudio-libs-devel
python3-docutils
sbc-devel
ShellCheck
SDL2-devel
systemd-devel
vulkan-loader-devel
webrtc-audio-processing-devel
which
valgrind
ninja-build
pkgconf
python3-pip
pulseaudio-utils
openal-soft
FDO_DISTRIBUTION_EXEC: >-
pip3 install meson
.ubuntu:
variables:
# Update this tag when you want to trigger a rebuild
FDO_DISTRIBUTION_TAG: '2022-01-27.0'
FDO_DISTRIBUTION_VERSION: '20.04'
FDO_DISTRIBUTION_PACKAGES: >-
debhelper-compat
findutils
git
libasound2-dev
libavcodec-dev
libavfilter-dev
libavformat-dev
libdbus-1-dev
libglib2.0-dev
libgstreamer1.0-dev
libgstreamer-plugins-base1.0-dev
libsbc-dev
libsdl2-dev
libudev-dev
libva-dev
libv4l-dev
libx11-dev
ninja-build
pkg-config
python3-docutils
systemd
python3-pip
FDO_DISTRIBUTION_EXEC: >-
pip3 install meson
.alpine:
variables:
# Update this tag when you want to trigger a rebuild
FDO_DISTRIBUTION_TAG: '2022-01-28.2'
FDO_DISTRIBUTION_VERSION: '3.15'
FDO_DISTRIBUTION_PACKAGES: >-
alsa-lib-dev
avahi-dev
bash
bluez-dev
gcc
g++
dbus-dev
doxygen
eudev-dev
fdk-aac-dev
git
glib-dev
graphviz
gst-plugins-base-dev
gstreamer-dev
jack-dev
libfreeaptx-dev
libusb-dev
libx11-dev
meson
ncurses-dev
pulseaudio-dev
readline-dev
sbc-dev
vulkan-loader-dev
xmltoman
libsndfile-devel
.coverity:
variables:
FDO_REPO_SUFFIX: 'coverity'
FDO_BASE_IMAGE: registry.freedesktop.org/$FDO_UPSTREAM_REPO/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
FDO_DISTRIBUTION_PACKAGES: >-
curl
FDO_DISTRIBUTION_EXEC: >-
mkdir -p /opt ;
cd /opt ;
curl -o /tmp/cov-analysis-linux64.tgz https://scan.coverity.com/download/cxx/linux64
--form project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN ;
tar xf /tmp/cov-analysis-linux64.tgz ;
mv cov-analysis-linux64-* coverity ;
rm /tmp/cov-analysis-linux64.tgz
only:
variables:
- $COVERITY
.not_coverity:
except:
variables:
- $COVERITY
.build:
before_script:
# setup the environment
- export BUILD_ID="$CI_JOB_NAME"
- export BUILD_ID="$CI_JOB_ID"
- export PREFIX="$PWD/prefix-$BUILD_ID"
- export BUILD_DIR="$PWD/build-$BUILD_ID"
- export XDG_RUNTIME_DIR="$(mktemp -p $PWD -d xdg-runtime-XXXXXX)"
- |
if [ -n "$FDO_CI_CONCURRENT" ]; then
NINJA_ARGS="-j$FDO_CI_CONCURRENT $NINJA_ARGS"
export NINJA_ARGS
fi
script:
- meson "$BUILD_DIR" . --prefix="$PREFIX"
- echo "Building with meson options $MESON_OPTIONS"
- meson "$BUILD_DIR" . --prefix="$PREFIX" $MESON_OPTIONS
- ninja $NINJA_ARGS -C "$BUILD_DIR"
- ninja $NINJA_ARGS -C "$BUILD_DIR" test
- ninja $NINJA_ARGS -C "$BUILD_DIR" install
- ./check_missing_headers.sh
artifacts:
name: pipewire-$CI_COMMIT_SHA
when: always
paths:
- build-*/meson-logs
container_ubuntu:
extends:
- .ubuntu
- .fdo.container-build@ubuntu
stage: container
variables:
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
container_fedora:
extends:
- .fedora
- .fdo.container-build@fedora
stage: container
variables:
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
container_alpine:
extends:
- .alpine
- .fdo.container-build@alpine
stage: container
variables:
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
container_coverity:
extends:
- .fedora
- .coverity
- .fdo.container-build@fedora
stage: container_coverity
variables:
GIT_STRATEGY: none
build_on_ubuntu:
extends:
- .ubuntu
- .not_coverity
- .fdo.distribution-image@ubuntu
- .build
stage: build
.build_on_fedora:
extends:
- .fedora
- .not_coverity
- .fdo.distribution-image@fedora
- .build
stage: build
build_on_fedora:
extends:
- .build_on_fedora
variables:
MESON_OPTIONS: >-
-Ddocs=enabled
-Dinstalled_tests=enabled
-Dsystemd-system-service=enabled
......@@ -65,10 +248,6 @@ include:
-Dvulkan=enabled
-Dsdl2=enabled
-Dsndfile=enabled
- ninja -C "$BUILD_DIR"
- ninja -C "$BUILD_DIR" test
- ninja -C "$BUILD_DIR" install
- ./check_missing_headers.sh
artifacts:
name: pipewire-$CI_COMMIT_SHA
when: always
......@@ -76,29 +255,192 @@ include:
- build-*/meson-logs
- prefix-*
container_fedora:
build_on_alpine:
extends:
- .fedora
- .fdo.container-build@fedora
stage: container
- .alpine
- .not_coverity
- .fdo.distribution-image@alpine
- .build
stage: build
# build with all auto() options enabled
build_all:
extends:
- .build_on_fedora
variables:
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
# Fedora doesn't have libfreeaptx, lc3plus, or roc
# libcamera has no stable API, so let's not chase that target
MESON_OPTIONS: "-Dauto_features=enabled -Dbluez5-codec-aptx=disabled -Dbluez5-codec-lc3plus=disabled -Droc=disabled -Dlibcamera=disabled"
parallel:
matrix:
- CC: [gcc, clang]
build_on_fedora:
# build with all options on auto() or their default values
build_with_no_commandline_options:
extends:
- .build_on_fedora
variables:
MESON_OPTIONS: ""
parallel:
matrix:
- CC: [gcc, clang]
# build with a set of options enabled or disabled
build_with_custom_options:
extends:
- .build_on_fedora
parallel:
matrix:
- MESON_OPTION: [docs, installed_tests, systemd-system-service, bluez5-backend-hsphfpd,
audiotestsrc, test, videotestsrc, volume, vulkan, sdl2, sndfile]
MESON_OPTION_VALUE: [enabled, disabled]
script:
- echo "Building with -D$MESON_OPTION=$MESON_OPTION_VALUE"
- meson "$BUILD_DIR" . --prefix="$PREFIX" "-D$MESON_OPTION=$MESON_OPTION_VALUE"
- ninja $NINJA_ARGS -C "$BUILD_DIR"
- ninja $NINJA_ARGS -C "$BUILD_DIR" test
# A release build with NDEBUG, all options on auto() but tests explicitly
# enabled. This should show issues with tests failing due to different
# optimization or relying on assert.
build_release:
extends:
- .build_on_fedora
variables:
MESON_OPTIONS: "-Dtest=enabled -Dbuildtype=release -Db_ndebug=true"
parallel:
matrix:
- CC: [gcc, clang]
build_session_managers:
extends:
- .build_on_fedora
script:
- echo "Building with meson options $MESON_OPTIONS"
- meson "$BUILD_DIR" . --prefix="$PREFIX" $MESON_OPTIONS
- ninja $NINJA_ARGS -C "$BUILD_DIR"
- ninja $NINJA_ARGS -C "$BUILD_DIR" install
variables:
MESON_OPTIONS: "-Dsession-managers=$SESSION_MANAGERS"
parallel:
matrix:
- SESSION_MANAGERS: ["[]", "wireplumber", "media-session", "media-session,wireplumber", "wireplumber,media-session" ]
allow_failure: true
build_meson_prerelease:
extends:
- .build_on_fedora
script:
- pip3 install --upgrade --pre meson
- echo "Building with meson options $MESON_OPTIONS"
- meson "$BUILD_DIR" . --prefix="$PREFIX" $MESON_OPTIONS
- ninja $NINJA_ARGS -C "$BUILD_DIR"
- ninja $NINJA_ARGS -C "$BUILD_DIR" install
variables:
MESON_OPTIONS: "-Dsession-managers=wireplumber,media-session"
allow_failure: true
build_meson_exact_release:
extends:
- .build_on_fedora
script:
- meson_version=$(head -n 5 meson.build | grep 'meson_version' | sed -e 's/.*\([0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/')
- echo "Requiring meson version $meson_version"
- test -n "$meson_version" || (echo "Meson version parser failed" && exit 1)
- pip3 uninstall --yes meson
- pip3 install "meson==$meson_version"
- echo "Building with meson options $MESON_OPTIONS"
- meson "$BUILD_DIR" . --prefix="$PREFIX" $MESON_OPTIONS
- ninja $NINJA_ARGS -C "$BUILD_DIR"
- ninja $NINJA_ARGS -C "$BUILD_DIR" install
variables:
MESON_OPTIONS: "-Dsession-managers=[]"
valgrind:
extends:
- .build_on_fedora
script:
- echo "Building with meson options $MESON_OPTIONS"
- meson "$BUILD_DIR" . --prefix="$PREFIX" $MESON_OPTIONS
- meson test -C "$BUILD_DIR" --setup=valgrind
build_with_coverity:
extends:
- .fedora
- .fdo.distribution-image@fedora
- .coverity
- .fdo.suffixed-image@fedora
- .build
stage: build
stage: analysis
script:
- export PATH=/opt/coverity/bin:$PATH
- meson "$BUILD_DIR" . --prefix="$PREFIX"
-Ddocs=disabled
-Dbluez5-backend-hsphfpd=enabled
-Daudiotestsrc=enabled
-Dtest=enabled
-Dvideotestsrc=enabled
-Dvolume=enabled
-Dvulkan=enabled
-Dsdl2=enabled
-Dsndfile=enabled
- cov-configure --config coverity_conf.xml
--comptype gcc --compiler cc --template
--xml-option=append_arg@C:--ppp_translator
--xml-option=append_arg@C:"replace/_sd_deprecated_\s+=/ ="
--xml-option=append_arg@C:--ppp_translator
--xml-option=append_arg@C:"replace/GLIB_(DEPRECATED|AVAILABLE)_ENUMERATOR_IN_\d_\d\d(_FOR\(\w+\)|)\s+=/ ="
--xml-option=append_arg@C:--ppp_translator
--xml-option=append_arg@C:"replace/(__has_builtin|_GLIBCXX_HAS_BUILTIN)\(\w+\)/1"
- cov-build --dir cov-int --config coverity_conf.xml ninja $NINJA_ARGS -C "$BUILD_DIR"
- tar czf cov-int.tar.gz cov-int
- curl https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME
--form token=$COVERITY_SCAN_TOKEN --form email=$GITLAB_USER_EMAIL
--form file=@cov-int.tar.gz --form version="`git describe --tags`"
--form description="`git describe --tags` / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID "
artifacts:
name: pipewire-coverity-$CI_COMMIT_SHA
when: always
paths:
- build-*/meson-logs
- cov-int/build-log.txt
shellcheck:
extends:
- .build_on_fedora
stage: analysis
script:
- shellcheck $(git grep -l "#\!/.*bin/.*sh")
spellcheck:
extends:
- .build_on_fedora
stage: analysis
script:
- git ls-files | grep -v .gitlab-ci.yml | xargs -d '\n' sed -i 's/Pipewire/PipeWire/g'
- git diff --exit-code || (echo "Please fix the above spelling mistakes" && exit 1)
doccheck:
extends:
- .build_on_fedora
stage: analysis
script:
# Check that each pipewire module has a \subpage entry
- git grep -h -o -e "\\\page page_module_\w\+" | cut -f2 -d' ' > pipewire_module_pages
- cat pipewire_module_pages
- |
for page in $(cat pipewire_module_pages); do
git grep -q -e "\\\subpage $page" || (echo "\\page $page is missing \\subpage entry in doc/pipewire-modules.dox" && false)
done
pages:
extends:
- .not_coverity
stage: pages
dependencies:
- build_on_fedora
script:
- export PREFIX="$PWD/prefix-build_on_fedora"
- mkdir public
- cp -R $PREFIX/share/doc/pipewire/html/* public/
- cp -R prefix-*/share/doc/pipewire/html/* public/
artifacts:
paths:
- public
......
If you are filing this issue with a regular release please try master as it might already be fixed. Also test with PulseAudio because if it doesn't work there it's not going to here either.
<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
Bluetooth Radio, Bluetooth Headset, Desktop Environment, Distribution, Version (Bluez, Kernel, and PipeWire):
<!-- If you can, test also with Pulseaudio and list `pulseaudio --version`. -->
- PipeWire version (`pipewire --version`):
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`):
- Desktop Environment:
- Kernel version (`uname -r`):
- BlueZ version (`bluetoothctl --version`):
- `lsusb`:
```
# paste the output of "lsusb" here
```
- Bluetooth devices:
Description of Problem:
```
# paste the output of "bluetoothctl devices" here
```
## Description of Problem:
How Reproducible:
## How Reproducible:
Steps to Reproduce:
### Steps to Reproduce:
1.
......@@ -17,10 +31,13 @@ Steps to Reproduce:
3.
Actual Results:
### Actual Results:
### Expected Results:
Expected Results:
# Additional Info (as attachments):
Additional Info Eg. Additional Kernel Patches, pw-dump > file (As Attachment Please):
- `pw-dump > pw-dump.log`:
- Bluetooth debug log, see [here](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Troubleshooting#bluetooth):
If you are filing this issue with a regular release please try master as it might already be fixed.
<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
Version, Distribution, Desktop Environment:
- PipeWire version (`pipewire --version`):
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`):
- Desktop Environment:
- Kernel version (`uname -r`):
## Description of Problem:
Description of Problem:
## How Reproducible:
How Reproducible:
### Steps to Reproduce:
Steps to Reproduce:
1.
2.
3.
Actual Results:
### Actual Results:
Expected Results:
### Expected Results:
Additional Info Eg. `pw-dump > file` (As Attachment Please):
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`:
## Building
Pipewire uses a build tool called *Meson* as a basis for its build
PipeWire uses a build tool called [*Meson*](https://mesonbuild.com) as a basis for its build
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*](https://ninja-build.org/),
working in about the same level of abstraction as more familiar GNU Make
does.
Meson uses a user-specified build directory and all files produced by Meson
are in that build directory. This build directory will be called `builddir`
in this document.
Generate the build files for Ninja:
```
$ meson setup build
$ meson setup builddir
```
For distribution-specific build dependencies, please check our
[CI pipeline](https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/.gitlab-ci.yml)
(search for `FDO_DISTRIBUTION_PACKAGES`). Note that some dependencies are
optional and depend on options passed to meson.
Once this is done, the next step is to review the build options:
```
$ meson configure build
$ meson configure builddir
```
Define the installation prefix:
```
$ meson configure -Dprefix=/usr # Default: /usr/local
$ meson configure builddir -Dprefix=/usr # Default: /usr/local
```
Pipewire specific build options are listed in the "Project options"
PipeWire specific build options are listed in the "Project options"
section. They are defined in `meson_options.txt`.
Finally, invoke the build:
```
$ ninja -C build
$ meson compile -C builddir
```
Just to avoid any confusion: `autogen.sh` is a script invoked by *Jhbuild*,
......@@ -45,7 +54,7 @@ will use the PipeWire emulation libraries automatically
in this environment. You can get into this environment with:
```
$ ./pw-uninstalled.sh
$ ./pw-uninstalled.sh -b builddir
```
In most cases you would want to run the default pipewire daemon. Look
......@@ -54,18 +63,20 @@ 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.
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:
```
PIPEWIRE_DEBUG=4 make run
cd builddir/
PIPEWIRE_DEBUG="D" make run
```
You might have to stop the pipewire service/socket that might have been
......@@ -81,26 +92,27 @@ systemctl --user stop pipewire.service \
## Installing
PipeWire comes with quite a bit of libraries and tools, run
inside `build`:
PipeWire comes with quite a bit of libraries and tools, run:
```
sudo meson install
meson install -C builddir
```
to install everything onto the system into the specified prefix.
Depending on the configured installation prefix, the above command
may need to be run with elevated privileges (e.g. with `sudo`).
Some additional steps will have to be performed to integrate
with the distribution as shown below.
### PipeWire daemon
A correctly installed PipeWire system should have a pipewire
process and a pipewire-media-session (or alternative) process
running. PipeWire is usually started as a systemd unit using
socket activation or as a service.
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
/etc/pipewire/pipewire.conf. Please refer to the comments in the
`/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:
......@@ -139,14 +151,14 @@ There is also a config file installed in:
```
The plugin will be picked up by alsa when the following files
are in /etc/alsa/conf.d/
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
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
......@@ -169,7 +181,7 @@ These libraries are found here:
```
The provides pw-jack script uses LD_LIBRARY_PATH to set the library
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.
......@@ -182,7 +194,7 @@ contents like:
```
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
in `/usr/lib64/spa-0.2/jack/libspa-jack.so`) is not useful anymore and
distributions should make them conflict.
......@@ -198,11 +210,28 @@ The binary is normally placed here:
```
The server can be started with provided systemd activation files or
from PipeWire itself. (See `/etc/pipewire/pipewire.conf`)
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.
sockets with the `-a` option. See `pipewire-pulse -h` for more info.
## Uninstalling
To uninstall, run:
```
ninja -C builddir uninstall
```
Depending on the configured installation prefix, the above command
may need to be run with elevated privileges (e.g. with `sudo`).
Note that at the time of writing uninstallation only works with the
same build directory that was used for installation. Meson stores the
list of installed files in the build directory, and this list is
necessary for uninstallation to work.
All PipeWire source files are licensed under the MIT License.
(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
VERSION = @VERSION@
TAG = @TAG@
SOURCE_ROOT = @SOURCE_ROOT@
BUILD_ROOT = @BUILD_ROOT@
all:
ninja -C @BUILD_ROOT@
ninja -C $(BUILD_ROOT)
install:
ninja -C @BUILD_ROOT@ install
ninja -C $(BUILD_ROOT) install
uninstall:
ninja -C @BUILD_ROOT@ uninstall
ninja -C $(BUILD_ROOT) uninstall
clean:
ninja -C @BUILD_ROOT@ 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
SPA_PLUGIN_DIR=$(BUILD_ROOT)/spa/plugins \
SPA_DATA_DIR=$(SOURCE_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
SPA_PLUGIN_DIR=$(BUILD_ROOT)/spa/plugins \
SPA_DATA_DIR=$(SOURCE_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=1 valgrind --trace-children=yes"
$(MAKE) run DBG="DISABLE_RTKIT=1 valgrind --trace-children=yes"
test: all
ninja -C @BUILD_ROOT@ test
ninja -C $(BUILD_ROOT) test
benchmark: all
ninja -C @BUILD_ROOT@ benchmark
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
SPA_PLUGIN_DIR=$(BUILD_ROOT)/spa/plugins \
SPA_DATA_DIR=$(SOURCE_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
SPA_PLUGIN_DIR=$(BUILD_ROOT)/spa/plugins \
SPA_DATA_DIR=$(SOURCE_ROOT)/spa/plugins \
PIPEWIRE_MODULE_DIR=$(BUILD_ROOT)/src/modules/ \
$(BUILD_ROOT)/src/tools/pw-cli
shell: all
ninja -C @BUILD_ROOT@ pw-uninstalled
ninja -C $(BUILD_ROOT) pw-uninstalled
dist: all
git archive --prefix=pipewire-@VERSION@/ -o pipewire-@VERSION@.tar.gz @TAG@
git archive --prefix=pipewire-$(VERSION)/ -o pipewire-$(VERSION).tar.gz $(TAG)
rpm: dist
rpmbuild -ta pipewire-@VERSION@.tar.gz
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 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 subtree split --prefix $(BUILD_ROOT)/doc/html -b gh-pages && \
git push --force origin gh-pages:gh-pages && \
git checkout work 2>/dev/null
This diff is collapsed.
......@@ -38,13 +38,23 @@ 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
* `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.
This function does not attempt to configure
the samplerate.
* `PIPEWIRE_RATE=<num/denom>` to configure a rate for the graph.
* `PIPEWIRE_QUANTUM=<num/denom>` to configure latency as a fraction and a
samplerate. This function will attempt to change
the graph samplerate to `denom` and use the
specified `num` as the buffer size.
* `PIPEWIRE_NODE=<id>` to request a link to the specified node
### Using tools
......@@ -73,7 +83,7 @@ $ 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 choosen by the
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:
......@@ -149,11 +159,12 @@ automatically use the PipeWire video source when possible.
### Inspecting the PipeWire state
There is currently no native graphical tool to inspect the PipeWire graph
but we recommend to use one of the excellent JACK tools, such as `Carla`,
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`, ...
You will not be able to see all features like the video
ports but it is a good start.
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.
......@@ -169,7 +180,7 @@ 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 tools can be used interactively or it can execute
with `pw-cli`. This tool can be used interactively or it can execute
single commands like this to get the server information:
```
......@@ -178,7 +189,7 @@ $ pw-cli info 0
## Documentation
Find tutorials and design documentation [here](doc/index.md).
Find tutorials and design documentation [here](doc/index.dox).
The (incomplete) autogenerated API docs are [here](https://docs.pipewire.org).
......@@ -186,13 +197,14 @@ The Wiki can be found [here](https://gitlab.freedesktop.org/pipewire/pipewire/-/
## Contributing
PipeWire is Free Software and is developed in the open. It is licensed under
the [MIT license](COPYING).
PipeWire is Free Software and is developed in the open. It is mostly
licensed under the [MIT license](COPYING). Check [LICENSE](LICENSE) for
more details about the exceptions.
Contributors are encouraged to submit merge requests or file bugs on
[gitlab](https://gitlab.freedesktop.org/pipewire).
Join us on IRC at #pipewire on [Freenode](https://freenode.net/).
Join us on IRC at #pipewire on [OFTC](https://www.oftc.net/).
We adhere to the Contributor Covenant for our [code of conduct](CODE_OF_CONDUCT.md).
......
theme: jekyll-theme-slate
\ No newline at end of file
......@@ -2,19 +2,17 @@
# Only there to make jhbuild happy
set -e
if [ -z $MESON ]; then
MESON=`which meson`
if [ -z "$MESON" ]; then
MESON=$(which meson)
fi
if [ -z $MESON ]; then
if [ -z "$MESON" ]; then
echo "error: Meson not found."
echo "Install meson to configure and build Pipewire. If meson" \
echo "Install meson to configure and build PipeWire. If meson" \
"is already installed, set the environment variable MESON" \
"to the binary's path."
exit 1;
fi
mkdir -p build
$MESON setup "$@" build # use 'autogen.sh --reconfigure' to update
ln -sf build/Makefile Makefile
mkdir -p builddir
$MESON setup "$@" builddir # use 'autogen.sh --reconfigure' to update
ln -sf builddir/Makefile Makefile
......@@ -5,19 +5,14 @@
LIST=""
for i in `find spa/include -name '*.h' | sed s#spa/include/##`;
for i in $(find spa/include -name '*.h' | sed s#spa/include/##);
do
[ -f $PREFIX/include/spa-0.2/$i ] || LIST="$i $LIST"
[ -f "$PREFIX/include/spa-0.2/$i" ] || LIST="$i $LIST"
done
for i in `find src/extensions -name '*.h' | sed s#src/#pipewire/#`;
for i in $(find src/pipewire -name '*.h' -a -not -name '*private.h' | sed s#src/##);
do
[ -f $PREFIX/include/pipewire-0.3/$i ] || LIST="$i $LIST"
done
for i in `find src/pipewire -name '*.h' -a -not -name '*private.h' | sed s#src/##`;
do
[ -f $PREFIX/include/pipewire-0.3/$i ] || LIST="$i $LIST"
[ -f "$PREFIX/include/pipewire-0.3/$i" ] || LIST="$i $LIST"
done
for i in $LIST;
......
/* config.h. Generated by meson. */
/* Define if building universal (internal helper macro) */
#mesondefine AC_APPLE_UNIVERSAL_BUILD
/* poll doesn't work on devices */
#mesondefine BROKEN_POLL
/* Define to 1 if translation of program messages to the user's native
language is requested. */
#mesondefine ENABLE_NLS
/* Subunit protocol result output */
#mesondefine ENABLE_SUBUNIT
/* gettext package name */
#mesondefine GETTEXT_PACKAGE
/* The GIO library directory. */
#mesondefine GIO_LIBDIR
/* The GIO modules directory. */
#mesondefine GIO_MODULE_DIR
/* GStreamer API Version */
#mesondefine GST_API_VERSION
/* data dir */
#mesondefine GST_DATADIR
/* Define if option parsing is disabled */
#mesondefine GST_DISABLE_OPTION_PARSING
/* Define if pipeline parsing code is disabled */
#mesondefine GST_DISABLE_PARSE
/* Extra platform specific plugin suffix */
#mesondefine GST_EXTRA_MODULE_SUFFIX
/* macro to use to show function name */
#mesondefine GST_FUNCTION
/* Defined if gcov is enabled to force a rebuild due to config.h changing */
#mesondefine GST_GCOV_ENABLED
/* Defined when registry scanning through fork is unsafe */
#mesondefine GST_HAVE_UNSAFE_FORK
/* Default errorlevel to use */
#mesondefine GST_LEVEL_DEFAULT
/* GStreamer license */
#mesondefine GST_LICENSE
/* package name in plugins */
#mesondefine GST_PACKAGE_NAME
/* package origin */
#mesondefine GST_PACKAGE_ORIGIN
/* GStreamer package release date/time for plugins as YYYY-MM-DD */
#mesondefine GST_PACKAGE_RELEASE_DATETIME
/* Define if static plugins should be built */
#mesondefine GST_PLUGIN_BUILD_STATIC
/* location of the installed gst-plugin-scanner */
#mesondefine GST_PLUGIN_SCANNER_INSTALLED
#mesondefine GST_PTP_HELPER_INSTALLED
/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
CoreFoundation framework. */
#mesondefine HAVE_CFLOCALECOPYCURRENT
/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
the CoreFoundation framework. */
#mesondefine HAVE_CFPREFERENCESCOPYAPPVALUE
/* Define to 1 if you have the `clock_gettime' function. */
#mesondefine HAVE_CLOCK_GETTIME
/* Define if the target CPU is an Alpha */
#mesondefine HAVE_CPU_ALPHA
/* Define if the target CPU is an ARM */
#mesondefine HAVE_CPU_ARM
/* Define if the target CPU is a CRIS */
#mesondefine HAVE_CPU_CRIS
/* Define if the target CPU is a CRISv32 */
#mesondefine HAVE_CPU_CRISV32
/* Define if the target CPU is a HPPA */
#mesondefine HAVE_CPU_HPPA
/* Define if the target CPU is an x86 */
#mesondefine HAVE_CPU_I386
/* Define if the target CPU is a IA64 */
#mesondefine HAVE_CPU_IA64
/* Define if the target CPU is a M68K */
#mesondefine HAVE_CPU_M68K
/* Define if the target CPU is a MIPS */
#mesondefine HAVE_CPU_MIPS
/* Define if the target CPU is a PowerPC */
#mesondefine HAVE_CPU_PPC
/* Define if the target CPU is a 64 bit PowerPC */
#mesondefine HAVE_CPU_PPC64
/* Define if the target CPU is a S390 */
#mesondefine HAVE_CPU_S390
/* Define if the target CPU is a SPARC */
#mesondefine HAVE_CPU_SPARC
/* Define if the target CPU is a x86_64 */
#mesondefine HAVE_CPU_X86_64
/* Define if the GNU dcgettext() function is already present or preinstalled.
*/
#mesondefine HAVE_DCGETTEXT
/* Defined if we have dladdr () */
#mesondefine HAVE_DLADDR
/* Define to 1 if you have the <dlfcn.h> header file. */
#mesondefine HAVE_DLFCN_H
/* Define to 1 if you have the `fgetpos' function. */
#mesondefine HAVE_FGETPOS
/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
#mesondefine HAVE_FSEEKO
/* Define to 1 if you have the `fsetpos' function. */
#mesondefine HAVE_FSETPOS
/* Define to 1 if you have the `ftello' function. */
#mesondefine HAVE_FTELLO
/* defined if the compiler implements __func__ */
#mesondefine HAVE_FUNC
/* defined if the compiler implements __FUNCTION__ */
#mesondefine HAVE_FUNCTION
/* Define to 1 if you have the `getpagesize' function. */
#mesondefine HAVE_GETPAGESIZE
/* Define if the GNU gettext() function is already present or preinstalled. */
#mesondefine HAVE_GETTEXT
/* Have GMP library */
#mesondefine HAVE_GMP
/* Define to 1 if you have the `gmtime_r' function. */
#mesondefine HAVE_GMTIME_R
/* Have GSL library */
#mesondefine HAVE_GSL
/* Define if you have the iconv() function and it works. */
#mesondefine HAVE_ICONV
/* Define to 1 if the system has the type `intmax_t'. */
#mesondefine HAVE_INTMAX_T
/* Define to 1 if you have the <inttypes.h> header file. */
#mesondefine HAVE_INTTYPES_H
/* Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, and
declares uintmax_t. */
#mesondefine HAVE_INTTYPES_H_WITH_UINTMAX
/* Define to 1 if you have the `localtime_r' function. */
#mesondefine HAVE_LOCALTIME_R
/* Define to 1 if the system has the type long long */
#mesondefine HAVE_LONG_LONG
/* Define to 1 if the system has the type `long long int'. */
#mesondefine HAVE_LONG_LONG_INT
/* Define to 1 if you have the <memory.h> header file. */
#mesondefine HAVE_MEMORY_H
/* Define to 1 if you have a working `mmap' system call. */
#mesondefine HAVE_MMAP
/* Have a monotonic clock */
#mesondefine HAVE_MONOTONIC_CLOCK
/* Defined if compiling for OSX */
#mesondefine HAVE_OSX
/* Define to 1 if you have the `poll' function. */
#mesondefine HAVE_POLL
/* Define to 1 if you have the <poll.h> header file. */
#mesondefine HAVE_POLL_H
/* Define to 1 if you have the `posix_memalign' function. */
#mesondefine HAVE_POSIX_MEMALIGN
/* Have posix timers */
#mesondefine HAVE_POSIX_TIMERS
/* Define to 1 if you have the `ppoll' function. */
#mesondefine HAVE_PPOLL
/* defined if the compiler implements __PRETTY_FUNCTION__ */
#mesondefine HAVE_PRETTY_FUNCTION
/* Define to 1 if you have the <process.h> header file. */
#mesondefine HAVE_PROCESS_H
/* Define to 1 if you have the `pselect' function. */
#mesondefine HAVE_PSELECT
/* Define if you have POSIX threads libraries and header files. */
#mesondefine HAVE_PTHREAD
/* Have PTHREAD_PRIO_INHERIT. */
#mesondefine HAVE_PTHREAD_PRIO_INHERIT
/* Define to 1 if the system has the type `ptrdiff_t'. */
#mesondefine HAVE_PTRDIFF_T
/* Define if RDTSC is available */
#mesondefine HAVE_RDTSC
/* Define to 1 if you have the `sigaction' function. */
#mesondefine HAVE_SIGACTION
/* Define to 1 if you have the <stdint.h> header file. */
#mesondefine HAVE_STDINT_H
/* Define if <stdint.h> exists, doesn't clash with <sys/types.h>, and declares
uintmax_t. */
#mesondefine HAVE_STDINT_H_WITH_UINTMAX
/* Define to 1 if you have the <stdio_ext.h> header file. */
#mesondefine HAVE_STDIO_EXT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#mesondefine HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#mesondefine HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#mesondefine HAVE_STRING_H
/* Define to 1 if you have the <sys/mount.h> header file. */
#mesondefine HAVE_SYS_MOUNT_H
/* Define to 1 if you have the <sys/param.h> header file. */
#mesondefine HAVE_SYS_PARAM_H
/* Define to 1 if you have the <sys/poll.h> header file. */
#mesondefine HAVE_SYS_POLL_H
/* Define to 1 if you have the <sys/prctl.h> header file. */
#mesondefine HAVE_SYS_PRCTL_H
/* Define to 1 if you have the <sys/random.h> header file. */
#mesondefine HAVE_SYS_RANDOM_H
/* Define to 1 if you have the <sys/socket.h> header file. */
#mesondefine HAVE_SYS_SOCKET_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#mesondefine HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/times.h> header file. */
#mesondefine HAVE_SYS_TIMES_H
/* Define to 1 if you have the <sys/time.h> header file. */
#mesondefine HAVE_SYS_TIME_H
/* Define to 1 if you have the <sys/types.h> header file. */
#mesondefine HAVE_SYS_TYPES_H
/* Define to 1 if you have the <sys/utsname.h> header file. */
#mesondefine HAVE_SYS_UTSNAME_H
/* Define to 1 if you have the <sys/vfs.h> header file. */
#mesondefine HAVE_SYS_VFS_H
/* Define to 1 if you have the <sys/wait.h> header file. */
#mesondefine HAVE_SYS_WAIT_H
/* Have tm_gmtoff field in struct tm */
#mesondefine HAVE_TM_GMTOFF
/* Define to 1 if you have the <ucontext.h> header file. */
#mesondefine HAVE_UCONTEXT_H
/* Have __uint128_t type */
#mesondefine HAVE_UINT128_T
/* defined if unaligned memory access works correctly */
#mesondefine HAVE_UNALIGNED_ACCESS
/* Define to 1 if you have the <unistd.h> header file. */
#mesondefine HAVE_UNISTD_H
/* Define to 1 if the system has the type `unsigned long long int'. */
#mesondefine HAVE_UNSIGNED_LONG_LONG_INT
/* Define if valgrind should be used */
#mesondefine HAVE_VALGRIND
/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
#mesondefine HAVE_VALGRIND_VALGRIND_H
/* Define to 1 if you have the <pwd.h> header file. */
#mesondefine HAVE_PWD_H
/* Defined if compiling for Windows */
#mesondefine HAVE_WIN32
/* Define to 1 if you have the <winsock2.h> header file. */
#mesondefine HAVE_WINSOCK2_H
/* For libsystemd */
#mesondefine HAVE_SYSTEMD
/* Define to 1 if native backend is enabled in bluez5 plugin. */
#mesondefine HAVE_BLUEZ_5_BACKEND_NATIVE
/* Define to 1 if HSP in native backend is enabled in bluez5 plugin. */
#mesondefine HAVE_BLUEZ_5_BACKEND_HSP_NATIVE
/* Define to 1 if HFP in native backend is enabled in bluez5 plugin. */
#mesondefine HAVE_BLUEZ_5_BACKEND_HFP_NATIVE
/* Define to 1 if oFono backend is enabled in bluez5 plugin. */
#mesondefine HAVE_BLUEZ_5_BACKEND_OFONO
/* Define to 1 if hsphfpd backend is enabled in bluez5 plugin. */
#mesondefine HAVE_BLUEZ_5_BACKEND_HSPHFPD
/* the host CPU */
#mesondefine HOST_CPU
/* library dir */
#mesondefine LIBDIR
/* gettext locale dir */
#mesondefine LOCALEDIR
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#mesondefine LT_OBJDIR
/* Memory alignment to use */
#mesondefine MEMORY_ALIGNMENT
/* Memory alignment by malloc default */
#mesondefine MEMORY_ALIGNMENT_MALLOC
/* Memory alignment by pagesize */
#mesondefine MEMORY_ALIGNMENT_PAGESIZE
/* Name of package */
#mesondefine PACKAGE
/* Define to the address where bug reports for this package should be sent. */
#mesondefine PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#mesondefine PACKAGE_NAME
/* Define to the full name and version of this package. */
#mesondefine PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#mesondefine PACKAGE_TARNAME
/* Define to the home page for this package. */
#mesondefine PACKAGE_URL
/* Define to the version of this package. */
#mesondefine PACKAGE_VERSION
/* directory where modules are located */
#mesondefine MODULEDIR
/* directory where config files are located */
#mesondefine PIPEWIRE_CONFIG_DIR
/* directory where plugins are located */
#mesondefine PLUGINDIR
/* Define to necessary symbol if this constant uses a non-standard name on
your system. */
#mesondefine PTHREAD_CREATE_JOINABLE
/* The size of `char', as computed by sizeof. */
#mesondefine SIZEOF_CHAR
/* The size of `int', as computed by sizeof. */
#mesondefine SIZEOF_INT
/* The size of `long', as computed by sizeof. */
#mesondefine SIZEOF_LONG
/* The size of `short', as computed by sizeof. */
#mesondefine SIZEOF_SHORT
/* The size of `void*', as computed by sizeof. */
#mesondefine SIZEOF_VOIDP
/* Define to 1 if you have the ANSI C header files. */
#mesondefine STDC_HEADERS
/* the target CPU */
#mesondefine TARGET_CPU
/* Define if we should poison deallocated memory */
#mesondefine USE_POISONING
/* Version number of package */
#mesondefine VERSION
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
# undef WORDS_BIGENDIAN
# endif
#endif
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
#mesondefine _FILE_OFFSET_BITS
/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
#mesondefine _LARGEFILE_SOURCE
/* Define for large files, on AIX-style hosts. */
#mesondefine _LARGE_FILES
/* We need at least WinXP SP2 for __stat64 */
#mesondefine __MSVCRT_VERSION__
/* Define to the widest signed integer type if <stdint.h> and <inttypes.h> do
not define. */
#mesondefine intmax_t
/* Define to `unsigned int' if <sys/types.h> does not define. */
#mesondefine size_t
#mesondefine HAVE_GETPID
#mesondefine HAVE__GETPID
#mesondefine HAVE_DECL_STRDUP
#mesondefine HAVE__STRDUP
#mesondefine HAVE_MKSTEMP
#mesondefine HAVE_FORK
#mesondefine HAVE_ALARM
#mesondefine HAVE_DECL_LOCALTIME_R
#mesondefine HAVE_DECL_STRSIGNAL
<