bluez5: opus: tweak ABR

Count retry from last non-good interval.  Minimum retry interval 5sec.
This commit is contained in:
Pauli Virtanen 2022-07-24 18:25:25 +03:00 committed by Wim Taymans
parent 5724d405d6
commit 3579857a64

View file

@ -1292,18 +1292,17 @@ static int codec_abr_process(void *data, size_t unsent)
if (level_bad) {
this->e.next_bitrate = this->e.bitrate * 7 / 8;
abr->last_change = abr->now;
abr->retry_interval = SPA_MIN(abr->retry_interval + 10 * interval,
abr->retry_interval = SPA_MIN(abr->retry_interval + 10*interval,
30 * interval);
} else if (!level_good) {
abr->last_change = abr->now;
} else if (abr->now < abr->last_change + abr->retry_interval) {
/* noop */
} else if (level_good) {
} else {
this->e.next_bitrate = this->e.bitrate + this->e.bitrate_max / 20;
abr->last_change = abr->now;
abr->retry_interval = (abr->retry_interval > 4*interval ?
abr->retry_interval - 4*interval :
0);
} else {
abr->last_change = abr->now;
abr->retry_interval = SPA_MAX(abr->retry_interval, (5+4)*interval)
- 4*interval;
}
abr->last_update = abr->now;