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
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
5c048500cc
stream: normalize volumes when monitoring
2020-10-07 12:45:28 +02:00
Wim Taymans
932adc18f8
stream: clarify that timestamp is in nanoseconds
2020-10-07 12:00:53 +02:00
Wim Taymans
bcaf7cd722
adapter: remove redundant set_active call
2020-10-05 12:16:46 +02:00
Wim Taymans
b05597cf6b
stream: make sure stream is in the right state
...
An adapter stream is usually created in the active state so deactive
it before export when requested.
2020-10-05 12:16:42 +02:00
Wim Taymans
6f2534f5ab
core: improve debug
2020-10-02 16:23:08 +02:00
Wim Taymans
0da406d304
media-session: make sure we don't read invalid data
2020-10-01 11:32:40 +02:00
Wim Taymans
bc35221210
context: destroy clients first
...
Destroy clients before trying to remove nodes. If the clients are
still connected they might try to react to the removed nodes.
2020-09-30 12:01:46 +02:00
Wim Taymans
81ca70af9b
alsa-monitor: avoid crash in release
...
Only try to release the device when we have a proxy.
Fixes #310
2020-09-28 18:23:23 +02:00
Wim Taymans
79fbddb838
stream: handle out of buffers port
...
If the port was out of buffers and we can't recycle a buffer, return
-EPIPE.
2020-09-25 18:24:29 +02:00
Wim Taymans
d2d722efb3
node: add an ASYNC flag
...
The flag means that the process function might not complete
synchronously.
We can use this knowledge to improve the adapter. In sync mode we
can pull before scheduling the converter. In async mode we need to
schedule the follower after the converter to get the data ready for
the next iteration.
We can also improve the stream when it is operating async to schedule
a process call when a new buffer is ready to be filled.
This reduces a cycle latency from alsa and improves latency in
pulse.
2020-09-25 17:02:54 +02:00
Wim Taymans
9dc1c3b168
stream: improve the input process loop
...
Only try to reuse a buffer when the io area is not already in
the NEED_DATA state or else we might overwrite a previous buffer
reuse and run out of buffers.
We also always need more input.
2020-09-24 17:15:47 +02:00
Wim Taymans
61523d383a
tools: add pw-reserve to reverse and monitor a device
2020-09-23 10:24:06 +02:00
Wim Taymans
f4bf7bc7e6
media-session: don't emit busy when we are acquiring
2020-09-23 10:22:22 +02:00
Wim Taymans
3f844f7b09
media-session: make the same node name as PulseAudio
...
Fixes #299
2020-09-22 12:59:13 +02:00
Wim Taymans
a4e079e1cb
media-session: guard against invalid input
...
See #304
2020-09-22 12:39:39 +02:00
Wim Taymans
cf2c32f0a9
alsa: rework device reservation
...
Always try to first reserve the device name and then start the probing
so that we can be sure that the device is not in use.
2020-09-21 15:23:36 +02:00
Wim Taymans
2b8568e14f
reserve: don't call busy/available when we are the owner
...
Also ignore acquired from our other devices.
2020-09-21 14:35:32 +02:00