mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
alsa: improve max-latency property
Half of the buffersize is not enough to support as a max-quantum, we need to divide by (4 * frame_scale) to allow some headroom and account for the DSD scaling. We do the same calculation to suggest a buffer size using the quantum-limit. See #3744
This commit is contained in:
parent
7775363d8e
commit
7e1e05f0da
1 changed files with 2 additions and 1 deletions
|
|
@ -3534,7 +3534,8 @@ void spa_alsa_emit_node_info(struct state *state, bool full)
|
|||
state->stream == SND_PCM_STREAM_PLAYBACK ? "Audio/Sink" : "Audio/Source");
|
||||
items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_NODE_DRIVER, "true");
|
||||
if (state->have_format) {
|
||||
snprintf(latency, sizeof(latency), "%lu/%d", state->buffer_frames / 2, state->rate);
|
||||
snprintf(latency, sizeof(latency), "%lu/%d",
|
||||
state->buffer_frames / (4 * state->frame_scale), state->rate);
|
||||
items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_NODE_MAX_LATENCY, latency);
|
||||
snprintf(period, sizeof(period), "%lu", state->period_frames);
|
||||
items[n_items++] = SPA_DICT_ITEM_INIT("api.alsa.period-size", period);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue