Commit graph

239 commits

Author SHA1 Message Date
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
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
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
Gleb Popov
fc18a8ffbd Fix build on FreeBSD. 2020-10-21 11:33:16 +00: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
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
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
Renamed from src/examples/media-session/pulse-bridge.c (Browse further)