Basically the best (really the best, there is no better!!) affordable re-sampling is to map a sinc-funcition (which needs to be bandlimited (pitched) when the destination sample-rate is lower than source-samplerate) on every source sample-point, and then sum it amplitudes for every destination sample-point. But this can be tricky when the ratio is non-integer.
In real live, you have to shorten the sinc-function by windowing (blackman etc) it to reduce the calculation time.
What i have done is, to build a oversampled + windowed sinc-table, and than take interpolated values from it.
If you promise to make an multi-process version from it (basically you only need to parallelize a for-loop), i can send you the code for free, as a starting point
I will help to verify the result.
Basically this is what you need, take the dest-samples from the black line (but keep in mind that sinc-functions need to be bandlimited if dest-samplerate is lower)
Are you interested?