Commit Graph

23 Commits

Author SHA1 Message Date
Geoffrey McRae
737614bc69 [client] audio: redesign playback synchronization
Model playback latency from the device period, arrival jitter, source
packet phase, and resampler delay. Treat audio:latencyOffset as an
explicit addition to this minimum and align the first device pull to
the next packet deadline. This starts playback near its steady-state
target without unnecessary prefill or startup underruns. Use a
512-frame default period as a practical low-latency baseline.

Replace the startup clock hold with a one-sided proportional
acquisition controller, then hand off to source/device rate
feed-forward and a slow phase loop. Calibrate the logical device
timeline at handoff, discard correction that opposes the current
error, and slew-limit rate changes. This prevents startup drain,
integral wind-up, overshoot, and long convergence while preserving
clock-drift compensation.

Allow audio backends to expose a real-time resampler and use
PipeWire's adaptive resampler when version 1.4 or newer supports it.
Retain libsamplerate as the fallback and add audio:resampler to select
the implementation. Wait for PipeWire stream setup to complete and
propagate rate-control failures cleanly.

Track PipeWire input-consumption and output-equivalent clocks
separately. The input clock measures ring latency while the output
clock drives feed-forward using the ratio that governed each request.
This removes delayed self-feedback that made adaptive resampling
oscillate between the correction limits.

Reduce audio:debug output to useful latency, clock, jitter, and xrun
values, and scale the playback graph from the startup estimate. Update
the option names and documentation for the new latency model.
2026-07-29 12:39:08 +10:00
Jonathan Rubenstein
fa661aed64 [doc] usage: Update command-line options 2025-08-29 17:58:35 +10:00
Marco Rodolfi
c349f704d6 [doc] client: add documentation for disableWaitingMessage option 2025-06-30 14:25:08 +10:00
Geoffrey McRae
98aade2ec9 [doc] update host usage documentation 2024-03-08 22:41:32 +11:00
Jonathan Rubenstein
626f5eb32e [doc] usage: Actually add non-breaking spaces to config file
In 3625207801 I attempted to add
non-breaking spaces to a filepath so it would stay on one line.
Before this I had accidentally deleted my work but found it saved
in my sphinx build cache, so I copied my changes from that cache.

Unfortunately the cached version replaced non-breaking spaces with
real spaces and 3625207801 was made
reverted.

This commit re-adds the non-breaking spaces.
2023-11-02 06:21:51 +11:00
Jonathan Rubenstein
29c797d7b6 [doc] usage: Add Selecting an IVSHMEM device 2023-10-30 14:16:28 +11:00
Jonathan Rubenstein
3625207801 [doc] usage: Add non-breaking spaces to config path 2023-10-30 14:16:28 +11:00
Jonathan Rubenstein
25d6dd3ba2 [doc] usage: Refresh opening paragraph in Host usage 2023-10-30 14:16:28 +11:00
Geoffrey McRae
e067db7bb4 [doc] fix typos and correct 1440p resolution.
Closes #1064
Closes #1061
2023-03-19 12:57:16 +11:00
Quantum
9b0af43a42 [doc] usage: improve ini syntax documentation
This uses syntax highlighting for the config file and also documents
the ; comment character.
2022-09-19 14:59:19 +10:00
Quantum
0f1eb0fa7f [doc] usage: fix command name bolding
Note that **``looking-glass-client``** is not valid syntax.
2022-09-19 14:59:01 +10:00
Tudor Brindus
6a9075b412 [doc]: a bunch of consistency fixes 2022-09-19 11:14:09 +10:00
Tudor Brindus
6d19e85fa4 [doc]: use arrow characters 2022-09-19 10:30:08 +10:00
Tudor Brindus
2780f6c22f [doc]: make title casing consistent 2022-09-19 10:30:08 +10:00
Tudor Brindus
33bcf19164 [doc]: usage.rst: update supported configuration options 2022-09-19 10:30:08 +10:00
Tudor Brindus
86793a657e [doc]: usage.rst:: add new keybindings 2022-09-19 10:30:08 +10:00
Geoffrey McRae
3b16fb1baa [doc] fix typo 2022-09-18 20:43:29 +10:00
Geoffrey McRae
57c2e47cbf [doc] add comment to state that NvFBC reads NVFBC_PRIV_DATA if set 2022-09-18 20:42:46 +10:00
Geoffrey McRae
a5e6065d39 [doc] added host usage documentation for DXGI and NvFBC 2022-09-18 20:27:03 +10:00
Jonathan Rubenstein
aec2c78bd2 [doc] usage: Update Full Command Line Options 2022-05-15 16:42:27 +10:00
Jonathan Rubenstein
5797fbb4e5 [doc] usage: Move Command Line Options to the top
Also reformats common parameters, and lists them at the top man page
style
2022-05-15 16:42:27 +10:00
Jonathan Rubenstein
4d57671bf1 [doc] usage: Move client install instructions to install.rst 2022-05-15 16:42:27 +10:00
Jonathan Rubenstein
30780ce445 [doc] Create usage.rst from install.rst
No edits
2022-05-15 16:42:27 +10:00