Commit graph

212 commits

Author SHA1 Message Date
Wim Taymans
ff416cdc9e daemon: add some comments to the config file 2021-01-17 11:42:42 +01:00
Wim Taymans
482f96a644 alsa: add option to disable mmap access mode 2021-01-15 15:44:22 +01:00
Wim Taymans
7347b5ef05 alsa: add api.alsa.headroom setting
Can be used to tweak the extra distance kept between the hardware
and software pointers when reading and writing.

See #289
2021-01-14 17:10:05 +01:00
Wim Taymans
abe73c9146 meson: use global b_pie to build PIE executables 2021-01-14 16:29:32 +01:00
Wim Taymans
7eac9874f0 daemon: add nofail option to the modules section
Use nofail on rtkit when it's not available.
2021-01-14 15:06:24 +01:00
Wim Taymans
c9354c238f Add -fPIE to installed executables
Fixes #570
2021-01-13 19:40:37 +01:00
Wim Taymans
fee0c2679c daemon: install new config files
See #207
2021-01-13 14:50:52 +01:00
Wim Taymans
c771bc9b5a media-session: move bluetooth properties to bluez config 2021-01-13 11:42:08 +01:00
Wim Taymans
8aec26f5bd v4l2-monitor: make nicer names 2021-01-12 21:51:10 +01:00
Wim Taymans
fac80e76d2 media-session: add conf file for v4l2 and bluez as well 2021-01-12 20:42:58 +01:00
Wim Taymans
5f66650f7c daemon: don't pass (null) as argument 2021-01-11 20:40:26 +01:00
Jarkko Sakkinen
ec9dfe72ff systemd: Add systemd-user-unit-dir override
Add a new build option 'system-user-unit=dir', which can be used to
override the pkg-config default value.

By doing this, it becomes more practical to make a local unprivileged
build of the latest PipeWire:

$ meson --prefix=~/.local build
$ meson configure build -Dpipewire-alsa=false
$ meson configure build -Dsystemd-user-unit-dir=~/.config/systemd/user
$ meson configure build -Dudevrulesdir="`mktemp -d`"
$ ninja -C build install

For a local build enabling ALSA plugins is not plausible.

JACK needs a simple addition to the ~/.profile:

export LD_LIBRARY_PATH=$HOME/.local/lib/x86_64-linux-gnu/pipewire-0.3/jack

Finally, the genuine PulseAudio must be masked and local services
enabled:

systemctl --user enable pipewire.socket
systemctl --user enable pipewire-pulse.socket
systemctl --user mask pulseaudio.service

A sanity check [*] shows that nothing has leaked out of the home
directory (even though at least on my Debian 10 system PolKit still
asks for authorization during the meson build).

Not perfect, but lowers a barrier to run the development version a lot,
as that does not anymore to trash your system.

[*]  find / -name "*pipewire*" \! -path "/home/*"  \! -path "/var/lib/flatpak/*" 2> /dev/null

Signed-off-by: Jarkko Sakkinen <jarkko@suppilovahvero.lan>
2021-01-09 12:11:22 +01:00
Wim Taymans
4440ede41c bluez5: add SBC XQ support with a config option 2021-01-08 13:00:44 +01:00
Wim Taymans
1084306f4d disable i18n stuff, something doesn't work on bots 2021-01-08 11:04:03 +01:00
Wim Taymans
3c2794dcc9 add i18n support 2021-01-08 10:26:46 +01:00
Wim Taymans
d99ac615b2 conf: remove extra object level
We can parse this without the extra object level.
Use 4 spaces per level
2020-12-31 21:45:36 +01:00
Wim Taymans
49d11acde0 daemon: rework config parsing
Replace config parsing for something more flexible based on json.
2020-12-31 16:44:35 +01:00
Wim Taymans
1bd90dc666 pipewire-pulse: escape the address string
It can contain special chars
2020-12-31 16:24:26 +01:00
Wim Taymans
0bf1aa8f45 media-session: load properties from config 2020-12-31 13:06:17 +01:00
Wim Taymans
85306917a2 media-session: try to load config from state dir first
First try to load conf from the user config directory and then from
the global config dir. Allows users to copy and modify a custom
config file.
2020-12-31 11:46:54 +01:00
Wim Taymans
20e9ec25be media-session: use simplified syntax
Now sure about this, it looks better but it's less compatible.
2020-12-31 10:19:48 +01:00
Wim Taymans
24c68b0067 media-session: add config files
Remove -e and -d options
Manage modules in media-session.conf
Add alsa-monitor.conf that can match node/device properties with
a regex and update properties on it. All previous configuration and
more cane be done with this.
2020-12-30 13:15:08 +01:00
Ihor Kalnytskyi
8942f6b402 launch: avoid autostarting pipewire-pulse systemd units for root
Long story short, this is something pulseaudio has since 2017 [1]. If
pipewire-pulse is aiming to be a drop-in replacement, the same behaviour
is probably expected.

I noticed that without this line I hit some issues with systemd socket
activation. In fact, it does not work properly at all. It probably has
something to do with the fact that pipewire-pulse is started for GDM
session and is somehow propagated down to my own user session.

