Commit graph

4619 commits

Author SHA1 Message Date
Wim Taymans 10bc423819 impl-link: only recalc graph when reaching PAUSED upwards
Don't recalc when destroying the link (ACTIVE->PAUSED)
2020-10-13 10:19:41 +02:00
Wim Taymans 421a15939d pulse: clear global on the stream when destroyed 2020-10-13 10:19:02 +02:00
Wim Taymans 969b7b6287 pipewire: clear log first, then remove plugins
Reset the logger first before we unload the plugins or else we might
try to log after we unloaded the logger plugin and crash.
2020-10-13 09:52:52 +02:00
Wim Taymans 50d07be7fc impl-link: also stop checking if ACTIVE 2020-10-13 09:46:51 +02:00
Wim Taymans f0a686e784 pipewire: make sure we clear everything in deinit
See #323
2020-10-09 19:59:24 +02:00
Wim Taymans 47ab075895 buffer: clarify data type mask 2020-10-09 17:39:32 +02:00
Wim Taymans 102583c550 Revert "impl-link: only emit active<->paused"
This reverts commit 857f7ca67f.

Not a good idea. We should always notify about the steady state of
the link, which is PAUSED/ACTIVE or ERROR. the other ones are
intermediate and not so important.
2020-10-09 16:52:01 +02:00
Wim Taymans 857f7ca67f impl-link: only emit active<->paused 2020-10-09 16:49:49 +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 391fa81fa8 impl-link: add an active state
Avoid emission of events for each state change.
Add an active state and aim to only emit events for paused<->active
state changed or error.
2020-10-09 16:43:31 +02:00
Wim Taymans f67cbd7444 impl-link: don't notify when nothing changed 2020-10-09 16:42:30 +02:00
Wim Taymans ea92df814c node: avoid useless info events
If only the flags of the node changed, emit the info_changed signal so
that the client-node can update the flags but don't notify the
listeners, the flag is not included in that info.
2020-10-09 16:40:23 +02:00
Wim Taymans f84eacdd5b private: node and port flags are uin64_t 2020-10-09 16:33:23 +02:00
Wim Taymans 0e3198272b remote-node: only update changed fields 2020-10-09 16:31:17 +02:00
Wim Taymans 85977634c1 client-node: only add props and params when mask is set 2020-10-09 16:30:00 +02:00
Wim Taymans 12e6dd89e2 client: register client global after update properties
This way we only expose the client after we have all the properties.
Also add a new CLIENT_ACCESS property that contains the desired
client access mode.
2020-10-09 13:31:22 +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
Wim Taymans 17843ae7cb pulse-bridge: fix reply of record latency
Makes bluejeans in firefox work
2020-10-08 18:06:11 +02:00
Wim Taymans fead5c18d6 pulse-bridge: fix state of source 2020-10-08 18:06:11 +02:00
Wim Taymans 3194d5ca81 pulse-bridge: add introspection of dummy sink/source 2020-10-08 18:06:11 +02:00
Wim Taymans 6f6337e732 pulse-bridge: support record streams 2020-10-08 18:06:11 +02:00
Wim Taymans 7c1fbf5bee pulse-bridge: rework messages
Make recycled message blocks for receiving and sending data.
Implement async flushing out the output queue.
2020-10-08 18:06:11 +02:00
Wim Taymans 4ad085ef96 pulse-bridge: work more on timings
Fixes sync in firefox
2020-10-08 18:06:11 +02:00
Wim Taymans ab4def7e5f pulse: respect flags to set volume/mute 2020-10-08 18:06:11 +02:00
Wim Taymans a4874abc46 pulse: restore volume and muted 2020-10-08 18:06:11 +02:00
Wim Taymans c81021a742 channelmix: keep amount of volumes we parsed 2020-10-08 18:06:11 +02:00
Wim Taymans 630889493c pulse-bridge: Update client properties 2020-10-08 18:06:11 +02:00
Wim Taymans 949f923b80 pulse-bridge: implement timing and corking 2020-10-08 18:06:11 +02:00
Wim Taymans a536c38fbe pulse: use send to avoid SIGPIPE signals 2020-10-08 18:06:11 +02:00
Wim Taymans 90b52b9ff4 pulse-bridge: add more commands 2020-10-08 18:06:11 +02:00
Wim Taymans 9dad175959 pulse-bridge: implement stream volume
Implement some more things.
2020-10-08 18:06:11 +02:00
Wim Taymans 7655aa7066 pulse-bridge: implement enough to play flatpak Spotify 2020-10-08 18:06:11 +02:00
Wim Taymans d180b8d927 beginnings of pulse protocol 2020-10-08 18:06:11 +02:00
Wim Taymans e7585bd7b8 acp: handle devices with no ports
Make sure we don't crash when there are no ports on a device.

See #321
2020-10-08 18:05:49 +02:00
Wim Taymans 5c048500cc stream: normalize volumes when monitoring 2020-10-07 12:45:28 +02:00
Wim Taymans 9054cfcd8b channelmix: remap channel volumes
When we receive volume updates with a different number of channels
than we are configured for, remap them to our number of channels.
This currently involves taking the average volume until we actually
have a channelmap associated with the volume updates.

See #320
2020-10-07 12:01:37 +02:00
Wim Taymans 932adc18f8 stream: clarify that timestamp is in nanoseconds 2020-10-07 12:00:53 +02:00
Wim Taymans 1d95b5bb5b pulse: fix fragsize initialization 2020-10-07 12:00:31 +02:00
Wim Taymans d027a02223 pulse: ask up to tlength bytes
pulseaudio does not ask more than this as well.
2020-10-05 17:13:42 +02:00
Wim Taymans 6f6dc8b63e pulse: set stream READY after it is linked
Wait until we have linked the stream to a device or stream before
we emit the READY state. This is what pulseaudio expects.

Remove stream_index from disconnecting stream so that we don't
accidentally use it again. It is possible that we already created a
new stream with the same id before the old stream could complete the
disconnect.
2020-10-05 12:16:49 +02:00