Commit graph

1411 commits

Author SHA1 Message Date
Barnabás Pőcze
ebed44db79 pulse-server: support absolute unix socket paths
If a unix socket address starts with '/', use it
directly as an absolute path, do not prepend
the runtime directory.
2021-05-31 21:34:58 +02:00
Barnabás Pőcze
70c6e6ccc8 pulse-server: only unlink sockets
If the entity specified in a unix socket address exists, check
if it is a socket, and bail out if it is not.
2021-05-31 21:34:58 +02:00
Wim Taymans
a248391939 echo-cancel: set latency on the right streams 2021-05-31 16:15:37 +02:00
Wim Taymans
8485622923 echo-cancel: reuse buffer on error
Queue the dequeued buffers when there is an error so that we can
recover.
2021-05-31 15:53:34 +02:00
Wim Taymans
d37ea7851a echo-cancel: copy some more node properties 2021-05-31 15:17:00 +02:00
Wim Taymans
a2cab35365 echo-cancel: use the right node.group 2021-05-31 15:01:33 +02:00
Evgeniy Khramtsov
3cf4bf7cf7 modules: build module-rt only on Linux
RLIMIT_RTTIME is Linux specific, there is no equivalent replacement
for FreeBSD. Save trouble and build module-rt for Linux only, rtkit
WIP fork should be fine on FreeBSD for now.
2021-05-30 15:30:45 +03:00
Wim Taymans
a138152bef pulse-server: free message when resize fails
Based on patch by Peter Hutterer

Fixes !701
2021-05-28 11:52:29 +02:00
Wim Taymans
913434167d modules: remove some useless device names 2021-05-28 11:20:06 +02:00
Wim Taymans
b9efb25605 pulse-tunnel: handle latency a little better
Set a limit on the buffer size.
Announce our latency on the streams.
2021-05-28 11:19:05 +02:00
Barnabás Pőcze
48f03f85a7 pulse-server: add support for IPv6
Add support for listening on IPv6 addresses.
The following address formats are supported:
 * tcp:[<ipv6-addr>]:<port>,
 * tcp:<ipv4-addr>:<port>,
 * tcp:<port>, and
 * unix:<path>.

The IP addresses are parsed using `inet_pton()`,
only the formats supported by that function
are accepted.

The IPv6 address must be surrounded by square brackets,
they do not mean "optional" here. Specifying only the
port is equivalent to the following two addresses:
 * [::]:<port>, and
 * 0.0.0.0:<port>.

Address parsing has been made stricter: the port
must always be specified explicitly.

Fixes #1216.
2021-05-27 21:12:14 +02:00
Barnabás Pőcze
279470bc07 pulse-server: native-protocol-tcp: do not hardcode port
Use `PW_PROTOCOL_PULSE_DEFAULT_PORT` from pulse-server.h
instead of hard-coding the default port.
2021-05-27 19:32:02 +02:00
Wim Taymans
06cf1e1c00 module: proxy latency params 2021-05-27 16:07:25 +02:00
Wim Taymans
bae0622311 filter-chain: pass latency param along
Intercept the latency param and pass it on the right stream.
2021-05-27 15:26:09 +02:00
James Henstridge
733ad43d3f module-portal: direct GetConnectionUnixProcessID call to /org/freedesktop/DBus
The D-Bus specification says that the message bus accepts method calls
on other object paths for backwards compatibility, and may reject
security sensitive calls on unexpected object paths:

https://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-messages
2021-05-27 11:24:04 +00:00
Wim Taymans
492caf4456 pulse-server: handle errors during create
If a stream is being created and an error occurs we always need to
reply with the pending create_tag.

Fixes #624
2021-05-26 10:44:59 +02:00
Wim Taymans
4e4294dc13 pulse-server: handle NULL dbus connection
Fixes #1224
2021-05-26 10:23:17 +02:00
Peter Hutterer
049eaac821 modules: fix scan-build errors for unused variables
All cases of value stored but never read
2021-05-26 07:51:27 +00:00
Peter Hutterer
2cb7b19b7d pulse-server: fix scan-build errors for unused variables
All cases of value stored but never read
2021-05-26 07:51:27 +00:00
Peter Hutterer
6d19dd0162 pulse-server: if all transport methods failed, fail server creation
No point in keeping a server running if it doesn't listen to anything.
2021-05-26 07:46:55 +00:00
Barnabás Pőcze
1e9442e6b8 pulse-server: fix memory issue
Previously, when `pw_protocol_pulse_new()` returned NULL,
the code would jump to the `error` label, which would
call `impl_free()`. At this point, however, `impl->module_listener`
is not initialized, which would lead to a SIGSEGV when
`spa_hook_remove()` is called from `impl_free()`.
2021-05-25 14:55:00 +02:00
Wim Taymans
8e36353311 pulse-server: module-combine-sink remove right property 2021-05-24 12:58:10 +02:00
Arun Raghavan
25f9765e9c pulse-server: Implement module-combine-sink 2021-05-24 08:34:23 +00:00
Barnabás Pőcze
22d874cdeb filter-chain: handle LADSPA_PATH as colon separated list of paths
Split up LADSPA_PATH at colons, and try to load the particular
plugin from each directory specified in LADSPA_PATH.

