diff options
-rw-r--r-- | src/pulsecore/resampler.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/pulsecore/resampler.c b/src/pulsecore/resampler.c index 9c8e32f9..a8c90050 100644 --- a/src/pulsecore/resampler.c +++ b/src/pulsecore/resampler.c @@ -315,7 +315,9 @@ static pa_memchunk* convert_to_float(pa_resampler *r, pa_memchunk *input) { src = (uint8_t*) pa_memblock_acquire(input->memblock) + input->index; dst = (uint8_t*) pa_memblock_acquire(u->buf1.memblock); + u->to_float32ne_func(n_samples, src, dst); + pa_memblock_release(input->memblock); pa_memblock_release(u->buf1.memblock); @@ -402,9 +404,9 @@ static pa_memchunk *resample(pa_resampler *r, pa_memchunk *input) { return input; in_n_samples = input->length / sizeof(float); - in_n_frames = in_n_samples * r->o_ss.channels; + in_n_frames = in_n_samples / r->o_ss.channels; - out_n_frames = (in_n_frames*r->o_ss.rate/r->i_ss.rate)+1024; + out_n_frames = ((in_n_frames*r->o_ss.rate)/r->i_ss.rate)+1024; out_n_samples = out_n_frames * r->o_ss.channels; if (!u->buf3.memblock || u->buf3_samples < out_n_samples) { @@ -464,7 +466,7 @@ static pa_memchunk *convert_from_float(pa_resampler *r, pa_memchunk *input) { u->buf4.index = 0; } - src = (uint8_t*) pa_memblock_acquire(input->memblock) + input->length; + src = (uint8_t*) pa_memblock_acquire(input->memblock) + input->index; dst = pa_memblock_acquire(u->buf4.memblock); u->from_float32ne_func(n_samples, src, dst); pa_memblock_release(input->memblock); |