Commit graph

244 commits

Author SHA1 Message Date
Barnabás Pőcze
a9225d3150 meson.build: use project_{build,source}_root() in devenv
The paths are calculated relative to the project root,
so use the appropriate functions to retrieve it
instead of using the current build/source directory.
2021-12-28 18:35:44 +01:00
Barnabás Pőcze
248b8c40a3 meson.build: require meson 0.56.0 2021-12-28 18:35:12 +01:00
Barnabás Pőcze
f090fd86e2 meson.build: remove unnecessary import
The "gnome" meson module is not used, do not import it.
2021-12-28 18:34:54 +01:00
Gleb Popov
014881ca32 Add Meson logic to properly locate OpenSSL on FreeBSD. 2021-12-26 17:43:23 +03:00
Wim Taymans
65aadeb2d7 meson: use c++17 as default to compile libcamera
Fixes #1940
2021-12-24 17:56:37 +01:00
Wim Taymans
7b26384388 Merge tag '0.3.42' 2021-12-16 09:51:21 +01:00
Wim Taymans
3cac296ee0 0.3.42 2021-12-16 09:17:48 +01:00
Jonas Holmberg
6aeb640e31 tests: Add pipewire-alsa stress test
Add test that opens, prepares and closes the alsa pcm device in several
threads simultaneously in an infinite loop.
2021-12-15 16:13:08 +01:00
Wim Taymans
717fb64e4e 0.3.41 2021-12-13 09:35:30 +01:00
Wim Taymans
bcd867f8eb filter-chain: disable lilv code when not available 2021-12-10 18:46:06 +01:00
Wim Taymans
597b332666 filter-chain: add support for lv2 plugins
Support lv2 plugins and their control values.
2021-12-10 17:44:28 +01:00
Niklāvs Koļesņikovs
ceeaf6c2f9 meson: add -Draop switch for OpenSSL dep control
Even though OpenSSL is very common, automagic dependencies
are still not great, so let's have a raop switch to control
that.
2021-11-13 12:07:33 +00:00
Wim Taymans
9223fc2885 raop: add beginnings of RAOP protocol 2021-11-12 16:58:27 +01:00
Wim Taymans
7afd80052b 0.3.40 2021-11-11 13:21:29 +01:00
columbarius
9f34885174 examples: Create source and sink with fixation on format negotiation
This commit uses the video-src-alloc and video-play-reneg templates to create
examples for manual fixation at the format negotiation phase. These
clients simulate modifier negotiation done by clients handling DmaBufs.

Note: Neither client is capable of proper DmaBuf handling!

video-play-fixate can be used to test if a producer is capable to
fallback to shm buffer transport, while video-src-fixate can only be
used with the former example!
2021-10-27 11:09:24 +02:00
Peter Hutterer
9acee530e2 meson: switch to "foo in array" style for meson arrays
In Meson, string.contains() is a substring check but array.contains() is
a full string check. Let's use 'foo in bar' style instead to avoid
confusion.

Supported since meson 0.49.0
2021-10-26 06:22:20 +00:00
Wim Taymans
5b7ef959d1 0.3.39 2021-10-20 17:00:38 +02:00
Peter Hutterer
1bced6b2ef Remove media-session from this tree
It is now available as a separate project in
https://gitlab.freedesktop.org/pipewire/media-session

The code required by pw-reservice has moved to src/tools/reserve.{c|h}
2021-10-18 20:44:07 +10:00
Barnabás Pőcze
5cfdc2620c meson.build: set MEDIA_SESSION_CONFIG_DIR in devenv
Commit 6c156cdbb4 made pw-uninstalled.sh
export the MEDIA_SESSION_CONFIG_DIR environmental variable, its value
being the location of the media-session configuration files in the
build directory.

Export this environtmental variable in the meson devenv as well.

