X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=resample_filter.c;h=84a2ee700aae4c2d4dcbe50a186ccbcf54d0cdce;hp=1699ed2c03afcc84cc7b8b3e2e8a7f91aca13cc5;hb=b48bca326fd7fc0484dd807ac1542269b3ab070f;hpb=94802b02fadd65ac1704fe9fcbcf0a2b023d2fa4 diff --git a/resample_filter.c b/resample_filter.c index 1699ed2c..84a2ee70 100644 --- a/resample_filter.c +++ b/resample_filter.c @@ -166,6 +166,7 @@ static int resample_frames(int16_t *in, size_t num_frames, bool have_more, size_t *result_frames) { int ret, num_samples, out_samples; + float *in_float; int16_t *out; SRC_DATA data; @@ -177,11 +178,12 @@ static int resample_frames(int16_t *in, size_t num_frames, bool have_more, data.output_frames = num_frames * ctx->ratio + 1; out_samples = data.output_frames * ctx->channels; - data.data_in = para_malloc(num_samples * sizeof(float)); - src_short_to_float_array(in, data.data_in, num_samples); + in_float = para_malloc(num_samples * sizeof(float)); + src_short_to_float_array(in, in_float, num_samples); + data.data_in = in_float; data.data_out = para_malloc(out_samples * sizeof(float)); ret = src_process(ctx->src_state, &data); - free(data.data_in); + free(in_float); if (ret != 0) { PARA_ERROR_LOG("%s\n", src_strerror(ret)); free(data.data_out);