Commit graph

4981 commits

Author SHA1 Message Date
Wim Taymans
d55bc1eb86 keys: add PW_KEY_STREAM_CAPTURE_SINK
Add a property for capture stream to signal that they would like
to capture the output (monitor) of the default sink instead of the
default source.
Check the desired device we would like to capture from and handle
the capture from the sink by monitoring the monitor source.
2020-10-21 17:00:49 +02:00
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
Wim Taymans
a2c70781a3 media-session: use rtkit for session manager data thread 2020-10-21 16:36:37 +02:00
Wim Taymans
25e4f2088c policy-node: also handle the single stream move 2020-10-21 15:39:37 +02:00
Wim Taymans
bfac6f04db policy-node: avoid rescan when moving a node
When we are moving a node, the node becomes unlinked temporarily.
Make sure the rescan code doesn't try to link it to a node
meanwhile.

Fixes #344
2020-10-21 15:27:50 +02:00
Wim Taymans
71c760de14 pulse: fix cleanup of the stream
When the pa_stream is destroyed we need to remove it from the
global, if any (and not when the pw_stream is destroyed).

Fixes crash in gnome-control-center when switching sinks.

See #343
2020-10-21 15:05:41 +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
bb8bd3d76d pw-cat: don't put empty strings in metadata 2020-10-21 11:03:36 +02:00
Wim Taymans
4e3af9d122 pulse-server: support @DEFAULT_*@ wildcard in names 2020-10-21 10:55:14 +02:00
Wim Taymans
5f482b287e pulse: first signal READY, then cork if still needed 2020-10-21 10:42:29 +02:00
Wim Taymans
1af41254af pulse: set state to READY after format
Always start ACTIVE so that negotiation can happen.
When we get a format, calculate and update the latency, cork if needed
and then go to the READY state.

This is more in line with what pulse does and should improve
compatibility.

See #341
2020-10-21 10:28:18 +02:00
Frédéric Danis
48c64f9084 bluez5: backend-hsphfpd: Fix PCM agent name
The audio agent gets or provides data in the format requested between host
and chipset.
The HSP and HFP profile request PCM data to be sent to the chipset which
will encode/decode them in CVSD format.
This audio agent format may be re-used later for another air codec hw
encoded.
So, rename the audio agent to be more explicit.
2020-10-20 19:10:21 +00:00
Frank Praznik
62a34f8c48 defs: rename variables in min/max macros
Fixes a variable shadow warning when SPA_CLAMP() is used.
2020-10-20 19:08:25 +00:00
Frank Praznik
796db2b11b builder: fix variable shadow warning 2020-10-20 19:08:25 +00:00
Wim Taymans
4818795d31 pw-cat: set media.filename 2020-10-20 17:16:33 +02:00
Wim Taymans
74eaf5a2ca pw-cat: parse metadata and make a nice media.name if possible 2020-10-20 17:11:00 +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
d7802202b0 gst: init last_seq
Fixes #339
2020-10-20 11:05:07 +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
4dd1e02526 jack: return error when out of midi events
Fixes #334
2020-10-19 23:30:44 +02:00
Wim Taymans
77b91823f3 a2dp: mark a2dp-source as stream and autoconnect 2020-10-19 18:53:18 +02:00
Wim Taymans
6cc3224031 a2dp-source: fix source
Use codec methods. Init codec at start.
Remove rate match until we actually implement this
Add some buffering of packets before we hand them out.
Always simply fill a buffer and hand it out.
don't emit signals when we are following another driver.
Acquire transport as soon as it goes to PENDING.
2020-10-19 18:25:52 +02:00
Wim Taymans
d727123b86 a2dp-codecs: add more codec params 2020-10-19 18:12:47 +02:00
Wim Taymans
cdb83fa225 a2dp-sbc: implement decode 2020-10-19 18:12:13 +02:00
Wim Taymans
42fde7e00d introspect: always have an active port 2020-10-19 17:59:53 +02:00
Wim Taymans
47680ffade pulse: disable rtkit in the client
It can cause SIGKILL and crash the compositor
2020-10-19 17:23:07 +02:00
Wim Taymans
a91d129698 a2dp-sink: fix timing 2020-10-19 15:35:45 +02:00
Wim Taymans
53ee5ce72a bluez5: make codecs configurable
Make the list of supported codecs available.
Register all supported codecs endpoints
Find the codec from the endpoint name
Put the codec on the transport for the sink to find.
2020-10-19 13:27:11 +02:00
Wim Taymans
e18c4d76dc a2dp: move codecs to separate files 2020-10-19 12:12:21 +02:00
Wim Taymans
5c5b9f61bb a2dp: generate format info from config in init 2020-10-19 10:38:22 +02:00
Wim Taymans
574c0afc93 a2dp: refactor codec functions 2020-10-19 09:48:57 +02:00
Wim Taymans
aaffda9d17 pulse: small cleanup 2020-10-19 09:31:54 +02:00
Wim Taymans
e1fc51d965 a2dp-sink: don't force flush 2020-10-16 13:25:35 +02:00
Wim Taymans
3be0e7e1c6 a2dp-sink: fix playback
Use a simple periodic timeout to pull in samples and write them to the
socket
2020-10-16 13:13:04 +02:00
Wim Taymans
1b7d052098 support: remove useless assignment 2020-10-16 13:11:27 +02:00
Wim Taymans
970ed0bdd6 context: also take quantum from the driver if any 2020-10-16 13:10:47 +02:00
Wim Taymans
56f84ce0e4 pulse: add more debug info 2020-10-15 16:08:25 +02:00