Wim Taymans
3c2b58d192
pulse-server: fill sink format
2020-10-27 09:00:11 +01:00
Wim Taymans
496f3842be
pulse-server: small cleanup
2020-10-27 08:59:53 +01:00
Wim Taymans
51328af0e1
pulse-server: collect node params
2020-10-27 08:59:28 +01:00
Wim Taymans
5ddd6f0db9
pulse-server: fill more card info
2020-10-26 20:53:54 +01:00
Wim Taymans
4f63f37f00
pulse-server: collect device params
2020-10-26 20:53:34 +01:00
Wim Taymans
fa7c1ad169
pulse-server: set peer_name and id for monitors
2020-10-26 18:29:15 +01:00
Wim Taymans
8759ceb551
pulse-server: handle monitor sources
2020-10-26 18:10:05 +01:00
Wim Taymans
c49771150c
pulse-server: fill in source-output/sink-input peers
2020-10-26 16:59:46 +01:00
Wim Taymans
11ee5ca54c
pulse-server: fill in monitor names
2020-10-26 16:59:30 +01:00
Wim Taymans
fd16eb450a
pulse-server: fill linked sink/source in create_stream reply
2020-10-26 16:39:49 +01:00
Wim Taymans
1df7db5301
link: also add node id to link props
2020-10-26 16:39:28 +01:00
Wim Taymans
a372e4e90e
pulse-server: add more introspection
...
Add default nodes support and subscription events when it changes.
Fix stream id.
Fix node lookup.
Fix node volume.
2020-10-26 13:28:45 +01:00
Wim Taymans
fdf3485902
pulse-server: add sink/source sink_input/source_output introspect
2020-10-25 19:51:42 +01:00
Wim Taymans
02d04c63ea
pulse-server: introspect cards
2020-10-25 16:24:11 +01:00
Wim Taymans
0ac839fce4
pulse-server: improve error reporting
2020-10-25 15:51:46 +01:00
Wim Taymans
1cbad89862
pulse-server: add introspection of clients and modules
...
Add manager object to collect object info
Wait for object info until completing client connect
Implement clients and modules list and info.
2020-10-25 15:28:42 +01:00
Wim Taymans
952326323e
policy-node: also allow node name as NODE_TARGET
2020-10-24 15:50:09 +02:00
Wim Taymans
a5656777e0
stream: Use the control parent type as container
...
Some controls (channelVolumes) list themselves as Float but are stored
in an array, as can be found from the type info. Use this info to
set channelVolumes with 1 channel.
fixes some assertions like pa_pod_is_array(pod)' failed at
../pipewire/spa/include/spa/pod/iter.h:334 spa_pod_get_array()
2020-10-23 15:29:51 +02:00
Wim Taymans
c62b27ec75
pulse-server: handle under/overrun
...
Make sure we don't report underrun for the first time we pull data.
Send STARTED message when we leave the underrun state
Send UNDERFLOW when we enter the underrun state
Count underrun when corked.
Pass process stats back to the mainloop after process.
Decrease the pending length when we get underrun so that we can request
more data.
2020-10-23 12:59:53 +02:00
Wim Taymans
1ceb902b76
pulse-server: convert between client cubic volume and linear
2020-10-23 09:36:01 +02:00
Jan Grulich
743cf58fb7
Define SPA_FALLTHROUGH to make fall-through annotations work for all compilers
...
This is needed for example for Clang compiler which uses different
annotations than GCC. It will make WebRTC to happily use PipeWire
since the spa library is header-only and WebRTC defaults to use
Clang with -Wimplicit-fallthrough.
2020-10-22 13:31:19 +02:00
Wim Taymans
5e325f636c
impl: use _ALL change_mask for everything
...
Instead of ~0
2020-10-22 10:59:04 +02:00
Wim Taymans
723ebcf438
protocol-native: only send properties when in change_mask
...
Only send the properties when the change mask includes them.
This reduces the message size.
2020-10-22 10:57:43 +02:00
Wim Taymans
398dc3055b
context: improve profile parsing
...
First parse the profile into a strv so that we have a copy of the
profiles and it can't change when the original string (in properties
or environment) gets changed.
See #345
2020-10-21 18:09:34 +02:00
Wim Taymans
2193d03eab
pulse-server: handle the case with record from monitor
...
Also handle the case where the client asks to record from the monitor
source directly.
2020-10-21 17:09:15 +02:00
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
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
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