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

@ -1294,16 +1294,15 @@ static int codec_abr_process(void *data, size_t unsent)
abr->last_change = abr->now;
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;