Commit Graph

331 Commits

Author SHA1 Message Date
Peter Hutterer
0054319d88 meson.build: add -D_GNU_SOURCE to the project arguments
This appends it to every compilation command so we can get rid of the c_args
for (almost all) executables.
2021-06-09 07:47:51 +00:00
Wim Taymans
e857856be7 0.3.30 2021-06-09 09:14:11 +02:00
Peter Hutterer
d9cc1a25f1 Include the valgrind headers in our tree
These headers are designed for including in the project. So the user doesn't
need to install valgrind-devel and we don't have to worry about whether the
headers are available or not.
2021-06-07 10:44:27 +00:00
Barnabás Pőcze
4e5b20b1f5 meson.build: add devenv
Add meson devenv with the appropriate env variables
set up. Largely based on pw-uninstalled.sh
2021-06-05 15:49:17 +02:00
Wim Taymans
1b484867eb 0.3.29 2021-06-03 12:01:53 +02:00
Arun Raghavan
d95870d8d3 module-echo-cancel: Wire up the webrtc echo canceller
Mostly uses the existing infrastructure, but the webrtc canceller has a
fixed blocksize, so we:

  1. Use the canceller blocksize if configured
  2. Accumulate output data in a ringbuffer
  3. Push out the data in the required chunk size
2021-06-02 17:56:40 -04:00
Fabrice Fontaine
fa64d93e64 fix linking with -latomic
Linking with -latomic has been added to pipewire-jack since
b8c58c74d8

However, this is not the right place to add this dependency, atomic_dep
should be added to pipewire_dep to avoid the following build failure:

/home/giuliobenetti/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/9.3.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: src/pipewire/libpipewire-0.3.so.0.326.0.p/filter.c.o: in function `impl_node_process':
filter.c:(.text+0xf28): undefined reference to `__atomic_fetch_add_4'

Indeed, atomic operation such as __atomic_fetch_add is used in libcamera
as well as in ./spa/plugins/libcamera/libcamera_wrapper.cpp,
./spa/include/spa/utils/ringbuffer.h and ./spa/include/spa/graph/graph.h

Fixes:
 - http://autobuild.buildroot.org/results/b5305e8e7dd1a5e8bfaba72b06251056ba7d1af1

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2021-05-24 08:33:50 +00:00
Wim Taymans
fb55cc4786 0.3.28 2021-05-19 10:11:36 +02:00
Wim Taymans
1609126bcd conf: move config file to datadir
Install the config file in $PREFIX/share/pipewire so that a factory
reset can be done by wiping /etc and /home.
Add this new directory to the search path.
System wide config can still be done in /etc, user config in
$HOME/.config/pipewire/ by copying files from $PREFIX/share/pipewire

Fixes #1191
2021-05-17 16:22:31 +02:00
Wim Taymans
31d79f4c9b Clarify license
fixes #1174
2021-05-14 12:09:33 +02:00
Wim Taymans
6744934734 zeroconf: add avahi zerconf discover module
Discovers remote sinks and sources and load the tunnel module to
make a local sink and source for them.
2021-05-14 09:09:48 +02:00
Wim Taymans
44f326013b module-pulse-tunner: add module to tunnel to PulseAudio
Add a module that can make a source or sink that tunnels audio
to or from a (remote) PulseAudio server.
2021-05-12 15:56:59 +02:00
Wim Taymans
e598d0a422 0.3.27 2021-05-06 10:22:37 +02:00
Fabrice Fontaine
ce89ce3844 meson.build: fix build with uclibc-ng
Build with uclib-ng fails since commit
a4b0b9afe5 on:

