Commit graph

5039 commits

Author SHA1 Message Date
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
Wim Taymans
cd71b05fd0 tests: zero test data
hooks need to be zeroed or else they causes crashes on _remove when the
remove callback is called.

Fixes #368
2020-11-06 09:30:21 +01:00
Wim Taymans
3fe31862ef proxy: remove hooks in _destroy
Callers of _destroy should be able to reply on the fact that no
more events will be emited on the proxy whitout being required to
remove the hooks themselves.

Because of the refcount in the proxy, it can stay alive after the
_destroy and being used to emit events, like emit an error in
protocol-native.

Fixes #366
2020-11-05 20:22:57 +01:00
Georges Basile Stavracas Neto
a362889712 pulse-server: Implement module load and unload
Implement a minimal version of the LOAD_MODULE and UNLOAD_MODULE
stream commands. The only supported module for now is the null
sink.

Modules are stored on a per-client bases, so that when clients
are disconnected, the modules they loaded is removed too.

This is enough to allow GNOME Network Displays to register a sink.
2020-11-05 11:57:12 -03:00
Wim Taymans
2a5087a51e pulse-server: set client id 2020-11-05 10:46:19 +01:00
Wim Taymans
b472abe65b pulse-server: improve GET_SERVER_INFO
We don't need to bind to the core object again, we can just use the
events on the manager core.
We don't actually have info when the Core is added so don't try to
use it to get defaults for the client.
Use the manager core info in server info.
2020-11-05 10:36:13 +01:00
Wim Taymans
5a98a9b1cd alsa: reload alsa configuration
Fixes #332
2020-11-05 10:00:25 +01:00
Wim Taymans
17e3087397 bluez5: fix some whitespace and indent 2020-11-05 09:46:11 +01:00
Wim Taymans
38bcab4610 jack: handle connect errors
Listen on the proxy for errors and report this to the caller. This
avoids hanging in jack_connect.
2020-11-04 21:05:45 +01:00
Wim Taymans
6444147a12 pulse: protect context
Make sure the context is READY when calling function
Protect pa_operation_sync against disconnected context

Fixes #365
2020-11-04 19:27:17 +01:00
Wim Taymans
7a43769648 pulse: guard against NULL core
See #365
2020-11-04 17:41:40 +01:00
Wim Taymans
b8c7b36d3b protocol-native: do version check on HELLO
Always do the version check on HELLO because the connection could
have been moved from a v3 portal to a v0 client (like chrome)

Fixes #270
2020-11-04 16:13:53 +01:00
Wim Taymans
16872549e3 0.3.15 2020-11-04 10:43:40 +01:00
Wim Taymans
b659fa580a pulse-server: improve error reporting 2020-11-04 10:24:39 +01:00
Wim Taymans
9d598cde63 policy-node: always up or downmix to device format
Always remix the channels to match the ones on the device even if
that means upmixing.

This will make mono streams go to all inputs of the device instead
of just one.

Fixes #355
2020-11-04 09:47:20 +01:00
Wim Taymans
4ea95abd90 rtkit: improve error message 2020-11-04 09:42:33 +01:00
Wim Taymans
12cefd2461 pulse-server: handle no_remix flag 2020-11-03 21:01:24 +01:00
Wim Taymans
4f2b1c7684 media-session: avoid recursive rescan
A rescan can trigger a new rescan and with a blocking rountrip this
can recursively never end. Catch a rescan while rescanning and queue
it for when we end the current scan.

Fixes #364
2020-11-03 20:25:51 +01:00