Commit graph

910 commits

Author SHA1 Message Date
Wim Taymans
37b39135e9 pulse-server: improve find device by name
Also find the device by name if the name contains a string of the
index.
2020-10-21 16:38:30 +02:00
Gleb Popov
fc18a8ffbd Fix build on FreeBSD. 2020-10-21 11:33:16 +00:00
Wim Taymans
64913f4c7c protocol-native: ref the client while emiting error
Increase the client refcount while we emit an error to make sure
it doesn't get destroyed in the callbacks.

See #340
2020-10-21 13:25:00 +02:00
Wim Taymans
48d1b8d57d pulse-server: fix property key remove 2020-10-21 12:03:45 +02:00
Wim Taymans
66173e4257 pulse-server: refactor stream property fixup 2020-10-21 12:03:13 +02:00
Wim Taymans
ee3298137b pulse-server: fix some allocation errors 2020-10-21 12:02:42 +02:00
Wim Taymans
d6391070c4 pulse-server: use property keys 2020-10-21 12:01:40 +02:00
Wim Taymans
bc1192c8dd pulse-server: handle message errors 2020-10-21 12:00:25 +02:00
Wim Taymans
4e3af9d122 pulse-server: support @DEFAULT_*@ wildcard in names 2020-10-21 10:55:14 +02:00
Wim Taymans
ff99a48acf pulse-server: prebuf can be 0 2020-10-20 16:44:08 +02:00
Wim Taymans
d3ee29caff pulse-server: fix format names 2020-10-20 16:39:31 +02:00
Wim Taymans
5b32125d44 pulse-server: handle format_info
Parse the format_info in CREATE_STREAM and use this to negotiate
the stream. Implement channel_map parsing.
Delay setting up the buffer attributes until we have negotiated a
format.

Makes GStreamer pulsesink work (rhythmbox,... )
2020-10-20 16:25:47 +02:00
Wim Taymans
aea7ace124 pulse-server: keep track of requested bytes
Keep track of the amount of bytes we already requested from the client
and don't ask for those again.

Fixes initial hickups in firefox and others.
2020-10-20 15:57:18 +02:00
Wim Taymans
9abc7993e1 pulse-server: fix props update 2020-10-20 13:18:54 +02:00
Wim Taymans
ae31ee92e7 pulse-server: free the client streams on disconnect 2020-10-20 11:02:22 +02:00
Wim Taymans
425abbf3e9 pulse-server: make sure messages are freed
don't leak the command messages.

Fixes #337
2020-10-20 11:01:17 +02:00
Wim Taymans
389a0eee48 pulse-server: clean up when the context is destroyed 2020-10-20 10:46:08 +02:00
Wim Taymans
0d9ae9d226 pulse-server: avoid SIGFPE when no format is given
Error out for now until we parse the format array.
2020-10-20 09:43:43 +02:00
Wim Taymans
925cc9b487 pulse-server: implement drain 2020-10-14 17:42:52 +02:00
Wim Taymans
58db8ca435 pulse-server: add a monitor for the sink 2020-10-14 16:45:46 +02:00
Wim Taymans
348110e58c pulse-server: don't send error on connection error 2020-10-14 15:45:25 +02:00
Wim Taymans
c92ce17a9f pulse-server: tweak minreq and fragsize
Use time instead of samples to calculate the min
2020-10-14 15:44:52 +02:00
Wim Taymans
2ddcb7b002 pulse-server: convert MEDIA_ROLE property 2020-10-14 14:57:24 +02:00
Wim Taymans
8f953dfdde pulse-server: connect in the set_client_name
connect after we get the client_name call so that we have all
the client properties.
2020-10-09 16:44:55 +02:00
Wim Taymans
0e3198272b remote-node: only update changed fields 2020-10-09 16:31:17 +02:00
Wim Taymans
85977634c1 client-node: only add props and params when mask is set 2020-10-09 16:30:00 +02:00
Wim Taymans
8b70a83c96 pulse-server: improve server registration
Take a list of addresses to listen on.
2020-10-09 13:31:22 +02:00
Wim Taymans
5b8a52cc78 pulse-server: cleanup servers 2020-10-09 13:31:22 +02:00
Wim Taymans
13dfa9d64b pulse-server: update volume and mute for record streams 2020-10-08 19:36:12 +02:00
Wim Taymans
680f8bc645 pulse-server: set more flags 2020-10-08 19:35:58 +02:00
Wim Taymans
71e3052a33 pulse-server: reuse the socket 2020-10-08 18:06:12 +02:00
Wim Taymans
d44fdabea1 pulse-server: send messges when killed and disconnected 2020-10-08 18:06:12 +02:00
Wim Taymans
fde36ac6c2 pulse-server: use at least MIN_SAMPLES of samples per buffer 2020-10-08 18:06:12 +02:00
Wim Taymans
d01586bfa5 pulse-server: support network connections 2020-10-08 18:06:11 +02:00
Wim Taymans
177e897a88 pulse-server: pass data with a ringbuffer
Implement the process function from the RT thread and use a ringbuffer
to pass samples around.
2020-10-08 18:06:11 +02:00
Wim Taymans
138e61138f pulse: resize message dynamically 2020-10-08 18:06:11 +02:00
Wim Taymans
f0102fd490 pulse: move pulse protocol to module 2020-10-08 18:06:11 +02:00
Wim Taymans
bcaf7cd722 adapter: remove redundant set_active call 2020-10-05 12:16:46 +02:00
Wim Taymans
e9fd38512e node: improve debug 2020-09-17 10:34:42 +02:00
Wim Taymans
eaa08e209f protocol-native: remove mainloop hook only once 2020-09-15 18:00:08 +02:00
Wim Taymans
1a2e783a6f protocol-native: keep client around while processing
When we process the messages of a client, keep the client around
because some callback might have disconnected and tried to free
us.
2020-09-15 13:54:50 +02:00
George Kiagiadakis
613824ab0b metadata: set bound id on the exporting resource 2020-08-31 15:57:52 +03:00
Wim Taymans
39513fb681 protocol-native: fix error reporting
Don't say that there is no runtime directory set when there is but
the server is not running.
Simplify things by first trying to connect to the user runtime directory
when set and then try the system directory. There is no need to manually
check the existance of the socket, connect wil that that and set the
appropriate error.
2020-08-21 11:15:24 +02:00
Jonas Holmberg
3e7609dcaf protocol: Add system runtime directory for clients
Add /run/pipewire to the list of runtime directories so that clients can
connect to the system service without specifying runtime directory.

If the otherwise chosen directory (e.g. the user home directory) doesn't
contain any socket but /run/pipewire does, the latter will be used.
2020-08-19 17:46:50 +00:00
Wim Taymans
35534baf9d remote-node: clear up mix structures when port is removed 2020-08-19 11:23:16 +02: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
0955ecc4b0 client-node: avoid useless warnings
Mostly useless warnings while shutting down.
2020-08-10 18:15:14 +02:00
Wim Taymans
fb76f484a9 remote-node: also send spa_flags 2020-08-10 16:45:44 +02:00
Wim Taymans
5fda46fdb9 remote-node: activate node after init
Activate the node after we successfully created a proxy and
initialized it.
2020-08-07 11:52:35 +02:00
Wim Taymans
e5f85d6a4c remote-node: clean node on error 2020-08-07 11:52:14 +02:00