resample: fix off-by-one in out_len calculation

Fix off-by-one and add test.
This commit is contained in:
Pauli Virtanen 2025-07-27 12:28:14 +03:00 committed by Wim Taymans
parent 91ebfac75b
commit 84e8d59782
2 changed files with 82 additions and 9 deletions

View file

@ -190,7 +190,7 @@ static uint32_t impl_native_out_len(struct resample *r, uint32_t in_len)
struct native_data *data = r->data;
uint32_t out_len;
in_len = in_len - SPA_MIN(in_len, (data->n_taps - data->hist) + 1);
in_len = in_len - SPA_MIN(in_len, data->n_taps - data->hist);
out_len = (uint32_t)(in_len * data->out_rate - data->phase);
out_len = (out_len + data->in_rate - 1) / data->in_rate;