Geoffrey McRae
15f76339c8
[client] audio: move the memory copy into the pull function
2022-01-19 10:29:49 +11:00
Geoffrey McRae
04ae9217e8
[client] audio: allow the audiodev to determine the start fill level
2022-01-19 01:52:19 +11:00
Geoffrey McRae
d6bbc4f89c
[client] audio/pw: return the actual playback latency
2022-01-19 00:03:16 +11:00
Geoffrey McRae
b334f22223
[client] audio: rework audiodevs to be pull model from a common buffer
2022-01-18 09:02:44 +11:00
Geoffrey McRae
689cc53255
[client] audio: add audio playback latency interface and graph
2022-01-17 22:13:41 +11:00
Geoffrey McRae
5629655f74
[client] audio/pw: fix memory leak and gracefully shutdown
2022-01-17 22:10:41 +11:00
Chris Spencer
8a61c8ebc2
[client] audio/pw: use rate matching
...
This can prevent glitches when the PipeWire quantum size changes.
2022-01-11 09:45:30 +11:00
Chris Spencer
ef9b2958ec
[client] audio/pw: set maximum node latency
...
This prevents severe buffer underruns if the PipeWire quantum is bigger
than the ring buffer size. This could happen if a media player is running
at the same time as Looking Glass if it requests a very large quantum size,
for example.
2022-01-11 09:45:30 +11:00
Chris Spencer
e72e138267
[client] audio/pw: delay playback to avoid glitches
2022-01-11 09:45:30 +11:00
Chris Spencer
4c389a9274
[client] audio/pw: flush playback buffers before stopping
...
This stops the end of the playback from being truncated. It also prevents
an audible glitch when playback next starts due to the truncated data being
left behind in the ring buffer.
2022-01-11 09:45:30 +11:00
Chris Spencer
b9c646074d
[client] audio/pw: don't discard playback data
...
This can cause significant glitching, particularly around the start of
playback.
2022-01-11 09:45:30 +11:00
Geoffrey McRae
7263159428
[client] audio/pw: implement record support
2022-01-07 00:54:44 +11:00
Geoffrey McRae
7f93bbd675
[client] audio/pw: fixed another search/replace mistake
2022-01-07 00:09:34 +11:00
Geoffrey McRae
5c20a851c6
[client] audio/pw: fix search/replace error
2022-01-06 23:58:02 +11:00
Geoffrey McRae
11acaa2957
[client] audio/pw: refactor to use playback
for playback methods
2022-01-06 23:56:12 +11:00
Geoffrey McRae
fe7973ea24
[client] audio: implement record interface and glue
2022-01-06 23:49:20 +11:00
Geoffrey McRae
e6bd36ec7c
[client] audio: refactor audio
to playback
and add record
funcs
2022-01-06 22:47:22 +11:00
Geoffrey McRae
952ebea2c5
[all] refresh copyright dates
2022-01-05 19:42:46 +11:00
Geoffrey McRae
02ec25b008
[client] audio/pw: it's Looking Glass, not LookingGlass
2021-12-26 18:49:35 +11:00
Geoffrey McRae
90dd1f3913
[client] audio/pa: added initial pulseaudio implementation
2021-12-26 18:22:51 +11:00
Geoffrey McRae
9fa643484c
[client] audio/pw: use scaling forumula provided by quantum
2021-12-26 11:09:42 +11:00
Geoffrey McRae
64b64b61be
[client] audio/pw: implement volume and mute control
2021-12-26 11:09:42 +11:00
Geoffrey McRae
e408ea51e2
[client] audio/pw: gracefully shutdown when asked to
2021-12-26 11:09:42 +11:00
Geoffrey McRae
ebdc847ef1
[client] audio/pw: don't re-create an idle stream with matching format
2021-12-26 11:09:42 +11:00
Geoffrey McRae
2ea24516d2
[client] audio/pw: limit how much data gets buffered to reduce latency
2021-12-26 11:09:42 +11:00
Geoffrey McRae
dd04a46403
[client] audio/pw: make use of the new ringbuffer consume/append funcs
2021-12-26 11:09:42 +11:00
Geoffrey McRae
f403033ab1
[client] audio/pw: properly manage the stream state
2021-12-26 11:09:42 +11:00
Geoffrey McRae
11ef94c134
[client] audio/pw: set the node name
2021-12-26 11:09:42 +11:00
Geoffrey McRae
75e46128d4
[client] audio/pw: don't actually stop when SPICE signals a stop
2021-12-26 11:09:42 +11:00
Geoffrey McRae
e810577317
[client] audio: initial addition of PipeWire audio support via SPICE
2021-12-26 11:09:42 +11:00