[1] 24928d6b6f
2020-12-28 13:35:41 +01:00
Wim Taymans
261144c27f media-session: add /etc/pipewire/media-session.d/ dir
Placing files in it will activate options in the session manager.
2020-11-25 16:13:20 +01:00
Wim Taymans
6a244592a0 main: set PIPEWIRE_INTERNAL env
So that we can detect if we running in the daemon
2020-11-19 12:36:14 +01:00
Wim Taymans
89cb39badd pipewire-pulse: fix help string 2020-11-17 21:04:02 +01:00
Wim Taymans
7ac23c8b82 improve some docs about options
See #387
2020-11-17 21:00:17 +01:00
Wim Taymans
041d1a142d Add commented out option to start pipewire-pulse 2020-11-12 17:43:42 +01:00
Wim Taymans
798bcc10b1 pulse: add a small pulseaudio daemon
Add a small application that loads the pulse server and makes it
listen on the pulseaudio socket.
Add some systemd activation files to start the service.
2020-11-12 16:53:55 +01:00
Jonas Holmberg
5c52670421 systemd: Add system service and socket
Add system service and socket in addition to the user service and
socket. The system service is started as pipewire user and group and
clients need to be in the pipewire group to be able to connect.
2020-08-19 17:46:50 +00:00
Emmanuel Gil Peyrot
14fdf07e8f Run codespell on the entire codebase
This tool detects and fixes common English spelling mistakes, with
generally very few mistakes.

Here is the command I used to generate this commit.  There were a few
changes that had to be done manually, and of course adding the ignore
file:
```shell
codespell -I .codespell-ignore -x .codespell-ignore -w
```

I didn’t add it to the CI, but this would be a good place for it.
2020-08-17 17:16:31 +00:00
Wim Taymans
e71936f870 Improve naming
master -> driving
priority_master -> priority_driver
segment_master -> segment_owner
2020-08-06 13:49:33 +02:00
Wim Taymans
3586f918c5 main: make the default remote if nothing is specified 2020-07-24 17:23:00 +02:00
Wim Taymans
141238d88b core: always use explicitly configured properties first
First use the configured properties, then use the env variables.
Make the daemon use the env variable by default.

This makes it possible to start servers with PIPEWIRE_CORE env variable
names but still override with the command option.

Makes it possible to make apps connect to PIPEWIRE_REMOTE env by
default and allows you to override with the command option.
2020-07-23 13:40:02 +02:00
Wim Taymans
119ef5e376 session-manager: move portal check back to pipewire
Enable the portal check in pipewire.
Only do permission store queries in the session-manager for portal
managed apps.
2020-07-17 14:14:26 +02:00
Wim Taymans
a295901329 Move portal module to session manager 2020-07-16 17:54:18 +02:00
Wim Taymans
7ddc32a113 meson: place full path in the config 2020-07-16 11:44:10 +02:00
Wim Taymans
f306cbde0b command: pass right arguments to execvp
The first argument is the command (exec) and the next is the
actual command we executed.
2020-07-16 11:42:55 +02:00
Wim Taymans
d3f29f048f meson: use join_paths to join paths 2020-06-10 13:28:15 +02:00
Wim Taymans
baf11b22d4 meson: use the right config file 2020-06-10 13:24:21 +02:00
Florian Klink
d1162f28ef pipewire.conf.in: use absolute path to pipewire-media-session
So pipewire daemon is able to find pipewire-media-session from the
location it's installed to, even when it's not in $PATH.

For the `pw-ininstalled.sh` and `make run` invocations, provide a
`src/daemon/pipewire-uninstalled.conf` that still uses the relative
path, but isn't installed.
2020-06-10 13:20:25 +02:00
raghu447
af263187ea Reverting redundant changes 2020-06-04 10:36:39 +02:00
raghu447
9024cc4444 Integrating libcamera 2020-06-04 10:36:39 +02:00
Wim Taymans
00d61d958e add pw_deinit() to cleanup resources
Add and use pw_deinit() to avoid leaking the support plugins and
use this in the main daemon. Makes valgrind output better.
2020-06-02 17:16:46 +02:00
Wim Taymans
9e6a047788 portal: add portal module again
Add this again for now until we can integrate this into the
session manager somehow.
2020-05-18 16:30:09 +02:00
Wim Taymans
97c8e674ac command: add log.level property
Support setting the log level from the config file.
2020-05-07 17:15:39 +02:00
Wim Taymans
2220d5b9b6 support: add dummy driver
Add a dummy driver node with high priority. All nodes not linked
to a device node will be linked to this when they require a driver.
2020-04-27 20:21:31 +02:00
Wim Taymans
b87c0a9270 clean up options
make sure we can use -v for verbose mode
2020-04-02 14:34:02 +02:00
Wim Taymans
afb93eb6ea conf: add comment 2020-03-30 15:27:54 +02:00
Wim Taymans
6d673cc77c conf: update defaults 2020-03-18 17:53:46 +01:00