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