alsa: don't add MAX_LATENCY when using IRQ scheduling

The Max latency property only works for timer based scheduling so that
we don't select a quantum larger than we can handle in our buffer.

With IRQ based scheduling this does not make sense because we will
reconfigure the buffer completely when we change quantums and so the
currently selected buffer size does not limit the latency in any way.

Fixes #4877
This commit is contained in:
Wim Taymans 2025-09-02 18:52:38 +02:00
parent ec1f3437e5
commit 881d0e44d0

View file

@ -3875,7 +3875,7 @@ void spa_alsa_emit_node_info(struct state *state, bool full)
items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_MEDIA_CLASS, state->props.media_class); items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_MEDIA_CLASS, state->props.media_class);
items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_NODE_DRIVER, "true"); items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_NODE_DRIVER, "true");
if (state->have_format) if (state->have_format && !state->disable_tsched)
snprintf(latency, sizeof(latency), "%lu/%d", snprintf(latency, sizeof(latency), "%lu/%d",
state->buffer_frames / (2 * state->frame_scale), state->rate); state->buffer_frames / (2 * state->frame_scale), state->rate);
items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_NODE_MAX_LATENCY, latency[0] ? latency : NULL); items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_NODE_MAX_LATENCY, latency[0] ? latency : NULL);