mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-04-21 06:46:38 -04:00
bluez5: iso-io: don't use streams without tx_latency enabled for fill level calculation
When there is a stream without tx_latency enabled, the fill_count ends
with MIN_FILL value. This causes one buffer of silence to be written to
every stream before the actual data in each iteration.
Consequently, more data is written than consumed in each iteration.
After several iterations, spa_bt_send fails, triggering a
group_latency_check failure in few next iterations and leading to
dropped data.
Skip streams without tx_latency enabled in fill level calculations
to prevent these audio glitches.
(cherry picked from commit 42415eadd9)
This commit is contained in:
parent
78888a78c3
commit
c148028f5a
1 changed files with 1 additions and 1 deletions
|
|
@ -411,7 +411,7 @@ static void group_on_timeout(struct spa_source *source)
|
||||||
/* Ensure controller fill level */
|
/* Ensure controller fill level */
|
||||||
fill_count = UINT_MAX;
|
fill_count = UINT_MAX;
|
||||||
spa_list_for_each(stream, &group->streams, link) {
|
spa_list_for_each(stream, &group->streams, link) {
|
||||||
if (!stream->sink || !group->started)
|
if (!stream->sink || !group->started || !stream->tx_latency.enabled)
|
||||||
continue;
|
continue;
|
||||||
if (stream->tx_latency.queue < MIN_FILL)
|
if (stream->tx_latency.queue < MIN_FILL)
|
||||||
fill_count = SPA_MIN(fill_count, MIN_FILL - stream->tx_latency.queue);
|
fill_count = SPA_MIN(fill_count, MIN_FILL - stream->tx_latency.queue);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue