pulse-server: recalculate tlength on quantum change

Always reevaluate the tlength or total buffered samples when the
quantum changes, even for the first sample because it is possible that
we completely miscalculated the length when we started, like when the
quantum is force high and the requested latency is low.

Also only increase the calculated tlength, for smaller sizes we don't
need to do anything, we can keep the latency as is it.

See #1930
This commit is contained in:
Wim Taymans 2021-12-20 17:33:55 +01:00
parent 512a52d9c6
commit 3c66d46007
2 changed files with 3 additions and 7 deletions

View file

@ -265,14 +265,10 @@ int stream_update_minreq(struct stream *stream, uint32_t minreq)
uint32_t new_tlength = minreq + 2 * stream->attr.minreq;
uint64_t lat_usec;
if (new_tlength == old_tlength)
if (new_tlength <= old_tlength)
return 0;
if (old_tlength > new_tlength)
stream->missing -= old_tlength - new_tlength;
else
stream->missing += new_tlength - old_tlength;
stream->missing += new_tlength - old_tlength;
stream->attr.tlength = new_tlength;
if (client->version >= 15) {