Commit graph

4956 commits

Author SHA1 Message Date
Wim Taymans
10207456f0 media-session: don't start pulse-bridge automatically
Don't start the pulse-bridge automatically because we don't
know what socket to listen on.
Also, listen by default on a safe socket, not used by pulseaudio.
2020-11-12 16:50:24 +01:00
Wim Taymans
024b9dc0ca pulse-server: remove unused code
We already checked the systemd sockets above and never call is_stale
for them.
2020-11-12 15:58:42 +01:00
Wim Taymans
044876b51c pulse-server: improve error message 2020-11-12 15:44:05 +01:00
Wim Taymans
4eb3cc37ea pulse-server: add socket activation 2020-11-12 15:35:35 +01:00
Wim Taymans
346e35eed5 deprecate the libpulse replacement
Don't build by default, update the README
With pulse-server we are more flexible and compatible and we don't
have to (badly) reimplement libpulse anymore.
2020-11-12 15:18:04 +01:00
Wim Taymans
5bfc3b90ef pulse-server: improve error log 2020-11-12 15:13:33 +01:00
Wim Taymans
34cc13a60c pulse-server: set the right error when socket is busy 2020-11-12 14:54:58 +01:00
Wim Taymans
5ebb95a346 pulse-server: improve debug, add client name 2020-11-12 13:33:25 +01:00
Wim Taymans
593c183166 pulse-server: improve stale socket detection
Only declare stale when ECONNREFUSED and not socket activated.
2020-11-12 13:02:18 +01:00
Wim Taymans
6e2ab9973b pulse-server: alsa safely make native socket
Only make the native socket when it's not there or when it appears
dead when we can't seem to connect to it.

- When the socket is not found, we take it.
- When an existing pulseaudio is running we won't unlink and take
  over the socket because we can connect to it
- When a crashed pulseaudio leaves a stale socket, we fail to
  connect and then we unlink and take over.
2020-11-12 12:17:12 +01:00
Wim Taymans
1d001974d7 media-session: enable pulse-bridge by default
Now that we don't interfere with pulseaudio, enable it by default.
2020-11-12 11:11:53 +01:00
Wim Taymans
c368768b93 pulse-server: append remote name to native socket
This way we don't interfere with the pulseaudio daemon in any way
and we can implement fallback to pulse-server in the pulseaudio
client library config file.
2020-11-12 11:01:57 +01:00
Wim Taymans
6c7a84a0ff pulse-server: rate limit the underrun warnings 2020-11-12 10:17:19 +01:00
Wim Taymans
218689ff9a manager: also make a Core global
So that we can checke the permissions for the metadata
2020-11-11 17:19:04 +01:00
Wim Taymans
bd259a7eb6 utils: don't include config.h
don't include config.h in public header. Just check if strndupa
is defined and if not, define it.
2020-11-11 12:24:24 +01:00
Wim Taymans
239615f5ae pulse-server: improve some debug 2020-11-09 16:53:18 +01:00
Wim Taymans
cd3610367b pulse-server: free object info
Don't remove the listeners before destroying the proxy because
we clean up the info in the destroy event.
2020-11-09 16:52:25 +01:00
Wim Taymans
99fcc95d18 pulse-server: don't leak formats 2020-11-09 16:51:34 +01:00
Wim Taymans
a6c35d1df4 module-portal: don't leak dbus error 2020-11-09 16:50:47 +01:00
Wim Taymans
d4fc918737 module-adapter: don't remove the listener in destroy
Or else we won't receive the free event anymore and we leak the
adapter.
2020-11-09 16:49:49 +01:00
Wim Taymans
31216c09c4 bluez5: fix memleak 2020-11-09 16:48:44 +01:00
Wim Taymans
ecf10e0b1c pulse-server: remove useless allocation 2020-11-09 15:51:58 +01:00
Wim Taymans
29d6179328 spa-device: cleanup in the free signal
Cleanup and close the plugin in the free signal so that the object
has a chance to remove the event handlers from the object.
2020-11-09 15:36:36 +01:00
Wim Taymans
a0b2e5b498 pulse-server: improve stream cleanup
Make sure we finish processing of the pending messages before
destroying the stream.
2020-11-09 15:35:50 +01:00
Wim Taymans
f8186665d9 spa-node: remove unused factory_name 2020-11-09 15:35:12 +01:00
Wim Taymans
42dd52c7fe acp: clean up card object
Fixes #369
2020-11-09 15:01:07 +01:00
Wim Taymans
779579b349 utils: check for strndupa defined
The meson check does not completely work in detecting strndupa so do
an extra check before we define it.
2020-11-09 12:20:40 +01:00
Greg V
2ae840bc12 access: only check for Flatpak on Linux 2020-11-09 11:14:20 +00:00
Greg V
c1cda26ce8 protocol-native: get pid/gid/uid on FreeBSD using LOCAL_PEERCRED 2020-11-09 11:14:20 +00:00
Greg V
6ffb997c5a Use memfd on FreeBSD 13, shm_open(SHM_ANON) on older versions
/dev/shm usually does not exist on FreeBSD, so the mkostemp call was failing.
FreeBSD 13 offers memfd support complete with seals, use it.
2020-11-09 11:14:20 +00: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
Greg V
cc0386e1c5 media-session: ifdef Linux-specific file option 2020-11-09 11:14:20 +00:00
Greg V
fba8cd9f56 protocol-pulse: ifdef Linux-specific errnos and socket opts 2020-11-09 11:14:20 +00:00
Wim Taymans
bd57c1a457 pulse-server: improve under and overrun handling 2020-11-09 12:06:44 +01:00
Wim Taymans
8abb648ec3 pulse-server: Improve timing reporting
Use the same logic as pulseaudio to improve the timing reporting
and improve compatibility with vlc.
2020-11-09 11:13:06 +01:00
Wim Taymans
18c57efb39 pulse-server: take type from info 2020-11-09 09:42:53 +01:00
Wim Taymans
b6efcd90a7 pulse-server: improve message debug, add offset 2020-11-09 09:42:15 +01:00
Sergey Bugaev
d7d4f094a8 pipewire: load journald logging when available
See https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/358

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
2020-11-06 15:51:24 +00:00
Sergey Bugaev
c101ff2057 support: add a journald logger implementation
Closes https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/358

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
2020-11-06 15:51:24 +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
1507f40eb0 pulse-server: keep on reading commands until we hit EAGAIN
Only log a warning for anything else than EAGAIN
2020-11-06 16:37:19 +01:00
Wim Taymans
24280928a9 pulse-server: improve debug 2020-11-06 16:30:05 +01:00
Wim Taymans
65289a2185 pulse-sever: increase socket priority 2020-11-06 16:13:05 +01:00
Wim Taymans
96599f74e7 pulse-server: use invalid id for unused connect_tag
Because 0 happens to be the first tag and can cause confusion.
2020-11-06 16:09:41 +01:00
Wim Taymans
a2549fc638 clean the hook lists
Make sure the hook lists are emptied so that the removed callbacks
are called. The callers should really remove the hook they installed
themselves but this is a last chance to fix things up.
2020-11-06 15:55:33 +01:00
Wim Taymans
1570e62635 remove hooks from objects
Remove the hooks we installed on objects in the destroy/free event
or before calling _destroy. This is not really needed but it is
a nice thing to do because it calls the hook removed callbacks.
2020-11-06 15:53:32 +01:00
Wim Taymans
6317bc4deb module-spa: remove the listeners correctly
In the module destroy, remove the module listener and in the
factory_destroy, the factory_listener.
2020-11-06 15:37:58 +01:00
Wim Taymans
42319e32be pulse-server: handle NULL registry 2020-11-06 15:35:44 +01:00
Wim Taymans
06bfbe55d3 proxy: also clean the object_listeners
Fixes #366
2020-11-06 15:34:13 +01:00
Wim Taymans
80967e88ad utils: add function to clean hook list 2020-11-06 15:32:49 +01:00