FAILED: src/pipewire/libpipewire-0.3.so.0.326.0.p/impl-core.c.o
/srv/storage/autobuild/run/instance-2/output-1/host/bin/mips64el-linux-gcc -Isrc/pipewire/libpipewire-0.3.so.0.326.0.p -Isrc/pipewire -I../src/pipewire -Isrc -I../src -I. -I.. -Ispa/include -I../spa/include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wextra -Wpedantic -std=gnu99 -O3 -fvisibility=hidden -Werror=suggest-attribute=format -Wsign-compare -Wpointer-arith -Wpointer-sign -Wformat -Wformat-security -Wimplicit-fallthrough -Wmissing-braces -Wtype-limits -Wvariadic-macros -Wno-missing-field-initializers -Wno-unused-parameter -Wno-pedantic -Wold-style-declaration -Wunused-result -DFASTPATH -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -fPIC -pthread -DHAVE_CONFIG_H -D_GNU_SOURCE -D_POSIX_C_SOURCE -MD -MQ src/pipewire/libpipewire-0.3.so.0.326.0.p/impl-core.c.o -MF src/pipewire/libpipewire-0.3.so.0.326.0.p/impl-core.c.o.d -o src/pipewire/libpipewire-0.3.so.0.326.0.p/impl-core.c.o -c ../src/pipewire/impl-core.c
../src/pipewire/impl-core.c:54:9: error: conflicting types for 'getrandom'
 ssize_t getrandom(void *buf, size_t buflen, unsigned int flags) {
         ^~~~~~~~~
In file included from ../src/pipewire/impl-core.c:34:
/srv/storage/autobuild/run/instance-2/output-1/host/mips64el-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:28:12: note: previous declaration of 'getrandom' was here
 extern int getrandom(void *__buf, size_t count, unsigned int flags)
            ^~~~~~~~~

Fix this build failure by adding -D_GNU_SOURCE as getrandom is protected
by:

if defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU

Extracted from:
 - https://github.com/wbx-github/uclibc-ng/blob/master/libc/sysdeps/linux/common/sys/random.h

Fixes:
 - http://autobuild.buildroot.org/results/a45f0ee009d90cef867dee4b1093225610fa10df

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2021-05-05 08:04:51 +00:00
Evgeniy Khramtsov
4d064a3718 meson: prefer libintl on FreeBSD
FreeBSD does not have gettext in libc.
It is implemented in the third-party library.
2021-04-23 22:57:51 +03:00
Wim Taymans
f0fc4f7fc6 0.3.26 2021-04-22 11:58:59 +02:00
Wim Taymans
5f09e302a9 pipewire: add i18n initialization
Initialize the i18n support.
Add two methods to call the i18n interface.
Add defines for _() and N_() for translations.
2021-04-15 17:56:40 +02:00
Peter Hutterer
223f20709d meson: replace join_paths(a, b) with a / b
More readable and from the meson reference manual:
(since 0.49.0) Using the/ operator on strings is equivalent to calling join_paths.
2021-04-15 06:57:00 +00:00
Peter Hutterer
6eb4114238 meson: fix handling of the alsa option
Option 'pipewire-alsa' is a meson feature and defaults to 'auto'. This is
different to 'disabled', so on systems where alsa's deps weren't available
we would still end up trying to build. Switch to checking alsa_dep.found()
instead.
2021-04-14 09:59:06 +10:00
Wim Taymans
c324107211 0.3.25 2021-04-06 15:51:02 +02:00
Arseny Maslennikov
403f27c531 meson, pw-top: use ncursesw
Some PulseAudio clients are known to use localised client and
stream names as values for the respective PulseAudio props, most
notably plain old pavucontrol.

We call setlocale before anything else for ncurses to display
localised text correctly. We also want to link with ncursesw, which
supports multibyte Unicode locales.
2021-03-25 11:22:52 +00:00
Wim Taymans
c81d44e8a9 0.3.24 2021-03-18 14:50:04 +01:00
Jan Alexander Steffens (heftig)
9cdf3d1a0b meson.build: Check strndupa using has_header_symbol
It's a macro here, which has_function misses, at least from meson
0.57.1.
2021-03-13 14:49:35 +00:00
Thibault Saunier
485bae5eb0 meson: Use feature options everywhere it makes sense 2021-03-10 20:18:34 +00:00
Wim Taymans
68f6c75cae 0.3.23 2021-03-04 16:21:21 +01:00
Wim Taymans
a4b0b9afe5 build: check for getrandom and sys/random.h
Fixes #833
2021-03-04 10:57:48 +01:00
Wim Taymans
052bc85dad jack: ship our own jack headers and build against them 2021-03-03 15:54:48 +01:00
Gleb Popov
dbc9a520ef Check for sys/mount.h and sys/vfs.h headers and include them conditionally 2021-02-24 19:29:57 +00:00
Gleb Popov
fd544544ab Link v4l2 plugin to libinotify on FreeBSD 2021-02-24 19:29:57 +00:00
Wim Taymans
22d563720a 0.3.22 2021-02-18 11:12:15 +01:00
Carlos Rafael Giani
b17fe4aba4 meson: Make SDL2 and libsndfile dependencies configurable
This is important for cross-platform build frameworks such as Yocto
where the build configurations must be deterministic. In this case, if
some other build dependency pulled in SDL2, then the meson.build logic
would suddenly enable extra features that would not have been built
otherwise. By allowing for explicitely enabling/disabling SDL2 and sndfile
depending bits, this problem is fixed.
2021-02-15 17:12:48 +01:00
Wim Taymans
885748dfbd 0.3.21 2021-02-03 15:20:26 +01:00
Wim Taymans
aee694fb82 0.3.20 2021-01-20 15:54:15 +01:00
Wim Taymans
abe73c9146 meson: use global b_pie to build PIE executables 2021-01-14 16:29:32 +01:00
Frédéric Danis
7bd86df6df bluez5: Add simple HFP AG support to backend-native 2021-01-12 11:21:55 +01:00
Wim Taymans
3c2794dcc9 add i18n support 2021-01-08 10:26:46 +01:00
Wim Taymans
b2b45abe01 0.3.19 2021-01-05 13:39:10 +01:00
Wim Taymans
ae8f8b25f6 pw-top: add new tool
Uses ncurses to display all drivers and nodes with their latency,
error count and DSP usage.
2020-12-25 16:33:54 +01:00
Wim Taymans
91b0d3bb39 Remove pipewire-libpulse
We use the original pulseaudio client library and the replacement
server pipewire-pulse.
2020-12-17 15:44:49 +01:00
Wim Taymans
e7dffd64eb 0.3.18 2020-12-15 12:45:21 +01:00
Andres Freund
1e89e7559b Fix paths used in 'make run'.
In particular ACP_PATHS_DIR, ACP_PROFILES_DIR ended up pointing to the
build directory, despite only existing in the source directory.

I also adjusted PIPEWIRE_CONFIG_DIR to be explicit about referencing
the build directory, given that the other environment variables are
doing so.

Fixes: #448
2020-12-07 15:46:21 +01:00
Haochen Tong
3ba73bde48 meson: let meson detect supported compiler flags 2020-11-28 21:19:25 +01:00
Wim Taymans
f5f5beb0ec 0.3.17 2020-11-26 16:33:29 +01:00
Wim Taymans
09d373f094 0.3.16 2020-11-19 16:27:20 +01:00
Greg V
90ade199e6 Provide a strndupa implementation when it is absent
strndupa is a glibc exclusive, not even musl implements it
2020-11-09 11:14:20 +00:00
Sergey Bugaev
28af82e6d9 meson: rename HAVE_SYSTEMD_DAEMON to HAVE_SYSTEMD
This variable describes whether we have systemd and libsystemd,
not just <systemd/sd-daemon.h>

While at it, sneak in a fix for the warning message:
"systemd should never ever be capitalized".

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
2020-11-06 15:51:24 +00:00
Wim Taymans
16872549e3 0.3.15 2020-11-04 10:43:40 +01:00
Wim Taymans
94dbd4f9b8 warn about and fix some -Wpointer-sign warnings 2020-11-02 09:03:53 +01:00
Wim Taymans
3960a88478 0.3.14 2020-10-30 15:35:26 +01:00
Wim Taymans
9c0ff170f9 pulse: add volume change example 2020-10-22 16:47:24 +02:00
Wim Taymans
4b7b2a9a10 gst: add option to disable device provider 2020-10-13 12:40:48 +02:00
Wim Taymans
d7714f734d 0.3.13 2020-09-28 16:08:10 +02:00
Wim Taymans
fc0354ae1d 0.3.12 2020-09-18 12:02:08 +02:00
Wim Taymans
b0c758719d 0.3.11 2020-09-10 13:13:36 +02:00
Simon McVittie
b8c58c74d8 Link pipewire-jack to libatomic if required
This is necessary on some 32-bit architectures that implement atomic
operations on 64-bit quantities as library calls, including Debian's
armel and mipsel ports.

Signed-off-by: Simon McVittie <smcv@debian.org>
2020-09-07 15:17:57 +00:00
Frédéric Danis
7bad76737e bluez5: Create backend skeleton for HSP/HFP support using hsphfpd
As hsphfpd is a prototype and its API subject to change, this backend is
disable by default.

This skeleton connects to hsphfpd daemon and list the managed devices.
2020-08-19 17:49:36 +00:00
Wim Taymans
69be14186e 0.3.10 2020-08-18 13:19:12 +02:00
Wim Taymans
add30965e3 meson: rename uninstalled target to pw-uninstalled
It does not seem to work anymore with recent versions.
2020-08-12 17:36:41 +02:00
Wim Taymans
db12f47505 0.3.9 2020-08-04 14:30:27 +02:00
Wim Taymans
6f2e274b15 protocol: add a few more options for XDG_RUNTIME_DIR
PIPEWIRE_CORE can be used to specify a server name.
PIPEWIRE_REMOTE can be used to specify what server name to
connect to.

Either use the absolute path of the name to create and connect
to a server, or use a relative path. For a relative path, the
server name will be completed by prefixing the following paths
in order:

PIPEWIRE_RUNTIME_DIR environment variable,
XDG_RUNTIME_DIR environment variable,
HOME environment variable,
USERPROFILE environment variable,
home directory as stored in the password database.

Fixes #259
2020-07-31 12:46:58 +02:00
Wim Taymans
229fad4691 0.3.8 2020-07-28 15:20:04 +02:00
Wim Taymans
154f981f97 Add mixer paths and profile-sets as well
So we don't have to rely on pulseaudio installed ones
2020-07-28 12:30:32 +02:00
Frédéric Danis
db0c224b06 bluez5: Make native and ofono backends optional 2020-07-22 18:59:58 +02:00
Wim Taymans
0b3e9edaa2 0.3.7 2020-07-21 12:06:39 +02:00
Wim Taymans
1612f5e4d2 alsa-acp: Add libacp based card device
libacp is a port and wrapper around the pulseaudio card profile code.
It uses a set of templates for construct a card profile and mixer port
settings. It also has support for UCM when available for the hardware.
2020-07-06 12:20:09 +02:00
Simon McVittie
b852b58f82 Optionally install examples and tests
This makes it easier to test PipeWire in its "as-installed" state,
for example in an OS distribution.

The .test metadata files in ${datadir}/installed-tests/${package} are
a convention taken from GNOME's installed-tests initiative, allowing a
generic test-runner like gnome-desktop-testing to discover and run tests
in an automatic way.

The installation path ${libexecdir}/installed-tests/${package} is also
a convention borrowed from GNOME's installed-tests initiative.

In addition to the automated tests, I've installed example executables
in the same place, for manual testing. They could be separated into
a different directory if desired, but they seem like they have more
similarities with the automated tests than differences: both are there
to test that PipeWire works correctly, and neither should be relied on
for production use. Some examples are installed in deeper subdirectories
to avoid name clashes.

Signed-off-by: Simon McVittie <smcv@debian.org>
2020-06-16 17:58:02 +00:00
Wim Taymans
b04552b252 0.3.6 2020-06-10 11:53:32 +02:00
Simon McVittie
e493be3844 scripts: Use special ${LIB} token for architecture-independence
On GNU/Linux systems, the literal string '${LIB}' in dynamic linker
paths expands to "lib", a biarch libQUAL directory such as "lib64", or
a Debian-style multiarch directory such as "lib/x86_64-linux-gnu".
If we're installing libraries to such a directory, and we have both
word-sizes' compatibility libraries available, then pw-pulse can
use LD_LIBRARY_PATH='/usr/${LIB}/pipewire-0.3/pulse' to make both
i386 and x86_64 programs load the correct version.

Signed-off-by: Simon McVittie <smcv@debian.org>
2020-06-05 13:40:50 +00:00
Martin Koch
77860ef348 add version requirement for vulkan library dependency
due to usage of VK_ERROR_OUT_OF_POOL_MEMORY, VK_ERROR_INVALID_EXTERNAL_HANDLE,
	VK_API_VERSION_1_1 and VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT
	introduced in version 1.1.69

Signed-off-by: Martin Koch <martin.koch@ese.de>
2020-06-04 18:11:48 +00:00
Wim Taymans
c546167ad3 require meson 0.49 2020-05-20 15:26:35 +02:00
Martin Koch
cee1a26be6 build: skip unsupported compiler option
-Wimplicit-fallthrough for gcc version before 7.x

Signed-off-by: Martin Koch <martin.koch@ese.de>
2020-05-13 08:11:30 +00:00
Wim Taymans
ba215efed0 0.3.5 2020-05-11 13:35:32 +02:00
Wim Taymans
011992e774 meson: try to compile a little NEON program to be sure
Fixes #235
2020-05-08 22:12:24 +02:00
Wim Taymans
b9bb318cb7 alsa: install conf files 2020-05-02 10:43:10 +02:00
Wim Taymans
979a81a70d meson: add -Wformat
cc1: warning: ‘-Wformat-security’ ignored without ‘-Wformat’ [-Wformat-security]

Fixes #234
2020-05-01 11:05:38 +02:00
Wim Taymans
33398d7de8 0.3.4 2020-04-30 17:55:54 +02:00
Wim Taymans
dc331aa562 add more warnings and fix one 2020-04-30 16:07:23 +02:00
Wim Taymans
002bcae856 0.3.3 2020-04-30 13:46:39 +02:00
Wim Taymans
a81e269a7e neon: fix neon detection and compilation 2020-04-03 13:30:08 +02:00
Wim Taymans
7a29c15628 enable more warnings
Fix some warnings
2020-04-01 12:51:42 +02:00
Wim Taymans
67a5dd35be resample: add neon optimizations 2020-03-27 08:27:11 -04:00
Wim Taymans
f0f3a0a660 0.3.2 2020-03-26 12:34:54 +01:00
Gleb Popov
f22b7b22a8 Define alsa_dep a bit earlier and even in case the option is off to fix meson setup:
src/examples/meson.build:47:12 uses alsa_dep unconditionally.
2020-03-24 12:29:46 +01:00
Wim Taymans
8a2af908a7 small optimizations
Add some SPA_LIKELY
Enable FASTPATH by default
2020-03-18 15:43:29 +01:00
Wim Taymans
72d70b0f48 Add and fix some more warnings
Fixes #216
2020-03-17 11:37:56 +01:00
Ariel D'Alessandro
80ea7d230c meson.build: Define missing sndfile dependency
The audioconvert tool checks for sndfile dependency, which is missing in
case pw-cat option is disabled.

Signed-off-by: Ariel D'Alessandro <ariel@vanguardiasur.com.ar>
2020-03-06 18:12:10 -03:00
Wim Taymans
74a1632f07 0.3.1 2020-03-06 19:05:26 +01:00
Wim Taymans
bdeeebfdd4 enable and fix -Werror=suggest-attribute=format 2020-02-20 18:20:04 +01:00
Wim Taymans
020ac545a8 0.3.0 2020-02-20 15:33:31 +01:00
Wim Taymans
18590b7e0e 0.2.97 2020-02-19 20:24:51 +01:00
Wim Taymans
945da1e6f3 0.2.96 2020-02-11 16:06:27 +01:00
Wim Taymans
4906a172e1 0.2.95 2020-02-07 09:39:14 +01:00
Wim Taymans
070ca1d588 0.2.94 2020-02-05 16:30:20 +01:00
Wim Taymans
95ecbacfe0 meson: install headers in versioned paths
Make sure all headers and plugins are installed in versioned paths
so that we can parallel install versions if we want.
2020-02-05 16:28:22 +01:00
Wim Taymans
65caf8832c spa: install in versioned directory
So that we can run old and new plugins side by side.
2020-01-29 15:51:41 +01:00
Wim Taymans
6cc180f252 0.2.93 2020-01-28 15:49:18 +01:00
Wim Taymans
c047bab910 rename pipewire tools
Use the pw- prefix for all pipewire tools. This makes the
commands shorter but also avoids conflicts with password
and patchwork tools (pwcli is taken, pwconv is maybe we someday
can make).

pipewire-monitor -> pw-mon
pipewire-cli -> pw-cli
pipewire-dot -> pw-dot
pwcat -> pw-cat
2020-01-27 15:42:59 +01:00
Pantelis Antoniou
588e9562f9 pwcat: simple native playback/record tool
pwcat is analogous to pacat of PulseAudio which implements
both playback and recording capability.

Only wav files are supported for now, and you can use the
handy pwplay and pwrecord aliases for easy use.

Playback a wav file
  $ pwplay foo.wav

Record a wav file
  $ pwrecord -r 44100 -c 1 -f s16 foo.wav

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
2020-01-27 12:23:15 +01:00
Jan Grulich
962c3ff1a6 Bump version to distinguish between stable bugfix release and pre-release
The upcoming PW version has been already released as 0.2.9x, while using 0.2.9 means we
still use a bugfix release of PW 0.2 version. Without the proper version bump, one cannot
use ifdefs and support both PW 0.2 and PW 0.3
2020-01-21 12:50:34 +01:00
Wim Taymans
bac6bf090c make symlinks to replacement libs for uninstalled script 2020-01-16 13:26:47 +01:00
Wim Taymans
e29969f937 Use build_root to generate Makefile
Don't hardcode the buildroot but use the value from meson.

Based on patch by Jan Koester <jan.koester@gmx.net>

Fixes #202
2020-01-08 15:41:01 +01:00
Gleb Popov
fd937fa378 On FreeBSD, add dependency on epoll-shim library.
FreeBSD doesn't provide timerfd and eventfd functions. These are implemented in
3rd party library called epoll-shim. Link targets requiring these functions to
this library.
2019-11-19 13:41:40 +01:00
Philipp Zabel
8c53e5305d meson: remove spa option
PipeWire does not work without at least the basic SPA plugins.
Remove the option to disable SPA.

Fixes #198

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
2019-11-12 08:14:13 +00:00
Wim Taymans
e04d58ee3a Improve some debug 2019-10-02 18:02:07 +02:00
George Kiagiadakis
5183e1d4b4 bluez-monitor: fix usage of pw_properties_setf without a format string
Otherwise compilation will fail with certain -Wformat-security flags
Add the flag to the warnings.
2019-09-26 17:26:23 +02:00
Wim Taymans
5b9869200f jack: add jack source and sink
Makes a device with a source and sink that automatically
proxies all physical ports from jack. Jack then drives our
PipeWire pipeline from its own thread.
2019-08-20 20:35:41 +02:00
Matt Porter
b71f2dd716 meson.build: fix meson version warning
Features are used from 0.44 but min version is specified as 0.42.
Bump min version to 0.44.

Signed-off-by: Matt Porter <mporter@konsulko.com>
2019-08-09 23:20:55 +02:00
Thomas Zimmermann
10ec285911 meson.build: Test for ptrdiff_t in <stddef.h>
The build scripts assumed ptrdiff_t to just be around by default. But POSIX
specifies ptrdiff_t to be defined in <stddef.h>, which is now included from
the test.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
2019-05-23 10:15:35 +02:00
Wim Taymans
e7ef13e310 audioconvert: add avx optimizations 2019-03-28 16:45:57 +01:00
Wim Taymans
c8d3d475bb audioconvert: handle more optimizations
Compile an optimized library for the given CPU with the right flags,
then link it with the main library.
2019-03-27 17:58:48 +01:00
Wim Taymans
5a2ccee1ff Add FASTPATH trace log
Add a trace_fp that can be optimized away when FASTPATH is defined.
2019-03-21 11:31:53 +01:00
George Kiagiadakis
58a878623b meson: find dependencies only when necessary
This allows finding dependencies conditionally, only
when the enabled features actually need them.

Also, make sure to require those dependencies when the enabled
features do need them, instead of using "required: false" and
failing later
2019-02-13 11:22:22 +01:00
Wim Taymans
569cbb48a9 use SPA_EXPORT to export symbols 2019-02-06 13:24:41 +01:00
Wim Taymans
f8556f1a08 make c++ optional 2019-01-08 12:18:45 +01:00
Wim Taymans
3e77e9bf99 test: add c++ test 2019-01-08 11:59:05 +01:00
Wim Taymans
b0f4be5fbc fix more compile errors
Avoid void * arithmetic
Do explicit casts to target type to make c++ happy
2019-01-08 11:53:36 +01:00
Wim Taymans
44cb131269 meson: enable more warnings 2019-01-07 18:02:36 +01:00
Tanu Kaskinen
f80620f1f8 meson: increment apiversion
There are ABI breaking changes in libpipewire.
2018-12-18 13:54:03 +00:00
Wim Taymans
85f2e93c54 Relicense as MIT/X11
Remove some obsolete files
2018-11-05 17:48:52 +01:00
Thibault Saunier
c2cb8e46b9 Fix build when systemd is found but not libsystemd
Getting the following otherwise:

```
[13/28] Compiling C object 'src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o'.
FAILED: src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o
ccache cc -Isrc/modules/src@modules@@pipewire-module-protocol-native@sha -Isrc/modules -I../src/modules -I. -I../ -Ispa/include -I../spa/include -Isrc -I../src -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=gnu99 -O2 -g -fPIC -pthread -DHAVE_CONFIG_H -D_GNU_SOURCE  -MD -MQ 'src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o' -MF 'src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o.d' -o 'src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o' -c ../src/modules/module-protocol-native.c
../src/modules/module-protocol-native.c:36:10: fatal error: systemd/sd-daemon.h: No such file or directory
 #include <systemd/sd-daemon.h>
          ^~~~~~~~~~~~~~~~~~~~~
```
2018-10-31 07:54:59 +00:00
Wim Taymans
693fd3a366 meson: only add dependencies when requested 2018-10-19 13:21:52 +02:00
Wim Taymans
88d6e52cc7 add systemd socket activation 2018-10-18 12:36:10 +02:00
Arun Raghavan
dcfe1ac613 meson: Add an uninstalled target and script
This makes it easier to run PipeWire from the build environment
2018-10-10 17:17:17 +02:00
Tapasweni Pathak
8d71d2dab8 pipewire: add enable/disable to meson for spa plugins 2018-10-10 16:01:28 +02:00
Jan Alexander Steffens (heftig)
03fdabd155 meson: Use pkgconfig.generate
Also fixes the moduledir having a duplicated prefix.
2018-09-03 21:26:42 +02:00
Rasmus Thomsen
e56344e55e meson: rename options as per meson's style guide
see https://mesonbuild.com/Style-guide.html
2018-08-17 17:52:19 +02:00
Wim Taymans
c06d775ddc man: add man page for config file 2018-08-17 10:19:20 +02:00
Wim Taymans
43b8ea9b83 set version in core 2018-08-14 15:36:08 +02:00
Wim Taymans
60d4473e7b make spa-lib versioned
Fixes #60
2018-08-14 14:41:50 +02:00
Jan Grulich
77f759eb6e Bump apiversion and soversion for PW 0.2.x 2018-08-14 14:40:07 +02:00
Wim Taymans
2d75d96d67 meson: fix pulseaudio check 2018-06-26 12:22:03 +02:00
Wim Taymans
4005cf03e6 meson: add puleaudio library 2018-06-01 11:38:18 +02:00
Wim Taymans
9b0a880afb simplify things with just 1 process function
Make just one process function in spa node. With the io area states
we can do more complicated io patterns.
2018-04-03 16:29:36 +02:00
Wim Taymans
3a9df8096b WIP add subgraph 2018-04-03 16:29:36 +02:00
Wim Taymans
933635f63f WIP: work on per driver graphs
Make a graph per driver node and let nodes that link to this join this
graph
Work on an idea for an even simpler scheduling mechanism.
2018-04-03 16:29:36 +02:00
Wim Taymans
62f113dbba Release 0.1.9 2018-02-27 13:34:22 +01:00
Emmanuele Bassi
ea28338736 build: Optional tools should not be mandatory
Since we're using the `found()` method on tools found via the
`find_program()` function, we are expecting them to be optional,
but we are not passing `required:false` to ensure that Meson does
not bail out when the tool is not found.
2018-01-26 08:51:38 +01:00
Emmanuele Bassi
d99f5defa3 build: Fix dependency objects for system libraries
The dependency checks for system libraries is not really portable.

Not all C standard libraries have separate rt and math libraries, so the
requirement should be set to false.

Additionally, finding threading libraries should be left to Meson
itself, using the `dependency('threads')` object, which will do the
right thing depending on platform and compiler.
2018-01-26 08:51:38 +01:00
Wim Taymans
cf036a15f0 Release 0.1.8 2018-01-23 15:58:36 +01:00
Wim Taymans
77838fd734 mem: fix for memfd_create check 2017-11-27 11:58:33 +01:00
Wim Taymans
f902a34290 build: make sure memfd_create is found 2017-11-24 18:58:22 +01:00
Wim Taymans
4516fcecc4 remove stray commit 2017-11-24 18:03:22 +01:00
Wim Taymans
2a86814bb8 Only define memfd_create when not already defined 2017-11-24 17:36:27 +01:00
Wim Taymans
bde1012c5c Back to development 2017-11-24 17:03:58 +01:00
Wim Taymans
58f086b165 Release 0.1.7 2017-11-24 17:02:04 +01:00
Wim Taymans
2fd5bcb623 gst: fix gstreamer elements
Handle new ringbuffer area on buffers
Set the id correctly for format enumerations.
2017-11-20 11:04:02 +01:00
Wim Taymans
7a7c011b00 make gstreamer elements optional 2017-11-13 20:08:29 +01:00
Wim Taymans
63fe535352 Back to development 2017-11-03 12:43:50 +01:00
Wim Taymans
5fec60078d Release 0.1.6 2017-11-03 12:40:03 +01:00
Rasmus Thomsen
6a0ee7a298 meson.build: remove automagic docs and manpages 2017-10-19 22:44:37 +02:00
Wim Taymans
8432039ee5 meson: require jack2 to build 2017-09-19 18:19:54 +02:00
Wim Taymans
2e379d5f8f back to development 2017-09-19 12:17:36 +02:00
Wim Taymans
0d44a34b4c Release 0.1.5 2017-09-19 11:25:38 +02:00
Wim Taymans
68f5c05b9f back to development 2017-08-23 13:31:24 +02:00
Wim Taymans
b7e334e55d Release 0.1.4
Remove spec file
Fix systemd service file
Send error on link errors
Init socket to -1 so that we don't close anything on error
Wait for all proxy objects in device monitor
2017-08-23 13:22:39 +02:00
Wim Taymans
593df62ccc update spec 2017-08-17 19:42:10 +02:00
Wim Taymans
29eb58f7a2 Add systemd socket activation files
Notify of jack graph changes
2017-08-17 18:59:03 +02:00
Wim Taymans
cfd9967637 Back to development 2017-08-09 10:26:51 +02:00
Wim Taymans
35929dd4d8 Release 0.1.3 2017-08-09 10:20:14 +02:00
Wim Taymans
d1655196c3 move things around 2017-07-11 16:08:22 +02:00
Wim Taymans
b0f5d34cf7 back to development 2017-07-04 15:55:39 +02:00
Wim Taymans
a3523047c7 Release 0.1.2 2017-07-04 15:09:46 +02:00
Wim Taymans
fade5396c5 Fix build for jack 2017-06-28 09:11:05 +02:00
Wim Taymans
58b97c8708 back to development 2017-06-26 13:26:46 +02:00
Wim Taymans
5b2745498e Release 0.1.1
spec: updates
2017-06-26 13:13:21 +02:00
Wim Taymans
2c6b2f0b74 Add beginnings of jack module
Update spec and makefile a bit
2017-06-26 13:04:47 +02:00
Wim Taymans
423d40f494 back to development 2017-06-20 16:28:30 +02:00
Wim Taymans
3b5a308645 link: improve renegotiation
Only suspend an idle node when we need to configure a different format.
2017-06-20 16:22:25 +02:00
Wim Taymans
4a6b1b42bc Don't hardcode plugin path
Use SPA_PLUGIN_DIR to get the plugin path.
Install plugins in subdirectory to make it match the build tree.
2017-06-19 12:19:22 +02:00
Wim Taymans
573e032cc1 man: update man build 2017-06-16 17:31:40 +02:00
Wim Taymans
ab9b3ba85a docs: update 2017-06-16 16:25:19 +02:00
Wim Taymans
e7327d1316 Add doxygen docs 2017-05-30 19:46:51 +02:00
Wim Taymans
83964cec87 pinos -> pipewire 2017-05-23 19:15:33 +02:00
Linus Svensson
740125a12e meson.build: Install conf file under ${sysconfdir}
Base conf file path on sysconfdir. sysconfdir can be specified with an
absolute or relative path. To ensure PINOS_CONFIG_DIR is set correctly,
use join_paths() to prepend prefix when sysconfdir is relative.

Meson added support for sysconfdir in version 0.34.0 and join_paths() in
version 0.36.0.
2017-05-16 09:13:36 +02:00
Linus Svensson
2011023da7 meson.build: Include API version in module directory 2017-05-16 09:11:03 +02:00
Linus Svensson
1079d433ef meson.build: No need for PLUGINDIR 2017-05-16 09:06:07 +02:00
Jonas Ådahl
1d8504565a build: Fix API version usage
It was sometimes assumed to be 0.1, sometimes 1.0, and sometimes not to
be used at all. This commit makes things consistent and so that it is
possible to link externally.
2017-05-11 11:41:17 +02:00
Wim Taymans
3dada4731c rename signal -> sig
Meson puts the directory of the source file in the include path and then
it picks up our signal.h instead of the system one...
2016-11-28 16:24:10 +01:00
Wim Taymans
7ecfc28d0f use plain libdbus instead of GDBus 2016-11-24 18:17:29 +01:00
Wim Taymans
4e94743906 Use pinos loop for mainloop
Remove more glib stuff
2016-11-24 17:40:26 +01:00
Wim Taymans
67dd3adb87 port to meson 2016-09-26 12:15:52 +02:00