Fixes: 6c156cdbb4 ("media-session: move the media-session config files to here")
2021-10-14 21:54:37 +02:00
Wim Taymans
e68fd36f90 pipewire-v4l2: the start of a v4l2 LD_PRELOAD library 2021-10-14 10:16:35 +02:00
Peter Hutterer
55200209b5 meson.build: fix some formatting 2021-10-13 09:13:12 +00:00
Peter Hutterer
ec5b8bf153 meson: use cdata.set_quoted instead of manual quoting 2021-10-13 09:13:12 +00:00
Wim Taymans
5f7c4dec34 meson: make it possible to compile without dbus
Make an option to disable dbus and all the code that depends on
it.

Fixes #1685
2021-10-09 15:00:04 +02:00
Joshua Strobl
ddfbd684e7 Fix readline detection by allowing fallback to cc find_library 2021-09-30 21:27:47 +00:00
Wim Taymans
47a294c5bf 0.3.38 2021-09-30 10:42:30 +02:00
Peter Hutterer
abd5f9fbe8 Remove remaining tabs from meson.build files
No changes, just tab-to-space replacement and a little bit of manual
twiddling.
2021-09-30 00:08:27 +00:00
Peter Hutterer
7c28b0d7af meson: add a summary for the readline dependency 2021-09-29 13:21:08 +10:00
Peter Hutterer
ae59185f6f pw-cli: use readline() in interactive mode
With history and a simple command completion hook this makes the
interactive mode a lot easier to deal with.
2021-09-28 07:19:13 +00:00
Wim Taymans
c41e3553bf 0.3.37 2021-09-23 10:17:19 +02:00
Peter Hutterer
e8e7e72b76 meson: require alsa for pipewire-alsa or media-session
The previous code had alsa optional if pipewire-alsa was on
auto/disabled bug failed later with missing alsa if media-session was in
the session manager array. Which it is by default.

Fixes #1632
2021-09-21 08:59:30 +10:00
Pauli Virtanen
229892d45d pw-uninstalled: set SPA_DATA_DIR + fix meson devenv
Set SPA_DATA_DIR needed for the bluez5 plugin hwdb file in
pw-uninstalled.

Also fix its value for meson devenv.
2021-09-19 18:12:19 +00:00
Pauli Virtanen
cae1554449 bluez5: move bluez-hardware.conf loading to the plugin
It's not really the responsibility of the session manager to load the
bluez5 device quirks, and it's easier for eg. Wireplumber if it doesn't
need to do it.

Move loading bluez-hardware.conf to be the responsibility of the bluez5
spa plugin, similarly as the alsa plugin deals with the ACP database.

Put the configuration to share/spa-0.2/bluez5, mirroring the plugin
directory structure in lib/spa-0.2/bluez5.
2021-09-19 17:28:17 +00:00
Wim Taymans
10abcd92d7 update version number as well 2021-09-16 18:38:56 +02:00
Wim Taymans
91069ec3d2 0.3.35 2021-09-09 09:52:35 +02:00
Niklāvs Koļesņikovs
40cbcf2887 Meson: Update two pipewire.org URLs to HTTPS 2021-09-03 11:41:45 +00:00
Niklāvs Koļesņikovs
e41187d643 man: move from xmltoman to rst2man
xmltoman looks dead and uses XML as well as pulls in a long list of
Perl dependencies. This replaces it with rst2man that has almost no
dependencies beyond Python, which is already required for the Meson
build system.

Naturally rst2man uses reStructuredText and the pages were rewritten
via regex and manual editing to be as close to original XML format
as possible. A few fixes and updates were done too. Most notably a
note was added to indicate that production deployments should not be
starting the session manager via pipewire.conf file.

There's three slight formatting issues/differences:
1. rst2man produces simpler footer.
2. "-f | --foo=value" confuses the parser and it fails to correctly
   add argument specific syntax highlighting to assignment value.
3. XML version had inconsistent use of <arg> and <opt> which has
   been partially addressed. But different manual pages still have
   their differences to what and how is highlighted.
2021-09-03 11:41:45 +00:00
Wim Taymans
1924c2c298 0.3.34 2021-08-26 13:05:12 +02:00
Wim Taymans
f816f702a5 filter-chain: make sndfile optional
Replace the code paths that require sndfile with a fallback when the
dependency was not found.
2021-08-12 09:59:56 +02:00
Nils Tonnätt
8028f9dd6e meson: decrease minimum required meson version to 0.54.0
To generate a correct jack pkg-config file unescape_variable
is required which was introduced with Meson 0.59.0.
When using an older version a warning is printed that no
jack.pc file is generated.
2021-08-08 19:18:40 +00:00
Nils Tonnätt
dd12910769 Revert "[Meson] Fix all deprecation warnings"
This reverts commit f7e1175ef0.
2021-08-08 19:18:40 +00:00
Nils Tonnätt
f7e1175ef0 [Meson] Fix all deprecation warnings 2021-08-06 07:56:16 +00:00
Nils Tonnätt
8dc8fb55f2 [Meson] Unescape pkgconf variable 2021-08-06 07:56:16 +00:00
Wim Taymans
8119e5cdb4 0.3.33 2021-08-05 16:19:43 +02:00
Peter Seiderer
6af1388d66 meson: fix getrandom detection for uclibc
The getrandom() detection from meson.build fails with the following error
message:

  .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:35: error: unknown type name 'size_t'
     27 | extern int getrandom(void *__buf, size_t count, unsigned int flags)
        |                                   ^~~~~~
  .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:8:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?

Fix it by adding stddef.h include to the meson getrandom() detection.

Fixes:

  ../src/pipewire/impl-core.c:54:9: error: conflicting types for ‘getrandom’
     54 | ssize_t getrandom(void *buf, size_t buflen, unsigned int flags) {
        |         ^~~~~~~~~
  In file included from ../src/pipewire/impl-core.c:34:
  .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:12: note: previous declaration of ‘getrandom’ was here
     27 | extern int getrandom(void *__buf, size_t count, unsigned int flags)
        |            ^~~~~~~~~

[Retrieved from:
https://git.buildroot.net/buildroot/tree/package/pipewire/0001-meson-fix-getrandom-detection-for-uclibc.patch]
2021-07-25 11:17:41 +00:00
Érico Nogueira
4c166709d0 modules: improve _gettid wrapper
- use meson to check for gettid() function, always use if available
- use syscall fallback on linux, if not
- restrict thr_self() fallback to *only* FreeBSD
- error out if there isn't any gettid impl
2021-07-20 15:51:50 +00:00
Wim Taymans
41ce309275 0.3.32 2021-07-20 13:06:13 +02:00
Wim Taymans
c43dabcc96 0.3.31 2021-06-28 15:32:38 +02:00
Niklāvs Koļesņikovs
71d39e90ed meson: adds post meson setup/--reconfigure summary for auto features
As suggested by George Kiagiadakis, adds calls to summary() function
for each feature that is by default set to auto, so that an overview
of their effective state is printed at the end of meson setup or
meson --reconfigure command.

Currently ordering is a bit messy but tidying it up would detach
the summary() functions from the dependencies they rely on and could
be done later along with meson_options.txt re-ordering so that the
two match as much as possible.
2021-06-25 08:31:12 +00:00
Peter Hutterer
c69ebf6361 meson.build: define cpp dependency as non-native
meson.build:93: WARNING: add_languages is missing native:,
  assuming languages are wanted for both host and build.

Doesn't matter for our use-case (compilation check only), so let's define it
as non-native.
2021-06-25 08:25:02 +00:00
Peter Hutterer
5e76f39e9d meson.build: move -D_GNU_SOURCE to the other hardcoded args
No need for this to be on its own line
2021-06-25 08:25:02 +00:00