Fixes #1217.
2021-05-24 08:23:21 +00:00
Barnabás Pőcze
67e588f382 filter-chain: actually use ladspa_handle_list
Add successfully loaded handles to the list in `ladspa_handle_load()`,
and remove them when they are freed in `ladspa_handle_unref()`.
2021-05-24 08:23:21 +00:00
Barnabás Pőcze
a8a6def20f filter-chain: fix reference counting issue
Fix a reference counting issue that resulted in
ladspa_handle's refcount being equal to the
sum of the refcounts of its descriptors.

This would result in a memory leak when a descriptor
is loaded more than once from the same handle.
This cannot happen because `ladspa_handle_list` is
not  populated by `ladspa_handle_load()`.
The next commit implements exactly that, so
the fix is applied before the change that
would introduce the problem.
2021-05-24 08:23:21 +00:00
Wim Taymans
6df32666b4 filter-chain: check external ports only once
When we duplicate the pipeline to match the channels, only check
if a port was used only once for the first instance. Makes
demonic filter work again.
2021-05-20 11:24:34 +02:00
Peter Hutterer
71c6a175c4 Drop double semicolons 2021-05-20 07:24:22 +00:00
Jonas Holmberg
b1610d37fe modules: Add module-rt
Add a module to set thread priorities without using rtkit.
2021-05-19 17:39:17 +02:00
Peter Hutterer
4e70799922 treewide: drop strzcmp implementations in favor of spa_streq 2021-05-18 22:10:27 +10:00
Peter Hutterer
522f87d5ea treewide: replace strcmp() != 0 with !spa_streq
This change is only done in source files for now, header files will be done
separately.
2021-05-18 22:10:27 +10:00
Peter Hutterer
95a84e797a treewide: replace !strcmp() with spa_streq()
This change is only done in source files for now, header files will be done
separately.
2021-05-18 22:10:27 +10:00
Peter Hutterer
7697ed0757 treewide: replace strcmp() == 0 with spa_streq()
This change is only done in source files for now, header files will be done
separately.
2021-05-18 22:10:27 +10:00
Wim Taymans
d9240bb766 adapter: name monitor ports of applications as "monitor"
See !668
2021-05-17 15:37:31 +02:00
Wim Taymans
78aae9cfdc Revert "adapter: set prefix for all monitor ports to "monitor""
This reverts commit 38a40949ec.

This is not quite right, virtual devices now have monitor ports
instead of capture ports.
2021-05-17 15:32:33 +02:00
Dark
38a40949ec
adapter: set prefix for all monitor ports to "monitor" 2021-05-15 02:25:25 -04:00
Wim Taymans
170294d7ac pipewire-pulse: add zeroconf module 2021-05-14 11:39:44 +02:00
Wim Taymans
5c152bab23 zeroconf: improve stream properties 2021-05-14 11:19:02 +02:00
Wim Taymans
a428228ebf pulse-tunnel: handle holes in record stream
Holes in the stream return a NULL ptr. Write silence to the
ringbuffer in that case.
2021-05-14 09:51:51 +02:00
Wim Taymans
9b48c6f3ea filter-chain: make sure res is always set 2021-05-14 09:48:13 +02:00
Wim Taymans
0ff1d1e4cb zeroconf-discover: use pw_properties_serialize_dict 2021-05-14 09:09:48 +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
59842b3bd6 make and use pw_properties_serialize_dict()
Remove the multiple other variants and make a better one. Flags are for
future options for escaping and formatting.
2021-05-14 09:08:46 +02:00
Wim Taymans
09cba1e4de module-pulse-tunnel: use SPA_UNLIKELY instead of PA_UNLIKELY 2021-05-13 14:53:39 +02:00
Wim Taymans
a6c0e35b13 filter-chain: reset graph in suspend
To make sure we don't end up with samples from before the suspend.
2021-05-12 20:48:00 +02:00
Wim Taymans
e94a977dcd filter-chain: Support null inputs/outputs
Handle null inputs by ignoring the port
Handle null output by clearing the buffer.
Make sure we only have one input and output linked.
2021-05-12 20:17:15 +02:00
Wim Taymans
2017de6da8 filter-chain: add copy function 2021-05-12 20:16:53 +02:00
Wim Taymans
fb6db4a1f9 pulse-server: clean up default format a little 2021-05-12 18:06:48 +02:00
Wim Taymans
ab9023f752 pulse-server: improve module argument parsing
ticks also delimit strings.
Unescape values.

Fixes #1173
2021-05-12 17:44:57 +02:00
Wim Taymans
3ae2b9e189 pulse-server: implement module-tunnel-sink/source
See #865
2021-05-12 17:00:45 +02:00