In case of variable src_ratio the caller must provide more (at least 2?) input samples otherwise ratio stays the same. I think the reason is linear interpolation on this line:
|
src_ratio = state->last_ratio + priv->out_gen * (data->src_ratio - state->last_ratio) / priv->out_count ; |
Basically priv->out_gen is 0 and therefore src_ratio = state->last_ratio until the end of times.