Commit graph

4945 commits

Author SHA1 Message Date
Wim Taymans
cd25a1e5e7 pulse-server: PLAY_SAMPLE does not need a valid sink id or name 2020-11-17 17:14:28 +01:00
Wim Taymans
01b473e695 protocol-native: handle peersec errors better
Only warn if something is really wrong otherwise just log with
info and don't set the property.

Fixes #385
2020-11-17 13:22:04 +01:00
Wim Taymans
14f68565ad protocol-native: refactor handle client errors
So that we don't spam the log with warnings

See #385
2020-11-17 13:09:49 +01:00
Wim Taymans
813af52072 pulse-server: play the sample on the right sink 2020-11-17 12:59:09 +01:00
Wim Taymans
ff1b49eb81 pulse-server: add skeleton extension for stream-restore
Makes the system-volume slider show up again in pavucontrol
and gnome-control-setting. Does not work yet, though.
2020-11-17 12:33:09 +01:00
Wim Taymans
11a57c9302 pulse-server: add debug level to message_dump 2020-11-17 12:33:09 +01:00
Wim Taymans
f818da96fc pulse-server: use define for monitor flags 2020-11-17 12:33:09 +01:00
Wim Taymans
242cddd371 pulse-server: add support for proplist value conversion 2020-11-17 12:33:09 +01:00
Wim Taymans
573e2afd5e bluez5: fix compilation of fallback Hsphfpd backend 2020-11-16 20:27:55 +01:00
Frédéric Danis
6308c5d806 bluez5: backend-hsphfpd: Add mSBC support
mSBC can be enabled by passing "bluez5.msbc-support=true" parameter to
pipewire-media-session.
mSBC is automatically selected if remote device supports it.
2020-11-16 18:15:39 +01:00
Frédéric Danis
7d28b51713 bluez5: Add mSBC support to sco-source
This has been tested with a UART Bluetoth chipset, on a Raspberry Pi 3.
It may work with USB Bluetoot chipset/dongle.
2020-11-16 18:15:39 +01:00
Frédéric Danis
1759aa834f bluez5: Add mSBC support to sco-sink
This has been tested with a UART Bluetoth chipset, on a Raspberry Pi 3.
It doesn't seem to work with USB Bluetooth chipset/dongle.
2020-11-16 18:15:39 +01:00
Wim Taymans
5849bd7c60 pulse-server: try to flush immediately
When we queued new data and were not flushing already, try to flush
the data immediately.
2020-11-16 17:05:11 +01:00
Wim Taymans
0fada77433 pulse-server: delay flushing messages
Delay flush of messages to better match pulseaudio. We can later
also filter duplicates and redundant events.
2020-11-16 16:59:55 +01:00
Wim Taymans
55bd34c9e7 pulse-server: always ask for tlength samples after flush 2020-11-16 15:47:13 +01:00
Wim Taymans
dcda6c259f pulse-server: send drain only once 2020-11-16 15:42:04 +01:00
Wim Taymans
af41e3423d pulse-server: handle recv of 0 bytes
0 bytes from recv means EOS and we can disconnect the client instead
of looping forever.
2020-11-16 15:36:51 +01:00
Wim Taymans
0e34c552e9 stream: reset counters to 0 when flushing 2020-11-16 15:19:27 +01:00
Wim Taymans
0d9cc9e36e loop: always place the invoke item in the queue
Always place the invoke item in the queue and then either signal the
other thread or flush the queue when not already flushing.
2020-11-16 15:16:20 +01:00
Wim Taymans
9f9be7d7f2 pulse-server: clean up killed and errored streams
Make a stream in error or unconnected as done and run the cleanup
loop to destroy them. Fixes leaks caused by pavucontrol.
2020-11-16 13:31:15 +01:00
Wim Taymans
6fa622d2d9 policy-node: only reconnect to given path_id
When the node is not found and we are not allowed to reconnect to
something else, error.
2020-11-16 13:28:35 +01:00
Wim Taymans
1d3e6b6772 pulse-server: map some properties
Fixes the icon names.

See #377
2020-11-16 11:29:07 +01:00
Wim Taymans
78ab2c3cad pulse-server: pass right object to TAG_PROPLIST 2020-11-16 11:10:41 +01:00
Wim Taymans
0ff7321a65 pulse-server: send right id in PLAY_SAMPLE reply
Also handle errors.
2020-11-15 21:02:49 +01:00
Wim Taymans
f42da492f9 warn about lock just once 2020-11-14 21:21:20 +01:00
Wim Taymans
80e063c6bc pulse-server: add duration to sample 2020-11-14 13:36:26 +01:00
Wim Taymans
8f1eed6ab1 pulse-server: implement sample introspection 2020-11-14 13:31:07 +01:00
Wim Taymans
827d3ff271 pulse-server: set refcount on sample 2020-11-14 13:30:35 +01:00
Georges Basile Stavracas Neto
ee82bfe5fb pulse-server: Correctly unref sample
Decrease the actual ref counter, instead of the pointer
value.
2020-11-13 21:29:22 -03:00
Wim Taymans
13a1049abf pulse-server: also handle @DEFAULT_*@ in GET_*_INFO 2020-11-13 20:20:33 +01:00
Wim Taymans
b7b7c3817e pulse-server: use cleanup event
Signal event to trigger cleanup from places where we are not allowed
to destroy objects, like from their signals.
2020-11-13 19:33:12 +01:00
Wim Taymans
b447167339 pulse-server: actually play the sample from the cache 2020-11-13 18:19:56 +01:00
Wim Taymans
1d8bef1133 pulse-server: fix check type, then check info
If the object is not of the right type, the info might not be of
the right type and we should not deref it.
2020-11-13 17:38:23 +01:00
Wim Taymans
b8b2ce6ba9 loop: always wake up blocking items
We should always wake up the blocking items if we scheduled the
item.
2020-11-13 16:50:23 +01:00
Wim Taymans
8b9d398df6 pulse-server: implement sample cache 2020-11-13 13:28:46 +01:00
Wim Taymans
22cec7823e pulse-server: skip objects being created
Skip iterating over objects that still have pending updates.
Make sure we have all info and properties before we process
objects.

Fixes #376
2020-11-13 09:52:02 +01:00
Wim Taymans
041d1a142d Add commented out option to start pipewire-pulse 2020-11-12 17:43:42 +01:00
Wim Taymans
ca2ea2db4b pulse-server: add more errno to error mappings 2020-11-12 17:37:39 +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
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